Добрый день !
Конфигурация - доработанная УТП 1.2.64.1
Платформа - 8.3.12
Пытаюсь реализовать свой выбор элемента справочника - для реквизита табличной части документа на обычных формах.
Выбираемый реквизит - НомерРулона, тип справочник, подчиненный справочнику Номенклатура.
Задача - при выборе НомераРулона дать пользователю при заполнении табличной части возможность выбора только тех элементов справочника, по которым есть остатки на текущий момент в регистре накопления "ОстаткиРулонов".
Делал так - по методике, найденной на инфостарте.
В свойствах конфигурации включил возможность использования управляемых форм в обычном приложении.
Для справочника НомераРулонов добавил управляемую форму выбора. Для динамического списка этой формы написал такой запрос:
ВЫБРАТЬ
СправочникНомераРулонов.Ссылка,
СправочникНомераРулонов.ПометкаУдаления,
СправочникНомераРулонов.Предопределенный,
СправочникНомераРулонов.Владелец,
СправочникНомераРулонов.Код,
СправочникНомераРулонов.Наименование,
СправочникНомераРулонов.Поставщик,
СправочникНомераРулонов.ДатаПрихода,
СправочникНомераРулонов.Вес,
СправочникНомераРулонов.Цена,
ЕСТЬNULL(ОстаткиРулоновОстатки.КоличествоОстаток,0) КАК Остаток
ИЗ
Справочник.НомераРулонов КАК СправочникНомераРулонов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиРулонов.Остатки(
&ДатаОстатков, Склад= &Склад И Номенклатура= &Номенклатура И Организация= &Организация) КАК ОстаткиРулоновОстатки
ПО ОстаткиРулоновОстатки.НомерРулона = СправочникНомераРулонов.Ссылка
И СправочникНомераРулонов.Владелец = ОстаткиРулоновОстатки.Номенклатура
Процедура МатериалыНомерРулонаНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТД=ЭлементыФормы.Материалы.ТекущиеДанные;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ДатаОстатков", МоментВремени());
СтруктураПараметров.Вставить("Склад", Константы.СкладРулонов.Получить());
СтруктураПараметров.Вставить("Организация", Организация);
СтруктураПараметров.Вставить("Номенклатура", ТД.Номенклатура);
СтруктураПараметров.Вставить("ТекущаяСтрока", ТД.НомерРулона);
СтруктураПараметров.Вставить("Отбор", Новый Структура("Владелец",ТД.Номенклатура));
ОткрытьФормуМодально("Справочник.НомераРулонов.ФормаВыбора",СтруктураПараметров);
КонецПроцедуры
Sinaps, если вы в форме эти параметры в явном виде не присваиваете, то в запрос они не попадают. Нужно явно установить параметры динамического списка, например, в процедуре ПриСозданииНаСервере. Судя по коду выше у вас, возможно, работает только отбор списка по номенклатуре, но количество будет 0 всегда из-за не установленных параметров.
Sinaps @ Сегодня, 13:48
,
В УТП для этих целей есть справочники СерииНоменклатуры и СерийныеНомера, подчиненные по отношению к Номенклатуре. Выбирайте, какой больше нравится, там уже все заточено под них.
Vofka @ 01.10.21, 17:31
,
Спасибо, все получилось.
В процедуре ПриСозданииНаСервере() прописал заполнение параметров запроса из параметров формы.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua