[ Вопрос дня ] Какими способами можно организовать выгрузку предопределенных данных в распределенной информационной базе?

Доброго дня, коллеги!

Механизм предопределенных данных, в том числе и в распределенной информационной базе, рассматривается в рамках курса 1С:Программист — Быстрый старт в профессию!. И хотя данный курс является курсом начального уровня, вопросы от слушателей встречаются достаточно специфичные и сложные, предусматривающие вариативность в решении.

Вопрос

Возникла задача необычного характера. Конфигурация (не на БСП), распределенная база. Обмен осуществляется только по ряду справочников. Грубо говоря, главная база – это общие каталоги нормативной информации. Только в ней можно создавать новые элементы у части справочников. К примеру, справочник номенклатура можно редактировать только в главной базе. А справочник клиенты – могут редактировать в любых периферийных базах. Из главной базы данные только выгружаются в периферию. Столкнулись с интересным эффектом, так как не все данные участвуют в обмене, то на них не создаются предопределенные данные. А хотелось бы. На ум приходит только выгрузка списка предопределенных значений в сообщение обмена с именем предопределенных данных и ссылкой и обработка при загрузке. Как можно решить эту задачу по-другому?

Ответ

Добрый день! Можно для определенных таблиц информационной базы установить обновление предопределенных данных в периферийном узле РИБ. Для этого можно создать обработку или при начале работы системы выполнить вот такой код:

Если ТипЗнч(ПланыОбмена.ГлавныйУзел()) = Тип("ПланОбменаСсылка.ПланОбмена1") И РольДоступна("ПолныеПрава") Тогда
    Справочники.Справочник1.УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически);  
КонецЕсли;

Здесь мы проверяем, что это действительно периферийный узел нужного нам плана обмена, а также у нас хватает прав, в этом случае включаем автоматическое обновление предопределенных данных в нужных справочниках, которыми не обмениваемся с главным узлом.

Учтите, что создание в информационной базе данных, связанных с предопределенными, выполняется при первом обращении к таблице с данными объекта конфигурации. Поэтому может получиться, что даже после выполнения данного кода предопределенные элементы в справочнике не появились. Тогда нужно выполнить реструктуризацию информационной базы при помощи конфигуратора.

Есть еще вариант:

  • Включить автоматическое обновление предопределенных данных на уровне информационной базы (УстановитьАвтоматическоеОбновлениеПредопределенныхДанныхИнформационнойБазы).
  • В периферийных узлах для объектов, которые участвуют в обмене, выключить автоматическое обновление предопределенных данных.
Это пример разобранного вопроса из Мастер-группы курса
1С:Программист — Быстрый старт в профессию!

Описание курса и примеры видео

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.