В начало

Программное добавление записи в документ

 

            Есть документ «ОперацияБух» в конфигурации 1С:ERP Управление предприятием 2.0 (2.0.10.166), в который нужно добавить программно запись.

Рис. Документ «ОперацияБух» (Операция (регламентированный учет))

         Сложность и ошибки связаны с тем, что у документа «ОперацияБух» табличная часть связана с регистром бухгалтерии «Хозрасчетный», который в свою очередь представляет собой журнал проводок. И получается, что надо вколачивать записи не через добавление строк в табличную часть, а непосредственно делать записи в регистре бухгалтерии, причем в качестве регистратора указывать документ «ОперацияБух».

Рис. Регистр бухгалтерии «Хозрасчетный» (Журнал проводок (регламентированный учет))

         Заполнять документ «ОперацияБух» удобно через внешнюю обработку, форма которой показана ниже.

Рис. Форма внешней обработки

         Далее приведен код модуля формы внешней обработки.

Листинг. Процедуру в модуле формы внешней обработки

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

         ПолеДатаДокумента = Дата("20201121");

         ПолеНомерДокумента = "МСЦУ-000001";

         ПолеОрганизация = Справочники.Организации.НайтиПоНаименованию("Металл-Сервис", Истина);

         ПолеСодержание = "Закрытие сч.012 (перевод остатков)";

КонецПроцедуры

 

Процедура ДобавитьЗаписьНажатие(Элемент)

//===========================   

//Ищем конкретный документ

//и заполняем его шапку

//===========================

СсылкаНаДок = Документы.ОперацияБух.НайтиПоНомеру(ПолеНомерДокумента, ПолеДатаДокумента);

Док = СсылкаНаДок.ПолучитьОбъект();

Док.Организация = ПолеОрганизация;

Док.Содержание = ПолеСодержание;

 

//===============================

//Подготавливаем набор записей

//===============================

НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Регистратор.Значение = СсылкаНаДок;

НаборЗаписей.Очистить();

НаборЗаписей.Записать(Истина);

 

//=========================

//Добавляем новую запись

//=========================

НоваяЗапись = НаборЗаписей.Добавить();

НоваяЗапись.Период = ПолеДатаДокумента;

НоваяЗапись.Регистратор = Док;

НоваяЗапись.Организация = ПолеОрганизация;

НоваяЗапись.Содержание  = ПолеСодержание;

НоваяЗапись.Сумма = 555;

НоваяЗапись.КоличествоКт = 1;

НоваяЗапись.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("012");

НоваяЗапись.ПодразделениеКт = Справочники.СтруктураПредприятия.НайтиПоНаименованию("Металл-Сервис", Истина);

 

НоваяЗапись.СубконтоКт.ОсновныеСредства = Справочники.ОбъектыЭксплуатации.НайтиПоНаименованию("Автопогрузчик АМКОДОР 211", Истина);

НоваяЗапись.СубконтоКт.ОбособленныеПодразделения = Справочники.Организации.НайтиПоНаименованию("Металл-Сервис", Истина);

НоваяЗапись.СубконтоКт.РаботникиОрганизаций = Справочники.ФизическиеЛица.НайтиПоНаименованию("Иванов ИИ", Истина);

 

НаборЗаписей.Записать(Истина);

КонецПроцедуры

 

Рис. Документ «ОперацияБух» с программно-добавленной записью