Есть документ "Расходная накладная" Есть справочник Номенклатура, состоящий собственно из самой Номенклатуры и реквизита Вид номенклатуры (материал или услуга соответсвенно) При заполнении табличной части в Расходной накладной, нужно чтобы по полю Номенклатура пользователь мог выбрать только записи из справочника Номенклатура с Видом "материал" Вопроса два: В какой момент поставить фильтр на справочник Номенклатура (обработка события поля в табличной части ? ) И как этот фильтр поставить ? Реквизит Вид номенклатуры в самом документе "Расходная накладная" не используется
1. Собственно, можно посмотреть, как это сделано в типовой УТ 2. Перехватить обработчик НачалоВыбора и поставить отбор на форму выбора. Не забыть отключить стандартный обработчик.
А на счет 2 пункта можешь подробней рассказать (на пальцах) только начинаю с 1С - поэтому не совсем понятно в свойствах поля табличной части "Номенклатура" нашел обработчик события "НачалоВыбора" - это о нем идет речь ? что значит перехватить ? А форму выбора, я так понимаю, нужно создать для самого справочника "Номенклатура" ? А как поставить отбор на форму выбора ?
Перехватить - это значит написать свой обработчик события Вкратце: Код: СтандартнаяОбработка = Ложь; ФормаВыбора = Элемент.Значение.ПолучитьФормуВыбора(, Элемент); ФормаВыбора.РежимВыбора = Истина; ФормаВыбора.СправочникСписок.Отбор.ВидНоменклатуры = <Значение> ФормаВыбора.СправочникСписок.Отбор.ВидСравнения = ФормаВыбора.СправочникСписок.ВидСравнения.Равно; ФормаВыбора.СправочникСписок.Отбор.Использование = Истина; ФормаВыбора.Открыть(); Писал прямо тут - так что мог ошибиться...
Чуть-чуть пришлось подкоректировать Код: СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(, элемент); ФормаВыбора.РежимВыбора = Истина; ФормаВыбора.СправочникСписок.Отбор.ВидыНоменклатуры.Значение = Перечисления.ВидыНоменклатуры.Материал; ФормаВыбора.СправочникСписок.Отбор.ВидыНоменклатуры.ВидСравнения = ВидСравнения.Равно; ФормаВыбора.СправочникСписок.Отбор.ВидыНоменклатуры.Использование = Истина; ФормаВыбора.Открыть(); спасибо большое !
в продолжение темы о расходной накладной подскажите как реализовать контроль дубликатов номенклатуры при проведении документа ? пишу по русски, что бы не получалось в одной расходной накладной: валенки - склад основной - 3 штуки валенки - склад основной - 5 штук начал делать перебор цикл в цикле, но можеть быть есть более элегантное решение вопроса ?
насколько я знаю, это метод Таблицы значений итак, мы сначала переносим данные табличной части в ТЗ потом делаем ТЗ.Свернуть по нужным колонкам а потом в цикле сравниваем с данными табличной части ? или ... не совсем понятна мысль ... просто этот вариант мне кажется еще более тяжеловесным по сравнению с просто перебором