В процессе эксплуатации «1С:ERP Управление предприятием 2» администраторы часто сталкиваются с ситуацией, когда настройки синхронизации данных меняются «невидимым» образом. Одной из критических настроек является параметр «Отправлять все, начиная с даты». Если пользователь случайно или намеренно изменит эту дату, система может либо начать выгружать огромный массив старых данных, либо перестать выгружать актуальные документы. Проблема усугубляется, если изменение нужно отследить «задним числом», когда стандартная подсистема версионирования не была включена. Рассмотрим подробно, как выйти из этой ситуации и найти виновника и старое значение.
Прежде чем приступать к поиску, проанализируем структуру хранения данных. Параметр «Отправлять все, начиная с даты» в типовых конфигурациях на базе БСП (Библиотека стандартных подсистем) является реквизитом конкретного узла Плана обмена. В зависимости от типа интеграции, это может быть план обмена СинхронизацияДанныхЧерезУниверсальныйФормат или специализированный план обмена, например, для интеграции с «1С:ЗУП».
Реквизит, отвечающий за эту дату, чаще всего имеет техническое имя ДатаНачалаВыгрузкиДокументов. Понимание этого факта позволяет нам прицельно искать изменения именно в этом объекте метаданных.
Выясним причину изменения и того, кто его совершил, с помощью стандартного Журнала регистрации. Несмотря на то, что штатный журнал не хранит старые и новые значения полей (если не настроено версионирование), он фиксирует сам факт записи объекта.
Для эффективного поиска выполним следующие шаги:
Данные.Изменение.План обмена (например, Синхронизация данных через универсальный формат).Проанализируем полученный список. Если в колонке «Данные» указан конкретный узел обмена, а в колонке «Пользователь» — конкретный сотрудник, мы будем точно знать время и автора правки. Однако, чтобы узнать, какая дата была установлена ранее, этого метода недостаточно.
Если нам необходимо узнать именно предыдущее значение поля ДатаНачалаВыгрузкиДокументов, а история изменений не велась, единственным достоверным источником станут бэкапы базы данных. Рассмотрим алгоритм автоматизированного сравнения, чтобы не разворачивать каждую копию вручную.
Посмотрим на пример логики, которую можно реализовать во внешней обработке для сравнения данных в разных копиях через COM-соединение:
Функция ПолучитьЗначениеДатыИзКопии(ПутьКБазе, ИмяУзла)
// Создаем COM-объект для подключения к архивной копии
V83 = Новый COMОбъект("V83.ComConnector");
Попытка
БазаКопия = V83.Connect("File=""" + ПутьКБазе + """;Usr=""Администратор"";");
УзелОбмена = БазаКопия.ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию(ИмяУзла);
Если Не УзелОбмена.Пустая() Тогда
Возврат УзелОбмена.ДатаНачалаВыгрузкиДокументов;
КонецЕсли;
Исключение
Возврат Неопределено;
КонецПопытки;
КонецФункции
Используя подобный подход, мы можем последовательно перебрать все ежедневные бэкапы за интересующий период и зафиксировать момент, когда дата начала выгрузки изменилась с одной на другую. Это наиболее надежный способ восстановить картину событий.
В «1С:ERP» существует специализированный интерфейс для мониторинга обмена. Перейдем в Администрирование — Синхронизация данных — Настройки синхронизации. Выделим нужную настройку и нажмем кнопку Журнал регистрации.
Проанализируем записи за 10–15 июля. Часто в комментариях к сеансам обмена или в технических сообщениях системы при старте выгрузки фиксируются параметры, с которыми запущен процесс. Если после определенного числа состав данных в обмене резко изменился (стали регистрироваться документы за прошлые года), это косвенно укажет на момент изменения настроек пользователем.
Если ваша база данных работает под управлением MS SQL Server и включена Full (Полная) модель восстановления, у нас есть шанс извлечь данные из лога транзакций (LDF-файла). Рассмотрим этот сложный, но эффективный метод:
UPDATE для таблицы, соответствующей нашему плану обмена. В SQL-базе таблицы планов обмена обычно имеют префикс _Node.Чтобы в будущем не прибегать к анализу SQL-логов и бэкапов, крайне важно настроить подсистему «История изменений» для планов обмена. Рассмотрим, как это сделать:
По умолчанию в ERP планы обмена могут отсутствовать в списке объектов, доступных для версионирования в пользовательском режиме. В этом случае необходимо использовать Расширение или изменить настройки БСП. Разберем по шагам:
ОбъектВерсионирования.Версионировать при записи.Теперь при любом изменении даты начала выгрузки система автоматически создаст запись в регистре СведенияОВерсияхОбъектов, где вы сможете наглядно сравнить две версии настроек и увидеть, что именно ДатаНачалаВыгрузкиДокументов была изменена пользователем «Иванов» с 01.01.2023 на 01.01.2024.
Подведем итог: для решения задачи в текущем моменте (за прошедший период) используйте комбинированный метод — Журнал регистрации для поиска автора и сравнение бэкапов для восстановления значения. На будущее обязательно включите Версионирование для всех критически важных планов обмена, так как это штатный и наиболее удобный инструмент контроля в системе 1С.