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