CarrotM
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребята, помогите! Нужно получить итог по колонке Сумма с учетом группировки, ну никак не получается, 1с 7.7 HELP!!! Процедура Сформировать() //////////////////////////////////////////////////////// // /// ПРИХОД ТЗПТ=СоздатьОбъект("ТаблицаЗначений"); ТЗПТ.НоваяКолонка("Док","Документ.Приходная"); ТЗПТ.НоваяКолонка("НомерДок","Строка",20); ТЗПТ.НоваяКолонка("ДатаДок","Дата"); ТЗПТ.НоваяКолонка("Сумма","Число",20,2); ТЗПТ.НоваяКолонка("Клиент", "Строка", 40); СуммаТЗПТ=ТЗПТ.Итог("Сумма"); ТЗВ=СоздатьОбъект("ТаблицаЗначений"); ТЗВ.НоваяКолонка("Док","Документ.Приходная"); ТЗВ.НоваяКолонка("НомерДок","Строка",20); ТЗВ.НоваяКолонка("ДатаДок","Дата"); ТЗВ.НоваяКолонка("Сумма","Число",20,2); Док=СоздатьОбъект("Документ.Приходная"); Док.ВыбратьДокументы(ДатаОтчета,ДатаКонца); Пока Док.ПолучитьДокумент() = 1 Цикл СумРег=0; Если (Док.Возвратная=0) И (Док.Клиент.Код<>878) Тогда Рег=СоздатьОбъект("Регистр.ОстаткиТоваров"); Рег.ВыбратьДвиженияДокумента(Док.ТекущийДокумент()); Пока Рег.ПолучитьДвижение()=1 Цикл СумРег=СумРег+Рег.БазоваяСтоимость; КонецЦикла; ИтогСумма=0; ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ИтогСумма=СуммаТЗПТ+ИтогСумма; КонецЦикла; Если СумРег>0 Тогда ТЗПТ.НоваяСтрока(); ТЗПТ.Док = Док.ТекущийДокумент(); ТЗПТ.НомерДок = Док.НомерДок; ТЗПТ.ДатаДок = Док.ДатаДок; ТЗПТ.Сумма = СумРег; ТЗПТ.Клиент=Док.Клиент; КонецЕсли; КонецЕсли; Если (Док.Возвратная=1) И (Док.Клиент.Код<>878) Тогда Рег=СоздатьОбъект("Регистр.ОстаткиТоваров"); Рег.ВыбратьДвиженияДокумента(Док.ТекущийДокумент()); Пока Рег.ПолучитьДвижение()=1 Цикл СумРег=СумРег+Рег.БазоваяСтоимость; КонецЦикла; Если СумРег>0 Тогда ТЗВ.НоваяСтрока(); ТЗВ.Док = Док.ТекущийДокумент(); ТЗВ.НомерДок = Док.НомерДок; ТЗВ.ДатаДок = Док.ДатаДок; ТЗВ.Сумма = СумРег; КонецЕсли; КонецЕсли; Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию("Шапка"); Таб.ВывестиСекцию("ЗаголовокПриход"); Если ТЗПТ.КоличествоСтрок()>0 Тогда ЗаголовокВИД="Поступление товаров"; Таб.ВывестиСекцию("ЗаголовокВИД"); КонецЕсли; ПП=0; Для С=1 По ТЗПТ.КоличествоСтрок() Цикл ПП=ПП+1; ДокТаб=ТЗПТ.ПолучитьЗначение(С,1); НомерДок=ТЗПТ.ПолучитьЗначение(С,2); ДатаДок=ТЗПТ.ПолучитьЗначение(С,3); СумЗакуп=ТЗПТ.ПолучитьЗначение(С,4); Таб.ВывестиСекцию("Строка1"); КонецЦикла; Если ТЗВ.КоличествоСтрок()>0 Тогда ЗаголовокВИД="Возврат с аптеки на склад"; Таб.ВывестиСекцию("ЗаголовокВИД"); КонецЕсли; Для С=1 По ТЗВ.КоличествоСтрок() Цикл ПП=ПП+1; ИтогоСумЗакупТЗВ=0; ДокТаб=ТЗВ.ПолучитьЗначение(С,1); НомерДок=ТЗВ.ПолучитьЗначение(С,2); ДатаДок=ТЗВ.ПолучитьЗначение(С,3); СумЗакуп=ТЗВ.ПолучитьЗначение(С,4); Таб.ВывестиСекцию("Строка1"); КонецЦикла; Процедура Добавить(Фильтр,Справочник) Спр=СоздатьОбъект("Справочник."+Справочник); Спр.ВыбратьЭлементы(); Спр.ВыборГруппы(1); Если Спр.Выбрать("Выберите элемент","ФормаСписка")=1 Тогда Если Фильтр.НайтиЗначение(Спр.ТекущийЭлемент(),,"Элемент")=0 Тогда Фильтр.НоваяСтрока(); Фильтр.Элемент=Спр.ТекущийЭлемент(); Фильтр.Сортировать("Элемент"); КонецЕсли; КонецЕсли; Спр=0; КонецПроцедуры Процедура УдалитьСтроку(Фильтр) Если Фильтр.ТекущаяСтрока()>0 Тогда Фильтр.УдалитьСтроку(Фильтр.ТекущаяСтрока()) КонецЕсли; КонецПроцедуры //////////////////////////////////////// ВыбСклад.НоваяКолонка("Элемент",,,,"Наименование"); ДатаКонца=ПолучитьДатуТА(); ДатаОтчета=НачМесяца(ДатаКонца); ВыбСклад.НоваяСтрока(); ВыбСклад.Элемент=Константа.ОснСклад; |