#std556¶
Начальные действия при работе конфигурации¶
1.¶
В конфигурации должен быть механизм, который автоматически:
- определяет первый запуск конфигурации и выполняет первичное заполнение ИБ минимально нужными данными;
- определяет первый запуск нового релиза и выполняет необходимые изменения данных ИБ.
Если в конфигурации используется Библиотека стандартных подсистем, применяйте подсистему Обновление версии ИБ.
Если БСП не используется, соблюдайте правила ниже.
2.¶
Первичное заполнение ИБ можно разделять на:
- обязательное - без него конфигурация не работает;
- необязательное - упрощает старт работы, но не является критичным.
3.¶
После обработки ИБ при первом запуске конфигурации или при первом запуске нового релиза рекомендуется показывать администратору:
- описание конфигурации;
- или описание изменений текущей версии.
4.¶
Ситуации, когда обработка выполнена не полностью, должны контролироваться конфигурацией. Пользователю нужно показывать предупреждение о проблеме. Для подробного протокола выполненных операций и ошибок используйте журнал регистрации.
5.¶
Если конфигурация работает с распределенной информационной базой (РИБ), обновление данных в подчиненных узлах должно:
- выполняться после загрузки уже обновленных данных из главного узла;
- исключать повторную обработку тех же данных и повторное создание новых данных.
Повторная обработка ИБ должна быть корректной.
Иначе:
- при безусловном создании новых данных в подчиненном узле они будут многократно создаваться и размножаться по всем узлам при обмене;
- при безусловном изменении данных в подчиненном узле они будут зарегистрированы к выгрузке в главный узел, что даст лишнюю нагрузку на канал связи.
Неправильно
Правильно
НаименованиеПрофиля = НСтр("ru = 'Бухгалтер'");
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ИСТИНА
|ИЗ
| Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа
|ГДЕ
| ПрофилиГруппДоступа.Наименование = &Наименование И
| ПрофилиГруппДоступа.Предустановленный = ИСТИНА");
Запрос.УстановитьПараметр("Наименование", НаименованиеПрофиля);
// Если элемента нет, только тогда нужно создать новый.
Если Запрос.Выполнить().Пустой() Тогда
ПрофильОбъект = Справочники.ПрофилиГруппДоступа.СоздатьЭлемент();
ПрофильОбъект.Наименование = НаименованиеПрофиля;
ПрофильОбъект.Предустановленный = Истина;
ПрофильОбъект.Записать();
КонецЕсли;