"Вот, такой замудренный код. Налоговый регистр. Причем, если данные собирать не по операциям, а именно по проводкам документов списания, то все нормально. Только ручные проводки не попадают тогда. Но бухгалтер не хочет совершать лишние колебания руками, чтобы дополнить таблицу вручеую.<br><br><br><br>Процедура Сформировать() <br><br> <br><br> ДокОсн = СоздатьОбъект("Операция");<br><br> ДокОсн.ВыбратьОперации(Дата1, Дата2); <br><br> Д1 = 0; <br><br> <br><br> ТЗ1.ВыбратьСтроки();<br><br> Пока ТЗ1.ПолучитьСтроку() = 1 Цикл<br><br> ТЗ1.УдалитьСтроку();<br><br> КонецЦикла;<br><br> <br><br> Пока ДокОсн.ПолучитьОперацию() = 1 Цикл <br><br> Если ДокОсн.ПометкаУдаления() = 0 Тогда<br><br> // Если ДокОсн.Вид() = "УслугиСтороннихОрганизаций11" Тогда<br><br> // ТЗ.Ст = <br><br> // ДокОсн = Док.ДокументОприходования.ТекущийДокумент();<br><br> <br><br> //ДокОсн.ВыбратьСтроки(); <br><br> а=0;<br><br> б=0;<br><br> в=0;<br><br> г=0;<br><br> д=0;<br><br> е=0;<br><br> ж=0;<br><br> з=0;<br><br> к=0;<br><br> л=0; <br><br> ф=0;<br><br> м=0; <br><br> н=0;<br><br> о=0;<br><br> п=0;<br><br> р=0;<br><br> с=0;<br><br> т=0;<br><br> у=0;<br><br> <br><br> <br><br>ДокОсн.ВыбратьПроводки();<br><br>Пока ДокОсн.ПолучитьПроводку() = 1 Цикл <br><br>Если ДокОсн.Кредит.Счет = СчетПоКоду("10.9") ТОгда <br><br>ТЗ1.НоваяСтрока(); <br><br>ТЗ1.Название = "Акт списания № " +" " +ДокОсн.Документ.НомерДок + " "+ ДокОсн.Кредит.МОЛ +" "+ ДокОсн.ДатаОперации; //+ " " + ДокОсн.НомерДок; <br><br>Если (Лев(ДокОсн.Дебет.Субконто(2), 5) = "Ст254") или (Лев(ДокОсн.Дебет.Субконто(3), 5) = "Ст254") Тогда<br><br> <br><br> // Если ДокОсн.Субконто2.Родитель.Наименование = "Материальные расходы ст.254" Тогда<br><br> // Если ДокОсн.Субконто2.ВидРасходовДляНалоговогоУчета = "Материальные расходы" Тогда<br><br> Если ДокОсн.Дебет.Счет = СчетПоКоду("20.1") Тогда<br><br> а = а + ДокОсн.Сумма; <br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.2") Тогда<br><br> б = б + ДокОсн.Сумма;<br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.3") Тогда<br><br> в = в + ДокОсн.Сумма; <br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.4") Тогда<br><br> г = г + ДокОсн.Сумма; <br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.5") Тогда<br><br> д = д + ДокОсн.Сумма;<br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.6") Тогда<br><br> е = е + ДокОсн.Сумма;<br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("23.1") Тогда<br><br> ж = ж + ДокОсн.Сумма; <br><br> <br><br> //ИначеЕсли ДокОсн.КоррСчет = СчетПоКоду("44.1") Тогда<br><br> // л = л + (ДокОсн.Всего - ДокОсн.НДС);<br><br> // ТЗ.Код = "Стр. 020";<br><br> КонецЕсли;<br><br> ТЗ1.Код = "Стр. 020";<br><br> КонецЕсли; <br><br> <br><br> Если (Лев(ДокОсн.Дебет.Субконто(2), 5) = "Ст264") или (Лев(ДокОсн.Дебет.Субконто(3), 5) = "Ст264") Тогда<br><br> <br><br> // Если ДокОсн.Субконто2.Родитель.Наименование = "Материальные расходы ст.254" Тогда<br><br> // Если ДокОсн.Субконто2.ВидРасходовДляНалоговогоУчета = "Материальные расходы" Тогда<br><br> Если ДокОсн.Дебет.Счет = СчетПоКоду("20.1") Тогда<br><br> м = м + ДокОсн.Сумма; <br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.2") Тогда<br><br> н = н + ДокОсн.Сумма;<br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.3") Тогда<br><br> о = о + ДокОсн.Сумма; <br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("20.4") Тогда<br><br> п = п + ДокОсн.Сумма;<br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("25") Тогда<br><br> т = т + ДокОсн.Сумма; <br><br> ИначеЕсли ДокОсн.Дебет.Счет = СчетПоКоду("26.0") Тогда<br><br> у = у + ДокОсн.Сумма; <br><br> // ИначеЕсли ДокОсн.КоррСчет = СчетПоКоду("44.1") Тогда<br><br> // ф = ф + (ДокОсн.Всего - ДокОсн.НДС); <br><br> //ТЗ.Код = "Стр. 060, 100";<br><br> КонецЕсли;<br><br> ТЗ1.Код = "Стр. 060, 100";<br><br> КонецЕсли; <br><br> <br><br> Если (Лев(ДокОсн.Дебет.Субконто(3), 5) = "Ст254") или (Лев(ДокОсн.Дебет.Субконто(3), 5) = "Ст264") Тогда<br><br> Если ДокОсн.Дебет.Счет = СчетПоКоду("25") Тогда<br><br> т = т + ДокОсн.Сумма;<br><br> КонецЕсли;<br><br> Если ДокОсн.Дебет.Счет = СчетПоКоду("26.0") Тогда<br><br> у = у + ДокОсн.Сумма;<br><br> КонецЕсли;<br><br> КонецЕсли;<br><br> // ТЗ.Расход = ДокОсн.НаименованиеУслуги; <br><br> Если (Лев(ДокОсн.Дебет.Субконто(2), 5) = "Ст254") или (Лев(ДокОсн.Дебет.Субконто(2), 5) = "Ст264") Тогда<br><br> ТЗ1.Ст = ДокОсн.Дебет.Субконто(2); <br><br> ИначеЕсли (Лев(ДокОсн.Дебет.Субконто(3), 5) = "Ст254") или (Лев(ДокОсн.Дебет.Субконто(3), 5) = "Ст264") Тогда<br><br> ТЗ1.Ст = ДокОсн.Дебет.Субконто(3);<br><br> КонецЕсли;<br><br> <br><br> КонецЕсли; <br><br> КонецЦикла; <br><br> <br><br> ТЗ1.М201 = а; <br><br> ТЗ1.М202М = б;<br><br> ТЗ1.М203М = в;<br><br> ТЗ1.М204М = г; ///здесь должна заполняться таблица<br><br> ТЗ1.М205М = д; //через отладчик видно, что заполняется<br><br> ТЗ1.М206М = е; //но при просмотре, данных нет<br><br> ТЗ1.М231М = ж;<br><br> <br><br> <br><br> ТЗ1.П201П = м; <br><br> ТЗ1.П202П = н;<br><br> ТЗ1.П203П = о;<br><br> ТЗ1.П205П = п;<br><br> <br><br> <br><br> ТЗ1.П25П = т;<br><br> ТЗ1.П26П = у;<br><br> КонецЕсли; <br><br> КонецЦикла; <br><br>ТЗ1.Сортировать("Название");<br><br>ТЗ1.ВыбратьСтроки();<br><br>Пока ТЗ1.ПолучитьСтроку() = 1 Цикл<br><br>ТЗ1.Всего = ТЗ1.М201+ТЗ1.М202М+ТЗ1.М203М+ТЗ1.М204М+ ТЗ1.М205М+ТЗ1.М231М+ ТЗ1.М206М+ ТЗ1.П206П+ТЗ1.П205П+ТЗ1.П203П+ТЗ1.П201П +ТЗ1.П202П+ ТЗ1.П231П+ ТЗ1.П25П+ ТЗ1.П26П+ ТЗ1.П44;<br><br> //Если ТЗ.Всего = 0 Тогда<br><br> // ТЗ.УдалитьСтроку(); // здесь должны были строки удаляться, но <br><br> //КонецЕсли; // увы...<br><br> Всего1 = Всего1 + ТЗ1.Всего;<br><br> М2011 = М2011+ТЗ1.М201; <br><br> М2021 = М2021+ТЗ1.М202М; <br><br> М2031 = М2031+ТЗ1.М203М;<br><br> М2041 = М2041+ТЗ1.М204М;<br><br> М2051 = М2051+ТЗ1.М205М;<br><br> М2061 = М2061+ТЗ1.М206М;<br><br> М2311 = М2311+ТЗ1.М231М;<br><br> П2011 = П2011+ТЗ1.П201П;<br><br> П2021 = П2021+ТЗ1.П202П;<br><br> П2031 = П2031+ТЗ1.П203П;<br><br> П2051 = П2051+ТЗ1.П205П;<br><br> П2061 = П2061+ТЗ1.П206П;<br><br> <br><br> П251 = П251+ТЗ1.П25П;<br><br> П261 = П261+ТЗ1.П26П;<br><br> <br><br> КонецЦикла; <br><br><br><br> <br><br>КонецПроцедуры"