Ядром решения является обработка Консоль сравнения данных (КСД). Консоль сама по себе позволяет в один момент времени провести только одно сравнение между данными из двух источников по заданным пользователям правилам. Текущее же прикладное решение позволяет вручную либо с помощью механизма регламентных заданий выполнить цепочку операций сравнения с уведомлением о результате сравнения по заданным пользователем каналам связи.
Возможно сравнение данных, полученных из следующих источников:
- информационные базы 1С (через COM, а также текущая информационная база, если конфигурацию ССД объединить с конфигурацией рабочей базы);
- базы данных SQL (Microsoft SQL Server, PostgreSQL и др., для которых есть подходящий драйвер);
- файлы формата CSV/TXT/DBF/XLS/XML.
Алгоритм работы с прикладным решением:
- Формирование списка всех возможных «точек контроля» (неудачный термин, но пока я не придумал более подходящий) в учетных системах (или файлах), равенство данных в которых важно для компании (остатки и обороты на р/с, остатки и обороты дебиторской и кредиторской задолженности, синхронизируемые документы и элементы справочников и т.д).
- Создание для каждой «точки контроля» одной или нескольких операций сравнения данных с помощью Консоли сравнения данных (например, для контроля поиска расхождений остатков по остаткам на расчетных счетах между данными торговли и бухгалтерии, как минимум, нужна операция (1) для сравнения, собственно, остатков, затем операция (2) сравнения суммы оборотов за последние Х дней как ближайший кандидат на расхождение, затем операция (3) сравнения суммы оборотов по дням за эти же Х дней для выявления дня (вместо дней можно, взять любую другу подходящую под данную ситуацию аналитику или несколько аналитик (регистратор, номер расчетного счета и т.д.) по выбору пользователя).
- Настройка всех возможных комбинаций вариантов передачи сообщений (запись в файл, запись в журнал регистрации, отправка по электропочте, отправка в корпоративный чат MyChat) и событий, инициирующих отправку сообщения (совпадение данных, расхождение данных, ошибка) (например, при любых ошибках сообщение должно быть записано в файл и журнал регистрации, а также отправлено на электронную почту и в чат техническому специалисту, при расхождении данных в одних «точках контроля» – отправка сообщения на электронную почту ответственным сотрудникам и запись расхождений в файл, при расхождении в других – отправка и только техническому специалисту и запись расхождений в файл и т.д.).
- Создание сценария для каждой или нескольких «точек контроля», в котором будет указана последовательность и условия выполнения операций сравнения (например, для поиска расхождения остатков на р/с необходимо определить, имеет ли место факт расхождения (чтобы не сравнивать сразу обороты, что отнимет больше ресурсов у сервера, чем получение остатков) с помощью операции (1), в случае расхождения с помощью операции (2) необходимо определить, есть ли расхождения в сумме оборотов за последние Х дней/месяцев, если есть расхождения, то с помощью операции (3) будет найден день (или другая аналитика), в котором возникли расхождения, а если за последние Х дней расхождений в суммах не найдено, то требуется повторить операции (2) и (3) для предыдущего/следующего периода и т.д.).
- Логическая группировка сценариев по времени и частоте выполнения в зависимости от загрузки сервера, времени работы пользователей и др., создание для каждой группы сценариев отдельного регламентного задания.
Требуется версия платформы 8.3.7.1759.
При возникновении вопросов пишите в комментах, в личку, на электропочту или в скайп (данные есть в справке конфигурации).
С помощью данного прикладного решения, оперирующего само собой, объектами 1С, не стоит сравнивать таблицы значений из сотен тысяч и более строк, для этого стоит поискать более высокопроизводительный инструмент.
P.S. Благодарю пользователя Alxby за возможность использовать его библиотеки для работы с графической схемой, а также пользователей starik-2005 и kosmo0 за конструктивные диалоги в комментариях к Консоли сравнения данных, подтолкнувшие меня к написанию конфигурации ССД.