1с закрыватьпривыборе не работает

v8: Обработка выбора

Bell 19.03.2014 11:58
Прочитано: 16566
Здравствуйте
Избавляюсь от лишних процедур

Открываю форму возвращаю ВыбранноеЗначение через ОбработкуВыбора Элемента (Договоры)
ВСЕ РАБОТАЕМ

ВОПРОС патаюсь возвратить ВыбранноеЗначение через ОбработкуВыбора(ВыбранноеЗначение, ИсточникВыбора) формЫ
Что не так. Вообще не реагирует.

& Код 1C v 8.х Изменено 19.03.14 16:48:22

Yandex
Возможно, вас также заинтересует
Mokey 20.03.2014 11:44
Ответ № 1
Потому что в форме выбора договора надо активировать процедуру ОповеститьОВыборе()
Bell 21.03.2014 12:26
Ответ № 2
Пошло
Есть одна загвоздка

В форме документа ТабличнаяЧасть Договоры
Наименование — Это ссылка на справочник договоры

Источник

Как работает ОбработкаВыбора()?

и в форме документа прописал код

, что нужно еще написать , чтоб обработка попадала в ОбработкаВыбора() в модуле формы?

(1) Kirill2s, вроде при получении формы подбора нужно текущую форму, или элемент формы (тогда событие — на элемент) делать владельцем, т.е.

в форму вставить кнопку подбор с вызовом процедуры типа:

Процедура ПодборНажатие(ДокументОбъект, ФормаДокумента) Экспорт

ФормаПодбора = Обработки.ПодборНоменклатуры.ПолучитьФорму(«ФормаПодбора», ФормаДокумента, ФормаДокумента);
Если НЕ ФормаПодбора.Открыта() Тогда

ОбработкаПодбора = ФормаПодбора.ОбработкаОбъект;
ОбработкаПодбора.ТипЦен = ТипЦен;

ФормаПодбора.РежимВыбора = Истина;
ФормаПодбора.ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Право;
ФормаПодбора.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное;
ФормаПодбора.ПоложениеОкна = ВариантПоложенияОкна.НеПерекрыватьВладельца;
ФормаПодбора.ЗакрыватьПриЗакрытииВладельца = Истина;
ФормаПодбора.ИзменятьСпособОтображенияОкна = ИзменениеСпособаОтображенияОкна.Запретить;
ФормаПодбора.РазрешитьСостояниеСвободное= Ложь;
ФормаПодбора.РазрешитьСостояниеОбычное= Ложь;
ФормаПодбора.РазрешитьСостояниеПрячущееся = Ложь;
ФормаПодбора.ЗакрыватьПриВыборе = Ложь;
КонецЕсли;
ФормаПодбора.Открыть();

А обработку выбора написать вроде следующей (не забыть её в свойство формы привязать):

Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)

Если Источник.Метаданные().Имя = «ПодборНоменклатуры» Тогда

НоваяСтрока = ДокументОбъект.ТоварыУслуги.Добавить();
НоваяСтрока.Номенклатура = ЗначениеВыбора.Получить(0).Значение;

НоваяСтрока.Количество = ЗначениеВыбора.Получить(2).Значение;
Цена = ЗначениеВыбора.Получить(3).Значение;

ЭлементыФормы.ТоварыУслуги.ТекущаяСтрока = НоваяСтрока;
ЭлементыФормы.ТоварыУслуги.ТекущаяКолонка = ЭлементыФормы.ТоварыУслуги.Колонки.Номенклатура;

А в обработке формы подбора разместить список справочника и процедуру ОбработкаВЫБОРА с содержанием для возврата параметров в документ

сп = Новый СписокЗначений;
сп.Добавить(ВыбраннаяСтрока.Ссылка, «Номенклатура»);
сп.Добавить(Колонка, «Колонка»);
сп.Добавить(Количество, «Количество»);
сп.Добавить(Цена, «Цена»);
ЭтаФорма.ОповеститьОВыборе(сп);

Источник

Открыть форму выбора и сохранить выбранное значение для дальнейшего использования.

Всем добрый день!
По нажатию кнопки — должна открываться форма выбора.

Пишу так:
ФормаВыбора = ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора();
ВыбранноеЗначение = ФормаВыбора.ОткрытьМодально();

Ошибка: Интерактивные операции недоступны

Пишу так:
ФормаОснования = ПолучитьФорму(«ПланСчетов.Хозрасчетный.ФормаВыбора»);
ВыбранноеЗначение = ФормаОснования.Открыть();

Ошибка:
Обращение к процедуре объекта как к функции (Открыть)
ВыбранноеЗначение = ФормаОснования.Открыть();
Как открыть форму выбора и сохранить выбранное значение для дальнейшего использования?

Вот рабочий код:

Но сообщение всё равно выдает, о том что в данном режиме запрещена модальность. Но функционал который был нужен — работает.

(0) Ты хоть скажи, с какой ты планеты (зачеркнуто) ОФ/УФ.

По контексту ОФ, но вдруг..

вот несколько примеров

Это сработает, если в форме выбора для списка на форме у тебя установлен признак «РежимВыбора».
Тогда когда в форме будет даблклик, в форму владельца (обработку) тебе прилетит событие формы ОбработкаВыбора() с выбранным значением.

(33) А что мешало посмотреть, как это работает в типовой конфе, да в той же бухгалтерии? Зачем вы пытались использовать модальный режим? В управляемых формах его практически не используют, в конфигураторе вообще может быть запрет на модальный режим. Вы могли просто открыть форму выбора, в данной форме после закрытия использовать команду ОповеститьОВыборе(результат). В форме источнике использовать событие обработка выбора и там уже обрабатывать полученный результат. Без всяких там доп оповещений.
пример:
&НаКлиенте

Источник

Как в форме выбора при закрытии формы отказаться от значения

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

И переделать код на

Вот нашел ранее что писал, думаю этот алгоритм можно и тут применить.
Уже поднималась эта тема.
Текстовое поле имеет тип ДокументСсылка. Справа кнопка выбора позволяет выбрать нужный документ. Если ввести в поле текст значения реквизита. То выдается ошибка:
«В поле введены некорректные данные.Отменить ввод?»
Так и должно быть. С этим все понятно.
Как я хочу сделать:
При окончании ввода по введенному тексту найти запросом нужный документ.
Далее присвоить этому текстовому полю ссылку на найденный документ.
Все работает. Ввожу текст. Документ находится. Поле заполняется:
Док номер такой-то от таког-то числа
Вот только ошибка эта все равно вылазиит.
Отключал
СтандартнаяОбработка = Ложь
В этом случае вообще ничего не заполняется.

——
Если надо кому нашел решение.

Да, всё верно в случае если Ставим СтандартнаяОбработка = Ложь ничего не заполняется. Именно это нам и надо.

1. В вышеописанной процедуре присваиваем значение Глобальной (описанной в модуле этой форме) Переменной.
Например описали:
Перем НайденныйДок;
И присваиваем ей например Номер найденного в запросе документа

2. В процедуре при изменении пишем
Процедура ТабличнаяЧастьДоверенностьПриИзменении(Элемент)
ИщемДокумент=Документы.Доверенность.НайтиПоНомеру(НайденныйДок,ЭтотОбъект.Дата);
Если ИщемДокумент=Документы.Доверенность.ПустаяСсылка() Тогда
Сообщить(«К сожалению не найдена доверенность под Номером «+НайденныйДок);
Иначе
Элемент.Значение=Документы.Доверенность.НайтиПоНомеру(НайденныйДок,ЭтотОбъект.Дата);
КонецЕсли;
КонецПроцедуры;

Источник

Форма выбора (подбор) в управляемых формах

Статья будет состоять из нескольких приведенных примеров кода с описанием того, как прибегнуть к Подбору.

Пример 1.

Простой вызов формы выбора с одним возвращаемым результатом:

Пример 2.

Выбор нескольких значений (документов или справочников) :

В первых 2-х примерах мы использовали обработчик (Событие) формы «ОбработкаВыбора».

Теперь рассмотрим пример с использованием «Обработки оповещения», на мой взгляд более удобно )

Пример 3.

Думаю многие не знают про фишку Оповещением «на Сервере». То есть результат можно вернуть сразу на сервер без дополнительных условий. Работает до 8.3.13.1644, с 8.3.16.1063 этот метод недоступен.

Пример 4.

Мы видим что открывается форма выбора (из списка документов «Реализация товаров и услуг»), но иногда необходимо добавить некий отбор, чтобы при открытии формы не выводить все документы в целом.

Допустим мы хотим выбрать из списка документы только с товаром, для этого установим отбор по «Виду операции». Вид операции — это поле(реквизит) динамического списка, и отбор можно установить по всем доступным полям.

Пример 5.

Есть моменты когда не всегда можно обойтись простым отбором, например необходимо открыть форму выбора со списком за определенный период.

Для этого передаем вместо Отбора -Фиксированные настройки в форму выбора.

Пример 6.

Пример 7.

Как открыть форму выбора с Позиционированием ранее выбранного значения:

Тестировалось на 1С:Предприятие 8.3 (8.3.16.1063) и 1С:Предприятие 8.3 (8.3.13.1644), Спасибо за внимание, возможно, кому-то поможет)

Источник

Читайте также:  Rdp defender не работает
Оцените статью