Отбор при открытии формы выбора запросом
Добрый день, решаю задачку. Есть реквизит в тч товары - партия, он составной: может быть как приобретение, так и оприходование.
Есть регистр остатки по партиям, вопрос вот какой, при открытии формы подбора в реализации - мне необходимо в форме показывать только те документы, которые я выберу запросом. Как мне установить такой отбор?
Вот код:
Есть регистр остатки по партиям, вопрос вот какой, при открытии формы подбора в реализации - мне необходимо в форме показывать только те документы, которые я выберу запросом. Как мне установить такой отбор?
Вот код:
&НаКлиенте
Процедура Расш1_ТоварыХх_ПартияНачалоВыбораПосле(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СписокТипов = Новый СписокЗначений;
СписокТипов.Добавить(Тип("ДокументСсылка.ПриобретениеТоваровУслуг"));
СписокТипов.Добавить(Тип("ДокументСсылка.ОприходованиеИзлишковТоваров"));
Оповещение = Новый ОписаниеОповещения("ОбработкаВыбораТипаДанных", ЭтотОбъект);
СписокТипов.ПоказатьВыборЭлемента(Оповещение, "Выбор типа данных");
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбораТипаДанных(ВыбранныйЭлемент, СписокПараметров) Экспорт
Если ВыбранныйЭлемент <> Неопределено Тогда
ИмяОткрываемойФормы = "";
Если ВыбранныйЭлемент.Значение = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
ИмяОткрываемойФормы = "Документ.ПриобретениеТоваровУслуг.ФормаВыбора";
ИначеЕсли ВыбранныйЭлемент.Значение = Тип("ДокументСсылка.ОприходованиеИзлишковТоваров") Тогда
ИмяОткрываемойФормы = "Документ.ОприходованиеИзлишковТоваров.ФормаВыбора";
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ОписаниеЗакрытияФормыВыбора", ЭтотОбъект);
ОткрытьФорму(ИмяОткрываемойФормы, , ЭтаФорма, , , , Оповещение);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОписаниеЗакрытияФормыВыбора(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
КонецЕсли;
Элементы.Товары.ТекущиеДанные.Хх_Партия = РезультатЗакрытия;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Трюки 1С 8 – Передача формы документа в форму выбора
- Как скрыть "пустые" группы справочника при открытии формы выбора? (только для УФ)
- Работа с данными выбора
- Вывод вариантов СКД в таблицы на управляемой форме
- Параметры открытия формы выбора отборов и параметров СКД ("связи параметров выбора" списочных значений СКД)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Там где открыть форму надо пробросить параметр "Отбор". Как-то так:
ЗначениеОтбора = Новый Структура("Номер", "333");
ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаСписка",ПараметрыВыбора);
1 - Как открыть форму с отбором
2 - для регистра накопления отбор по регистратору (типу регистратора) доступен только для реальной таблицы - а там будут строки документов)
3 - Сломаете форму выбора у документа
2 - для регистра накопления отбор по регистратору (типу регистратора) доступен только для реальной таблицы - а там будут строки документов)
3 - Сломаете форму выбора у документа
Собрать нужные документы в массив массивДок
как то так может быть?
НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
ГруппаОтбора = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = МассивДок;
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ПараметрыВыбора.Вставить("РежимВыбора",Истина);
ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма,"Подбор");
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыВыбора,
ЭтаФорма, , , , ОбработкаВыбора);
Показатькак то так может быть?
вот рабочий код
МассивДок = ВернутьСписокДокументов();
НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
ГруппаОтбора = НастройкиКомпоновки.Отбор;
ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = МассивДок;
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ПараметрыВыбора.Вставить("РежимВыбора",Истина);
ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыВыбора,
Элементы.Документы, , , , );
Показать
(8)
Ругается на ошибку соответствия типов. Я передаю массив документов.
Несоответствие типов
{Тест Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(39)}: ПараметрыВыбора = Новый Структура;
по причине:
Несоответствие типов
МассивДок = ВернутьСписокДокументов();
НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
ГруппаОтбора = НастройкиКомпоновки.Отбор;
ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = МассивДок;
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ПараметрыВыбора.Вставить("РежимВыбора",Истина);
ПараметрыВыбора.Вставить("МножественныйВыбор",Ложь);
//----------------------------------------
ОткрытьФорму(ИмяОткрываемойФормы,ПараметрыВыбора , ЭтаФорма, , , , Оповещение);
&НаСервере
Функция ВернутьСписокДокументов()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 2
| ПриобретениеТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
МассивНоменклатуры = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Возврат МассивНоменклатуры;
КонецФункции
ПоказатьРугается на ошибку соответствия типов. Я передаю массив документов.
Несоответствие типов
{Тест Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(39)}: ПараметрыВыбора = Новый Структура;
по причине:
Несоответствие типов
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот