#std784¶
Автогенерированные данные в информационной базе: требования по локализации¶
1.¶
Автогенерируемые строки, которые программно записываются в информационную базу и выводятся пользователям, формируйте не на языке текущего пользователя, а на языке информационной базы.
Это относится, например, к:
- начальному заполнению базы из макета;
- автогенерации комментария к проводке;
- определению значения параметра
ИмяСобытияметода #std498: ЗаписьЖурналаРегистрации.
Иначе один и тот же объект может получить разные строковые данные при работе пользователей с разными языками интерфейса.
Такие места в коде рекомендуется сопровождать комментарием, что строка является данными, а не интерфейсным текстом.
Правильно
КодОсновногоЯзыка это код языка хранения данных в ИБ.
Он выбирается при первом запуске из языков интерфейса конфигурации и сохраняется в константе ОсновнойЯзык.
При использовании БСП код языка хранения данных получайте через ОбщегоНазначения.КодОсновногоЯзыка().
Комментарий = НСтр("ru = 'Комментарий к проводке'", ОбщегоНазначения.КодОсновногоЯзыка()); // строка записывается в ИБ
2.¶
Это же требование действует для обработчиков начального заполнения, которые заполняют строковые реквизиты предопределенных элементов справочников, ПВХ и т.п.
Правильно
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Процедура = "ПользователиСлужебный.ЗаполнитьНаименованиеПредопределенныхГруппПользователей";
КонецПроцедуры
Процедура ЗаполнитьНаименованиеПредопределенныхГруппПользователей() Экспорт
ГруппаПользователей = Справочники.ГруппыПользователей.ВсеПользователи.ПолучитьОбъект();
ГруппаПользователей.Наименование = НСтр("ru='Все пользователи'", КодОсновногоЯзыка);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаПользователей);
КонецПроцедуры
При добавлении новых предопределенных элементов создавайте новый обработчик начального заполнения с указанием версии или дополняйте существующий. См. стандарт #std690: Обработчики обновления информационной базы.
Если используется БСП, не создавайте собственные обработчики начального заполнения.
Первоначальные данные размещайте в процедуре ПриНачальномЗаполненииЭлементов модуля менеджера объекта.
Для объектов, зарегистрированных в ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек, эти процедуры вызываются автоматически.
При добавлении нового или изменении существующего элемента создавайте обработчик обновления перехода на версию и дублируйте изменения в ПриНачальномЗаполненииЭлементов модуля менеджера.
Подробнее: документация к БСП.
Проверки¶
#acc:152 #acc:153 #acc:154 #acc:156 #acc:157 #acc:161 #acc:370 #acc:371 #acc:1385