|
Работа СКД последовательность выполнения компоновщика макета | ☑ | ||
---|---|---|---|---|
0
glime
03.06.16
✎
08:10
|
Добрый день, вопрос в следующем, в какой последовательности выполняется компоновка данных.
Есть код: КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКД) В Схеме, в настройках, есть отбор, и настройках компоновки есть отбор. Я правильно понимаю, что сначала, отрабатывает отбор из Схемы, выполняется компоновка, а потом на результат накладываются настройки? |
|||
1
Gbpltw
03.06.16
✎
08:11
|
чего именно не работает-то?
|
|||
2
glime
03.06.16
✎
08:20
|
да есть запрос:
ВЫБРАТЬ СоответствиеОрганизацийПартнеров.Партнер КАК СобственныйПартнер ПОМЕСТИТЬ врОрганизацииПартнеры ИЗ РегистрСведений.СоответствиеОрганизацийПартнеров КАК СоответствиеОрганизацийПартнеров {ГДЕ (СоответствиеОрганизацийПартнеров.Организация В (&Организация))} ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДвиженияДенежныеСредстваКонтрагент.Регистратор КАК Регистратор, ........... ДвиженияДенежныеСредстваКонтрагент.СуммаКВыплатеВРамкахЛимитаОборот + ДвиженияДенежныеСредстваКонтрагент.СуммаКВыплатеСверхЛимитаОборот КАК СуммаКВыплате {ВЫБРАТЬ Регистратор.*, ............ СуммаКВыплате} ИЗ РегистрНакопления.ДвиженияДенежныеСредстваКонтрагент.Обороты( &НачалоПериода, &КонецПериода, Авто, ХозяйственнаяОперация В (&ХозяйственнаяОперация) И НЕ Партнер В (ВЫБРАТЬ врОрганизацииПартнеры.СобственныйПартнер ИЗ врОрганизацииПартнеры КАК врОрганизацииПартнеры) {........}) КАК ДвиженияДенежныеСредстваКонтрагент {ГДЕ ДвиженияДенежныеСредстваКонтрагент.Регистратор.*} |
|||
3
glime
03.06.16
✎
08:25
|
Если коротко, если в отчете не выбрана Организация, то из регистра сведений возьми всех партнеров, и исключи поступления ДС от них, если выбрано только несколько Организаций, то возьми только партнеров этих организаций, и исключи обороту внутри данной группы.
|
|||
4
glime
03.06.16
✎
08:58
|
так вот и ...
|
|||
5
senior
03.06.16
✎
09:00
|
(0) что есть настройки компоновки? Ты про пользовательские настройки?
|
|||
6
glime
03.06.16
✎
09:11
|
Выполнить(<Схема>, <Настройки>, <ДанныеРасшифровки>, <МакетОформления>, <ТипГенератора>, <ПроверятьДоступностьПолей>, <ПараметрыФункциональныхОпций>)
Параметры: <Схема> (обязательный) Тип: СхемаКомпоновкиДанных. Схема, для которой требуется построить макет. <Настройки> (обязательный) Тип: НастройкиКомпоновкиДанных. Настройки, для которых необходимо создать макет. |
|||
7
glime
03.06.16
✎
09:11
|
вот эти
|
|||
8
senior
03.06.16
✎
09:29
|
Есть польз. настройки и те, что в схеме у варианта. Тебе нужно передать КомпоновщикНастроек.ПолучитьНастройки()
|
|||
9
senior
03.06.16
✎
09:30
|
Если я правильно понял твой вопрос
|
|||
10
glime
03.06.16
✎
09:43
|
(8) куда передать?
То есть я правильно понял, сначала отрабатывает схема со своими настройками, потом уже накладываются настройки? |
|||
11
Fragster
гуру
03.06.16
✎
09:44
|
(0) нет
|
|||
12
senior
03.06.16
✎
09:53
|
(10) КомпМакета.Выполнить(..., КомпНастроек.ПолучитьНастройки())
|
|||
13
glime
03.06.16
✎
09:54
|
(11)тогда как объяснить, В Схеме в отборах организации нет, в Настройках есть, если я в консоль серелизовываю схему и проверяю, если указываю параметр организация то отрабатывает(ограничивает только по партнерам, те которые выбраны, если не выбираю, то ограничивает по всем)
|
|||
14
glime
03.06.16
✎
09:55
|
(12) в параметре у меня и так "НастройкиСжемыКомпановкиДанных", а не компановщик
|
|||
15
Sabbath
03.06.16
✎
10:20
|
(0) Не правильно понимаешь. Компоновщик имеет на входе схему и настройки. На выходе получает макет. Он является результатом применения настроек к схеме. Если у тебя стоят отборы (что пользовательские, что разработчика) они помещаются в запрос, и запрос выполняется с ними. Кромое того добавляются или удаляются таблицы запроса, поля, связи в соответствии с настройками.
Я так понимаю, другой вариант, когда внешний набор данных, там запроса нет. |
|||
16
glime
03.06.16
✎
10:35
|
(15) ну тогда почему не отрабатывает запрос....
|
|||
17
glime
03.06.16
✎
10:35
|
в консоле отрабатывает, когда запихиваю в отчет хрен....
|
|||
18
Sabbath
03.06.16
✎
10:45
|
(17) в консоль СКД засунь и смотри результирующий запрос
|
|||
19
Sabbath
03.06.16
✎
10:46
|
(16) я по твоему описанию что-то не осилил смысл, в чем проблема
|
|||
20
glime
03.06.16
✎
10:48
|
(18) отрабатывает как надо
|
|||
21
glime
03.06.16
✎
10:50
|
(19) Основное место в запросе
{ГДЕ (СоответствиеОрганизацийПартнеров.Организация В (&Организация))} То есть если выбрана организация накладывай фильтр, если нет, то не фильтруй |
|||
22
Sabbath
03.06.16
✎
10:50
|
(13) у тебя в запросе написано так, чтобы ограничивало по всем, если не установлена организация. Первый запрос пакета выполняется без условия ГДЕ, когда нет параметра и у тебя там все партнеры
|
|||
23
Sabbath
03.06.16
✎
10:52
|
+(22) плюс к этому надо смотреть, какие реально параметры СКД подставляет в параметры виртуальной таблицы. Я думаю, там они заметно отличаются от исходного текста
|
|||
24
Sabbath
03.06.16
✎
10:54
|
(21) тут логика правильная, я думаю, дальше косяк
|
|||
25
Sabbath
03.06.16
✎
10:58
|
Я думаю, во втором подзапросе не хватает фигурных скобок где организация и партнер. Но это надо разбираться. Кстати не ясно, что у тебя там в {....}
Короче, пока не поймешь, какие у тебя запросы в зависимости от настроек реально исполняются, то не поймешь |
|||
26
glime
03.06.16
✎
11:31
|
(22) так и задумано
|
|||
27
glime
03.06.16
✎
11:41
|
(25) там ка раз организация и партнер, просто строка длинная.....
|
|||
28
glime
03.06.16
✎
11:42
|
(25) дело в том, что я как раз на момент выполнить серелизую схему и подставляю ее в консоль.
|
|||
29
glime
03.06.16
✎
11:44
|
Функция СерилизоватьСКД(Схема) Экспорт
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Схема, "dataCompositionSchema", "http://v8.1c.ru/8.1/data-composition-system/schema"); Возврат ЗаписьXML.Закрыть(); КонецФункции |
|||
30
Sabbath
03.06.16
✎
12:27
|
(29) Тут мне сложно сказать. я с этим не работал. Схема это уже скомпонованный макет? Если да, то посмотри наборы данных и запросы. Наверно, там должен быть уже модифицированный запрос. Преобразуется ли что-то самим методом ЗаписатьXML - не в курсе.
Вообще с программной обработкой СКД я еще разбираюсь, пока не сильно шарю. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |