Ядром решения является обработка Консоль сравнения данных (КСД). Консоль сама по себе позволяет в один момент времени провести только одно сравнение между данными из двух источников по заданным пользователям правилам. Текущее же прикладное решение позволяет вручную либо с помощью механизма регламентных заданий выполнить цепочку операций сравнения с уведомлением о результате сравнения по заданным пользователем каналам связи.
Возможно сравнение данных, полученных из следующих источников:
- информационные базы 1С (через COM, а также текущая информационная база, если конфигурацию ССД объединить с конфигурацией рабочей базы);
- базы данных SQL (Microsoft SQL Server, PostgreSQL и др., для которых есть подходящий драйвер);
- файлы формата CSV/TXT/DBF/XLS/XML.
Алгоритм работы с прикладным решением:
- Формирование списка всех возможных «точек контроля» (неудачный термин, но пока я не придумал более подходящий) в учетных системах (или файлах), равенство данных в которых важно для компании (остатки и обороты на р/с, остатки и обороты дебиторской и кредиторской задолженности, синхронизируемые документы и элементы справочников и т.д).
- Создание для каждой «точки контроля» одной или нескольких операций сравнения данных с помощью Консоли сравнения данных (например, для контроля поиска расхождений остатков по остаткам на расчетных счетах между данными торговли и бухгалтерии, как минимум, нужна операция (1) для сравнения, собственно, остатков, затем операция (2) сравнения суммы оборотов за последние Х дней как ближайший кандидат на расхождение, затем операция (3) сравнения суммы оборотов по дням за эти же Х дней для выявления дня (вместо дней можно, взять любую другу подходящую под данную ситуацию аналитику или несколько аналитик (регистратор, номер расчетного счета и т.д.) по выбору пользователя).
- Настройка всех возможных комбинаций вариантов передачи сообщений (запись в файл, запись в журнал регистрации, отправка по электропочте, отправка в корпоративный чат MyChat) и событий, инициирующих отправку сообщения (совпадение данных, расхождение данных, ошибка) (например, при любых ошибках сообщение должно быть записано в файл и журнал регистрации, а также отправлено на электронную почту и в чат техническому специалисту, при расхождении данных в одних «точках контроля» – отправка сообщения на электронную почту ответственным сотрудникам и запись расхождений в файл, при расхождении в других – отправка и только техническому специалисту и запись расхождений в файл и т.д.).
- Создание сценария для каждой или нескольких «точек контроля», в котором будет указана последовательность и условия выполнения операций сравнения (например, для поиска расхождения остатков на р/с необходимо определить, имеет ли место факт расхождения (чтобы не сравнивать сразу обороты, что отнимет больше ресурсов у сервера, чем получение остатков) с помощью операции (1), в случае расхождения с помощью операции (2) необходимо определить, есть ли расхождения в сумме оборотов за последние Х дней/месяцев, если есть расхождения, то с помощью операции (3) будет найден день (или другая аналитика), в котором возникли расхождения, а если за последние Х дней расхождений в суммах не найдено, то требуется повторить операции (2) и (3) для предыдущего/следующего периода и т.д.).
- Логическая группировка сценариев по времени и частоте выполнения в зависимости от загрузки сервера, времени работы пользователей и др., создание для каждой группы сценариев отдельного регламентного задания.
Требуется версия платформы 8.3.6.1977.
Буду благодарен, если напишете о найденном баге на sertakov [а] list.ru, в личку или в комментариях.
P.S. Благодарю пользователя Alxby за возможность использовать его библиотеки для работы с графической схемой.
P.P.S. Благодарю пользователей starik-2005 и kosmo0 за конструктивные диалоги в комментариях к Консоли сравнения данных, подтолкнувшие меня к написанию конфигурации ССД.
Актуальная инструкция к конфигурации доступназдесь .
Версия 1.1.2:
обновлены отчеты и обработки до последних версий;
режим совместимости изменен на 8.3.6.
Опять укажу потенциальную граблю. Если сравнение идет ТОЛЬКО по представлению, то в некоторых случая возможны ошибки. Было дело пришлось менять какой-то документ по зарплате и персоналу. Что-то в табличной части менял/добавлял руками. По итогу сравнивал с движениями этого же документа до изменений — изменений не было (вроде как). Сам удивляюсь, как заметил что в одной строке «Иванов Иван Иваныч» ранее был из справочника ФизЛицо, а я поставил из справочника Сотрудники. То есть тип столбца в документе включал эти оба справочника. И по представлению нельзя определить из какого справочника элемент.
(3) Пользователь, использующий инструмент, САМ выбирает ключи. Можно сделать составной, указав тип во втором столбце ключа, можно вытянуть GUID, да что фантазия позволит, то и можно.
И обсуждать такие темы удобнее напрямую в публикации с самой обработкой КСД:https://infostart.ru/public/581794/ , а текущая публикация — это инструмент для автоматического выполнения уже заполненной обработки КСД.