Процедура Печать() Если (ПустоеЗначение(ДатаНач)=1) или (ПустоеЗначение(ДатаКон)=1) Тогда Предупреждение("Не задан период отчета"); Возврат; КонецЕсли; Заг="За период с "+ДатаНач+" по "+ДатаКон; Таб=СоздатьОбъект("Таблица"); Таб.ВывестиСекцию("Шапка"); Док=СоздатьОбъект("Документ"); Док.ВыбратьДокументы(ДатаНач,ДатаКон); ИтогоПриход=0; ИтогоРасход=0; Чеков=0; //1C-ovec.ru Нужно выводить документы по Номеру, хотя лучше для этих целей использовать Запрос ТЗврем = СоздатьОбъект("ТаблицаЗначений"); ТЗврем.НоваяКолонка("Док"); ТЗврем.НоваяКолонка("Дата"); ТЗврем.НоваяКолонка("Номер"); ТЗврем.НоваяКолонка("Приход"); ТЗврем.НоваяКолонка("Расход"); ТЗврем.НоваяКолонка("Чеков"); //Выборка документов Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Проведен()=0 Тогда Продолжить; ИначеЕсли (Док.Вид()="ПриходныйОрдерТБ") и (флПКО=1) Тогда Приход=Док.Сумма; Расход=0; ИначеЕсли (Док.Вид()="БезналичнаяОплата") и (флБН=1) Тогда Приход=Док.Сумма; Расход=0; ИначеЕсли (Док.Вид()="РасходныйОрдерТБ") и (флРКО=1) Тогда Приход=0; Расход=Док.Сумма; ИначеЕсли Док.Вид()="Чек" Тогда Если (Док.Тип=1) и (флЧекиП=1) Тогда Приход=Док.Сумма; Расход=0; Чеков=Чеков+1; ИначеЕсли (Док.Тип=2) и (флЧекиВ=1) Тогда Приход=0; Расход=Док.Сумма; Чеков=Чеков+1; Иначе Продолжить; КонецЕсли; Иначе Продолжить; КонецЕсли; //Добавим в ТЗ строку НовСТР=ТЗврем.НоваяСтрока(); ТЗврем.Док = Док; ТЗврем.Дата = Док.ДатаДок; ТЗврем.Номер = Док.НомерДок; ТЗврем.Приход = Приход; ТЗврем.Расход =Расход; ТЗврем.Чеков = Чеков; //Пока рано выводить //Таб.ВывестиСекцию("Строка"); ИтогоПриход=ИтогоПриход+Приход; ИтогоРасход=ИтогоРасход+Расход; КонецЦикла; //Теперь сортируем по номеру и выводим ТЗврем.Сортировать("Номер"); ТЗврем.ВыбратьСтроки(); Пока ТЗврем.ПолучитьСтроку() = 1 Цикл Док=ТЗврем.Док; Приход=ТЗврем.Приход; Расход=ТЗврем.Расход; Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ВывестиСекцию("Итого"); Таб.ТолькоПросмотр(1); Таб.Показать("Отчет по кассе"); КонецПроцедуры