Версия для печати темы (https://pro1c.org.ua/index.php?s=9dabfeb8f8ad20e282dcbc66fd8f042d&showtopic=66713)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Как вывести некое значение, не имеющее отношение к данным отчета?

Автор: kserg2012 31.08.21, 9:31

Добрый день.

Суть проблемы - клиент просит в отчете по продажам (для информативности) вывести отдельной колонкой значение-ресурс, в котором будет одна общая "Сумма оплаты поставщикам",
при этом эта сумма никакого отношения к данным отчета по продажам не имеет.

Я понимаю как получить это значение(есть запрос с отборами), но не совсем понимаю как это "оформить" в рамках СКД.
Подскажите пож-та какие возможны простые решения.

Спасибо

Автор: sava1 31.08.21, 9:42

цепляете значение к основному набору и выводите в верхней группировка

Автор: kserg2012 31.08.21, 10:15

Цитата(sava1 @ 31.08.21, 10:42) *
цепляете значение к основному набору

хочу уточнить - это делать через связь 2-х наборов данных (основной и доп.запрос,в котором получается Сумма оплаты поставщикам) ?
или не обязательно - можно например вычислить это значение внешним запросом и добавить его как параметр &СуммаОплатыПоставщикам ??

Автор: sava1 31.08.21, 10:19

любой путь возможен - как Вам удобнее - основное, чтобы в результирующем наборе это значение было. в ресурсах проставьте МАКСИМУМ(...) - для вывода в группировках

Автор: kserg2012 31.08.21, 10:20

sava1 @ Сегодня, 11:19 * ,
понял
спасибо

Автор: lolmatrix 31.08.21, 15:48

sava1 @ Сегодня, 10:42 * ,
Подскажите пожалуйста.. как это цеплять к основному отчету? программно обратиться к компоновщику очета? не могли бы вы пример кода показать?

Автор: kserg2012 02.09.21, 8:33

Цитата(lolmatrix @ 31.08.21, 16:48) *
как это цеплять к основному отчету?

у меня получилось реализовать 2 способами
1) в запросе СКД добавил подзапрос, в котором получаю Сумму оплаты поставщикам, и далее чеоез ЛЕВОЕ СОЕДИНЕНИЕ по условию связи ИСТИНА данное значение добавляю в основной запрос.
Далее описываю это значение как ресурс с агрегатной функцией МАКСИМУМ(СуммаОплатыПоставщикам) и выводом в 2-х группировках данных (в самой верхней и в ОбщиеИтоги)

Решение приемлемое, но мне не очень понравилось, к тому же у клиента появилась "хотелка" - прикрутить к этому подзапросу небольшой отбор... Поэтому сделал вторым способом - более наглядно

2) В запросе вместо значения СуммаОплатыПоставщикам из подзапроса подставил 0 (чтобы организовать саму колонку в данных СКД)
а само значение-число вывожу как наименование этой колонки в шапке - получилось типа "Оплата поставщикам 272 000 USD"
(вывод в группировках теперь не нужен)

реализовано это в Процедуре ПриКомпоновкеРезультата
-получаю обычным запросом значение СуммаОплатыПоставщикам и затем через ДоступноеПолеВыбора нахожу и меняю заголовок этой колонки


kserg2012 @ Сегодня, 9:27 * ,

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    Запрос = Новый Запрос;
    Запрос.Текст=
    ...
    тзВрем = Запрос.Выполнить().Выгрузить();
    
    //изменим заголовок Доступного поля
    ЗаголовкиПолей = Новый Соответствие;
    Для Каждого ДоступноеПолеВыбора Из КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы Цикл
        Если Лев(ДоступноеПолеВыбора.Заголовок,10) = "Оплата пос" Тогда
            ЗаголовкиПолей.Вставить(ДоступноеПолеВыбора.Поле, "Оплата поставщикам" + Символы.ПС + тзВрем[0].ОплатаПоставщикамUSD+" USD");
            Прервать;
        КонецЕсли;
    КонецЦикла;

    Для Каждого ВыбранноеПоле Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
        НовыйЗаголовок = ЗаголовкиПолей.Получить(ВыбранноеПоле.Поле);
        Если НовыйЗаголовок <> Неопределено Тогда
            ВыбранноеПоле.Заголовок = НовыйЗаголовок;
            Прервать;
        КонецЕсли;
    КонецЦикла;

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua