Процедура Сформировать() База = СоздатьОбъект("XBase"); Док = СоздатьОбъект("Документ.ПриходныйОрдер"); Опер = СоздатьОбъект("Операция"); База.ОткрытьФайл("C:\Док222.dbf"); База.Первая(); Для н=1 По База.КоличествоЗаписей() Цикл База.Перейти(н); Если Док.НайтиПоНомеру(База.NomerDok) = 0 Тогда Док.Новый(); Док.НомерДок = База.NomerDok; Док.ДатаДок = База.DataDok; Док.Записать(); КонецЕсли; Если Опер.НайтиОперацию(Док) = 1 Тогда Опер.НоваяПроводка(); Опер.Дебет.Счет = СчетПоКоду(База.ShDt); Опер.Кредит.Счет = СчетПоКоду(База.ShKt); Опер.Сумма = База.SummaOp; Опер.Дебет.представлениеСубконто(1)= База.SubkontoD1;???? Опер.Записать(); КонецЕсли; КонецЦикла; База.ЗакрытьФайл(); КонецПроцедуры
//заполнение атрибутов операции Операция.СуммаОперации = Итог("Сумма"); Операция.Содержание = "Поступление материалов"; Операция.Журнал = "МТ"; //доп. реквизит операции //для каждой строки документа сделаем проводку ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ПривязыватьСтроку(1); //проводки будут содержать номер строки документа //создание проводки и заполнение атрибутов проводки Операция.НоваяПроводка(); Операция.Дебет.Счет = СчетПоКоду("10.1"); Операция.Дебет.Склады = Склад; //1-й вариант обращения к субконто Операция.Дебет.Субконто(ВидыСубконто.Материалы,Материал); //2-й вариант Операция.Количество = Количество; Операция.Кредит.Счет = СчетПоКоду("51"); Операция.Кредит.Субконто(1,РасчетныйСчет); //3-й вариант Операция.Сумма = Сумма; //у нас счет 10.1 валютный, поэтому Операция.ВалСумма = Сумма*Курс; Операция.Валюта = Валюта; Операция.Филиал = Филиал; //разделитель учета (доп. реквизит проводки) КонецЦикла; Операция.Записать();