Версия для печати темы (https://pro1c.org.ua/index.php?s=86801cbb01597e66a66dec03dfae5565&showtopic=54625)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Как вернуть выбранное значение из формы списка Справочника в вызвавшую форму элемента другого справочника ?

Автор: andrew76 14.10.19, 16:51

Добрый вечер !

Имеется форма элемента справочника.На нажатию кнопки,расположенной на этой форме,запускается форма
списка другого справочника.На это форме по двойному клику или нажатию клавиши Enter обрабатываю событие
Выбор.Мне нужно передать значение реквизита Наименование (выбранный элемент по клику или Enter'у)
в реквизит Наименование вызвавшей формы первого справочника.Как это реализовать ?
Т.е. я должен заменить значение реквизита Наименование выбранным значением из другого справочника.

Автор: Vofka 15.10.19, 7:20

andrew76, есть несколько вариантов:
1. Если форма открывается модально, то в открываемой форме можно передать что-то через Закрыть(ЧтоТо), а в форме источнике получить это значение, как результат вызова функции ОткрытьМодально;
2. Если в открываемой форме происходит стандартный для формы выбор, то словить это значение можно в обработчике ОбработкаВыбора;
3. Если у вас какая-то своя логика выбора значения или работы с формой, можно использовать Оповестить в форме, которая открывается и ОбработкаОповещения в форме источнике.

Автор: andrew76 15.10.19, 9:24

Vofka @ Сегодня, 10:20 * ,

Вышел из положения следующим образом,прописал следующий код в обработке Выбора табличного поля второго справочника:
Некрасиво,но работает.

СтандартнаяОбработка=Ложь;
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Заменить фамилию "+СокрЛП(ЭтаФорма.ВладелецФормы.Наименование)+Символы.ПС+" на фамилию "+СокрЛП(Элемент.ТекущаяСтрока.Ссылка.Наименование), Режим, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
       ЭтаФорма.ВладелецФормы.Наименование=Элемент.ТекущаяСтрока.Ссылка.Наименование;
       ЭтаФорма.ВладелецФормы.Таб_ОК=Элемент.ТекущаяСтрока.Ссылка.Код;
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
      Возврат;
КонецЕсли;

Автор: getnight 19.10.19, 14:11

andrew76 @ 14.10.19, 16:51 * ,
Почему "некрасиво"? Очень даже красиво.

Правда, я бы добавил предварительно проверку, а та ли форма вызвала справочник?
А вызвала ли его вообще другая форма? или справочник открыт из общего списка?
Как-то так:

Если ТипЗнч(ВладелецФормы)=Тип("Форма") И ВладелецФормы.Заголовок="Контрагенты" Тогда


или

Если ТипЗнч(ВладелецФормы)=Тип("ПолеВвода") И ВладелецФормы.Подсказка="Основной поставщик" Тогда

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua