Всем приветь.
Не выход сделать такую вещь....
Из табличной части Документа для выбора ТМЦ окрывается модально форма обработки, на форме которой есть реквезит типа Справочник.ТМЦ.
Так вот, нужно при выборе этого реквизита остатки выводились(расчитывались) по конкретному складу, задаётся в документе.
В форме Справочника.ТМЦ имееется возможность выбора склада и она работает. Пользователю лень делать один клик мышью. А у меня не выходит програмно сделать это.
Кто сталкивался подскажите.
! | Правила, п.5 |
Если ТиС, то кнопка подбор, там все реализовано, склад берется из контекста документа, который передается как параметр.
Если нет, то передавайте в обработку контекст документа, соответственно Склад = Конт.Склад;
Сначала передавайте контекст в обработку, потом этот же контекст документа передавайте в форму справочника.
Склад = Форма.Параметр.Склад, если реквизит в документе - Склад.
В документе
спПарам = СоздатьОбъект("СписокЗначений");
спПарам.Установить("ДокументПодбора", Контекст);
спПарам.Установить("ТМЦ", ?(ТМЦ.Выбран()=1, ТМЦ, 0));
спПарам.Установить("Склад", ?(Склад.Выбран()=1, Склад, 0));
спПарам.Установить("ТабПодбора", 0);
ОткрытьФормуМодально("Обработка.ПодборТМЦДляДокумента", спПарам);
Процедура ПриОткрытии()
Если (ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений") Тогда
Попытка
ДокументПодбора = Форма.Параметр.Получить("ДокументПодбора");
ТМЦ = Форма.Параметр.Получить("ТМЦ");
Исключение
Сообщить("В обробку підбору ТМЦ передано некоректні параметри!", "!");
СтатусВозврата(0);
КонецПопытки;
Иначе
Сообщить("Обробка підбору ТМЦ викликається тільки з документів!", "!");
СтатусВозврата(0);
КонецЕсли;
СкладДок = ДокументПодбора.Склад;
ТМЦ.ВыборГруппы(0);
КонецПроцедуры
Процедура ПриОткрытии()
Конт = Форма.Параметр;
склад=Форма.Параметр.Склад;
****
КонецПроцедуры
Во первых: зачем передавать в параметр список значений, если передаете контекст документа, все реквизиты доступны ч-з контекст.
Тем более ТМЦ, нужно получать в цикле. Достаточно в док-те:
ОткрытьФормуМодально("Обработка.ПодборТМЦДляДокумента", Контекст)
Процедура ПриОткрытии()
Конт = Форма.Параметр;
Если (ТипЗначенияСтр(Конт) = "ГрупповойКонтекст") Тогда
Склад = Конт.Склад;
Иначе
Сообщить("Обробка підбору ТМЦ викликається тільки з документів!", "!");
СтатусВозврата(0);
КонецЕсли;
ТМЦ.ВыборГруппы(0);
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг)
Флаг=0;
Если Рекв = "ТМЦ" Тогда
ОткрытьПодбор("Справочник.ТМЦ",,Контекст,0,ТМЦ);//если в обработке есть реквизит склад
Иначе
Флаг=1;
КонецЕсли;
КонецПроцедуры
ПриОткрытии()
Конт = Форма.Параметр;
Склад = Конт.Склад;//если в обработке есть реквизит склад
Конт = Форма.Параметр;
ОткрытьФорму("Справочник.ТМЦ", Конт);
ОткрытьФормуМодально("Обработка.ПодборТМЦДляДокумента", Контекст)
Процедура ПриОткрытии()
Конт = Форма.Параметр;
Если (ТипЗначенияСтр(Конт) = "ГрупповойКонтекст") Тогда
Склад = Конт.Склад;
Иначе
Сообщить("Обробка підбору ТМЦ викликається тільки з документів!", "!");
СтатусВозврата(0);
КонецЕсли;
ТМЦ.ВыборГруппы(0);
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг)
Флаг=0;
Если Рекв = "ТМЦ" Тогда
ОткрытьПодбор("Справочник.ТМЦ",,Контекст,0,ТМЦ);//если в обработке есть реквизит склад
Иначе
Флаг=1;
КонецЕсли;
КонецПроцедуры
ПриОткрытии()
Конт = Форма.Параметр;
Склад = Конт.Склад;//если в обработке есть реквизит склад
Конт = Форма.Параметр;
ОткрытьФорму("Справочник.ТМЦ", Конт);
Конт = Форма.Параметр;
склад=конт.склад;
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг)
Флаг=0;
Если Рекв = "ТМЦ" Тогда
ОткрытьПодбор("Справочник.ТМЦ",,Контекст,0,ТМЦ);
Иначе
Флаг=1;
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
Конт = Форма.Параметр;
склад=конт.склад;
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг)
Флаг=0;
Если Рекв = "ТМЦ" Тогда
ОткрытьФормуМодально("Обработка.ПодборТМЦДляДокумента", Контекст);
Иначе
Флаг=1;
КонецЕсли;
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг)
Флаг=0;
Если Рекв = "ТМЦ" Тогда
Конт = Форма.Параметр;
ТМЦ = Конт.ТМЦ;
ОткрытьПодбор("Справочник.ТМЦ","Для подбора",Конт,0,ТМЦ);
Иначе
Флаг=1;
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
Конт = Форма.Параметр;
склад=конт.склад;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua