Интеграция с Контур Диадок
(заполнение дат в документе «Подтверждение получения документов»)
| Заказчик: | Транскомпани |
| Суть задачи: | Автоматически заполнять реквизиты «Дата отправления» и «Дата доставки» в документе «Подтверждение получения документов» (ППД) на основании данных из Контур Диадок |
| Составил ТЗ: | Давлетшина Л.Т. |
| Ссылка на видео описание: |
— |
|---|
📋 Таблица расчётов
| № |
Описание работ |
Размещение |
Трудозатраты (час) |
| 1 |
Регламентное задание №1: Заполнение «Дата отправления»
Поиск документов в Диадоке со статусом Ожидается подпись контрагента, сопоставление с ППД и заполнение реквизита «Дата отправления».
|
Документ ППД → реквизит «Дата отправления»
|
2,5 |
| 2 |
Регламентное задание №2: Заполнение «Дата доставки»
Поиск документов в Диадоке со статусом Документооборот завершен, сопоставление с ППД и заполнение реквизита «Дата доставки».
|
Документ ППД → реквизит «Дата доставки»
|
2,5 |
| 3 |
Настройка регламентных заданий
Создание и настройка двух регламентных заданий с возможностью настройки расписания.
|
Регламентные задания
|
1,0 |
| ИТОГО: |
6,0 |
1 Регламентное задание №1 — Заполнение «Дата отправления»
1.1. Цель
Автоматически заполнять реквизит «Дата отправления» в документе ППД на основании данных из Контур Диадок для документов со статусом Ожидается подпись контрагента.
1.2. Алгоритм работы
1.2.1. Авторизация в Контур Диадок
- Учётные данные (логин, пароль, API-ключ) хранятся в зашифрованном виде в регистре сведений и подставляются автоматически при вызове API.
1.2.2. Поиск документов в Диадоке
- Раздел: «Исходящие» (
direction = "Outgoing")
- Период: текущая дата минус 30 банковских дней
- Статус: Ожидается подпись контрагента
- Получить для каждого документа:
- Номер и дату документа (УПД)
- Получателя (контрагента)
- Дату отправления (
sendDate)
1.2.3. Сопоставление с ППД
- Для каждого документа ППД с пустой «Дата отправления»:
- Найти в Диадоке документ, где:
- Получатель = Контрагент из ППД
- Номер УПД = Номер счета от покупателя из ППД
- Дата УПД = Дата счета от покупателя из ППД
- При совпадении — заполнить «Дата отправления» =
sendDate
1.3. Результат
Реквизит «Дата отправления» в ППД заполняется датой отправки документа из Диадока.
1.4. Граничные случаи
| Ситуация | Результат |
| Документ не найден в Диадоке | Реквизит остаётся пустым |
| Найдено несколько совпадений | Реквизит не заполняется, выводится предупреждение |
| В ППД не заполнен номер счета | Заполнение не выполняется |
2 Регламентное задание №2 — Заполнение «Дата доставки»
2.1. Цель
Автоматически заполнять реквизит «Дата доставки» в документе ППД на основании данных из Контур Диадок для документов со статусом Документооборот завершен.
⚠️ Отличие от пункта 1: Статус документа в Диадоке — «Документооборот завершен», заполняется реквизит «Дата доставки» датой подписания документа контрагентом.
2.2. Алгоритм работы
2.2.1. Авторизация в Контур Диадок
- Те же учётные данные, что и в пункте 1 (хранятся зашифрованными)
2.2.2. Поиск документов в Диадоке
- Раздел: «Исходящие» (
direction = "Outgoing")
- Период: текущая дата минус 30 банковских дней
- Статус: Документооборот завершен
- Получить для каждого документа:
- Номер и дату документа (УПД)
- Получателя (контрагента)
- Дату подписания контрагентом (
signDate или deliveryDate)
2.2.3. Сопоставление с ППД
- Для каждого документа ППД с пустой «Дата доставки»:
- Найти в Диадоке документ, где:
- Получатель = Контрагент из ППД
- Номер УПД = Номер счета от покупателя из ППД
- Дата УПД = Дата счета от покупателя из ППД
- При совпадении — заполнить «Дата доставки» =
signDate (или deliveryDate)
2.3. Результат
Реквизит «Дата доставки» в ППД заполняется датой подписания документа контрагентом в Диадоке.
2.4. Граничные случаи
| Ситуация | Результат |
| Документ не найден в Диадоке | Реквизит остаётся пустым |
| Документ найден, но дата подписания отсутствует | Реквизит остаётся пустым |
| Найдено несколько совпадений | Реквизит не заполняется, выводится предупреждение |
| В ППД не заполнен номер счета | Заполнение не выполняется |
2.5. Сравнение пунктов 1 и 2
| Параметр |
Пункт 1 (Дата отправления) |
Пункт 2 (Дата доставки) |
| Статус в Диадоке |
Ожидается подпись контрагента |
Документооборот завершен |
| Заполняемый реквизит ППД |
«Дата отправления» |
«Дата доставки» |
| Поле из API Диадок |
sendDate (дата отправки) |
signDate / deliveryDate (дата подписания) |
| Условие для заполнения |
Документ отправлен, но ещё не подписан |
Документ полностью подписан и завершён |
3 Настройка регламентных заданий
3.1. Формат вызова
Выполнение обоих регламентных заданий должно осуществляться по расписанию с возможностью настройки периодичности.
3.2. Требования к регламентным заданиям
- Создать два отдельных регламентных задания:
- «Заполнение даты отправления из Диадока» (пункт 1)
- «Заполнение даты доставки из Диадока» (пункт 2)
- Для каждого задания предусмотреть настройку расписания (интервал запуска).
- Рекомендуемая периодичность: ежедневно или каждые несколько часов.
- Предусмотреть возможность ручного запуска (кнопка в интерфейсе).
- Логировать результаты выполнения (количество обработанных документов, ошибки).
3.3. Параметры регламентных заданий
| Параметр |
Значение |
| Имя задания 1 |
«Заполнение даты отправления из Диадока» |
| Имя задания 2 |
«Заполнение даты доставки из Диадока» |
| Метод запуска |
Регламентное задание (фоновое выполнение) |
| Интервал запуска |
Настраивается пользователем (по умолчанию — ежедневно в 00:00) |
| Приоритет |
Низкий (выполняется в фоне, не блокирует работу пользователей) |
3.4. Обработка ошибок
- При недоступности API Диадока — задание пропускает текущий цикл, ошибка логируется.
- При превышении времени ожидания ответа от API — задание прерывается, ошибка логируется.
- Все ошибки записываются в журнал регистрации с указанием причины.
🔐 Требования к безопасности
- Учётные данные (логин, пароль, API‑ключ) хранятся в зашифрованном виде в регистре сведений.
- Передача данных по API — только по HTTPS.
- Пароль и API‑ключ не логируются в открытом виде.
- Доступ к настройкам регламентных заданий ограничен администраторами.
✅ Критерии приёма работы
- Пункт 1: Реализовано регламентное задание для заполнения «Дата отправления» по статусу Ожидается подпись контрагента.
- Пункт 2: Реализовано регламентное задание для заполнения «Дата доставки» по статусу Документооборот завершен.
- Пункт 3: Настроены два регламентных задания с возможностью настройки расписания.
- Сопоставление документов выполняется корректно по контрагенту, номеру и дате.
- При отсутствии данных или неоднозначности — реквизиты остаются пустыми.
- Все ошибки логируются, работа пользователей не блокируется.
📎 Условия сдачи работы
- Заказчик получает работу в установленный срок и обязан проверить её качество в течение трёх (3) рабочих дней с момента получения.
- В случае, если в течение трёх рабочих дней с момента предоставления работы Заказчик не предоставит обратную связь (замечания, уточнения или запросы на доработку), работа автоматически считается принятой.
- Принятие работы подразумевает, что Заказчик признаёт её соответствующей всем требованиям, указанным в данном ТЗ, и не имеет претензий к качеству выполненной работы.
От Заказчика (Транскомпани): _________________ /_________________ /
От Исполнителя: _________________ /_________________ /