Отбор при открытии формы выбора запросом

1. Hi_Hydra 4 16.06.21 12:01 Сейчас в теме
Добрый день, решаю задачку. Есть реквизит в тч товары - партия, он составной: может быть как приобретение, так и оприходование.
Есть регистр остатки по партиям, вопрос вот какой, при открытии формы подбора в реализации - мне необходимо в форме показывать только те документы, которые я выберу запросом. Как мне установить такой отбор?
Вот код:
&НаКлиенте
Процедура Расш1_ТоварыХх_ПартияНачалоВыбораПосле(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

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

&НаКлиенте
Процедура ОписаниеЗакрытияФормыВыбора(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
	
	Если РезультатЗакрытия = Неопределено Тогда
		
	КонецЕсли;	
	
	Элементы.Товары.ТекущиеДанные.Хх_Партия = РезультатЗакрытия;
		
КонецПроцедуры
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. o.nikolaev 212 16.06.21 12:14 Сейчас в теме
Там где открыть форму надо пробросить параметр "Отбор". Как-то так:

ЗначениеОтбора = Новый Структура("Номер", "333");
ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);

ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаСписка",ПараметрыВыбора);
alexovik; +1 Ответить
3. Hi_Hydra 4 16.06.21 12:38 Сейчас в теме
А где собственно запрос?
4. tindir 16.06.21 13:02 Сейчас в теме
(3) вот и я задался вопросом - а зачем вам запрос? вам надо сначала "радченко" дочитать, либо букварь.
5. Hi_Hydra 4 16.06.21 13:36 Сейчас в теме
(4) Запрос мне нужен для отбора нужных документов по регистру накопления.
6. HAMAZ 7 16.06.21 15:04 Сейчас в теме
1 - Как открыть форму с отбором
2 - для регистра накопления отбор по регистратору (типу регистратора) доступен только для реальной таблицы - а там будут строки документов)
3 - Сломаете форму выбора у документа
7. Kolesonik 13 16.06.21 16:06 Сейчас в теме
Собрать нужные документы в массив массивДок

НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;

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

        ПараметрыВыбора = Новый Структура;
	ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
	ПараметрыВыбора.Вставить("РежимВыбора",Истина);
	ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);

	ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"Подбор");

	ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыВыбора,
	        ЭтаФорма, , , , ОбработкаВыбора);
Показать


как то так может быть?
8. Kolesonik 13 16.06.21 17:25 Сейчас в теме +1 $m
вот рабочий код
МассивДок = ВернутьСписокДокументов();
	
	НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
	ГруппаОтбора  =  НастройкиКомпоновки.Отбор;
	ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Ссылка");
	ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
	ЭлементОтбора.Использование  = Истина;
	ЭлементОтбора.ПравоеЗначение = МассивДок;
	
	ПараметрыВыбора = Новый Структура;
	ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
	ПараметрыВыбора.Вставить("РежимВыбора",Истина);
	ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);
	
	
	ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыВыбора,
	Элементы.Документы, , , , );
Показать
9. Hi_Hydra 4 17.06.21 09:44 Сейчас в теме
(8)

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

&НаСервере
Функция ВернутьСписокДокументов()
	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 2
		|	ПриобретениеТоваровУслуг.Ссылка КАК Ссылка
		|ИЗ
		|	Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	МассивНоменклатуры = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
	Возврат МассивНоменклатуры;
		
	
	
	КонецФункции
Показать

Ругается на ошибку соответствия типов. Я передаю массив документов.

Несоответствие типов
{Тест Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(39)}: ПараметрыВыбора = Новый Структура;

по причине:
Несоответствие типов
10. Kolesonik 13 17.06.21 10:46 Сейчас в теме
(9)судя по ошибке вы открываете форму документа, попробуйте открыть форму выбора этого документа
11. Kolesonik 13 17.06.21 10:50 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот