Добрый день уважаемые.Пытаюсь сделать отчет по продажам торговых агентов, но выводит по всем колонкам нули. Подскажите от чего плясать?Что делаю не так? Заранее большое СПАСИБО! Вот код:
Процедура СформироватьИтоги() Заг = +"Подведение итогов за период с " + Дата1+" по " +Дата2; ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Менеджер",2,100,0); ТЗ.НоваяКолонка("Сумма",1,10,2); ТЗ.НоваяКолонка("СуммаНДС",1,10,2); ТЗ.НоваяКолонка("КолвоТТ",1,6,0); ТЗ.НоваяКолонка("СуммаПМ",1,10,2); ТЗ.НоваяКолонка("СуммаНДСПМ",1,10,2); ТЗ.НоваяКолонка("КолвоТТПМ",1,6,0); ИтогоСумма=0; ИтогоСуммаНДС=0; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица( "ИтогиРаботы" ); Запрос = СоздатьОбъект("Запрос"); ЗапросПМ = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС |Период с Дата1 по Дата2; |Менеджер=Документ.РасходнаяНакладная.Контрагент.ТорговыйАгент,Документ.При ходнаяНакладная.Контрагент.ТорговыйАгент; |Клиент =Документ.РасходнаяНакладная.Контрагент,Документ.ПриходнаяНакладная.Контрагент.Т орговыйАгент; |Договор =Документ.РасходнаяНакладная.Договор,Документ.ПриходнаяНакладная.Договор; |СуммаДок = Документ.РасходнаяНакладная.СуммаБезНДС; |СуммаНДС = Документ.РасходнаяНакладная.СуммаСНДС; |Функция СуммаВсего = Сумма(СуммаДок); |Функция СуммаСНДСВсего = Сумма(СуммаНДС); |Группировка Менеджер; |Группировка Клиент; |Группировка Договор;"; Если ПустоеЗначение(ВыбМенеджер)=0 Тогда ТекстЗапроса=ТекстЗапроса+"Условие (Менеджер в ВыбМенеджер);"; КонецЕсли; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
// ТЗ.УдалитьСтроки(); Пока Запрос.Группировка("Менеджер") = 1 Цикл //Сообщить(Запрос.Менеджер.ПринадлежитГруппе(ВыбМенеджер)); Если Запрос.Менеджер.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; Менеджер=Запрос.Менеджер; КолвоТТ=0; Пока Запрос.Группировка("Клиент") = 1 Цикл Пока Запрос.Группировка("Договор") = 1 Цикл КолвоТТ=КолвоТТ+1; КонецЦикла; КонецЦикла; ТЗ.НоваяСтрока(); ТЗ.Менеджер=Менеджер; ТЗ.Сумма=Запрос.СуммаВсего; ТЗ.СуммаНДС=Запрос.СуммаНДСВсего; ТЗ.КолвоТТ=КолвоТТ; ТЗ.СуммаПМ=0; ТЗ.СуммаНДСПМ=0; ТЗ.КолвоТТПМ=0; КонецЦикла; // запрос по предыдущему периоду ТекстЗапросаПМ = "//{{ЗАПРОС |Период с Дата11 по Дата21; |Менеджер=Документ.РасходнаяНакладная.Контрагент.ТорговыйАгент,Документ.При ходнаяНакладная.Контрагент.ТорговыйАгент; |Клиент =Документ.РасходнаяНакладная.Контрагент,Документ.ПриходнаяНакладная.Контрагент; |Договор =Документ.РасходнаяНакладная.Договор,Документ.ПриходнаяНакладная.Договор; |СуммаДок = Документ.РасходнаяНакладная.СуммаБезНДС; |СуммаНДС = Документ.РасходнаяНакладная.СуммаСНДС; |Функция СуммаВсего = Сумма(СуммаДок); |Функция СуммаНДСВсего = Сумма(СуммаНДС); |Группировка Менеджер; |Группировка Клиент; |Группировка Договор;"; Если ПустоеЗначение(ВыбМенеджер)=0 Тогда ТекстЗапросаПМ=ТекстЗапросаПМ+"Условие (Менеджер в ВыбМенеджер);"; КонецЕсли; // Если ошибка в запросе, то выход из процедуры Если ЗапросПМ.Выполнить(ТекстЗапросаПМ) = 0 Тогда Возврат; КонецЕсли; Пока ЗапросПМ.Группировка("Менеджер") = 1 Цикл //Сообщить(Запрос.Менеджер.ПринадлежитГруппе(ВыбМенеджер)); Если ЗапросПМ.Менеджер.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; Менеджер=ЗапросПМ.Менеджер; КолвоТТПМ=0; Пока ЗапросПМ.Группировка("Клиент") = 1 Цикл Пока ЗапросПМ.Группировка("Договор") = 1 Цикл КолвоТТПМ=КолвоТТПМ+1; КонецЦикла; КонецЦикла; ТЗ.НоваяСтрока(); ТЗ.Менеджер=Менеджер; ТЗ.СуммаПМ=ЗапросПМ.СуммаВсего; ТЗ.СуммаНДСПМ=ЗапросПМ.СуммаНДСВсего; ТЗ.КолвоТТПМ=КолвоТТПМ; ТЗ.Сумма=0; ТЗ.СуммаНДС=0; ТЗ.КолвоТТ=0; КонецЦикла; ИтогоСумма=0; ИтогоСуммаНДС=0; ИтогоКолвоТТ=0; ИтогоСуммаПМ=0; ИтогоСуммаНДСПМ=0; ИтогоКолвоТТПМ=0; Таб.ВывестиСекцию("Шапка"); ТЗ.Свернуть("Менеджер","Сумма,СуммаНДС,КолвоТТ,СуммаПМ,СуммаНДСПМ,КолвоТТПМ"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл ИтогоСумма=ИтогоСумма+ТЗ.Сумма; ИтогоСуммаНДС=ИтогоСуммаНДС+ТЗ.СуммаНДС; ИтогоКолвоТТ=ИтогоКолвоТТ+ТЗ.КолвоТТ; ИтогоСуммаПМ=ИтогоСуммаПМ+ТЗ.СуммаПМ; ИтогоСуммаНДСПМ=ИтогоСуммаНДСПМ+ТЗ.СуммаНДСПМ; ИтогоКолвоТТПМ=ИтогоКолвоТТПМ+ТЗ.КолвоТТПМ; Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ВывестиСекцию("Итого"); Таб.Опции(0, 0, 0, 0); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", "");
В смысле? На печатной форме есть суммы.Но имхо дело не в них.Я конечно в 1с почти ноль.Но чет так кажется))
Цитата(Vofka @ 27.09.10, 14:51)
А может инфу о продажах брать из какого-то регистра?
Да я думал брать торгового из регистра о партиях товаров.Так как это реализовано в стандартном отчете о продажах.Но не знаю будет ли оно таким макаром работать.
Блин.У меня по ходу нет Реквизита ТорговыйАгент. Есть только на форме табличной части документа поле выбора с такой формулой: ?(ПустоеЗначение(контрагент.ТорговыйАгент)=1,"",Контрагент.ТорговыйАгент) От куда еще можно потянуть Торгового Агента?А главное как?
З.Ы. Нашел отчет который выводит Агентов.И вытягивает Агентов таким запросом
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8
Цитата
Блин.У меня по ходу нет Реквизита ТорговыйАгент.
1С-ка ругнулась бы.
Цитата
Есть только на форме табличной части документа поле выбора с такой формулой: ?(ПустоеЗначение(контрагент.ТорговыйАгент)=1,"",Контрагент.ТорговыйАгент) От куда еще можно потянуть Торгового Агента?А главное как?
Ну тогда в вашем случае вроде все правильно. Документ.РасходнаяНакладная.Контрагент.ТорговыйАгент
Цитата
И выводит секции потом таким макаром
Таб.ВывестиСекцию("Родитель|Агент");
Посмотрите что в выводимой таблице указано в "Родитель|Агент"
Спасибо большое Vofk`е.Заработало!!! При чем проблема была не только в табличной части.Но еще и в поле выбора Торгового Агента.Почему-то оно тянуло Торговых не со справочника Сотрудники.Торговые, а из Справочника контрагентов. Спасибо за внимание
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!