Как программно вызвать процедуру выбора из справочника в обычной форме 1С 8.2?

Всю голову сломал уже.
Есть форма документа, в нем поле - СправочникСсылка.Болты
9a03abc2bf8c4dec933b5447651a2070.png
Задача проверить, совпадает ли размер болта с размером гайки.
Сделал процедуру ПриИзменении, но она срабатывает только один раз. Если после того, как нажал Нет в диалоге и снова выбрал неправильный болт, он попадает в документ уже без проверки.
4c75a86c8ccb477d9d538cdf71644245.png
Я подозреваю, что неправильно вызываю окно выбора из справочника Болты. Но не могу найти рабочее решение. Или его вообще нет?
Заранее благодарю за ответ.
  • Вопрос задан
  • 2337 просмотров
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
1) Не открывать форму выбора программно, а после оповещения пользователя про ошибку предложить сделать этот выбор ему самому.
2) Открыть форму модально и получить результат в переменную, которую тут же обработать или забросить в свойство объекта и вызвать эту же функцию (рекурсия).
3) Воспользоваться обработчиком формы ОбработкаВыбора, который вызывается после события выбора в подчиненной форме (при получении вашей формы выбора нужно указать текущую форму как владельца).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fosihas
@fosihas
Автоматизации учета на 1С.
Еще конструкции
Процедура ПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка) 
        // Запретить стандартную обработку. 
        СтандартнаяОбработка = Ложь; 
        // Получить форму выбора справочника как подчиненную полю ввода. 
        ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора( , Элемент); 
        // Открыть полученную форму 
        ФормаВыбора.Открыть(); 
 
КонецПроцедуры


и передачей параметра
Форма = Отчеты.ОтчетДиаграмма.ПолучитьФорму("ФормаОсновная", ЭтаФорма); 
Форма.ПоложениеОкна = ВариантПоложенияОкна.НеПерекрыватьВладельца; 
Форма.Открыть();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы