1С:Предприятие 8.2 /
Разработчикам /
Создание и изменение объектов метаданных
Использование предопределенных элементов
Действует для версии платформы 1С:Предприятие 8.3.3 и выше без режима совместимости с версией 8.2
1.1. В справочниках, планах счетов, планах видов характеристик и планах видов расчета имеется возможность создавать предопределенные элементы автоматически или программно.
1.2. В большинстве случаев, предопределенные элементы рекомендуется создавать автоматически, поскольку они постоянно нужны и требуется упростить обращение к этим элементам из кода.
Например, предопределенная страна Россия в справочнике Страны мира, предопределенные профиль групп доступа Администратор и т.п.
Для этого
- в свойстве ОбновлениеПредопределенныхДанных справочника, плана счетов , плана видов характеристик или плана видов расчета должно быть установлено значение Авто (по умолчанию), а также не следует допускать программных вызовов метода УстановитьОбновлениеПредопределенныхДанных этих объектов для переключения этого режима.
- запретить удаление предопределенных элементов пользователями, выключив во всех ролях следующие права (по умолчанию выключены):
- ИнтерактивноеУдалениеПредопределенныхДанных
- ИнтерактивнаяПометкаУдаленияПредопределенныхДанных
- ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных
- ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных
1.3. Исключение составляют дочерние узлы РИБ, в котором предопределенные элементы автоматически не создаются (и не обновляются при изменении в метаданных), а должны быть переданы из главного узла вместе с изменениями конфигурации.
При этом:
а) конфигурация должна обеспечивать загрузку сообщения обмена в подчиненный узел РИБ до выполнения другого прикладного кода, который обращается к получаемым из главного узла предопределенным элементам;
б) в прикладной логике загрузки данных из главного узла (обработчик события ПриПолученииДанныхОтГлавного, правила регистрации объектов) следует избегать обращений к предопределенным элементам, поскольку нет гарантии, что они уже были загружены из сообщения обмена;
в) код обработчиков обновления ИБ, который обрабатывает предопределенные элементы, не должен выполняться в подчиненных узлах РИБ:
Если ПланыОбмена.ГлавныйУзел() = Неопределенно Тогда // заполняем предопределенные элементы // ... КонецЕсли;
При использовании в конфигурации подсистемы "Обмен данными" Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше требования (а) и (б) снимаются.
1.4. Для таблиц с предопределенными элементами, которые не входят в состав плана обмена РИБ (и на которые не ссылаются другие таблицы, входящие в состав плана обмена РИБ) рекомендуется устанавливать свойство ОбновлениеПредопределенныхДанных в значение ОбновлятьАвтоматически, а также при первом запуске подчиненного узла РИБ устанавливать автоматическое обновление в данных с помощью вызова:
Справочники.<ИмяСправочника>.УстановитьОбновлениеПредопределенныхДанных(ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически);
2. В некоторых случаях, предопределенные элементы не требуется создавать автоматически, если их наличие зависит от какого-либо условия: включенной функциональной опции, режима работы программы и т.п.
Например, те или иные предопределенные виды расчетов в плане видов расчета Начисления зависят от значений функциональных опций ИспользоватьУчетВремениСотрудниковВЧасах, ИспользоватьСдельныйЗаработок и др.
Для этого
- в свойстве ОбновлениеПредопределенныхДанных справочника, плана счетов, плана видов характеристик или плана видов расчета нужно установить в значение "Не обновлять автоматически"
- предусмотреть код создания (и пометки недействительным) предопределенного элемента в зависимости от бизнес-логики, например:
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетВремениСотрудниковВЧасах") Тогда НачислениеОбъект = ПланыВидовРасчета.Начисления.СоздатьВидРасчета(); НачислениеОбъект.ИмяПредопределенныхДанных = "ОкладПоЧасам"; // ... НачислениеОбъект.Записать(); КонецЕсли;
- учитывать в прикладном коде отсутствие предопределенных элементов в ИБ. В противном случае, при обращении к несуществующему предопределенному элементу из кода или текста запроса будет вызвано исключение:
... = ПланВидовРасчета.Начисления.ОкладПоЧасам; ... = ПредопределенноеЗначение("ПланВидовРасчета.Начисления.ОкладПоЧасам");
При использовании в конфигурации Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше рекомендуется использовать функцию ПредопределенныйЭлемент общего модуля ОбщегоНазначенияКлиентСервер, которая возвращает Неопределено для несуществующих в ИБ предопределенных элементов:
... = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("ПланВидовРасчета.Начисления.ОкладПоЧасам");
Курс "Бухгалтерский учет + 1С:Бухгалтерия 8.2 для начинающих"
Курсы программирования 1С:Предприятие 8.2
Другие материалы по теме:
элементы, буфер обмена, копировать, код, обмен, план, элемент, конфигурирование, справочник., начисления, расчет, конфигурации, счет
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Создание и изменение объектов метаданных
Другие материалы по теме:
Общесистемные механизмы и принципы
Нас находят: ИмяПредопределенныхДанных, предопределенные элементы справочника 1с 8 2, предопределенные элементы плана счетов 1с 8 2, запись предопределенные элементы 1С 8 3, как обратится к предопределенному элементу справочника, 1с 8 предопределенные элементы справочника, предопределенные элементы 1с, 1с предопределенные элементы справочника, 1с 8 3 ПредопределенноеЗначение, Что такое предопределенные элементы в 1с
Мы на Facebook