Имя: Пароль:
1C
1С v8
СКД и вывод элементов группировки на отдельной страницу
0 ildary
 
11.09.18
15:47
Уважаемые специалисты, подскажите пожалуйста, как сделать такое:

В отчете на СКД две группировки: Склад и Заказ. Можно ли сделать так, чтобы у группировки Склад каждая строка выводилась на отдельном листе, примерно так:

Склад1
   Заказ1
   Заказ2
   Заказ3
--------------- Новая страница
Склад2
   Заказ4
   Заказ5
--------------- Новая страница
Склад3
   Заказ6
   Заказ7

в интернете есть решение, выводящее две разных группировки на отдельных страницах, но это не то что мне нужно сейчас. Также упоминается метод, в котором можно создать свой макет группировки и в самом макете вставить разделитель строк, но пишут что есть зафиксированная ошибка 1С (этот разделитель вставляется, но не работает.
1 dmt
 
11.09.18
16:34
(0) "в интернете есть решение, выводящее две разных группировки на отдельных страницах,"
кинь ссылку
2 aleks_default
 
11.09.18
16:35
(0)ИМХО постобработкой только
3 dmt
 
11.09.18
16:39
При компоновке данных можно вставлять разрыв. Наверное.
4 ildary
 
12.09.18
06:21
(1) извиняюсь за задержку, был занят, вот описание метода (работает, проверял): http://catalog.mista.ru/public/96583

(3) нельзя ли пример? В методе выше что-то похожее делается, но я не сообразил как это переделать для случая внутри группировки.
5 dmt
 
12.09.18
09:05
(4) интересная ссылка

как вариант:

    ИмяИскомогоПоля = "Склад";
    этоВыводПервойГруппировки = Истина;
    
    ПроцессорВывода.НачатьВывод();
    ЭлементРезультат = ПроцессорКомпоновки.Следующий();
    Пока ЭлементРезультат <> Неопределено Цикл
        
        надоВставитьРазрывСтраницы = Ложь;
        
        Для каждого ЗначениеПараметра из ЭлементРезультат.ЗначенияПараметров Цикл
            Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
                ЗначенияПолейРасшифровкиКД = ДанныеРасшифровки.Элементы.Получить(ЗначениеПараметра.Значение).ПолучитьПоля();
                
                ИскомоеЗначениеПоляРКД = ЗначенияПолейРасшифровкиКД.Найти(ИмяИскомогоПоля);
                Если ИскомоеЗначениеПоляРКД <> Неопределено Тогда
                    надоВставитьРазрывСтраницы = Истина И НЕ этоВыводПервойГруппировки;
                    этоВыводПервойГруппировки = Ложь;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        
        Если надоВставитьРазрывСтраницы Тогда
            ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        
        ПроцессорВывода.ВывестиЭлемент(ЭлементРезультат);
        
        ЭлементРезультат = ПроцессорКомпоновки.Следующий();
    КонецЦикла;
    ПроцессорВывода.ЗакончитьВывод();
6 dmt
 
12.09.18
09:09
по методике в (4) тоже должно получиться, если в структуре у Склада сделать подчиненные группировки Заказ и <Детальные записи>, как описано в статье
2 + 2 = 3.9999999999999999999999999999999...