Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отображение только групп в Справочнике          
ZhenyaYa Подменю пользователя
сообщение 08.08.13, 11:58
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте! В Документе есть реквизит типа Справочник. Нужно при интерактивном выборе элемента этого справочника отображать и выбирать только группы ( то есть элементы скрыть вообще ).
В документе делаю:
Процедура ПриНачалеВыбораЗначения(Элемент,Флаг)
    Если Элемент="ПодразделениеЗП" Тогда
        Флаг=0;
        ОткрытьПодбор("Справочник.ПодразделенияЗП","ФормаСписка","изТабеля",0);
    КонецЕсли;
КонецПроцедуры


В справочнике в модуле списка :
Процедура ПриОткрытии()
    Параметр=Форма.Параметр;
    Если Параметр="изТабеля" Тогда
        сз=СоздатьОбъект("СписокЗначений");
        спр=СоздатьОбъект("Справочник.ПодразделенияЗП");
        спр.ВыбратьЭлементы();
        Пока спр.ПолучитьЭлемент()=1 Цикл
            Если спр.ЭтоГруппа()=1 Тогда
                сз.ДобавитьЗначение(спр.ТекущийЭлемент());
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    ИспользоватьСписокЭлементов(сз);
    ВыборГруппы(1);
КонецПроцедуры


В результате элементы скрываются, группы выбираются. Но, при этом, при открытии группы в ней не пусто, а вот такие папочки со знаком вопроса (кол-во этих папок соответствуют кол-ву групп в справочнике) :


Как избавиться от них?

ZhenyaYa Подменю пользователя
сообщение 08.08.13, 15:07
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Можно закрывать, дошло наконец-то

Vofka Подменю пользователя
сообщение 08.08.13, 15:25
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Расскажите решение, возможно ещё кому-то интересно будет.

ZhenyaYa Подменю пользователя
сообщение 08.08.13, 15:55
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

В справочнике в модуле списка :

Процедура ПриОткрытии()
    Параметр=Форма.Параметр;
    Если Параметр="изТабеля" Тогда
        сз=СоздатьОбъект("СписокЗначений");
        спр=СоздатьОбъект("Справочник.ПодразделенияЗП");
        спр.ВключатьПодчиненные(0);
        спр.ВыбратьЭлементы();
        Пока спр.ПолучитьЭлемент()=1 Цикл
            Если спр.ЭтоГруппа()=1 Тогда
                сз.ДобавитьЗначение(спр.ТекущийЭлемент());
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    ИспользоватьСписокЭлементов(сз);
    ВыборГруппы(1);
КонецПроцедуры

Процедура ПриВыбореРодителя(Папа)
    Если Параметр="изТабеля" Тогда
        сз=СоздатьОбъект("СписокЗначений");
        спр=СоздатьОбъект("Справочник.ПодразделенияЗП");
        спр.ИспользоватьРодителя(Папа);
        спр.ВключатьПодчиненные(0);
        спр.ВыбратьЭлементы();
        Пока спр.ПолучитьЭлемент()=1 Цикл
            Если спр.ЭтоГруппа()=1 Тогда
                сз.ДобавитьЗначение(спр.ТекущийЭлемент());
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    ИспользоватьСписокЭлементов(сз);
    ВыборГруппы(1);
КонецПроцедуры


В документе как было:

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


Вродь все. Подозреваю что еще надо что то подобное написать в процедуру ПриСменеИерархии, но пока этого хватает

ну и создание объектов повыносить в конец модуля желательно

и ВыборГруппы(1) с второй процедуры можно тоже убрать)

Cthulhu Подменю пользователя
сообщение 14.08.13, 13:32
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

// можно и покороче. не ковыряясь нигде, кроме того места, куда нужно выбрать строго группу:
Процедура ПриНачалеВыбораЗначения(НаимРекв,ФСО,флАвто=1) //предопределенная
  Перем тКонт;
  Если НаимРекв="ПодразделениеЗП" Тогда
    ФСО=0; ОткрытьФорму("Справочник.ПодразделенияЗП",тКонт); тКонт.ВыборГруппы(1);
    тКонт.УстановитьОтбор("<ЛюбойРеквизитСФлажкомОтбора>","Тупо по значению этого самого реквизита, которого ну никак нету");
  КонецЕсли;
КонецПроцедуры //ПриНачалеВыбораЗначения

Спасибо сказали: ZhenyaYa,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 1:27
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!