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