V8: Как открыть форму списка подчиненного справочника с отбором по владельцу? (кликнув по "ПО КНОПКЕ" на форме)

Публикация № 73469

Программирование - Работа с интерфейсом

8
V8: Как открыть форму списка подчиненного справочника с отбором по владельцу?
(кликнув по "ПО КНОПКЕ" на форме)
(Наиболее правильно с Вашей точки зрения и опыта)

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

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

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

Условие 

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

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

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

см.рис. Конфигуратор

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

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

                       тип: СправочникСписок.Размеры

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

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

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

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

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

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

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

 

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

вариант

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

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

вариант


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


вариант

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

мой (44 символа) а у Вас ?

8

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Serj1C 473 27.07.10 10:50 Сейчас в теме
Символами можно было бы меряться, если была конфигурация.
А вообще задача не интересная
2. Tatitutu 3806 27.07.10 10:54 Сейчас в теме
(2) Ну да..." из серии простой вопрос поставил в тупик "
3. Dima2711 20 27.07.10 11:26 Сейчас в теме
Стандартными средствами
В свойствах кнопки вибираете:
Источник действий=СправочникСписок;
Нажатие=Подчиненный справочник...;
Нажатие (Справочник)=Размеры;
4. Tatitutu 3806 27.07.10 11:38 Сейчас в теме
(3)
Нажатие=Подчиненный справочник...;
Нажатие (Справочник)=Размеры;


поподробнее можно ?
5. DrAku1a 1296 27.04.12 03:31 Сейчас в теме
Если одно и то-же нужно делать для нескольких справочников, тогда процедуру с параметрами вынести в общий модуль и тогда можно обойтись одной строкой кода в каждом справочнике. Да и символов в итоге поменьше будет =)
6. tamaks 101 26.08.13 16:16 Сейчас в теме
Процедура НажатиеКнопки(Кнопка)
	
	ТекСтр = ЭлементыФормы.ТабличнаяЧасть.ТекущаяСтрока;
	Если ТекСтр <> неопределено Тогда
		Ф = Справочники.Размеры.ПолучитьФормуСписка();
		Ф.СправочникСписок.Отбор.Владелец.Использование = Истина;
		Ф.СправочникСписок.Отбор.Владелец.ВидСравнения  = ВидСравнения.Равно;
		Ф.СправочникСписок.Отбор.Владелец.Значение      = ТекСтр.ТипРазмерныхЛинеек;
		Ф.ОткрытьМодально();
	КонецЕсли;
	
	
КонецПроцедуры
Показать
7. CaSH_2004 350 25.09.13 16:06 Сейчас в теме
Было бы гораздо интереснее узнать как программно установить/поменять "Связь по владельцу" не заходя в Конфигуратор. Например привязать к другому списку на форме?
Кто-то сталкивался?
8. user1028119 02.01.19 19:40 Сейчас в теме
ЗначениеОтбора = Новый Структура("Владелец", Объект.Ссылка);
ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.ДоговорыВзаиморасчетов.ФормаСписка", ПараметрыФормы);
А если нужно открыть форму списка справочника подчиненного текущему элементу списка справочника владельца, обработчик нажатия соответствующей кнопки будет выглядеть следующим образом:
ЗначениеОтбора = Новый Структура("Владелец", Элементы.Список.ТекущаяСтрока);
ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.ДоговорыВзаиморасчетов.ФормаСписка", ПараметрыФормы);
Оставьте свое сообщение