Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 07:43

Два справочника на одной форме

Автор Tanya_Lo, 01 авг 2013, 21:40

0 Пользователей и 1 гость просматривают эту тему.

Tanya_Lo

Подскажи пожалуйста как правильно реализовать такую ситуацию:
есть справочник Контрагенты
        справочник Контактные лица (владелец - спр.Контрагенты).
Надо сделать  форму, содержащую списки двух справочников.
1. Открываю форму списка справочника Контрагенты.
2. Добавляю реквизит "Подчиненный" - тип ДинамическийСписок, основная Таблица - Справочник.КонтактныеЛица.
Как связь настроить??
Или может вообще по другому делать надо?

mixqn

форма обычная или управляемая?
по управляемой не подскажу (до исх пор толком с ними не работал, есть минимальный опыт).
в обычных все просто: пример можете подсмотреть в том же справочнике контрагентов - в нем 2 таб. поля, одно содержит группы, другое элементы и группы. при активации группы в одном таб поле отображается ее содержимое во второй. Работает это дело благодаря заполнению свойства "Связь по родителю".

с владельцем работает тот же принцип: размещаете 2 таб поля, у одного тип СправочникСписок.Контрагенты, у второго - СправочникСписок.КонтактныеЛица; в поле КонтактныеЛица заполняете свойство "Связь по владельцу" = событие "<Имя_Таб_Поля_Контрагенты>.ПриАктивизацииСтроки", где <Имя_Таб_Поля_Контрагенты> - имя первого табличного поля (СправочникСписок.Контрагенты), как вы его задали.

все :)

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

Tanya_Lo


GRADUS

Цитата: Tanya_Lo от 02 авг 2013, 20:59
управляемое приложение

Для какой цели он подчинен? Только не говори, что для формы в котором будут 2 справочника )
Добавлено: 02 авг 2013, 21:40


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

Насчет создания реквизита, зачем? :bleh:

sadovod

Цитата: Tanya_Lo от 02 авг 2013, 20:59
управляемое приложение
В управляемой форме такую штуку можно легко и удобно с помощью настройки динамического списка и нескольких строчек кода. Я бы сделал так:
1. В настройке динамического списка "КонтактныеЛица" (в его свойстве "Настройка списка") выбираете закладки "Настройки" -> "Отбор" и добавляете там элемент отбора, выбрав реквизит "Владелец". Нажмите кнопку "Подробно", чтобы увидеть все столбцы элемента отбора: "ЛевоеЗначение" = "Владелец", "ВидСравнения" = "Равно", "ПравоеЗначение" оставьте пустым, а для "Представления" задайте любой произвольное имя, например "ОтборПоВладельцу". Оно будет нужно, чтобы в коде найти именно этот элемент отбора.
2. В обработчике события "ПриАктивацииСтроки" элемента "СписокКонтрагентов" (ну, или как там он у вас называется :) ) пишете такой код для установки ПравогоЗначения отбора списка "КонтактныеЛица":
&НаКлиенте
Процедура СписокКонтрагентовПриАктивизацииСтроки(Элемент)
Для каждого текущий_элемент Из СписокКонтактныхЛиц.Отбор.Элементы Цикл
Если текущий_элемент.Представление = "ОтборПоВладельцу" Тогда        //  нашли нужный элемент отбора, ведь могут быть и другие
текущий_элемент.ПравоеЗначение = Элементы.СписокКонтрагентов.ТекущаяСтрока;    // а здесь установим нужное значение отбора
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Разумеется, все наименования элементов формы у вас могут быть другими :)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск