|
Отбор в динамическом списке | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
13.10.20
✎
07:12
|
Доброго всем времени!
База БП3, УФ. Создал внешнею обработку, которая вызывается из документа Требование-Накладная и заполняет табличную часть номенклатурой по определенному алгоритму, при этом проставляя выбранную скидку. Этот функционал заказчика устроил, но теперь хочет дополнения в виде отборов по номенклатуре. Т.е. если отбор не выбран, то обработка работает как есть. В случае отбора, заполнение ТЧ происходит только выбранной номенклатурой. Решение задачи вижу в том, чтобы выбранный пользователем отбор получить в ТЗ и передать ее в запрос, который заполняет ТЧ документа. Надо же, нарвался на простую проблему и ..... и затык. Для отбора на форме обработки создал динамический список с главной таблицей спр.Номенклатура, в списке установил отбор с условиями сравнения (Равно, не равно, в группе.... и т.д.), отбор по умолчанию отключен. Вывел все это на форму. Но при выборе отбора самого отбора не происходит. Вижу это по основной таблице, которую тоже вывел на форму для отладки. Гуглил и долго, нашел даже пошаговые инструкции, согласно которым я все делаю правильно.... Однако ошибка в чем то есть. Подскажите плиз |
|||
1
НоваяВолна
13.10.20
✎
07:55
|
где можно посмотреть реализацию?
|
|||
2
НоваяВолна
13.10.20
✎
08:48
|
up
|
|||
3
Волшебник
13.10.20
✎
08:50
|
Требование-накладная со скидкой, отбор отбора... Весело у вас там
|
|||
4
НоваяВолна
13.10.20
✎
09:32
|
(3) Не отбор отбора, а замена стандартного отбора обработки на выбор пользователя
|
|||
5
Андроны едут
13.10.20
✎
09:45
|
Вам нужно получить исполняемую схему компоновки данных с вашими отборами, к которой подцепить набор данных вашего запроса. После чего установить связи этих наборах по номенклатуре и другим ключам, а дальше по стандартной схеме - компоновщик настроек, процессор компоновки, процессор вывода...
|
|||
6
НоваяВолна
13.10.20
✎
10:41
|
(5) да я не могу в пользовательском режиме получить отбор
|
|||
7
Андроны едут
13.10.20
✎
10:51
|
(6) в каком пользовательском режиме? У вас же обработка. В ней и получайте.
|
|||
8
НоваяВолна
13.10.20
✎
11:41
|
(7) Хорошо, получил отбор, вывел его в ТЗ
&НаСервере Функция Получить_ТЗ_Из_ДинамическогоСписка() Схема = Элементы.НоменклатураОтбор.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); Настройки = Элементы.НоменклатураОтбор.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных(); МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(ТЗ); ПроцессорВывода.Вывести(ПроцессорКомпоновки); Возврат ТЗ; КонецФункции Но структура ТЗ состоит из индексов и колонок. Мне нужны ссылки на отобранную номенклатуру, как получить? |
|||
9
Андроны едут
13.10.20
✎
12:06
|
(8) как-то так:
//Получаем исполняемую схему отобранной номенклатуры СхемаКомпоновкиДанных = СериализаторXDTO.ПрочитатьXDTO(СериализаторXDTO.ЗаписатьXDTO(Элементы.НоменклатураОтбор.ПолучитьИсполняемуюСхемуКомпоновкиДанных())); // добавляем набор вашего исходного запроса НаборДанныхЗапрос = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); НаборДанныхЗапрос.Имя = "МойИсходныйЗапрос"; НаборДанныхЗапрос.ИсточникДанных = "ИсточникДанных"; // устанавливаем связи СвязиНаборов = СхемаКомпоновкиДанных.СвязиНаборовДанных; Связь = СвязиНаборов.Добавить(); Связь.НаборДанныхИсточник = "НаборДанныхНоменклатураОтбор"; Связь.НаборДанныхПриемник = "НаборДанныхЗапрос"; Связь.ВыражениеИсточник = "Номенклатура"; Связь.ВыражениеПриемник = "Номенклатура"; Дальше проверьте в отладчике свойства СКД - наборы, поля, тексты запросов, отборы, связи. Заполните как вам нужно и на исполнение. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |