Открытие формы выбора и возврат результата

1. SantiouS 14.03.19 11:56 Сейчас в теме
При создании элемента заполняется поле ввода ссылочного типа "Топливо" (СправочникСсылка.Номенклатура).
В данном справочнике хранятся все номенклатуры и топливо. Возникла необходимость открыть форму выбора номенклатуры и выдавать в списке пользователю только те номенклатуры, которые имеют тип "топливо". Доя этого:
1. Создал форму элемента (в даном случае регистра сведений);
2. Создал обработчик события ТопливоНачалоВыбора:
&НаКлиенте
Процедура ТопливоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	СтандартнаяОбработка=Ложь;	
 ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",,Запись.Топливо);//,ЭтаФорма.УникальныйИдентификатор,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры

3. Создал обработчик получения результата выбора
&НаКлиенте
Процедура ТопливоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	а=0;// для точки отладки и просмотра результата
КонецПроцедуры

На данном этапе целью было не стандартной обработкой, а самому открыть форму выбора и взять с нее значение, но значение не получает форма инициирующая вызов формы выбора. Процедура "ТопливоОбработкаВыбора" не отрабатывает после выбора элемента. Подскажите пожалуйста в чём проблема?
В номенклатуре на кнопку выбора в конце процедуры прописана строка кода:
ОповеститьОВыборе(НоменклатураСсылка);
Designer1C; +1 Ответить
По теме из базы знаний
Найденные решения
6. SedovSU@mail.ru 297 14.03.19 12:23 Сейчас в теме
Вы когда вызываете процедуру ОткрытьФорму вам нужно передать владельца, чтобы сработала процедура ОбработкаВыбора

Стандартнаяобработка = ложь;
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",,Элемент)
AlexUnder; user705522_constantin_h; Designer1C; chima; 1v7; SantiouS; +6 Ответить
7. SedovSU@mail.ru 297 14.03.19 12:24 Сейчас в теме
(5) нужно элемент формы передавать\

Вы когда вызываете процедуру ОткрытьФорму вам нужно передать владельца, чтобы сработала процедура ОбработкаВыбора

Стандартнаяобработка = ложь;
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",,Элемент)
user705522_constantin_h; Designer1C; SantiouS; +3 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. N0t_F0und 10 14.03.19 12:02 Сейчас в теме
При открытии формы Справочник.Номенклатура.Форма.ФормаВыбора посмотреть, что установлено в качестве отбора, при необходимости установить свой
3. SantiouS 14.03.19 12:04 Сейчас в теме
(2) Сейчас дело не в отборе, а в том что по нажатию на кнопку "Показать все" открывается форма выбора номенклатуры, но после выбора результат не возвращается в форму инициирующую вызов.
9. VictorRGB2 13 14.03.19 12:29 Сейчас в теме
(3) потому что в открываемую форме не передаете форму владельца, система не знает кого оповещать о выборе и не объявлете оповещение о выборе

надо так, примерно

ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора", <Параметры>, ЭтотОбъект, , , , Новый ОписаниеОповещения("ТопливоОбработкаВыбора", ЭтотОбъект), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Процедура ТопливоОбработкаВыбора(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
    
    Если РезультатЗакрытия = Неопределено Тогда
        
        // "Ничего не выбрано"
        
    Иначе
        
       // обработка РезультатЗакрытия
        
    КонецЕсли;
    
КонецПроцедуры
Показать
11. SantiouS 14.03.19 12:31 Сейчас в теме
(9)
Если РезультатЗакрытия = Неопределено Тогда

// "Ничего не выбрано"

Иначе

// обработка РезультатЗакрытия

КонецЕсли;


Зачем еще Оповещение делать, если система стандартно обрабатывает выбор? (код выше)
13. VictorRGB2 13 14.03.19 12:37 Сейчас в теме
(11) оба варианта имеют место быть
вдруг кому пригодится на случай выбора

но в общем-то вы правы, что-то я зацепился за ОповеситьОВыборе() отсюда и пример такой привел...
SantiouS; +1 Ответить
4. Artem_007 14.03.19 12:19 Сейчас в теме
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",ЭтаФорма....
Так надо
5. SantiouS 14.03.19 12:22 Сейчас в теме
(4)
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",,ЭтаФорма);

Пробовал, результат не возвращается.
7. SedovSU@mail.ru 297 14.03.19 12:24 Сейчас в теме
(5) нужно элемент формы передавать\

Вы когда вызываете процедуру ОткрытьФорму вам нужно передать владельца, чтобы сработала процедура ОбработкаВыбора

Стандартнаяобработка = ложь;
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",,Элемент)
user705522_constantin_h; Designer1C; SantiouS; +3 Ответить
8. SantiouS 14.03.19 12:25 Сейчас в теме
(7) Работает, спасибо.
"Элемент" не равносильно "Запись.Топливо" получается. Сейчас типы посмотрю в конфигураторе. Странно, но Вы помогли. Спасибо!
14. SedovSU@mail.ru 297 14.03.19 12:47 Сейчас в теме
(8) Да не зачто! Неееет это разное. Запись.Топливо - это значение, а Элемент - это элемент управления формы
10. SantiouS 14.03.19 12:29 Сейчас в теме
(7) Все - посмотрел. Я передавал сам реквизит, а нужно было передавать элемент формы.
Элемент - Тип:ПолеФормы
Запись.Топливо - Тип:СправочникСсылка.Номенклатура
В данном случае необходимо было передавать Элемент.
Еще раз спасибо!
6. SedovSU@mail.ru 297 14.03.19 12:23 Сейчас в теме
Вы когда вызываете процедуру ОткрытьФорму вам нужно передать владельца, чтобы сработала процедура ОбработкаВыбора

Стандартнаяобработка = ложь;
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",,Элемент)
AlexUnder; user705522_constantin_h; Designer1C; chima; 1v7; SantiouS; +6 Ответить
12. Artem_007 14.03.19 12:32 Сейчас в теме
Обработка выбора вот такая должна быть
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день