1с началовыбора не работает

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Начало Выбор Из Списка

Разобрался. В моё случае лучшим вариантом было создать общую переменную, присвоить ей полученное значение из второй процедуры, и в первой процедуре добавить в сам список, так как (в моём случае) нужно было чтобы список каждый раз перезаписывался.

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

Список = Новый СписокЗначений();

Если ЗначениеЗаполнено(НаименованиеИнформативное) Тогда
Список.Добавить(НаименованиеИнформативное);
КонецЕсли;

РезультатВыбора = ВыбратьИзСписка(Список, ЭлементыФормы.НаименованиеПолное);

Если РезультатВыбора <> Неопределено Тогда

НаименованиеПолное = РезультатВыбора.Значение;
мФормироватьНаименованиеПолноеАвтоматически = Истина;

Отказ от события «НачалоВыбораИзСписка» для полей ввода в режиме выбора из списка.
В «1С:Предприятии 8.3» у поля ввода не вызывается НачалоВыбораИзСписка. Это связано с появлением нового свойства поля ввода КнопкаВыпадающегоСписка, которое позволяет по кнопке выводить выпадающий список, формирующийся автоматически. Подробнее см. документацию «Руководство разработчика».
Для устранения несовместимости необходимо найти поля ввода с обработчиком НачалоВыбораИзСписка и перенести его код в другие обработчики согласно критериям:
код по добавлению элементов в список выбора следует разместить в обработчике формы ПриСозданииНаСервере. Кроме того, если состав списка выбора зависит от значений других полей, то код по изменению элементов списка выбора следует вызывать в обработчиках изменения соответствующих полей, например при помощи обработчиков ПриИзменении;
реализацию кода, не связанного с заполнением списка выбора, необходимо пересмотреть с использованием тех средств, которые предоставляет платформа «1С:Предприятие» версии 8.3.3.

Читайте также:  Как отремонтировать воздушный сигнал дудку

Отказ от свойства «КнопкаСпискаВыбора» для полей ввода
В «1С:Предприятии 8.3» у поля ввода отсутствует свойство КнопкаСпискаВыбора. Вместо него теперь следует использовать новое свойство КнопкаВыпадающегоСписка.
Для устранения несовместимости необходимо при помощи приложенного отчета найти поля ввода, у которых в свойстве КнопкаСпискаВыбора было установлено значение «Да», и явно установить в свойстве КнопкаВыпадающегоСписка значение «Да» в том случае, если кнопка выпадающего списка не выводится при значении «Авто».

Рекомендую использовать другие механизмы.

(2) Хорошо. Но вопрос не сильно изменился. Как тогда добавить значения в КнопкаВыпадающегоСписка?

Например:
Процедура Номер1()

Список = Новый СписокЗначений;
Список.Добавить(«Организация»);

Как значения наименования процедуры 2 добавить в список процедуры 1?

Источник

Обработка Выбора выбирает со 2 раза.

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

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

Подскажите, может кто сталкивался с данной ситуацией? Спасибо.

(2) Gray-SV-02, ошибка действительно в коде. Если его закоментить, то все выбирается. Только в чем ошибка

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

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

(11) demart-omsk,
это я понял.

закомментарь эту строчку и
добавь обработку выбора для поля ввода.

Источник

Обработка выбора 1с 8.3 управляемые формы

Добрый день! Начинаю изучать 1С и столкнулась с проблемой.
На форме есть реквизит «Документ» и необходимо его заполнять данными из справочника.

Описала события НачалоВыбора и ОбработкаВыбора, но выбранное значение в поле не подставляется.

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

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

Читайте также:  Asus x54h не работает клавиатура

Обработка формы выбора и вставка данных в БД
Добрый день, подскажите как корректно обработать форму табелирования. 2

Управляемые формы
Начал немного усваивать 1С, вопрос к профи. Есть «управляемые формы», все формы называются.

Загрузка в 1С (Управляемые формы)
Здравствуйте. Помогите пожалуйста исправить ошибки в обработке в управляемых формах. Делаю.

Управляемые формы. Гиперссылка в сообщении
Добрый день. Бухгалтерия 3.0 не Такси. В процессе выполнения обработки сообщения сбоку.

Отчет на СКД (управляемые формы)
Доброго времени суток!Конфигурация БП 3.0 Есть задание: Создать отчет, который будет выводить.

Перевести матрицу на управляемые формы
Как можно переделать данный код на версию 1С 8.2 и не используя квалификатор числа. Форма создана.

Автозаполнение табличной части, управляемые формы
Есть справочник Клиенты(реквизиты Наименование, Код) и документ Работа, с табличной частью.

Источник

Использование ПоказатьВопрос() в событии НачалоВыбора()

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

В обычных формах было допустимо использование конструкции «Ответ = Вопрос()». При вызове этой функции окно программы блокируется (т.е. работает в модальном режиме). Следовательно в пользовательском режиме будет выдана ошибка «Использование модальных окон в данном режиме запрещено».

Какую задачу решал я:

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

Для этого мне необходимо такую проверку написать в событии «НачалоВыбора».

Почему именно здесь? Потому как в этом событии есть параметр «СтандартнаяОбработка».

Если данный параметр установить в значение Ложь, и написать Возврат, то выбор даже не начнётся. Но, к сожалению здесь использовать конструкцию ПоказатьВопрос не получится по следующим причинам:

1. Если установить параметр СтандартнаяОбработка = Ложь сразу в процедуре, то не сработает стандартный механизм выбора, который нам нужен при положительном ответе пользователя.

2. Передать это как параметр в Оповещение тоже нельзя, т.к. назад значение не вернётся. Связано это с тем, что ПоказатьВопрос должно быть последним выполняемым действием в процедуре/функции.

Читайте также:  Poco launcher не работает управление жестами

3. Возможно пользователь ничего не поменял! Тогда и смысла нет ему лишний раз показывать вопрос. Понять произошли изменения или нет можно в событиях «ПриИзменении» либо «ОбработкаВыбора».

По этим причинам пришлось выдумать более сложную схему, состоящую из следующих шагов:

1. Создаем реквизит формы с постфиксом «Исходный».

2. Запоминаем его значение до изменения в событии «НачалоВыбора»:

3. Обрабатываем выбор в событии «ОбработкаВыбора». Здесь мы проверяем, изменилось ли вообще значение. Может и смысла нет задавать пользователю лишний вопрос, ведь он ничего не поменял!

4. Если вспомогательная таблица пустая, то вызываем процедуру, которая является оповещением, как будто пользователь нажал на кнопку «Да». Таким образом ещё уменьшаем количество сценариев, где необходимо вмешательство пользователя.

5. Если вспомогательная таблица не пуста, и значение изменилось — задаем вопрос.

6. В случае с обычными формами, мы бы обработали выбор в обработчике «При изменении». В данной ситуации код этого обработчика ушел в оповещение. Также в оповещение через параметр передаем СтандартнаяОбработка. Ниже по коду видно, что в одном из случаев, мы устанавливаем её в значение «Ложь». Делаем это ДО ВХОДА в оповещение.

7. Последняя задача — обработать выбор пользователя в оповещении. Если пользователь ответил «Нет», то возвращаем исходное значение реквизита из реквизита формы.

8. Выполняем необходимые действия при изменении:

Обратите внимание на то, что процедура СпособОпределенияСпискаСотрудниковЗавершениеВыбора экспортная. Не забывайте для оповещений ставить Экспорт.

Таким вот замысловатым способом удалось обойти ограничения по модальности окон, и решить мою задачу. Также данный подход снизил количество сценариев, при которых пользователь видит вопрос! Это немаловажно при разработке дружественных интерфейсов. Пользователя необходимо как можно реже отрывать от заполнения формы вопросами и сообщениями.

Собственно статью данную решил написать, т.к. ни на сайте 1С, ни на Инфостарте ничего подобного не нашел по событию «НачалоВыбора». Должна быть полезна. Возможно есть другие варианты решения данной задачи. Не претендую на то, что этот единственный. Предлагаемый мною способ — один из вариантов.

Источник

Оцените статью