Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Добавить данные о количестве контрагентов в отчет продажи УТ 10.3

Добавить данные о количестве контрагентов в отчет продажи УТ 10.3
Я
   davlen86
 
28.06.18 - 05:24
Доброго времени суток, уважаемые форумчане! Прошу помочи в непростой ситуации, явно кто то уже решал такую задачу, у самого не получается сделать. Собственно задача: Нужно в стандартный отчет "Продажи" УТ 10.3 добавить данные о количестве контрагентов. Вся сложность в том что отчет этот формируется с помощью Универсального отчета, если бы он был на СКД решить это гораздо проще. Делаю так в модуле отчета в процедуре УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт  добавил строчки:

УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоТТ",             "Количество(Различные ИсточникДанных.Контрагент)", "Количество ТТ");
УниверсальныйОтчет.ДобавитьПоказатель("КоличествоТТ",            "Количество ТТ",                   Ложь, "ЧЦ=10");
 
 
   davlen86
 
1 - 28.06.18 - 05:28
Сначала ругалось что Номенклатура находится не в группе, для этого написал процедуру уже в модуле Универсального отчета, которая обрабатывает сформированный текст запроса перед тем как присвоить его в текст построителя отчета, чтобы появился в тексте раздел "СГРУППИРОВАТЬ ПО". Ошибка теперь не выходит, но в поле выводит совсем неправильное количество контрагентов.
   davlen86
 
2 - 28.06.18 - 05:29
Подскажите плиз, как это можно сделать, что я делаю не так.
   VladZ
 
3 - 28.06.18 - 05:40
Оставь типовой как есть. Сделай свой на СКД.
   davlen86
 
4 - 28.06.18 - 05:46
(3) я бы с радостью. Но заказчик хочет видеть именно в типовом.
   mehfk
 
5 - 28.06.18 - 05:56
Запрос корректный?
УниверсальныйОтчет.ПостроительОтчета.ПолучитьЗапрос()
   davlen86
 
6 - 28.06.18 - 05:58
(5) Запрос уж слишком большой получается, кучу свойств добавляется. Сейчас попробую вытяну то что относится к количеству контрагентов.
   davlen86
 
7 - 28.06.18 - 06:05
(5) Поставил точку останова в модуле формы отчета Продажи в процедуре
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
    
    // Перед формирование отчета можно установить необходимые параметры универсального отчета.

    
    УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент);

КонецПроцедуры// СформироватьОтчет()


Очень удивительный запрос получил в итоге:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИсточникДанных.Контрагент КАК Контрагент,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Контрагент) КАК КонтрагентПредставление,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ) КАК ПериодМесяц,
    ИсточникДанных.Номенклатура КАК Номенклатура,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Номенклатура) КАК НоменклатураПредставление,
    ИсточникДанных.КоличествоОборот КАК КоличествоОборот,
    ИсточникДанных.СтоимостьОборот КАК СтоимостьОборот
ИЗ
    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, (Контрагент В ИЕРАРХИИ(&Параметр1)) И Номенклатура В ИЕРАРХИИ(&Параметр2)) КАК ИсточникДанных

СГРУППИРОВАТЬ ПО
    ИсточникДанных.Номенклатура,
    ИсточникДанных.Контрагент,
    ИсточникДанных.КоличествоОборот,
    ИсточникДанных.СтоимостьОборот,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ)

УПОРЯДОЧИТЬ ПО
    СтоимостьОборот УБЫВ
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот)
ПО
    ОБЩИЕ,
    Контрагент ИЕРАРХИЯ КАК Контрагент,
    ПериодМесяц КАК ПериодМесяц
АВТОУПОРЯДОЧИВАНИЕ

А в отчет выводятся данные Количестов ТТ, но неправильные, откуда интересно он их берет тогда.
   davlen86
 
8 - 28.06.18 - 06:46
ап
   davlen86
 
9 - 28.06.18 - 07:01
все оказалось довольно просто))). На будущее если кому то понадобится в модуле отчета Продажи необходимо добавить:

    УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоТТ",             "ИсточникДанных.Контрагент", "Количество ТТ");

вместо того что было написано ранее в (0),

и в модуле объекта Унив. отчет вставить код перед тем как передать текст запроса в построитель:

ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"СУММА(КоличествоТТ)","Количество(Различные КоличествоТТ)");

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует