Заполнение табличной части (ТЧ) предопределенных данных справочника
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Имеем справочник со следующей структурой данных и заданными предопределенными элементами:

Для начала добавим в справочник Макет «МакетТЧПредопределенныхДанных»:

В этом макете первая строка содержит наименования реквизитов ТЧ справочника, а первая колонка – содержимое Стандартного реквизита «Наименование» предопределенных элементов справочника.
Обратите внимание на колонку «ОбязательнаяРоль». Этот реквизит имеет тип «Булево» и чтобы корректно отработала функция «ЗаполнитьЗначенияСвойств()» в этой колонке надо обязательно использовать только «Ложь» или «Истина», а не «0» или «1». Цифры данная функция всегда будет конвертировать в Булево «Ложь».
Далее в Модуле менеджера справочника добавим следующий код:
Процедура «УстановитьПредопределенныеЗначения» находит в справочнике предопределенные элементы, не помеченные на удаление и со снятым флагом «СобытиеПредопределеноИОбработано». Затем, перебирая в цикле строки Макета, заполняет данными из Макета соответствующие реквизиты предопределенных элементов. Для этого используется метод справочника «Заполнить()».
Чтобы этот метод делал именно то, что нам надо, в Модуле объекта справочника добавим следующий код
Чтобы заполнение данными происходило до начала работы пользователей, создадим Общий модуль «ОбщийМодульКлиентСервер» и поставим флажки в его свойствах «Сервер» и «Вызов сервера».
Первый параметр указывает, что данных общий модуль будет выполнять на стороне сервера, а второй – что его экспортные процедуры и функции можно вызывать с клиента. Это нам необходимо, так как Модуль приложения конфигурации выполняется на клиенте.

В самом общем модуле добавим следующий код:
А теперь в Модуле приложения конфигурации напишем обработчик события «ПриНачалеРаботыСистемы»:
Таким образом при запуске приложения будут сначала заполнены все предопределенные значения предопределенных элементов. А в формах справочника уже можно реализовать запрет на редактирование. Но это уже тема для отдельного разговора)
Для реализации обновления предопределенных значений (например, при обновлении конфигурации), в Модуле менеджера справочника добавим процедуру «ОбновитьПредопределенныеЗначения()»:
Подходит для любых конфигураций. Проверено на платформе версии 8.3.21.1644.
Вступайте в нашу телеграмм-группу Инфостарт