Сверка и контроль данных — полнота, критерии, судьба расхождения
Директивный
Правило
Заголовок раздела «Правило»Задача сверки/контроля (данные 1С ↔ внешняя система, документ ↔ первоисточник, остатки ↔ расчёт) обязана определить четыре вещи, и все четыре — явно:
- Полнота выборки с обеих сторон. Сверяются два множества целиком за один и тот же период; «нашли совпадения» — это не сверка, сверка обязана показать и то, чего нет на другой стороне (в 1С есть — в источнике нет, и наоборот).
- Ключ сопоставления — устойчивый, а не одно поле. Одной суммы или одного ФИО мало: реальные ключи составные (номер + дата + сумма + вид операции). Правило каскада фиксируется: сначала по точному ключу, при промахе — по композитному, и только потом «не найдено».
- Период/окно сверки задан явно (например, «4 месяца назад от даты загрузки»), а не «все данные» — иначе сверка либо пропускает старое, либо деградирует на всей базе.
- Судьба расхождения — отслеживаемый процесс, а не сообщение в чат. Расхождение уходит туда, где его нельзя потерять: предупреждение при записи, тикет с маршрутом и ответственным, документ-корректировка. Автосоздание корректировок — идемпотентно: повторный прогон не плодит дубли.
Порог допустимого расхождения (округление, копейки) задаётся осознанно, а не «ноль любой ценой».
Сверка ценна ровно настолько, насколько ей можно доверять как «всё сошлось». Три типовых способа сделать её бесполезной, все встречаются в реальных задачах: сверять только пересечение (расхождение «одна сторона есть, другой нет» не видно), сопоставлять по одному полю (ложные совпадения по совпавшей сумме), и отправлять расхождения в общий чат, где «бо́льшая часть замечаний улетает и не обрабатывается». Сверка без отслеживаемой судьбы расхождения — это не контроль, а его имитация.
Пример из практики
Заголовок раздела «Пример из практики»Два реальных случая, где видны все четыре требования:
- Контроль дублей билетов при загрузке. При выгрузке билетов в бухбазу — предупреждение, если есть совпадение (1) по номеру билета, иначе (2) одновременно по ФИО + дате + сумме + виду операции. Это каскад ключа (точный → композитный → «не найдено») и явное окно — проверка на 4 месяца назад от даты загрузки, а не по всей базе.
- Расхождения кассы. Раньше расхождения по отчёту «Сверка остатков денег в кассе» бухгалтерия писала в общий канал, где «бо́льшая часть замечаний улетает и не обрабатывается». Правильная судьба расхождения — кнопкой создать тикет в трекере с маршрутом (ответственный — управляющий, наблюдатель — территориальный менеджер), а не сообщение в чат.
Когда не применять
Заголовок раздела «Когда не применять»- Разовая ручная сверка «глазами» под конкретный вопрос — можно без формализации, но как только она повторяется, её место в этом стандарте.
- Толеранс намеренно нулевой (сверка контрольных сумм, хешей) — тогда порог расхождения не нужен; всё остальное (полнота, ключ, судьба) действует.