Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ВыбранныйЭлемент = ФормаВыбора.Открыть() - почему не работает?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Gigi
Всем привет!
Хочу задать вопрос по быстрому и получить тоже так же ...
Никто не подскажет почему указанный ниже фрагмент не работает.
Дело в том, нужно выбрать значение в форме выбора программно. Но при этом что бы открытие формы выбора было не модально. Потому что раздражает то что в таком режиме у окна нет режима свернуть и развернуть окно, а есть только крестик - выйти.
Вот фрагмент
ФормаВыбора=ПолучитьФорму("Справочник.Справочник1.ФормаВыбора",,ЭтаФорма);
ОбъектСсылка = ФормаВыбора.ОткрытьМодально(); // Так проходить без проблем
//ОбъектСсылка = ФормаВыбора.Открыть();  // А так выпердриваеться ... НИКАК НЕ ХОЧЕТ ....
Если ОбъектСсылка <> Неопределено Тогда
ФормаОбъектаСсылки = ПолучитьФорму("Справочник.Справочник1.ФормаОбъекта", новый Структура("Ключ", ОбъектСсылка));
Предупреждение(ФормаОбъектаСсылки.Объект.Наименование);
КонецЕсли;

Короче нужно то что указано в коде, только что бы форма выбора открывалась Не модально, а как обычно.
Если можно просто подкорректируйте под эту цель.
Буду признателен!
podcast
Gigi @ Сегодня, 14:17 необходимо зарегистрироваться для просмотра ссылки ,
Попробуйте указывать владельца правильно.
ОткрытьФорму("Справочник.Справочник1.ФормаВыбора",,ОбъектСсылка);
Если ОбъектСсылка <> Неопределено Тогда
ФормаОбъектаСсылки = ПолучитьФорму("Справочник.Справочник1.ФормаОбъекта", новый Структура("Ключ", ОбъектСсылка));
Предупреждение(ФормаОбъектаСсылки.Объект.Наименование);
КонецЕсли;
Fynjy
Зачем такие извраты?
ОткрытьЗначение(ОбъектСсылка)
Gigi
Цитата(podcast @ 01.03.18, 14:46) необходимо зарегистрироваться для просмотра ссылки
Попробуйте указывать владельца правильно.

Цитата(Fynjy @ 01.03.18, 15:50) необходимо зарегистрироваться для просмотра ссылки
Зачем такие извраты?

Ну ладно ... но в таком случае как определить выбранное из списка формы выбора значение?
Ведь по такой схеме:
ОбъектСсылка = ФормаВыбора.ОткрытьМодально();

"ОбъектСсылка" это выбранное из списка значение. Что и устраивает... просто нужно не модальное открытие.
А таким образом:
ОткрытьФорму("Справочник.Справочник1.ФормаВыбора",,ОбъектСсылка);
Если ОбъектСсылка <> Неопределено Тогда .....

или таким
ОткрытьЗначение(ОбъектСсылка)

Как получить то самое значение переменной "ОбъектСсылка"?
Форму то открыть можно, а выбранное значение как получить?
как в таком сказанном уже стиле:
ОбъектСсылка = ФормаВыбора.ОткрытьМодально();

Просто без модального режима открытия
Petre
Gigi @ Today, 16:07 необходимо зарегистрироваться для просмотра ссылки ,
Из кода вообще не понятно, что вы хотите сделать (после того, как выбрали значение).
Разница между методами ОткрытьМодально и Открыть в том, что последний ничего не возвращает.
Gigi
Цитата(Petre @ 01.03.18, 16:56) необходимо зарегистрироваться для просмотра ссылки
Из кода вообще не понятно, что вы хотите сделать (после того, как выбрали значение).
Разница между методами ОткрытьМодально и Открыть в том, что последний ничего не возвращает.

Не важно что хочу... главное ОТКРЫТЬ ФОРМУ ВЫБОРА НЕ МОДАЛЬНО и ПОЛУЧИТЬ ССЫЛКУ ВЫБРАННОГО ОБЪЕКТА.
Вот и все что нужно!
Но в том то и все дело, что команда ОткрытьМодально() это функция. Очень удобная.
С ее помощью можно одним махом открыть форму выбора и запеременить ссылку выбранного объекта.
Просто САМОЕ ОТКРЫТИЕ НУЖНО НЕ МОДАЛЬНОЕ! Вот и все.
А команда Открыть() позволяет открыть не модально, но за то это процедура. И в таком случае как получить выбранную ссылку?
Короче .. Капец smile.gifsmile.gif
Главное даже по этой ерунде
Petre
Gigi @ Today, 17:07 необходимо зарегистрироваться для просмотра ссылки ,
Все зависит от конкретики.
Если полученную ссылку необходимо поместить в элемент формы, достаточно указать данный элемент как владельца в ПолучитьФорму и больше ничего не делать.
Если полученная ссылка не помещается в элемент формы, а лишь используется программно для х.з. каких целей, то, как вариант, в ПолучитьФорму как владелец указывается ЭтаФорма (как у вас в первом сообщении), и этой же форме-владельце в процедуре события ОбработкаВыбора получаем выбранное значение из параметра ЗначениеВыбора и делаем с ним что необходимо.
logist
Цитата(Gigi @ 01.03.18, 17:07) необходимо зарегистрироваться для просмотра ссылки
Не важно что хочу...

Я бы на этом закрыл тему, реально надоело уже такое обращение.
Gigi
Petre @ Вчера, 17:28 необходимо зарегистрироваться для просмотра ссылки ,
Короче объясняю вкрадце
Есть кнопка на форме.
При нажатии на эту кнопку нужно:
Первое - Нужно что бы происходило то что обычно происходит при выборе реквизита Ссылка... ничего кроме .... т.е. появилась форма выбора БЕЗ МОДАЛЬНОГО РЕЖИМА.
Второе - Получить ссылку выбранного в переменную.
Третье - по этой ссылке сделать кое какие записи на сервере.
Вот собственно и все.
Так что пожалуйста если не трудно пример кода для указанных пунктов. Буду благодарен
Просто все это уже было не однократно сделано в таком стиле, о котором выше уже говорил:
ФормаВыбора=ПолучитьФорму("Справочник.Справочник1.ФормаВыбора",,ЭтаФорма);
ОбъектСсылка = ФормаВыбора.ОткрытьМодально(); // Так проходить без проблем
//ОбъектСсылка = ФормаВыбора.Открыть();  // А так выпердриваеться ... НИКАК НЕ ХОЧЕТ ....
Если ОбъектСсылка <> Неопределено Тогда
ФормаОбъектаСсылки = ПолучитьФорму("Справочник.Справочник1.ФормаОбъекта", новый Структура("Ключ", ОбъектСсылка));
Сообщить(ФормаОбъектаСсылки.Объект.Наименование);
ЗаписьПоСсылке(ОбъектСсылка);
КонецЕсли;

Не устраивает только режим МОДАЛЬНОГО ОТКРЫТИЯ. Вот и все
Так что кодовый пример указанных целей если не трудно
Буду весьма признателен!
Petre
Gigi @ Today, 14:02 необходимо зарегистрироваться для просмотра ссылки ,
Процедура МояКнопкаНажатие(Элемент)
    ФормаВыбора = ПолучитьФорму("Справочник.МойСправочник.ФормаВыбора", , ЭтаФорма);
    ФормаВыбора.Открыть();
КонецПроцедуры

Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
    Если ЗначениеВыбора <> Неопределено Тогда
        Сообщить(ЗначениеВыбора.Наименование);
    КонецЕсли;
КонецПроцедуры

где
- МояКнопкаНажатие - обработчик события "Нажатие" кнопки, которая нажимается;
- ОбработкаВыбора - обработчик события "ОбработкаВыбора" формы, где располагается кнопка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.