Страница 9 из 12

Модуль DaData

Добавлено: 21 окт 2017, 19:05
YurAnt
Изображение
Быстрый ввод адресов, компаний, банков с помощью подсказок онлайн-сервиса DaData.ru

Модуль:
DaData.epas.zip
(6.24 КБ) 521 скачивание

Тестовая БД:
DaData_example.zip
(74.23 КБ) 529 скачиваний
Внимание! Изменены имена функций!
(после установки этой версии необходимо сменить имена в самой базе)

Модуль:
DaData_1.5.zip
(6.34 КБ) 1122 скачивания

Тестовая БД:
DaData_example_1.5.zip
(74.3 КБ) 1049 скачиваний

Демо

API-ключ в примере - тестовый. Новый ключ вы можете бесплатно получить после регистрации в сервисе DaData.

Примечание:
1. Сохранена совместимость со старыми названиями функций (достаточно установки модуля поверх старой БД).
с версии 1.5 имена изменены для удобочитаемости... :|
2. Plug&Play: "Автономная" работа через WinAPI (отдельная библиотека libcurl.dll не требуется).
3. На linux-версии DX работать не будет, т.к. используется OLE.
4. На linux под wine по идее заработать должен, т.к. wine очень хитёр... работает.
5.Ввиду специфичности и простоты самодельного xml-парсера возможно некорректное отображение результатов запросов вызываемых с тегированными параметрами (DA_FUNC..('param1.param2...') ) . Полноценное решение выложу немного позже. Пофиксено.

1. Выборка искомого объекта из списка нескольких результатов (в отдельном всплывающем окне или выпадающем списке).
2. Прочёс API DaData на предмет расширения функциональности модуля.
3. При необходимости - расширение функциональности модуля для работы с платными API-функциями DaData.
Расширения списком

Модуль DaData

Добавлено: 17 июн 2020, 11:05
Develop-Soft
Я правильно понимаю что вы предлагаете?:
Есть клиент ООО "ООО" в справочнике. Данные на него были актуальны на январь 2019-го. Директор был "Иванов". С ним подписан договор №1.
Наступил 2020й, сменился директор на "Петров" и вы хотите автоматом подтянуть его в справочник и подписать с ним договор №2.
Возвращаемся к договору №1 - а там директор "Петров"... То есть - старый договор становится недействительным...

Модуль DaData

Добавлено: 17 июн 2020, 11:50
Morozbl4
Ну старый то действителен, а для заключения нового - да.
Но в таком качестве модуль использовать я лично не планирую. В основном нужно название и ИНН для разбивки контактов.

Модуль DaData

Добавлено: 17 июн 2020, 14:04
august
Develop-Soft писал(а):Я правильно понимаю что вы предлагаете?:
Есть клиент ООО "ООО" в справочнике. Данные на него были актуальны на январь 2019-го. Директор был "Иванов". С ним подписан договор №1.
Наступил 2020й, сменился директор на "Петров" и вы хотите автоматом подтянуть его в справочник и подписать с ним договор №2.

да
Develop-Soft писал(а):Возвращаемся к договору №1 - а там директор "Петров"... То есть - старый договор становится недействительным...

Старый договор остается заключенным и действительным, но он меня уже не интересует, поскольку я его сгенерировал в DE и он живет в цифре или на бумаге (в базе будет ссылка на электронный договор или электронный образ договора).

Модуль DaData

Добавлено: 17 июн 2020, 14:09
august
Morozbl4 писал(а):Но в таком качестве модуль использовать я лично не планирую. В основном нужно название и ИНН для разбивки контактов.

Наименования юр.лиц тоже меняются и это не такая уж редкость

Модуль DaData

Добавлено: 17 июн 2020, 14:15
Develop-Soft
august писал(а):Старый договор остается заключенным и действительным, но он меня уже не интересует

Это условности. Договор я привел в пример, помимо него есть другие документы, где измененный автоматом реквизит может стать сюрпризом...
Автоматическое обновление всех данных помимо казуса с перезаписью может привести еще и к длительной нагрузке на программу (соответственно - зависанию). К тому же есть ограничение со стороны сервиса Dadata на количество запросов в секунду и общее суточный лимит (до 10k).
Выполнить обновление можно, если прикрутить к кнопке действие "Массовые вычисления" и прописать в нем Dadata-функции. Но это на ваш страх и риск (я бы не стал делать автомат).

Модуль DaData

Добавлено: 17 июн 2020, 14:35
august
Develop-Soft писал(а):Договор я привел в пример, помимо него есть другие документы, где измененный автоматом реквизит может стать сюрпризом...

Верно. И это я учитываю. Но если задним числом документы не делать, то всегда актуальные сведения это то, что нужно.

Develop-Soft писал(а):Автоматическое обновление всех данных помимо казуса с перезаписью может привести еще и к длительной нагрузке на программу (соответственно - зависанию). К тому же есть ограничение со стороны сервиса Dadata на количество запросов в секунду и общее суточный лимит (до 10k).

Ясно.

Develop-Soft писал(а):Выполнить обновление можно, если прикрутить к кнопке действие "Массовые вычисления" и прописать в нем Dadata-функции. Но это на ваш страх и риск (я бы не стал делать автомат).

Больше спасибо, буду разбираться как это работает!
Свою БД только собираю и тестирую разные возможности DE)

Модуль DaData

Добавлено: 17 июн 2020, 14:44
Develop-Soft
august писал(а):Но если задним числом документы не делать, то всегда актуальные сведения это то, что нужно.
Это не всегда называется "задним числом". Бывает ситуация когда надо поднять старый договор в базе, а менеджер Сидоров (который не в курсе изменений) сам того не ведая черпает искаженную информацию.

Модуль DaData

Добавлено: 17 июн 2020, 15:12
august
Develop-Soft писал(а):
august писал(а):
Это не всегда называется "задним числом". Бывает ситуация когда надо поднять старый договор в базе, а менеджер Сидоров (который не в курсе изменений) сам того не ведая черпает искаженную информацию.

Теоретически конечно, что угодно, человеческий фактор вещь упрямая.
Но у меня логика иная:
1) реквизиты договора собираются в DE,
2) проект договора генерируется через шаблоны в файл текстового редактора,
3) проект подписывается ЭЦП или на бумаге.
После пункта 3 в базу добавляется ссылка на файлы подписанного договора (электронный документ или скан).
При необходимости, правки делаются в сохраненном файле текстового редактора (пункт 2).
Реквизиты документа в DE уже фактически не нужны (только статистика, где-кто участвовал), каждый новый документ делается "с нуля", не опираясь на ранее набранный документ.

Но если возможно будет реализовать неизменность реквизитов уже собранного документа в DE (пункт 1), это вообще решит все вопросы.

Модуль DaData

Добавлено: 17 июн 2020, 15:13
Morozbl4
ну так вы запрашивайте реквизиты из DaData непосредственно при составлении договора и сохраняйте их в отдельную форму вместе с данными договора (если это вообще необходимо).
Из простой формы через скрипт заполняйте соседнюю форму и все.

Модуль DaData

Добавлено: 17 июн 2020, 16:54
august
Morozbl4 писал(а):ну так вы запрашивайте реквизиты из DaData непосредственно при составлении договора и сохраняйте их в отдельную форму вместе с данными договора (если это вообще необходимо).
Из простой формы через скрипт заполняйте соседнюю форму и все.

При отсутствии Интернета документ не получится заполнить.
Хотя пока это не принципиально.
1) Допустим БД условно состоит из двух форм: ДОКУМЕНТЫ (поля+объекты, содержащие реквизиты документа) и справочника КОНТРАГЕНТЫ (поля с данными контрагентов, полученными через DaData).
2) В поля и объекты формы ДОКУМЕНТЫ вносятся реквизиты документа, а также есть подотчетная таблица, куда заносятся сведения о лицах, задействованных в документе (количество "участников" документа может быть один и больше, теоретически и 100 "участников" документа это вполне реально).
3) Через объект в подотчетной таблице формы ДОКУМЕНТЫ я выбираю контрагента из справочника КОНТРАГЕНТЫ (допустим только Краткое наименование), что позволяет не засорять форму ДОКУМЕНТЫ другими реквизитами лица, доступными в форме КОНТРАГЕНТЫ.
4) При формировании шаблона документа через вышеуказанный объект расставляются теги нужных мне данных из полей формы КОНТРАГЕНТЫ.
Уточните, пожалуйста, как реализовать Вашу логику в такой структуре БД?