Установить отбор по владельцу

Установить отбор по владельцу

Это не статья, это вопрос к обсуждению.

Вчера приходил парень на собеседевание (программист 1С8.1)

ему попалась данная задачка:

Есть два справочника

ТипРазмерныхЛинеек

и подчиненный ему справочник Размеры

на форме списка справочника ТипРазмерныхЛинеек

расположили Табличное поле

связь по владельцу: СправочникСписок.ПриАктивизацииСтроки

на панели автоматически появится подменю "Перейти"

(в подчиненный справочник "Размеры")

Все работает и так (см.рис. Справочник Владелец и справочник Подчиненный)

Теперь сама задачка

Разместить на форме (форма списка справочника ТипРазмерныхЛинеек)

кнопку — при нажатии на которую откроется форма списка подчиненного справочника Размеры (аналог действия меню "Перейти")

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

вариант

ЗначениеОтбора = Новый Структура("Владелец", ЭлементыФормы.СправочникСписок.ТекущаяСтрока);
ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.Размеры.ФормаСписка", ПараметрыФормы);

(пример: найден в сети)

вариант

Форма=Справочники.Размеры.ПолучитьФормуСписка();
Форма.ЭлементыФормы.СправочникСписок.Значение.Отбор.Владелец.Установить(ТекЭлемент);
Форма.Открыть();
(пример: найден в сети)

вариант

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

В 1С Предприятии 8.2 реализована механика перехода к подчиненной информации. Врезультате платформа автоматически предоставляет команду перехода к списку подчиненного справочника и вставляет ее в форму справочника-владельца в панель навигации в группу Перейти .

Однако, в форму списка платформа такую команду не вставляет, но это может сделать сам разработчик — Команды — Глобальные команды- Параметризуемые — Элементы — Список — Имя подчиненного справочника — Элементы.Список.ТекущиеДанные.Ссылка .

Если нужно, можно все то же самое сделать программным образом. Для этого следует открыть форму подчиненного справочника с отбором по владельцу. Сначала задается параметр формы Отбор , и форма списка открывается с этим параметром. В процессе открытия формы будет установлен отбор по указанному владельцу.

Читайте также:  Удаление вируса в безопасном режиме

При этом, если вы в помещаете команду перехода к подчиненному списку в форму элемента, то значение владельца — это Объект.Ссылка , а если в форму списка, то значение владельца — это Элементы.Список.ТекущаяСтрока .

Например, процедура в модуле формы элемента справочника Контрагенты , которая открывает форму списка подчиненного справочника ДоговорыВзаиморасчетов , может выглядеть следующим образом:

ЗначениеОтбора = Новый Структура("Владелец", Объект.Ссылка);

ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);

А если нужно открыть форму списка справочника подчиненного текущему элементу списка справочника владельца, обработчик нажатия соответствующей кнопки будет выглядеть следующим образом:

ЗначениеОтбора = Новый Структура("Владелец", Элементы.Список.ТекущаяСтрока);

ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);

Демонстрационные примеры с автоматически и программно сформированными командами перехода к списку подчиненного справочника находятся в каталоге 1CITS/EXE/FAQ/Catalog. Примеры выполнены на версии платформы 8.2.9.356.

Для того чтобы открыть форму выбора с отбором в 1с 8.2 (обычные формы), нам нужно выполнить некоторые действия. Сначала мы ее получим. После этого выставим отбор и программно откроем, вот пример кода:

Отбор на форме в поле ввода 1С 8.2 с несколькими значениями

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

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

Читайте также:  Excel название диаграммы из ячейки

Установка отбора в поле ввода на форме в 1С 8.3, событие НачалоВыбора

Теперь рассмотрим отбор в поле ввода на управляемой форме в 1С 8.3. Найдем на форме интересующий нас элемент, в котором мы будем устанавливать отбор, в нашем случае это поле «Организация». Находим событие «НачалоВыбора», щелкаем на лупу и оказываемся в процедуре. Мы видим параметр ДанныеВыбора, этот параметр имеет тип СписокЗначений. Для того чтобы ограничить выбор необходимыми элементами , нам необходимо заполнить СписокЗначений. Элементы выбрать можем только на сервере, поэтому создаем процедуру с директивой компиляции &НаСервере. В данной процедуре заполняем ДанныеВыбора.

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

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

Ссылка на основную публикацию
Усилитель сигнала для тв антенны отзывы
Характеристика в рейтинге 1 Alcad AL-200 Высокое качество во всех аспектах эксплуатации. Самый популярный усилитель в России 2 Eurosky SWA-105...
У каких авто самый крепкий кузов
Получайте на почту один раз в сутки одну самую читаемую статью. Присоединяйтесь к нам в Facebook и ВКонтакте. Специалисты Шведского...
У какого телефона самая большая память
Производительность, крутые тыловые камеры, объем ОЗУ или выделенный аудиочип – все это не имеет значения для определенных людей, которые ставят...
Усилитель сотового сигнала отзывы
Нашел вот еще информацию что Mobi-900 стал занял 1 место в рейтинге репитеров по версии журнала Provider-Review: http://provider-review.ru/reyting-usiliteley-sotovoy-svyazi.html А вот...
Adblock detector