Имя: Пароль:
1C
 
V8: НачалоВыбора / НачалоВыбораИзСписка как уменьшить объем кода?
0 andrewrocker
 
naïve
22.07.25
19:14
Привет всем,

в 1с:нетленка есть около 20 полей, поведение которых нужно описать. Мне нужно прописать преселекты, чтобы юзерам было проще работать.

Например поле поле "производитель авто" и "модель авто" идут один за одним.

При выборе "производителя авто", должно работать два преселекта у поля "модель авто" (выбор из выпадающего списка, выбор по форме выбора).

вопрос на понимание:
-- можно ли прописать как-то на уровне справочника номенклатуры (формы выбора справочника) к примеру, чтобы сначала проверялась исходная форма на предмет заполненности неких оговоренных полей?

Или это более сложно и вычурно, что пройтись по всем формам и вручную прописать преселекты по искомым полям?
1 Kuzmich123
 
22.07.25
19:45
возможно не до конца понимаю из вопроса в чем сложность, но  при открытии формы выбора ты передаешь параметр (модель), а когда форма открывается, то генерируется тз, где каждой модели будет соответствовать марка, далее отбор в  ТЗ по марке и у тебя готовый данные по моделям именно этой марки
2 andrewrocker
 
naïve
22.07.25
19:51
(1) спасибо за обратную связь. Часть ответов для себя прояснил. Буду на каждой форме, где требуется выбор из справочника с преселектом, прописывать условия преселекты.

Выбор с преселектом у меня получается при открытии формы без проблем. Создал код на событие "НачалоВыбора".

Остался по сути единственный вопрос:
Как сделать так, чтобы выпадающий список ранее выбранных значений или всех остальных значений тоже отфильтровывался? Событие НачалоВыбораИзСписка нынче не работает. Версия платформы 8.3.25
3 andrewrocker
 
naïve
22.07.25
20:14
Чтобы текстовый преселект работал как нужно, мне помогают события "АвтоПодбор" и "ОкончаниеВводаТекста". Осталось внести в историю выбора преселект)

&НаКлиенте
Процедура МодельТехникиАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	ПараметрыПолученияДанных.Отбор.Вставить("ПроизводителиТехники", ЭтаФорма.Объект.ПроизводителиТехники);		
	
КонецПроцедуры

&НаКлиенте
Процедура МодельТехникиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ПараметрыПолученияДанных.Отбор.Вставить("ПроизводителиТехники", ЭтаФорма.Объект.ПроизводителиТехники);		
	
КонецПроцедуры