Имеем справочник со следующей структурой данных и заданными предопределенными элементами:

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

В этом макете первая строка содержит наименования реквизитов ТЧ справочника, а первая колонка – содержимое Стандартного реквизита «Наименование» предопределенных элементов справочника.
Обратите внимание на колонку «ОбязательнаяРоль». Этот реквизит имеет тип «Булево» и чтобы корректно отработала функция «ЗаполнитьЗначенияСвойств()» в этой колонке надо обязательно использовать только «Ложь» или «Истина», а не «0» или «1». Цифры данная функция всегда будет конвертировать в Булево «Ложь».
Далее в Модуле менеджера справочника добавим следующий код:
&НаСервере
Процедура УстановитьПредопределенныеЗначения() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = ПолучитьТекстЗапросаПредопределенныеДанные(Ложь);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Макет = Справочники.ТипыСобытий.ПолучитьМакет("МакетТЧПредопределенныхДанных");
ТЗизМакета = Новый ТаблицаЗначений;
Для НомерКолонки = 1 По Макет.ШиринаТаблицы Цикл
ИмяКолонки = Макет.Область(1, НомерКолонки);
ТЗизМакета.Колонки.Добавить(ИмяКолонки.Текст);
КонецЦикла;
Для НомерСтроки = 2 По Макет.ВысотаТаблицы Цикл
ТекСтрокаТЗ = ТЗизМакета.Добавить();
Для НомерКолонки = 1 По Макет.ШиринаТаблицы Цикл
Ячейка = Макет.Область(НомерСтроки, НомерКолонки);
ТекСтрокаТЗ[НомерКолонки - 1] = Ячейка.Текст;
КонецЦикла;
КонецЦикла;
Для Каждого СтрокаПредДанных Из РезультатЗапроса Цикл
Отбор = Новый Структура("Наименование", СтрокаПредДанных.Наименование);
МассивПредЗначений = ТЗизМакета.НайтиСтроки(Отбор);
Если МассивПредЗначений.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
ЭлементСправочника = СтрокаПредДанных.Ссылка.ПолучитьОбъект();
ЭлементСправочника.Заполнить(МассивПредЗначений);
ЭлементСправочника.Записать();
КонецЦикла;
КонецПроцедуры
Функция ПолучитьТекстЗапросаПредопределенныеДанные(СобытиеПредопределеноИОбработано=Ложь)
ТекстЗапроса = "ВЫБРАТЬ
| ТипыСобытий.Ссылка КАК Ссылка,
| ТипыСобытий.Наименование КАК Наименование
|ИЗ
| Справочник.ТипыСобытий КАК ТипыСобытий
|ГДЕ
| НЕ ТипыСобытий.ПометкаУдаления
| И НЕ ТипыСобытий.ИмяПредопределенныхДанных = """"
| И &НЕ ТипыСобытий.СобытиеПредопределеноИОбработано";
ТекстЗамены = ?(СобытиеПредопределеноИОбработано, "", "НЕ");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&НЕ", ТекстЗамены);
Возврат ТекстЗапроса;
КонецФункции
Процедура «УстановитьПредопределенныеЗначения» находит в справочнике предопределенные элементы, не помеченные на удаление и со снятым флагом «СобытиеПредопределеноИОбработано». Затем, перебирая в цикле строки Макета, заполняет данными из Макета соответствующие реквизиты предопределенных элементов. Для этого используется метод справочника «Заполнить()».
Чтобы этот метод делал именно то, что нам надо, в Модуле объекта справочника добавим следующий код
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ЗначениеЗаполнено(ДанныеЗаполнения) И ТипЗнч(ДанныеЗаполнения) = Тип("Массив") Тогда
СтандартнаяОбработка = Ложь;
ЭтотОбъект.РолиУчастников.Очистить();
Для Каждого СтрокаДанных Из ДанныеЗаполнения Цикл
СтрокаРоли = ЭтотОбъект.РолиУчастников.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРоли, СтрокаДанных);
КонецЦикла;
ЭтотОбъект.СобытиеПредопределеноИОбработано = Истина;
ЭтотОбъект.Показывать = Истина;
КонецЕсли;
КонецПроцедуры
Чтобы заполнение данными происходило до начала работы пользователей, создадим Общий модуль «ОбщийМодульКлиентСервер» и поставим флажки в его свойствах «Сервер» и «Вызов сервера».
Первый параметр указывает, что данных общий модуль будет выполнять на стороне сервера, а второй – что его экспортные процедуры и функции можно вызывать с клиента. Это нам необходимо, так как Модуль приложения конфигурации выполняется на клиенте.

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