🔥 Горящие вакансии
Все статьи

Предопределенные элементы в 1С

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti

В этой статье речь пойдет о предопределенных элементах, которые можно создать в платформе 1С:Предприятие 8.

Для чего нужны предопределенные элементы

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

Куда можно добавить

Предопределенные элементы могут быть созданы у:

  • справочников;
  • планов счетов;
  • планов видов характеристик;
  • планов видов расчета.

Предопределенные элементы не могут быть у подчиненного справочника, т.е. если справочник имеет хотя бы одного владельца, то в него не могут быть добавлены предопределенные элементы. И наоборот, если справочник, имеет хотя бы один предопределенный элемент — его нельзя сделать подчиненным.

Предопределенные элементы в 1С

Рис. 1. Добавление предопределенных элементов невозможно

Предопределенные элементы в 1С

https://its.1c.ru/db/v8315doc#bookmark:dev:TI000000306

Это очень важная особенность про которую стоит помнить. Как-то у меня на проекте была задача создать подчиненный справочник, а в последствии встала задача добавить в него предопределенные элементы — пришлось все переделывать. Такое поведение платформы не очевидно, но вполне логично, т.к. в нормальных условиях у элемента подчиненного справочника свойство Владелец всегда указано, а при добавлении предопределенного элемента в конфигураторе мы можем лишь указать его имя, код и наименование.

В платформе 8.3 появилась возможность удалять предопределенные элементы в режиме 1С:Предприятие, ровно как и связывать существующие, задав им имена. В связи с этим в было добавлено системное перечисление ОбновлениеПредопределенныхДанных, содержащее следующие значения:

  • Авто;
  • НеОбновлятьАвтоматически – предопределенные элементы не создаются в БД;
  • ОбновлятьАвтоматически – предопределенные элементы будут созданы.

При удалении предопределенного элемента в режиме Конфигуратор, связанная с ним запись в базе данных будет помечена на удаление если для справочника свойство ОбновлениеПредопределенныхДанных = ОбновлятьАвтоматически.

Предопределенные элементы в 1С

Рассмотрим свойство ИмяПредопределенныхДанных. Оно служит для связи записи в базе данных элементом предопределенных данных, заданным в конфигурации. Таким образом имеется возможность связать существующие записи в БД с элементами предопределенных данных, например, следующим кодом:

ЭлементСсылка = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Производитель");
Объект = ЭлементСсылка.ПолучитьОбъект();
Объект.ИмяПредопределенныхДанных = "Производитель";
Объект.Записать();

А также можно «отвязать» элемент в базе данных от предопределенного элемента.

Получить список предопределенных элементов данных можно обратившись к метаданным, следующим образом:

Список = Метаданные.ПланыВидовХарактеристик.СвойстваОбъектов.ПолучитьИменаПредопределенных();

Более подробно можно почитать на ИТС https://its.1c.ru/db/v8315doc#bookmark:dev:TI000000280

Оставить коментарий

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

Отправить резюме

    Я согласен на обработку персональных данных в соответствии
    со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

    Отправить резюме

      Я согласен на обработку персональных данных в соответствии
      со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

      Pекомендовать друга

        Выбрать вакансию
        • Программист 1С
        • Консультант-аналитик 1С
        • Разработчик Android
        • Разработчик iOS
        • Разработчик React JS (middle)
        • Разработчик React Native (middle)
        • UX/UI дизайнер
        • Аналитик
        • QA engineer (тестировщик)
        • Разработчик PHP (senior)
        • Разработчик React JS
        • Разработчик Flutter
        • Разработчик React Native
        • Проекты для команды специалистов 1С
        • Проекты для специалистов 1С
        • Стажер-программист 1С
        • Ведущий консультант Microsoft Dynamics 365 Sales
        • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
        • Консультант Microsoft Dynamics AX на зарубежные проекты
        • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
        • Разработчик PHP (фреймворк Yii2 или Laravel)
        • Разработчик Bitrix
        • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
        • Разработчик PHP
        Я согласен на обработку персональных данных в соответствии
        со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

        Pекомендовать друга

          Выбрать вакансию
          • Программист 1С
          • Консультант-аналитик 1С
          • Разработчик Android
          • Разработчик iOS
          • Разработчик React JS (middle)
          • Разработчик React Native (middle)
          • UX/UI дизайнер
          • Аналитик
          • QA engineer (тестировщик)
          • Разработчик PHP (senior)
          • Разработчик React JS
          • Разработчик Flutter
          • Разработчик React Native
          • Проекты для команды специалистов 1С
          • Проекты для специалистов 1С
          • Стажер-программист 1С
          • Ведущий консультант Microsoft Dynamics 365 Sales
          • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
          • Консультант Microsoft Dynamics AX на зарубежные проекты
          • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
          • Разработчик PHP (фреймворк Yii2 или Laravel)
          • Разработчик Bitrix
          • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
          • Разработчик PHP
          Я согласен на обработку персональных данных в соответствии
          со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

          Спасибо!

          Мы получили ваше резюме. Менеджер свяжется с вами в течение трех дней

          Горящие вакансии