Автоматическое создание документа Корректировка записей регистров

Версия для печатиPDF-версия

Платформа:

Как программно создать запись документа Корректировка записей регистров если строки документа создаются динамически из программы и в зависимости от выбранного регистра у них разный состав табличной части. Помогите пожалуйста напишите строку добавления строки в документ Корректировка записей по регистру Параметры Амортизации. Заранее благодарю. 

что то типа

Док=Документы.КорректировкаЗаписейРегистров;
Док1=Док.СоздатьДокумент();
Док1.Учреждение=Выборка.Субконто2.Учреждение;
стр=Док1.ТаблицаРегистровСведений.Добавить();
стр.Имя="Параметры амортизации";
ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), стр.Имя, Истина, ЭлементыФормы.ПанельРегистровСведений);   //формируем табличную часть
ПолеРегистра.Данные = "ДокументОбъект.Движения.АмортизацияОС"; 
// не знаю как потом к ней обращаться
стр.Ос=Выборка.Субконто2;
Стр.КБКСчетУчетаЗатрат=Выборка.Субконто2.КБК;
Док1.Записать();
Переписка
Просто ума не приложу как обратиться к строке документа. Еще на форуме спрошу.
Андрей Лихоманов 12 мар в 19:14 
в 1С есть функция такая, я когда то тоже не мог!
Что за функция получения строки документа?

 

Сделала так

Док=Документы.КорректировкаЗаписейРегистров;
Док1=Док.СоздатьДокумент();
Док1.Учреждение=Выборка.Субконто2.Учреждение;
стр=Док1.ТаблицаРегистровСведений.Добавить();
стр=регистрысведений.АмортизацияОС.ПолучитьФормуРедактированияЗаписи(,,);
 
//стр.Имя="Параметры амортизации";
стр.Ос=Выборка.Субконто2;
Стр.КБКСчетУчетаЗатрат=Выборка.Субконто2.КБК;
Док1.Записать();
сообщить(Выборка.Субконто2);
сообщить(Выборка.Субконто2.КБК);
 пропускает, но выдает ошибку Редактирование данных этого периода запрещено. Дата запрета убрана, в чем мб дело?
 

Программно можно так:

НовДок = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
НовДок.Учреждение = пУчреждение;

НовСтрока = НовДок.ТаблицаРегистровСведений.Добавить();
НовСтрока.Имя = "АмортизацияОС";
НовСтрока.Представление = "Параметры амортизации";

НовДок.Движения.АмортизацияОС.Записывать = Истина;

Движение = НовДок.Движения.АмортизацияОС.Добавить();
Движение.Период = ТекущаяДата();
Движение.ОС = пОС;
Движение.КБКСчетУчетаЗатрат = пКБК;
Движение.СчетУчетаЗатрат = пСчет;
Движение.КОСГУ = пКОСГУ;
Движение.Субконто2 = пСубконто2;
Движение.Субконто3 = пСубконто3;
Движение.Субконто4 = пСубконто4;
Движение.СубконтоНУ = пСубконтоНУ;

НовДок.Записать();

ПС. Возможно у вас ругается из-за того, что Дата документа не указана.

Спасибо! Как написать СчетПоКоду("401.20") в 7ке а в 8ке как?

ПланыСчетов.ЕПСБУ.НайтиПоКоду("401.20");

Но если идёт обращение к предопределённому счёту, то лучше обращаться по имени.

Спасибо!