Процедура Сформировать() Сч =0; Док = СоздатьОбъект("Документ"); Оп = СоздатьОбъект("Операция"); ТабПеч = СоздатьОбъект("Таблица"); ТабПеч.ИсходнаяТаблица("Таблица"); ТабПрих = СоздатьОбъект("ТаблицаЗначений"); ТабПрих.НоваяКолонка("КтСчета","Счет.Основной"); ТабПрих.НоваяКолонка("ДтСчета","Счет.Основной"); ТабПрих.НоваяКолонка("Документ","Документ"); ТабПрих.НоваяКолонка("Контрагент","Строка"); ТабПрих.НоваяКолонка("Тара","Число",12,3); ТабПрих.НоваяКолонка("Сумма","Число",12,3); ТабПрих_ = СоздатьОбъект("ТаблицаЗначений"); ТабПрих_.НоваяКолонка("Документ","Документ"); ТабПрих_.НоваяКолонка("Контрагент","Строка"); ТабПрих_.НоваяКолонка("Товар","Число",12,3); ТабПрих_.НоваяКолонка("Наценка","Число",12,3); ТабПрих_.НоваяКолонка("Тара","Число",12,3); ТабПрих_.НоваяКолонка("Издержки","Число",12,3); ТабРасх = СоздатьОбъект("ТаблицаЗначений"); ТабРасх.НоваяКолонка("КтСчета","Счет.Основной"); ТабРасх.НоваяКолонка("ДтСчета","Счет.Основной"); ТабРасх.НоваяКолонка("Документ","Документ"); ТабРасх.НоваяКолонка("Контрагент","Строка"); ТабРасх.НоваяКолонка("Сумма","Число",12,3); ТабРасх_ = СоздатьОбъект("ТаблицаЗначений"); ТабРасх_.НоваяКолонка("Документ","Документ"); ТабРасх_.НоваяКолонка("Контрагент","Строка"); ТабРасх_.НоваяКолонка("Товар","Число",12,3); ТабРасх_.НоваяКолонка("Наценка","Число",12,3); ТабРасх_.НоваяКолонка("Тара","Число",12,3); Сч41_2 = СчетПоКоду("41.2"); Сч41_3 = СчетПоКоду("41.3"); Сч42 = СчетПоКоду("42"); Сч44_1_2 = СчетПоКоду("44.1.2"); Сч50_1 = СчетПоКоду("50.1"); Сч60_1 = СчетПоКоду("60.1"); Сч90_1_2 = СчетПоКоду("90.1.2"); Сч70 = СчетПоКоду("70"); БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); БухИт.ВключатьСубСчета(1); БухИт.ИспользоватьСубконто("МестаХранения",МестоХранения); НачСдТовар = 0; НачСдТара = 0; КонСдТовар = 0; ОстатокПоКассеН = 0;// ОстатокПоКассеК = 0;// БухИт.ВыполнитьЗапрос(НачПериод, КонПериод,"50.1",, , 1, "Период", "СВ");
ОстатокПоКассеН = БухИт.СНД(); ОстатокПоКассеК = БухИт.СКД(); БухИт.ВыполнитьЗапрос(НачПериод, КонПериод,"41.2","60.1,90.1.2,42,41.2", , 1, "Период", "СВ"); // БухС = СоздатьОбъект("БухгалтерскиеИтоги"); БухС.Рассчитать(НачПериод,НачПериод); НачСдТовар = БухС.СНДРС("41.2",1,,,3,МестоХранения,2)- БухС.СНКРС("41.2",1,,,3,МестоХранения,2)+ОстатокПоКассеН; //НачСдТовар = БухС.СНДРС("41.2",1,,,3,МестоХранения,2) + ОстатокПоКассеН; НачСдТара = БухС.СНДРС("41.3",1,,,3,МестоХранения,2);; БухИт.ИспользоватьСубконто("МестаХранения",МестоХранения); БухИт.ВыполнитьЗапрос(НачПериод, КонПериод,"41.2,41.3",, , 1, "Операция", "СВ");
БухИт.ВыбратьПериоды(); // Приходная часть товарного отчета ТабПеч.ВывестиСекцию("Шапка"); ТабПеч.ВывестиСекцию("ШапкаПрихода"); Пока БухИт.ПолучитьПериод() = 1 Цикл Дт = БухИт.ВыбранаПоДт(); Кт = БухИт.ВыбранаПоКт(); Если Дт=0 Тогда Продолжить; КонецЕсли; Опер = БухИт.Операция; Док.НайтиДокумент(Опер.Документ); //Сообщить(Строка(Док.Вид())+" "+Строка(Док.НомерДок)); Оп.ВыбратьОперацииСПроводками(Опер.Документ,Опер.Документ); Пока Оп.ПолучитьПроводку()=1 Цикл ТабПрих.НоваяСтрока(); ТабПрих.КтСчета = Оп.Кредит.Счет; ТабПрих.ДтСчета = Оп.Дебет.Счет; Если Оп.Кредит.Счет = Сч60_1 Тогда ТабПрих.Контрагент = СокрЛП(Строка(Оп.Кредит.Субконто(1))); Иначе Попытка ТабПрих.Контрагент = СокрЛП(Строка(Док.Контрагент)); Исключение КонецПопытки; КонецЕсли; Если Док.Вид() = "ПеремещениеТоваровСык" Тогда Если Оп.Дебет.Субконто(2) = МестоХранения Тогда ТабПрих.ДтСчета = Оп.Дебет.Счет; ТабПрих.КтСчета = Сч60_1; ТабПрих.Контрагент = СокрЛП(Строка(Оп.Кредит.Субконто(2))); КонецЕсли; КонецЕсли; ТабПрих.Сумма = Оп.Сумма; КонецЦикла; КонецЦикла; //ТабПрих.Свернуть("КтСчета,ДтСчета,Контрагент","Сумма"); //ТабПрих.Сортировать("+Контрагент"); ТабПрих.ВыбратьСтроки(); Сч = 0; Пока ТабПрих.ПолучитьСтроку() = 1 Цикл Если ТабПрих.Контрагент = """" Тогда Продолжить; КонецЕсли; НомСтр = 0; НомКол = 0; Если ТабПрих_.НайтиЗначение(ТабПрих.Контрагент,НомСтр,НомКол) = 0 Тогда ТабПрих_.НоваяСтрока(); ТабПрих_.Контрагент = ТабПрих.Контрагент; Иначе ТабПрих_.ПолучитьСтрокуПоНомеру(НомСтр); КонецЕсли; Если ТабПрих.КтСчета = Сч60_1 Тогда Если ТабПрих.ДтСчета = Сч41_2 Тогда ТабПрих_.Товар = ТабПрих.Сумма; ИначеЕсли ТабПрих.ДтСчета = Сч41_3 Тогда ТабПрих_.Тара = ТабПрих.Сумма; ИначеЕсли ТабПрих.ДтСчета = Сч44_1_2 Тогда ТабПрих_.Издержки = ТабПрих.Сумма; КонецЕсли; ИначеЕсли ТабПрих.КтСчета = Сч42 Тогда ТабПрих_.Наценка = ТабПрих.Сумма; ИначеЕсли ТабПрих.КтСчета = Сч41_3 Тогда ТабПрих_.Тара = ТабПрих.Сумма; КонецЕсли; Сч=Сч+1; ТабПеч.ВывестиСекцию("СтрокаПриход"); КонецЦикла; ТабПеч.ВывестиСекцию("ИтогоПриход");
// Расходная часть товарного отчета
БухИт.ВыбратьПериоды(); Пока БухИт.ПолучитьПериод() = 1 Цикл Дт = БухИт.ВыбранаПоДт(); Кт = БухИт.ВыбранаПоКт(); Если Кт=0 Тогда Продолжить; КонецЕсли; Опер = БухИт.Операция; Док.НайтиДокумент(Опер.Документ); Оп.ВыбратьОперацииСПроводками(Опер.Документ,Опер.Документ); Пока Оп.ПолучитьПроводку()=1 Цикл Если Оп.Дебет.Субконто(2) = МестоХранения Тогда Продолжить; КонецЕсли; ТабРасх.НоваяСтрока(); ТабРасх.КтСчета = Оп.Кредит.Счет; ТабРасх.ДтСчета = Оп.Дебет.Счет; Если Оп.Дебет.Счет = Сч60_1 Тогда ТабРасх.Контрагент = СокрЛП(Строка(Оп.Дебет.Субконто(1))); ИначеЕсли Оп.Дебет.Счет = Сч42 Тогда Попытка ТабРасх.Контрагент = СокрЛП(Строка(Док.Контрагент)); Исключение КонецПопытки; ИначеЕсли Оп.Дебет.Счет = Сч41_2 Тогда Если Док.Вид() = "СписаниеТоваров" Тогда ТабРасх.Контрагент = "Списание"; Иначе ТабРасх.Контрагент = СокрЛП(Строка(Док.СкладПолучатель)); КонецЕсли; ИначеЕсли Оп.Дебет.Счет = Сч41_3 Тогда ТабРасх.Контрагент = СокрЛП(Строка(Док.СкладПолучатель)); ИначеЕсли Оп.Дебет.Счет = Сч50_1 Тогда ТабРасх.Контрагент = "Сдача выручки"; ИначеЕсли Оп.Дебет.Счет = Сч70 Тогда ТабРасх.Контрагент = "Выдача зарплаты"; Иначе Попытка ТабРасх.Контрагент = СокрЛП(Строка(Док.Контрагент)); Исключение КонецПопытки; КонецЕсли; ТабРасх.Сумма = Оп.Сумма; КонецЦикла; КонецЦикла; //ТабРасх.Свернуть("ДтСчета,КтСчета,Контрагент","Сумма"); //ТабРасх.Сортировать("+Контрагент"); БухК = СоздатьОбъект("БухгалтерскиеИтоги"); БухК.ИспользоватьСубконто("ДвиженияДенежныхСредств"); БухК.ИспользоватьСубконто("МестаХранения",МестоХранения); БухК.ВыполнитьЗапрос(НачПериод, КонПериод,"50.1",, , 1, "Период", "СВ"); БухК.ВыбратьСубконто(); Пока БухК.ПолучитьСубконто() = 1 Цикл Если БухК.КО() > 0 Тогда ТабРасх.НоваяСтрока(); ТабРасх.ДтСчета = Сч90_1_2; ТабРасх.КтСчета = Сч41_2; ТабРасх.Контрагент = СокрЛП(Строка(БухК.Субконто())); ТабРасх.Сумма = Число(БухК.КО()); КонецЕсли; КонецЦикла; ТабРасх.ВыбратьСтроки(); ТабПеч.ВывестиСекцию("ШапкаРасхода"); Сч=0; Пока ТабРасх.ПолучитьСтроку() = 1 Цикл Если ТабРасх.Контрагент = """" Тогда Продолжить; КонецЕсли; НомСтр = 0; НомКол = 0; Если ТабРасх_.НайтиЗначение(ТабРасх.Контрагент,НомСтр,НомКол) = 0 Тогда ТабРасх_.НоваяСтрока(); ТабРасх_.Контрагент = ТабРасх.Контрагент; Иначе ТабРасх_.ПолучитьСтрокуПоНомеру(НомСтр); КонецЕсли; Если ТабРасх.КтСчета = Сч41_2 Тогда Если ТабРасх.ДтСчета = Сч60_1 Тогда ТабРасх_.Товар = ТабРасх.Сумма; ИначеЕсли ТабРасх.ДтСчета = Сч42 Тогда ТабРасх_.Наценка = ТабРасх.Сумма; ИначеЕсли ТабРасх.ДтСчета = Сч70 Тогда ТабРасх_.Товар = ТабРасх.Сумма; ИначеЕсли ТабРасх.ДтСчета = Сч90_1_2 Тогда ТабРасх_.Товар = ТабРасх.Сумма; //ТабРасх_.Товар = КассаКО; ИначеЕсли (ТабРасх.ДтСчета = Сч41_2) Тогда ТабРасх_.Товар = ТабРасх.Сумма; Если (ТабРасх.ДтСчета = Сч41_2) и (ПустоеЗначение(МестоХранения)=1) Тогда //23.05.2003 для всей организации перемещение не учитываем ТабРасх_.УдалитьСтроку(); КонецЕсли; ИначеЕсли ТабРасх.ДтСчета = Сч50_1 Тогда ТабРасх_.Товар = ТабРасх.Сумма; КонецЕсли; ИначеЕсли ТабРасх.КтСчета = Сч41_3 Тогда Если ТабРасх.ДтСчета = Сч60_1 Тогда ТабРасх_.Тара = ТабРасх.Сумма; ИначеЕсли ТабРасх.ДтСчета = Сч42 Тогда ТабРасх_.Наценка = ТабРасх.Сумма; ИначеЕсли (ТабРасх.ДтСчета) = Сч41_3 Тогда ТабРасх_.Тара = ТабРасх.Сумма; Если (ТабРасх.ДтСчета = Сч41_3) и (ПустоеЗначение(МестоХранения)=1) Тогда //23.05.2003 для всей организации перемещение не учитываем ТабРасх_.УдалитьСтроку(); КонецЕсли; КонецЕсли; КонецЕсли; Сч = Сч+1; ТабПеч.ВывестиСекцию("СтрокаРасход"); КонецЦикла; ТабПеч.ВывестиСекцию("ИтогоРасход"); //////////////////////////// //ТабПрих_.ВыбратьСтроки(); //Пока ТабПрих_.ПолучитьСтроку() = 1 Цикл // Сч=Сч+1; // ТабПеч.ВывестиСекцию("СтрокаПриход"); //КонецЦикла; //ТабПеч.ВывестиСекцию("ИтогоПриход"); //ТабПеч.ВывестиСекцию("ШапкаРасхода"); //ТабРасх_.ВыбратьСтроки(); //Сч=0; //Пока ТабРасх_.ПолучитьСтроку() = 1 Цикл // Сч = Сч+1; // ТабПеч.ВывестиСекцию("СтрокаРасход"); //КонецЦикла; //ТабПеч.ВывестиСекцию("ИтогоРасход"); ТабПеч.ВывестиСекцию("КонОстаток"); ТабПеч.ВывестиСекцию("Подвал"); //ТабПеч.Защита(1); ТабПеч.Опции(0,,,,,,,); ТабПеч.Показать("Товарный отчет " + Строка(НачПериод) + " - " + Строка(КонПериод)); КонецПроцедуры
// преодпределенные процедуры Процедура ПриОткрытии() НачПериод = НачНедели(РабочаяДата()); КонПериод = КонНедели(РабочаяДата()); МестоХранения = константа.ОсновнойСклад; КонецПроцедуры
|