Меню

1с не работает обработкавыбора

Не работает обработка выбора

На форме есть реквизит ДокОснование

на нем висит событие

Процедура ДокОснованиеНачалоВыбора(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
ФормаВыбораДокумента = Документы.ЗаказПокупателя.ПолучитьФормуВыбора(, ЭтотОбъект, );
ФормаВыбораДокумента.ДокументСписок.Отбор[«Фирма»].ВидСравнения = ВидСравнения.Равно;
ФормаВыбораДокумента.ДокументСписок.Отбор[«Фирма»].Значение = ЭлементыФормы.Фирма.Значение;
ФормаВыбораДокумента.ДокументСписок.Отбор[«Фирма»].Использование = Истина;
ФормаВыбораДокумента.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Фирма.Доступность = Ложь;

Если Не Контрагент.Пустая() Тогда
ФормаВыбораДокумента.ДокументСписок.Отбор[«Контрагент»].ВидСравнения = ВидСравнения.Равно;
ФормаВыбораДокумента.ДокументСписок.Отбор[«Контрагент»].Значение = ЭлементыФормы.Контрагент.Значение;
ФормаВыбораДокумента.ДокументСписок.Отбор[«Контрагент»].Использование = Истина;
ФормаВыбораДокумента.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Контрагент.Доступность = Ложь;
КонецЕсли;

ФормаВыбораДокумента.РежимВыбора = Истина;
ФормаВыбораДокумента.Открыть();

Почему то после выбора не срабатывает вот эта процедура
Процедура ДокОснованиеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;

ДокументОбъект.Заполнить( );
Описание:
Заполняет данные документа данными из другого объекта. Инициирует событие ОбработкаЗаполнения и вызов его процедуры-обработчика в модуле документа. В ней может размещаться алгоритм, заполняющий данные документа из переданного значения

Что написано в ОбработкаЗаполнения ?

(2) а чему равно значение ВыбранноеЗначение в момент :

единственное что приходит в голову — что ВыбранноеЗначение не заполнено и поэтому не выполняется.

Источник

Не заходит в ОбработкуВыбора

Добрый вечер.
Для БП 3.0(Интерфейс Такси) делаю внешнюю обработку для заполнения табличной части, для документа Требование накладная при выборе документа Поступление должна заполняться табличная часть, но почему-то при выборе Поступления не происходит захода в ОбработкуВыбора, далее приведу кусок кода

&НаКлиенте
Процедура ВопросОчиститьТабличнуюЧасть(РезультатВопроса, ДополнительныеПараметры) Экспорт

Если РезультатВопроса = КодВозвратаДиалога.Да Тогда

ТекстСообщения = «Очистка ТЧ»;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);

Если ДокТребование.Материалы.Количество()>0 Тогда
ДокТребование.Материалы.Очистить();
КонецЕсли;

СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить(«Проведен», Истина);

СписокВидовОпераций = Новый СписокЗначений;
СписокВидовОпераций.Добавить(ПредопределенноеЗначение(«Перечисление.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия»));

СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить(«Отбор», СтруктураОтбора);
СтруктураПараметров.Вставить(«РежимВыбора», Истина);
СтруктураПараметров.Вставить(«МножественныйВыбор», Ложь);
СтруктураПараметров.Вставить(«ЗакрыватьПриВыборе», Истина);

ФормаВыбор = ПолучитьФорму(«Документ.ПоступлениеТоваровУслуг.ФормаВыбора»,СтруктураПараметров, ЭтаФорма);
ФормаВыбор.Открыть();

Если ВыбранноеЗначение = Неопределено Тогда
ТекстСообщения = «Документ не выбран!»;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
Возврат;
КонецЕсли;

ТекстСообщения = «Обработка завершена»;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);

СП:
Расширение поля формы для поля ввода.ОбработкаВыбора (Form field extension for a text box.ChoiceProcessing)
Расширение поля формы для поля ввода (Form field extension for a text box)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:

Тип: Произвольный.
Выбранное значение, которое будет установлено как значения поля ввода или массив выбранных значений в случае, если в подчиненной форме свойство МножественныйВыбор имеет значение Истина.
В параметре можно вернуть другое значение, которое и будет помещено в элемент управления.
Выбранное значение будет помещаться в историю выбора поля ввода управляемой формы.

Читайте также:  Почему не работают задние фонари ваз 2107

Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:

Вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления.
Примечание:

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

Тип: Произвольный.
Результат выбора в подчиненной форме. В случае множественного выбора возвращается массив выбранных значений.
Тип: Произвольный.
Форма, где осуществлен выбор.
Описание:

Возникает на клиенте при выборе объекта в одной из подчиненных форм или при вызове в одной из подчиненных форм метода ОповеститьОВыборе».

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Что делать если не работает ubisoft connect

Источник

Событие обработка выбора для УФ

Добрый день. Конфигурация бух 3.0. Помогите пожалуйста разобраться с событием обработка выбора. При выборе значения из подчинённой формы не происходит действий на основной форме. Почему так? В основной форме открывается форма списка по команде:

&НаКлиенте
Процедура ЗаполнитьМаршрут(Команда)

Объект.ЭтапыРабот.Очистить(); //очистка табл части документа
ВыбФорма = ПолучитьФорму(«Справочник.ТиповыеМаршрутыЗаявок_ЕО.Форма.ФормаВыбора»); //вызов формы выбора этапов
ВыбФорма.Открыть();

В форме выбора такой код:

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

ОповеститьОВыборе(ВыбранноеЗначение);
СтандартнаяОбработка = Ложь;

Так же в основной форме есть процедура обработка выбора

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

Если ТипЗнч(ЗначениеВыбора) = Тип(«СправочникСсылка.ТиповыеМаршрутыЗаявок_ЕО») и ЗначениеЗаполнено(ЗначениеВыбора) Тогда
ОбработатьЗаполнениеСпискаЭтапов(ЗначениеВыбора, Объект.Дата);
КонецЕсли;

И последующее заполнение табличной части основной формы:

&НаКлиенте
Процедура ОбработатьЗаполнениеСпискаЭтапов(Маршрут, Дата)

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

(1) И ещё небольшой дополнительный вопрос. бух 2.0 после выбора элемента в форме выбора переменная «ЗначениеВыбора» в процедуре «ОбработкаВыбора» принимается как ссылка на выбранный элемент, т.е. я могу обращаться к реквизитам : Актуальность, ВерсияДанных, Ссылка и т.д. Как я понял это реализовано через такой механизм формы выбора :

В бух 3.0 таких модулей я не обнаружил. Может я конечно и ошибаюсь, но как ещё можно получить значение выбора с возможностью обращения к реквизитам полученного объекта?

Источник

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

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

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

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

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

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

Читайте также:  Что делать если геймпад не работает пс4

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

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

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

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

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

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

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

Источник

Adblock
detector