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