1с не работает форма выбора

Не работает форма выбора

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

Процедура НПНачалоВыбора(Элемент, СтандартнаяОбработка)
Форма = Справочники.НоменклатураПодч.ПолучитьФормуВыбора();
Форма.ПараметрВыборПоВладельцу = Справочники.Номенклатура.НайтиПоКоду(«000000001»);
Форма.Открыть();
СтандартнаяОбработка=Ложь;
КонецПроцедуры

Думал откроется подчиненный справочник с элементами, которые будут соответствовать владельцу с кодом 00000001. Но при открытии формы выбора наблюдаю все записи! В чем может быть дело.

При работе в формах с подчиненных справочниками имеется ряд особенностей.

Прежде всего, следует отметить свойства формы списка справочника ПараметрОтборПоВладельцу и ПараметрВыборПоВладельцу.

Свойство ПараметрОтборПоВладельцу используются для передачи в форму списка справочника информации о том, что список нужно отображать по определенному владельцу. Расширение формы списка справочника на основании значения этого свойства в процессе открытия формы устанавливает отбор по владельцу. Этот параметр используется, например, системой при открытии подчиненного справочника по определенному элементу из списка справочника-владельца (по кнопке «Перейти»). Если отсутствует колонка для отображения владельца, то при открытии формы отключается возможность управления отбором пользователем, чтобы просмотр списка выполнялся строго по указанному владельцу.

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

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

В 1С:Предприятии 8.0 выбор в поле ввода значения подчиненного справочника не производит предварительного выбора владельца (такое поведение было реализовано в 1С:Предприятии 7.7). Если в момент выбора в поле ввода значение владельца для поля ввода не установлено (ни через связь по владельцу, ни через значение свойства ВыборПоВладельцу), то форма будет открыта без установленного владельца. Таким образом, необходимо в форме выбора подчиненного справочника предусмотреть возможность выбора владельца.

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

Читайте также:  Utorrent не работает через прокси

Может использоваться возможность просмотра справочника по всем владельцам. В этом случае следует вставить в список колонку для отображения владельца. Однако такой вариант тоже может быть неудобен для выбора.

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

я ее прочитал и понял что я не понял назначение свойства ПараметрОтборПоВладельцу, которое раньше думал что понимал! Завис на полдня

(3) Думаю, ПараметрВыборПоВладельцу — показывет все, дает выбрать тока по владельцу.

ПараметрОтборПоВладельцу — + отбор устанавливает, т.е не все показывает.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Не важно где работаешь важно

Источник

не открывается управляемая форма справочника

Всем добрый день.

Платформа 8.3.13.1513.
Старенькая конфигурация УТ 10.3.14.5, сильно доработанная.
В конфигурации у справочника «Контрагенты» добавил четыре управляемые формы (есть большая необходимость): Форму элемента, Форму группы, Форму списка и Форму выбора.
Все формы выбрал в качестве основных на странице форм на закладке «Дополнительно» (всё ж таки пока основной режим работы — толстый клиент и его «неуправляемые» формы).

При выборе значения поля на управляемой форме новой обработки не открывается форма выбора, а появляется выпадающий список сразу со всеми элементами справочника Контрагенты.
В конце списка — гиперссылка «Показать все». Она не работает (не открывает управляемую форму выбора).
Перепроверил на УФ нового внешнего отчета. Добавил туда только один реквизит с типом СправочникСсылка.Контрагенты — показывает выпадающий список! Что за .

При этом, у поля с другим типом, например «Физ. лица», у которого нет ни одной управляемой формы — всё работает как надо. То есть
открывается автоматически сгенерированная управляемая форма выбора.

Подскажите, где я мог так накосячить? Где и что надо посмотреть, чтобы открывалась-таки управляемая форма выбора?

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

Я для проверки создал внешнюю обработку и на У-форму добавил один реквизит
с типом СправочникСсылка.Контрагенты: всё равно выдаёт выпадающий список.
Чую что копаться надо не в свойствах поля или реквизита формы, а где-то глубже.
Но где именно — не пойму.

Источник

Управляемая форма. Нет кнопки выбрать в списке справочника.

Создал новый справочник, при вводе по строке нормально выбирается элемент справочника, но если открыть форму списка, то нет кнопки «выбрать», хотя для командной панели стоит «автозаполнение» права на справочник есть все. При двойном щелчке на элементе выбора не происходит, а открывается сам элемент.

Что еще глянуть?

Читайте также:  Как настроить группу дискорда

можно было сделать

Событие: ПриНачалеВыбора
СтандартнаяОбработка = Ложь;
Форма = ..ПолучитьФорму или ..ПолучитьФормуСписка
Форма.РежимВыбора = Истина
Форма.Открыть()

(8) Sergey_SP,
Можно, но какой смысл, если это стандартный механизм выбора, максимум в свойствах элемента указать форму выбора, если она отличается от предопределенной формы выбора.

И касательно кода: более правильно и оптимально с точки зрения клиент серверного взаимодействия:

Так и не понял, в чем проблема.

Сделал тестовую конфигурацию, все работает, как надо.

Так я и не говорю что проблема постоянная, на форме документа несколько реквизитов с типом справочник, и только у одного было такое поведение.

(15) Открывалось всё стандартно, т.е. никаких процедур на контрол повешено не было.

При просмотре отладчиком вижу что структура Параметры имеет четыре поля: ЗначениеЗаполнения, РежимВыбора, ТекстЗаполнения, ЭтоГруппа. Поля Ключ нет в помине.

ВыбраннаяФорма на входе имеет значение Неопределено, какую бы я форму не выбирал в свойстве ФормаВыбора поля.

Источник

Не работает отбор на форме

Доброго времени. Конфигурация самописная. При выборе на форме организации, хочется видеть подразделения этой организации, но выходит просто пустой список. Что делаю не так?

ВЫБРАТЬ
СправочникПодразделенияОрганизаций.Ссылка,
СправочникПодразделенияОрганизаций.Владелец,
СправочникПодразделенияОрганизаций.Родитель,
СправочникПодразделенияОрганизаций.Код,
СправочникПодразделенияОрганизаций.Наименование
ИЗ
Справочник.ПодразделенияОрганизаций КАК СправочникПодразделенияОрганизаций
ГДЕ
СправочникПодразделенияОрганизаций.Владелец = &Владелец

Через консоль запросов видно то, что нужно?

(9) Давайте экспериментировать.
Уточню дальше.
1) Форма открылась. Реквизит Организация пустая, значит ДС показывает все подразделения. Если не пустая, то по всей видимости это обрабатывается при создании формы. Т.е. если организация не пустая, то установить отбор. (коллекция отборов содержит 1 элемент или 0) Все работает корректно
2) Далее меняется реквизит — Если до этого коллекция отборов была пустая, то добавляется 1 элемент отборов и все работает хорошо. Если коллекция уже была заполнена, то отборов становится 2 и уже не работает (взаимоисключают)

Можете пройти отладкой с момента создания формы до первого изменения реквизита Организация.
Нужно узнать количество отборов в коллекциях Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных().Отбор.Элементы.Количество()
Список.Отбор.Элементы.Количество()

У меня предположение, что добавляется много отборов, которые накладываются друг на друга.

Если не хотите расследовать, то измените ДС на произвольный запрос, выберете нужные поля и поставьте условие

«ВЫБРАТЬ
| Все нужные поля
|ИЗ
| Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
|ГДЕ
| ПодразделенияОрганизаций.Владелец = &Владелец»;

Источник

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