Содержание:
Файлы материала
Краткое описание документа
Во многих типовых решениях есть документ «Перенос данных» (Администрирование -> Переносы данных). Предназначен для внесения начальных данных учета при переходе с другого программного продукта. Так же используется для внесения корректировок и исправлений ошибок учета.
«Перенос данных» в отличии от других документов имеет прямую связь с регистрами. Состав регистров для заполнения подбирается в документе. Далее в табличной части заполняются движения по этим регистрам и при записи формируются проводки в которых регистратором выступает документ «Перенос данных».

Пример программного заполнения
Например в 1С ЗУП 3.1 нужно заполнить данные по регистру сведений «Инструктажи по охране труда» с помощью документа «Перенос данных». Создадим документ и выполним его заполнение следующим образом.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
&НаСервере Процедура ЗаполнитьИнструктажиНаСервере() ИмяРегистра = "ИнструктажиПоОхранеТруда"; // получение существующего документа ДокументОбъект = Объект.ДокументПереносДанных.ПолучитьОбъект(); // или создание нового документа //ДокументОбъект = Документы.ПереносДанных.СоздатьДокумент(); //ДокументОбъект.Дата = ТекущаяДата(); //ДокументОбъект.ПериодРегистрации = Дата(2025,1,1); // получение НабораЗаписей нужного регистра ТаблицаИнструктажи = ДокументОбъект.ТаблицаРегистров.Найти(ИмяРегистра, "Имя"); Если Не ЗначениеЗаполнено(ТаблицаИнструктажи) Тогда ТаблицаИнструктажи = ДокументОбъект.ТаблицаРегистров.Добавить(); ТаблицаИнструктажи.Имя = ИмяРегистра; КонецЕсли; НаборЗаписей = ДокументОбъект.Движения[ТаблицаИнструктажи.Имя]; //НаборЗаписей.Прочитать(); // если нужно дополнить // заполнение НабораЗаписей данными ВыборкаИнструктажи = ВыбратьДанныеКЗаполнениюИнструктажей(); Пока ВыборкаИнструктажи.Следующий() Цикл Запись = НаборЗаписей.Добавить(); Запись.Период = ДокументОбъект.ПериодРегистрации; ЗаполнитьЗначенияСвойств(Запись, ВыборкаИнструктажи); КонецЦикла; // проведение по регистрам Попытка ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); Сообщить("Данные записаны"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры &НаСервереБезКонтекста Функция ВыбратьДанныеКЗаполнениюИнструктажей() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 5 | Сотрудники.Ссылка КАК Сотрудник, | ЗНАЧЕНИЕ(Справочник.ВидыИнструктажейПоОхранеТруда.Вводный) КАК ВидИнструктажа, | Сотрудники.ГоловнаяОрганизация КАК Организация, | ДАТАВРЕМЯ(2030,1,1) КАК СрокДействия |ИЗ | Справочник.Сотрудники КАК Сотрудники"; РезультатЗапроса = Запрос.Выполнить(); Возврат РезультатЗапроса.Выбрать(); КонецФункции |
И получим такой результат:

Обработку с примером можно скачать в начале статьи.