Перейти к содержимому

Пример — сквозной разбор: загрузка продаж из ДодоИс

Самый частотный тип задач у нас — загрузка данных из ДодоИс (продажи, поступления, номенклатура). На нём удобно увидеть, как отдельные стандарты складываются в один конвейер: пропуск любой стадии — это реальная авария из нашей же практики. Числа и детали условные, грабли — из настоящих задач.

Ежедневно продажи из ДодоИс загружаются в 1С как «Отчёты о розничных продажах» (ОРП). Что ломалось на реальных задачах:

  • загрузилась неверная ставка НДС — из выгрузки ДодоИс, без сверки со ставкой в номенклатуре 1С; поправить потом в ОРП нельзя — перестанет биться с чеками;
  • наименования номенклатуры разошлись между ДодоИс и 1С, сопоставление «по названию» стало терять позиции;
  • при НДС не проставлялся флаг УПД — бухгалтер отбирал и проставлял руками;
  • повторный запуск загрузки задваивал ОРП.

Каждая стадия — отдельный стандарт. Вместе они и есть «правильная загрузка».

flowchart TD
    A[Выгрузка ДодоИс] --> B[1. Идемпотентность: не задвоить ОРП]
    B --> C[2. Сопоставление номенклатуры по устойчивому ключу]
    C --> D[3. Валидация: ставка НДС строки = ставка НДС номенклатуры]
    D --> E[4. Автозаполнение: флаг УПД при НДС]
    E --> F[5. Закрытый период: запись в открытую дату]
    F --> G[6. Итог в ЖР: загружено N, отклонено M]
    D -->|расхождение| H[Отчёт-контроль: строки на разбор]
  1. Идемпотентность загрузки — повторный запуск за тот же день обновляет, а не создаёт второй ОРП (ключ — период + касса/подразделение). → Идемпотентность обработчиков
  2. Сопоставление номенклатуры — по устойчивому ключу (код/GUID из ДодоИс), а не по наименованию: названия правятся с обеих сторон и расходятся. → Сверка и контроль данных
  3. Валидация при загрузке — ставка НДС из ДодоИс сверяется со ставкой в номенклатуре 1С; расхождение не грузится молча, а попадает в отчёт-контроль на разбор. → Сверка и контроль данных
  4. Автозаполнение реквизита в точке загрузки — флаг УПД при наличии НДС ставится в обработке загрузки (через неё проходят все ОРП), а не в форме. → Автозаполнение реквизитов
  5. Закрытый период — загрузка за прошлый месяц не падает молча: осознанная дата, отказ виден. → Закрытый период
  6. Итог в ЖР — сколько строк загружено и сколько отклонено с причиной. → Обработка ошибок и логирование

Ключевая стадия: валидация НДС при загрузке

Заголовок раздела «Ключевая стадия: валидация НДС при загрузке»

Задача этого типа проходит сразу по трём чеклистам: