Обработка "Анализ объектов для плана обмена"
Предназначена для поиска возможных проблем в распределенной базе данных, когда на узлах возможно появление "битых" ссылок вида "...объект не найден".
Такие ситуации могут возникать, если какой-то узел распределенной системы получает не все данные. При проектировании плана обмена разработчик может для какого-то объекта метаданных установить признак авторегистрации изменений. При этом вариант авторегистрации может быть установлен в "Разрешить" или "Запретить". В последнем случае разработчику необходимо предусмотреть програмный механизм регистрации изменений для конкретного списка узлов получателей. Анализ такого кода не входит в задачи данной обработки. Обработка помогает выявить ситуации, когда какой-то объект имеет определеный уровень регистрации, а данные которые он содержит (или может содержать) при передаче не регистрируются совсем (не участвуют в обмене), либо имеют более сильное ограничение на регистрацию.
Например, разработчик включил в состав плана обмена содержимое какого-то регистра накопления с автоматической регистрацией изменений "Разрешить". Это значит, что все данные этого регистра будут автоматически регистрироваться для передачи на другие узлы распределенной системы. При этом какой-то из регистраторов этого регистра (вид документа) включен в состав плана обмена с маркером "Запретить", а значит, подразумеваются какие-то ограничения на регистрацию изменений. В резузьтате может возникнуть ситуация, когда набор записей РН будет передан в один из узлов, при этом в поле "регистратор" будет "битая" ссылка на отсутствующий в узле документ. То же самое может относиться к реквизитам документов, справочников, и прочих объектов, измерениям регистров и т.д и т.п.
Обработка выводит дерево объектов метаданных, разбивая их на ветки, как они заданы в конфигурации:
- Константы
- Справочники
- Документы
- Планы видов характеристик
- Планы счетов
- Планы видов расчетов
- Регистры сведений
- Регистры накопления
- Регистры расчетов
- Регистры бухгалтерии
- Бизнес-процессы
- Задачи
В каждой ветке содержатся все объекты метаданных, с указанием их правил регистрации (колонка "Способ регистрации"). В колонке "Вид объекта" указывается имя каждого объекта (представление). В колонке "Имя объекта в конфигураторе" указывается имя элемента конфигурации, заданное для каждого такого объекта.
Для каждого из объектов собираются все данные по его зависимостям от других данных (кроме простых типов) и выводятся уровнями ниже. Такие зависимости могут группироваться по источнику их появления (реквизиты, ресурсы, регистраторы, владельцы и т.п.).
Для справочников анализируются владельцы, реквизиты, реквизиты табличных частей
Для документов, ПВХ, Планов счетов, Планов видов расчетов - реквизиты и реквизиты табличных частей
Для регистров - измерения, реквизиты, ресурсы, регистраторы
Для бизнес-процессов - реквизиты, реквизиты табличных частей, задачи
Для задач - - реквизиты и реквизиты табличных частей, реквизиты адресации, регистр сведений адресации
Для каждого типа зависимости анализируются все типы данных, которые входят в такой реквизит, и, для каждого типа таких данных создается отдельная строка, в которой указывается:
Имя колонки | Пояснение |
Вид объекта | Наименование (синоним) объекта метаданных, входящего в описание типов данного элемента |
Способ регистрации | Способ регистрации изменений указанного объекта метаданных (не реквизита, а того типа, который входит в описание типа реквизита) |
Имя объекта в конфигураторе | Имя указанного объекта метаданных, как оно задано в конфигурации |
Вид объекта | "Справочник", "Документ" и т.п. указание на то, какой ветке дерева этот объект МД искать |
Наименование свойства | Название реквизита, измерения, ресурса и т.п. - откуда появилась данная зависимость |
Подсветка
Колока "Способ регистрации" подсвечивается - зеленым, если включена полная регистрация изменений, светло-красным, если включена програмная регистрация изменений.
По окончании заполнения всего дерева производится поиск возможных проблем, описанных в самом начале статьи. На уровне объектов метаданных (второй уровень дерева) выполняется подсветка красным в колонке "Вид объекта" у объектов, у которых возможно появление потенциальных проблем с данными на одном из узлов обмена. Это значит, что какой-то объект зависимости (реквизит, ресурс, регистратор, владелец и т.п.) имеет более низкий уровень регистрации изменений, нежели базовый объект.
На приведенном скриншоте анализировался стандартный план обмена "По организации" конфигурации "Бухгалтерия предприятия 2.0". При этом видно, что регистр накопления "Книга учета доходов (патент)" включена в план обмена с регистрацией без ограничений. В то же время, измерениями данного регистра являютя данные из справочников "Организации" и "Патенты", у которых ограничена область регистрации (реализуется програмными методами). Регистраторами являются документы, которые так же ограничены в миграции по узлам обмена. Обработка отловила данную ситуацию и подвсетила регистр накопления как источник возможных проблем. Для полноты картины необходимо рассматривать програмную реализацию регистрации данных, способ формирования файла обмена (возможно применение правил обмена или специальных обработчиков, которые дополняют мигрируемые данные данными объектов по содержащимся ссылкам, обработчики выгрузки и загрузки данных (возможно там стоят дополнительные фильтры, которые не пропустят ненужные данные) и т.п.
Заключение
Данная обработка всего лишь помогает найти потенциальные источники проблем, но не говорит о том, что такие проблемы однозначно будут. В конце концов все определяется алгоритмами регистрации изменений, алгоритмами фильтрации данных на этапе отправки и получения данных, алгоритмами формирования файлов обмена.