Запрос=Новый Запрос; // Получим суммы начисленные документами НачислениеЗарплатыРаботникамОрганизаций в ПериодВзаиморасчетов Запрос.Текст=" |ВЫБРАТЬ | ВзаиморасчетыСРаботникамиОрганизаций.Период, | ВзаиморасчетыСРаботникамиОрганизаций.Регистратор, | ВзаиморасчетыСРаботникамиОрганизаций.Физлицо, | ВзаиморасчетыСРаботникамиОрганизаций.Организация, | ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов, | ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов |ИЗ | РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций |ГДЕ | ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов = &ПериодВзаиморасчетов | И ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеЗарплатыРаботникамОрганизаций |"; Запрос.УстановитьПараметр("ПериодВзаиморасчетов",Дата("01.09.2009 0:00:00")); Результат = Запрос.Выполнить(); // Выгрузим Результат Запроса в ТЗ ТзВрем = Результат.Выгрузить(); Для Каждого стр Из Тзврем Цикл // ТаблЧастьДокРезультат - Табличная часть на форме, создаем в ней новую строку НовСтр=ТаблЧастьДокРезультат.Добавить(); // Заполняем значения новой строки значениями результат запроса: ЗаполнитьЗначенияСвойств(новстр, стр); //ВНИМАНИЕ!!! ЗаполнитьЗначенияСвойств( - работает только когда имена колонок табл части и результата запроса совпадают! //Если не совпадают, то обычным способом: НовСтр.Дата = стр.ПериодВзаиморасчетов; НовСтр.Сумма = стр.СуммаВзаиморасчетов; КонецЦикла;
Запрос=Новый Запрос; // Получим суммы начисленные документами НачислениеЗарплатыРаботникамОрганизаций в ПериодВзаиморасчетов Запрос.Текст=" |ВЫБРАТЬ | ВзаиморасчетыСРаботникамиОрганизаций.Период, | ВзаиморасчетыСРаботникамиОрганизаций.Регистратор, | ВзаиморасчетыСРаботникамиОрганизаций.Физлицо, | ВзаиморасчетыСРаботникамиОрганизаций.Организация, | ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов, | ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов |ИЗ | РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций |ГДЕ | ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов = &ПериодВзаиморасчетов | И ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеЗарплатыРаботникамОрганизаций |"; Запрос.УстановитьПараметр("ПериодВзаиморасчетов",Дата("01.09.2009 0:00:00")); Результат = Запрос.Выполнить(); // Выгрузим Результат Запроса в ТЗ ТзВрем = Результат.Выгрузить(); // ТЗРезультат - это Табличное Поле на Форме, присваиваем ему таблицу значений ТЗРезультат=ТзВрем; //Создаем колонки в табличном поле, после чего видим в поле тз ЭлементыФормы.ТЗРезультат.СоздатьКолонки();
Процедура Печать() Если (ПустоеЗначение(ДатаНач)=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); Таб.Показать("Отчет по кассе"); КонецПроцедуры
// функция ПолучитьТаблицуЧисленностейВТЗ() возвращает таблицу значений ТзВрем=ПолучитьТаблицуЧисленностейВТЗ(Организация, НачПериода,КонПериода); // теперь нужно вывести тыблицу значений в табличное поле ТЗРезультат=ТзВрем; // ТЗРезультат - это Табличное Поле на Форме, присваиваем ему таблицу значений //Создаем колонки в табличном поле, после чего видим в поле тз ЭлементыФормы.ТЗРезультат.СоздатьКолонки();