Работа СКД последовательность выполнения компоновщика макета #773734


#0 by glime
Добрый день, вопрос в следующем, в какой последовательности выполняется компоновка данных. Есть код: КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКД) В Схеме, в настройках, есть отбор, и настройках компоновки есть отбор. Я правильно понимаю, что сначала, отрабатывает отбор из Схемы, выполняется компоновка, а потом на результат накладываются настройки?
#1 by Gbpltw
чего именно не работает-то?
#2 by glime
да есть запрос:     РегистрСведений.СоответствиеОрганизацийПартнеров КАК СоответствиеОрганизацийПартнеров     ...........     Регистратор.*,     ............     СуммаКВыплате} ИЗ             ХозяйственнаяОперация В (&ХозяйственнаяОперация)                 И НЕ Партнер В                         (ВЫБРАТЬ                             врОрганизацииПартнеры.СобственныйПартнер                         ИЗ                             врОрганизацииПартнеры КАК врОрганизацииПартнеры) {........}) КАК ДвиженияДенежныеСредстваКонтрагент {ГДЕ     ДвиженияДенежныеСредстваКонтрагент.Регистратор.*}
#3 by glime
Если коротко, если в отчете не выбрана Организация, то из регистра сведений возьми всех партнеров, и исключи поступления ДС от них, если выбрано только несколько Организаций, то возьми только партнеров этих организаций, и исключи обороту внутри данной группы.
#4 by glime
так вот и ...
#5 by senior
что есть настройки компоновки? Ты про пользовательские настройки?
#6 by glime
Параметры: Тип: СхемаКомпоновкиДанных. Схема, для которой требуется построить макет. Тип: НастройкиКомпоновкиДанных. Настройки, для которых необходимо создать макет.
#7 by glime
вот эти
#8 by senior
Есть польз. настройки и те, что в схеме у варианта. Тебе нужно передать КомпоновщикНастроек.ПолучитьНастройки
#9 by senior
Если я правильно понял твой вопрос
#10 by glime
куда передать? То есть я правильно понял, сначала отрабатывает схема со своими настройками, потом уже накладываются настройки?
#11 by Fragster
нет
#12 by senior
КомпМакета.Выполнить(..., КомпНастроек.ПолучитьНастройки)
#13 by glime
тогда как объяснить, В Схеме в отборах организации нет, в Настройках есть, если я в консоль серелизовываю схему и проверяю, если указываю параметр организация то отрабатывает(ограничивает только по партнерам, те которые выбраны, если не выбираю, то ограничивает по всем)
#14 by glime
в параметре у меня и так "НастройкиСжемыКомпановкиДанных", а не компановщик
#15 by Sabbath
Не правильно понимаешь. Компоновщик имеет на входе схему и настройки. На выходе получает макет. Он является результатом применения настроек к схеме. Если у тебя стоят отборы (что пользовательские, что разработчика) они помещаются в запрос, и запрос выполняется с ними. Кромое того добавляются или удаляются таблицы запроса, поля, связи в соответствии с настройками. Я так понимаю, другой вариант, когда внешний набор данных, там запроса нет.
#16 by glime
ну тогда почему не отрабатывает запрос....
#17 by glime
в консоле отрабатывает, когда запихиваю в отчет хрен....
#18 by Sabbath
в консоль СКД засунь и смотри результирующий запрос
#19 by Sabbath
я по твоему описанию что-то не осилил смысл, в чем проблема
#20 by glime
отрабатывает как надо
#21 by glime
Основное место в запросе {ГДЕ     (СоответствиеОрганизацийПартнеров.Организация В (&Организация))} То есть если выбрана организация накладывай фильтр, если нет, то не фильтруй
#22 by Sabbath
у тебя в запросе написано так, чтобы ограничивало по всем, если не установлена организация. Первый запрос пакета выполняется без условия ГДЕ, когда нет параметра и у тебя там все партнеры
#23 by Sabbath
+ плюс к этому надо смотреть, какие реально параметры СКД подставляет в параметры виртуальной таблицы. Я думаю, там они заметно отличаются от исходного текста
#24 by Sabbath
тут логика правильная, я думаю, дальше косяк
#25 by Sabbath
Я думаю, во втором подзапросе не хватает фигурных скобок где организация и партнер. Но это надо разбираться. Кстати не ясно, что у тебя там в {....} Короче, пока не поймешь, какие у тебя запросы в зависимости от настроек реально исполняются, то не поймешь
#26 by glime
так и задумано
#27 by glime
там ка раз организация и партнер, просто строка длинная.....
#28 by glime
дело в том, что я как раз на момент выполнить серелизую схему и подставляю ее в консоль.
#30 by Sabbath
Тут мне сложно сказать. я с этим не работал. Схема это уже скомпонованный макет? Если да, то посмотри наборы данных и запросы. Наверно, там должен быть уже модифицированный запрос. Преобразуется ли что-то самим методом ЗаписатьXML - не в курсе. Вообще с программной обработкой СКД я еще разбираюсь, пока не сильно шарю.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С