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

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

Работа отборов СКД

Работа отборов СКД
Я
   slabak
 
18.04.17 - 11:32
Добрый день!

Вопрос в работе отборов СКД.
Заранее извините за длинную портянку.

Создаю обработку - цель которой отбирать с помощью разных отборов необходимые документы для последующего редактирования.

Что сделал?

Создал обработку, в реквизиты добавил реквизит КомпоновщикНастроек (тип КомпоновщикНастроекКомпоновкиДанных), также в обработке создал 2 схемы компоновки:

1) Отборы. Схема для описания отборов к схеме (2).
2) ЗапросИнформации - запрос к регистру.

В схеме 1 (Отборы) создал несколько наборов данных с запросами данных по тем реквизитам, по которым в последующем хочу делать отбор при компоновке результата схемы (2). В том числе по значению регистратора.

Выглядит это так:
1) Схема Отборы - https://i.gyazo.com/df329daa1496631839c1a23c0ba3e6d9.png
2) Схема ЗапросИнформации - https://i.gyazo.com/3d90e7d320c7a4f2ebcd2ba6fa89de3c.png

Далее на форму бросил Отбор КомпоновщикаНастроек - https://i.gyazo.com/58c5e47cc07a2fb3c728f1d1b7ee8c29.png

В коде формы при создании инициализировал настройки таким образом:

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
СхемаСКД = ОбработкаОбъект.ПолучитьМакет("Отборы");//получаем макет отборов из обработки

    
АдресСхемы = ПоместитьВоВременноеХранилище(СхемаСКД, УникальныйИдентификатор);
ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы);
    
Объект.КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
Объект.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаСКД.НастройкиПоУмолчанию);


Далее при нажатии на кнопку "Получить результаты отбора" сделал следующее для получения результатов по схеме (2) с отборами схемы (1):

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");     
СхемаКомпоновкиДанных = ОбработкаОбъект.ПолучитьМакет("ЗапросИнформации");// получаем схему для запроса информации из регистра    

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; 
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
    ОбработкаОбъект.КомпоновщикНастроек.Настройки, , ,
    Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));  
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); 
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТаблицаОтобранныхЭлементов = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаОтобранныхЭлементов);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Далее ТаблицаОтобранныхЭлементов выводится в таблицу значений на форму.

Такая реализация работает, но почему то не со всеми документами в отборе. Почему?

Вот например, ставим в отбор первый документ и получаем результат ТаблицаОтобранныхЭлементов такой:
1) Устанавливаем отбор на форме - https://i.gyazo.com/75da237846ae4f92faf15a61b6007a15.png
2) Жмем "Получить результат отбора"
3) Получаем ожидаемый результат - документ с которым в последующем необходимо произвести нужные действия (https://i.gyazo.com/cefd4640bb6599a18862a063268d2f6c.png) - берется из ТаблицаОтобранныхЭлементов
4) Ставим в отбор другой документ - https://i.gyazo.com/82ada5cb6d09d8378f558f0401b8aca6.png
5) Жмем "Получить результат отбора"
6) И в результате получаем пустую таблицу - https://i.gyazo.com/127b8b1f64d555db6254105fe7a3310d.png

Такое ощущение, что отбор применяется неправильно к схеме (2) в части случаев, но почему?

Извините за объемный вопрос, но не могу понять почему так себя ведет СКД.

Спасибо.
 
 
   slabak
 
1 - 18.04.17 - 12:01
Есть у кого нибудь идеи почему так происходит?
   Timon1405
 
3 - 18.04.17 - 12:28
(0) скорее всего наложенный отбор на внешнюю таблицу превращает левое соединение наборов во внутреннее
https://its.1c.ru/db/metod8dev#content:2696:hdoc:_top
   slabak
 
4 - 20.04.17 - 11:48
(3) И как это решить? Из ссылки не понял каким образом можно правильно наложить отборы, чтобы корректно работало. :(
   Buster007
 
5 - 20.04.17 - 11:51
Посмотри у макета компоновки запрос и сделай выводы.
Возможно тебе придется снять галку "Автозаполнение" и настроить самостоятельно возможные отборы.
   slabak
 
6 - 20.04.17 - 13:09
(5) Вот такая картинка получается:
1) В этом случае документ находит https://i.gyazo.com/dc970dda7d8446c5055a7262b3e4bca7.png
2) А в этом случае не находит https://gyazo.com/33a7458ae828b68a55985e2f9e96d63e

Хотя как видно - всё идентично, кроме задаваемого параметра.
   slabak
 
7 - 20.04.17 - 15:57
Есть у кого нибудь идеи?
   GvH
 
8 - 20.04.17 - 16:35
(7) Нет движений по регистру у документа № 3.
   slabak
 
9 - 20.04.17 - 16:44
(8) движения есть
   kuzyara
 
10 - 21.04.17 - 04:01
Я так понял Консоль компоновок данных (ИР) для слабаков?
 
 Рекламное место пустует

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