Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Подчиненные справочники. Быстро.

  • Добавить свою публикацию
  • для этого требуется регистрация

Клюев В.В.

http://prof1c.kklab.ru


Подчинённые справочники

 

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

 

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


    Справочник1 и Справочник2. В справочнике2 перейдите на вкладку «Владельцы» и выберите владельца – «Справочник1», смотрите как показано на рисунке.

Рисунок1

 


Теперь при создании элементов в «Справочнике2», система будет просить ввести владельца справочника1. Есть опция – Использование подчинения – когда задается подчинение Элементам, группам, или группам и элементам.

 

     Казалось бы всё просто, но проблемы возникают у пользователей. Пользователь при открытии «Справочника2» видит все элементы в совершенно непонятном порядке, да и к тому же, если вы работали с типовыми конфигурациями, то могли заметить, что напрямую в справочнике «Подразделения» вы нигде не задаёте владельца, а при открытии справочника можете выбирать организацию и в зависимости от этого получать элементы, подчинённые той или иной организации; при этом при создании элемента справочника «Подразделения» по умолчанию вы получите того владельца, которого выбрали в форме списка подразделений.
     Итак приступим, и создадим «Форму списка» для нашего «Справочника2», пока предоставьте это 1С, не внося никаких изменений, позже мы подкорректируем созданную конструктором форму.
В «Справочнике2» перейдите на вкладку Формы и добавьте (+) новую Форму списка справочника и нажмите Готово.

Рисунок2


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

Рисунок3
Теперь, для того, чтобы «сие чудо» заработало, необходимо написать код, который будет выполнять отбор при выборе Элемента Справочника1.

 

8.2, 8.3 Управляемые формы

 

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

Рисунок4


В процедуре введите следующий текст:

 

&НаКлиенте
Процедура ОтборСправочник1ПриИзменении(Элемент)

Список.Отбор.Элементы.Очистить();
//
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;

ЭлементОтбора.Использование = Истина;

ЭлементОтбора.ПравоеЗначение = ОтборСправочник1;

ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

КонецПроцедуры

 

8.2 Обычные формы


При построении форм – всё то же самое, только формы необходимо создавать обычные, управляемые формы в обычном приложении не работают.
Разница будет состоять в процедуре отбора для элемента в форме списка и создании реквизита.
Чтобы добавить реквизит на обычную форму нажмите кнопку

Рисунок5

И далее текст процедуры

 

Процедура Справочник1ПриИзменении(Элемент)

ЭтаФорма.Отбор.Владелец.Значение = Справочник1.Ссылка;

ЭтаФорма.Отбор.Владелец.Использование = Истина;

ЭтаФорма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Владелец.Доступность = Ложь;//(?)

КонецПроцедуры 

 

Предпоследней строкой(?) – запрещаем изменять отбор при открытии параметров отбора пользователем - только через элемент управления!

 

Видео (без звука - все понятно без звука)

 
0
Читайте также
Разработки
Поиск повторяющихся элементов справочников. ДЛЯ ЛЮБОЙ КОНФИГУРАЦИИ 7.7
Обработка для поиска дубляжей элементов справочников для 1С7.7(любой)
Групповой поиск и замена значений
Помощь в поиске и замене дублей в справочниках
Доступ к реквизитам справочника в 1с7.7 для каждого пользователя
Разработка разграничивает доступ к реквизитам справочника в 1С 7.7
Еще от автора
≡ к списку статей