Из табличной части Документа для выбора ТМЦ окрывается модально форма обработки, на форме которой есть реквезит типа Справочник.ТМЦ.
Так вот, нужно при выборе этого реквизита остатки выводились(расчитывались) по конкретному складу, задаётся в документе.
В форме Справочника.ТМЦ имееется возможность выбора склада и она работает. Пользователю лень делать один клик мышью. А у меня не выходит програмно сделать это.
Если ТиС, то кнопка подбор, там все реализовано, склад берется из контекста документа, который передается как параметр. Если нет, то передавайте в обработку контекст документа, соответственно Склад = Конт.Склад;
Сообщение отредактировал igmig65 - 27.08.15, 17:22
Если ТиС, то кнопка подбор, там все реализовано, склад берется из контекста документа, который передается как параметр. Если нет, то передавайте в обработку контекст документа, соответственно Склад = Конт.Склад;
Конфигурация самописная. Есть куски взятые из ТиС, но это не более чем 20%. Обработке склад получен. Как при открытии справочника из обработки задать(передать) склад. В этом и есть основная загвоздка.
Сначала передавайте контекст в обработку, потом этот же контекст документа передавайте в форму справочника. Склад = Форма.Параметр.Склад, если реквизит в документе - Склад.
Сообщение отредактировал igmig65 - 27.08.15, 18:30
Сначала передавайте контекст в обработку, потом этот же контекст документа передавайте в форму справочника. Склад = Форма.Параметр.Склад, если реквизит в документе - Склад.
В обработке Склад = ДокументПодбора.Склад; //получает название склада В справочнике Склад = Форма.Параметр.Склад;// Значение не представляет агрегатный объект (Склад) Что не так?
Во первых: зачем передавать в параметр список значений, если передаете контекст документа, все реквизиты доступны ч-з контекст. Тем более ТМЦ, нужно получать в цикле. Достаточно в док-те:
Процедура ПриОткрытии() Конт = Форма.Параметр; Если (ТипЗначенияСтр(Конт) = "ГрупповойКонтекст") Тогда Склад = Конт.Склад;
Иначе Сообщить("Обробка підбору ТМЦ викликається тільки з документів!", "!"); СтатусВозврата(0); КонецЕсли; ТМЦ.ВыборГруппы(0); КонецПроцедуры
+
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) Флаг=0; Если Рекв = "ТМЦ" Тогда ОткрытьПодбор("Справочник.ТМЦ",,Контекст,0,ТМЦ);//если в обработке есть реквизит склад Иначе Флаг=1; КонецЕсли; КонецПроцедуры
Тут можно и просто ОткрытьФорму("Справочник.ТМЦ", Контекст) Тогда в справочнике в
ПриОткрытии() Конт = Форма.Параметр; Склад = Конт.Склад;//если в обработке есть реквизит склад
Если же в обработке в ПриНачалеВыбораЗначения(Рекв,Флаг)
здесь в Справочник.ТМЦ передается уже контекст документа У вас же в обработке справочник открывается просто кнопкой и никакие параметры не передаются....
Во первых: зачем передавать в параметр список значений, если передаете контекст документа, все реквизиты доступны ч-з контекст. Тем более ТМЦ, нужно получать в цикле. Достаточно в док-те:
Процедура ПриОткрытии() Конт = Форма.Параметр; Если (ТипЗначенияСтр(Конт) = "ГрупповойКонтекст") Тогда Склад = Конт.Склад;
Иначе Сообщить("Обробка підбору ТМЦ викликається тільки з документів!", "!"); СтатусВозврата(0); КонецЕсли; ТМЦ.ВыборГруппы(0); КонецПроцедуры
+
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) Флаг=0; Если Рекв = "ТМЦ" Тогда ОткрытьПодбор("Справочник.ТМЦ",,Контекст,0,ТМЦ);//если в обработке есть реквизит склад Иначе Флаг=1; КонецЕсли; КонецПроцедуры
Тут можно и просто ОткрытьФорму("Справочник.ТМЦ", Контекст) Тогда в справочнике в
ПриОткрытии() Конт = Форма.Параметр; Склад = Конт.Склад;//если в обработке есть реквизит склад
Если же в обработке в ПриНачалеВыбораЗначения(Рекв,Флаг)
здесь в Справочник.ТМЦ передается уже контекст документа У вас же в обработке справочник открывается просто кнопкой и никакие параметры не передаются....
Чуток не то что нужно. В обработке нет реквизита Склад. Добавил в обработку Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) В обработке нет склада. В справочник добавил
Конт = Форма.Параметр; склад=конт.склад;
Вылетает с ошибкой поле агрегатного типа не обнаружено....
Список значений нужно для других целей. Нужно "передать С документа Значение реквизита в форму справочника через форму обработки отрываемую модально". Пока не выходит. Запутался с контекстами.
Склад = Конт.Склад;//если в обработке есть реквизит склад
тяжело его кинуть в форму обработки? если да, то нужно передавать контекст документа из документа в обработку, и его же потом из обработки передавать в справочник. в документе:
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) Флаг=0; Если Рекв = "ТМЦ" Тогда ОткрытьПодбор("Справочник.ТМЦ",,Контекст,0,ТМЦ); Иначе Флаг=1; КонецЕсли; КонецПроцедуры
и зачем обработка? Если же она нужна? мало ли, то: В док-те:
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) Флаг=0; Если Рекв = "ТМЦ" Тогда ОткрытьФормуМодально("Обработка.ПодборТМЦДляДокумента", Контекст); Иначе Флаг=1; КонецЕсли; КонецПроцедуры
в обработке:
Процедура ПриНачалеВыбораЗначения(Рекв,Флаг) Флаг=0; Если Рекв = "ТМЦ" Тогда Конт = Форма.Параметр; ТМЦ = Конт.ТМЦ; ОткрытьПодбор("Справочник.ТМЦ","Для подбора",Конт,0,ТМЦ); Иначе Флаг=1; КонецЕсли; КонецПроцедуры
Да и вообще в Тисе все это реализовано просто через кнопку Подбор, там склад передается сразу в справочник ТМЦ, и он (реквизит Склад) уже при открытии заполнен....в форме"ДляПодбора", и в этой форме реализован вывод остатка в самой форме. Поэтому можно в этой форме брать ТМЦ из контекста док-та, чтобы на нем и спозиционироваться.
Сообщение отредактировал igmig65 - 28.08.15, 11:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!