Подбор элементов из справочника по группам
По теме из базы знаний
- Универсальная обработка "Распределитель элементов справочников по группам" [F6QMR]
- Универсальный подбор элементов справочника
- Выбор элементов справочников в поле формы
- Групповое изменение наименований и групп элементов справочников с отбором по любому реквизиту, в том числе по части наименования и группе (управляемая форма)
- Поиск и замена дублирующихся элементов справочников по телефонам
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Привет. можно также при открытии использовать список объектов.
В книге про это написано.
ИспользоватьСписокЭлементов(<?>);
Синтаксис:
ИспользоватьСписокЭлементов(<СписокЗначений>)
Назначение:
Реализует фильтрацию элементов справочника, используя нединамический фильтр.
Параметры:
<СписокЗначений> - необязательный параметр. Значение типа - ''СписокЗначений'' - должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.
Замечание:
Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику.
В книге про это написано.
ИспользоватьСписокЭлементов(<?>);
Синтаксис:
ИспользоватьСписокЭлементов(<СписокЗначений>)
Назначение:
Реализует фильтрацию элементов справочника, используя нединамический фильтр.
Параметры:
<СписокЗначений> - необязательный параметр. Значение типа - ''СписокЗначений'' - должен представлять собой список элементов справочника, выбранных для просмотра. Если это значение пустое, то фильтр отключается.
Замечание:
Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику.
Попробывала через ИспользоватьСписокЭлементов(СписокЗначений) как в книжке
Процедура ПриОткрытии( ВыбПризнак)
ВыбПризнак="Закупка"; //Название группы в справочнике
Список=СоздатьОбъект("СписокЗначений");
Спр=СоздатьОбъект("Справочник.Каталог");
Спр.ИспользоватьРодителя(Использоватьродителя());
Спр.ВключатьПодчиненные(0);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если (Спр.Признак=ВыбПризнак) Тогда
Список.ДобавитьЗначение(Спр.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
ИспользоватьСписокЭлементов(Список);
КонецПроцедуры;
этот код в формеСписка справочника расположен, а в документе сделала
Процедура Подбор()
открытьПодбор("Справочник.Каталог")
КонецПроцедуры
И повесила Подбор(0 на кнопку в документе, при нажатии справочник не открывается и вообще ничего не делается. подскажите в чем ошибка?
Процедура ПриОткрытии( ВыбПризнак)
ВыбПризнак="Закупка"; //Название группы в справочнике
Список=СоздатьОбъект("СписокЗначений");
Спр=СоздатьОбъект("Справочник.Каталог");
Спр.ИспользоватьРодителя(Использоватьродителя());
Спр.ВключатьПодчиненные(0);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если (Спр.Признак=ВыбПризнак) Тогда
Список.ДобавитьЗначение(Спр.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
ИспользоватьСписокЭлементов(Список);
КонецПроцедуры;
этот код в формеСписка справочника расположен, а в документе сделала
Процедура Подбор()
открытьПодбор("Справочник.Каталог")
КонецПроцедуры
И повесила Подбор(0 на кнопку в документе, при нажатии справочник не открывается и вообще ничего не делается. подскажите в чем ошибка?
(8) Ольга7, А как вы при открытии формы передаете ей переменную ВыбПризнак? Если Вы ее присваиваете в процедуре зачем принимать? Уберите вообще.
Спр.ИспользоватьРодителя(Использоватьродителя()) - Очень любопытный код... В какой же книжке такое пишут?
Ну как-то так...
Спр.ИспользоватьРодителя(Использоватьродителя()) - Очень любопытный код... В какой же книжке такое пишут?
Процедура ПриОткрытии()//в модуле формы списка справочника с названием "ФормаСписка" см. название формы в методе ОткрытьПодбор()
Если ПустоеЗначение(Форма.Параметр)=0 Тогда
ВыбГруппа = Форма.Параметр;
Список=СоздатьОбъект("СписокЗначений");
Спр=СоздатьОбъект("Справочник.Каталог");
Спр.ИспользоватьРодителя(ВыбГруппа);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Список.ДобавитьЗначение(Спр.ТекущийЭлемент());
КонецЦикла;
ИспользоватьСписокЭлементов(Список);
КонецЕсли;
КонецПроцедуры;
//В документе:
Процедура Подбор()
Спр=СоздатьОбъект("Справочник.Каталог");
Если Спр.НайтиПоНаименованию("Закупка")=0 Тогда
Предупреждение ("группа Закупка не найдена!");
Возврат;
КонецЕсли;
открытьПодбор("Справочник.Каталог","ФормаСписка",Спр.ТекущийЭлемент());
КонецПроцедуры
ПоказатьНу как-то так...
(9) dusha0020, одно замечание
В форме списка ИспользоватьРодителя() можно использовать непосредственно
Поэтому первую процедуру можно переписать:
В форме списка ИспользоватьРодителя() можно использовать непосредственно
Поэтому первую процедуру можно переписать:
Процедура ПриОткрытии()//в модуле формы списка справочника с названием "ФормаСписка" см. название формы в методе ОткрытьПодбор()
Если ПустоеЗначение(Форма.Параметр)=0 Тогда
ВыбГруппа = Форма.Параметр;
ИерархическийСписок(1,0);
ИспользоватьРодителя(ВыбГруппа,0);
КонецЕсли;
КонецПроцедуры;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот