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

1С:Предприятие ::

Метки: 

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

Я
   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 человек.
Рекламное место пустует