1с выберите элемент а не группу почему
Есть в форме документа реквизит, в который должны выбираться группы или элементы справочника «Подразделения» (с неким отбором).
&НаКлиенте
Процедура ПодразделениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокПодразделений = ГСМОбщегоНазначения.ПолучитьСписокПодразделений();
Форма=ОткрытьФорму(«Справочник.Подразделения.Форма.ФормаВыбора»,,Элемент);
Если ЗначениеЗаполнено(СписокПодразделений) Тогда
ЭлементОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Ссылка»);
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = СписокПодразделений;
КонецЕсли;
Все нормально открывается, но позволяет выбирать только элементы справочника, а при попытке выбрать группу пишет:
«Выберите элемент, а не группу!
Для раскрытия групп используйте «Crtl». бла-бла-бла. «
Для реквизита «Подразделение» в свойствах установлен выбор групп и позразделений.
Как заставить его выбирать и группы тоже?
>> Для реквизита «Подразделение» в свойствах установлен выбор групп и позразделений.
Любая ссылка и выбор группы справочника
Есть регистр сведений с ресурсом ЛюбаяСсылка при заполнении не выбирает группу справочника, сообщает «Выберите элемент, а не группу». Как побороть?
По теме из базы знаний
- Всякие полезности
- Работа с данными выбора
- WEB-интерфейсы как механизм сбора и контроля данных в розничной сети. Инструменты и наработки
- Конфигурация «ИнфоПро»: Конструктор журналов для коммуникации в рабочих группах и автоматизации
- Выборочная свертка группировок для СКД
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
2. SaschaL 22.12.17 13:11 Сейчас в теме
(1) Скорее всего для данного ресурса задано значение в свойстве «Выбор групп и элементов» — Элементы.
Обычно при таком раскладе система выдает аналогичное предупреждение.
GV.; alex-l19041; + 2 – Ответить
Иерархический справочник 1С
Очень часто в 1С 8.3. в справочнике необходимо настроить определенный порядок подчинения элементов. Для реализации подобных задач из простого справочника необходимо сделать иерархический справочник 1С.
В платформе 1С существует два вида иерархии – иерархия групп и элементов и иерархия элементов.
Иерархия групп и элементов
Для того, чтобы справочник имел иерархию групп и элементов, необходимо в редакторе справочника на закладке Иерархия установить флаг Иерархический справочник, а свойству Вид иерархии установить значение Иерархия групп и элементов.

Тогда у справочника можно будет создавать группы, и размещать элементы в группах.

При иерархии групп или элементов существуют группы (каталоги), в которые входят или другие группы, или элементы. И группы, и элементы являются экземплярами объекта справочника.
Группа это тоже экземпляр объекта справочника, по которому не ведется какой-либо учёт (как правило), и который может быть родителем другого экземпляра, т.е. в группу могут входить другие группы и элементы справочников.
Иерархия элементов
Иерархия элементов настраивается похожим способом: в редакторе справочника на закладке Иерархия устанавливается флаг Иерархический справочник, но свойству Вид иерархии следует установить значение Иерархия элементов.

После этого, каждый элемент может быть родителем другого элемента.

Родитель иерархического справочника 1С
У каждого элемента иерархического справочника должен быть родитель. В случае иерархии групп и элементов родитель это группа иерархического справочника, в случае иерархии элементов, родитель это элемент.
Родитель это стандартный реквизит справочника. Если иерархия отключена, то этот стандартный реквизит не доступен. Как у этого справочника Сотрудники.

А если иерархия включена, то этот реквизит доступен. Как у справочника Контрагенты.

Если форма элемента справочника автоматически генерируется платформой (т.е. она не создана), то этот реквизит отображается на управляемой форме. И, в случае иерархии групп и элементов в нем указана группа, в которую входит этот элемент.

Если группа не указана, то значит элемент верхнего уровня.

Также, родитель имеется у элементов справочника с иерархией элементов.

Создать элемент иерархического справочника 1С
Для того, чтобы создать группу справочника (в случае, иерархии групп и элементов), необходимо воспользоваться методом менеджера справочника СоздатьГруппу(). А для создания элемента следует воспользоваться методом СоздатьЭлемент(). Если мы хотим, чтобы вновь созданный элемент входил в какую-то группу, то следует в свойство Родитель этого элемента записать ссылку на нужную группу.
В коде ниже, создаем группу, а потом создаем элемент, который входит в эту группу:
НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу(); НоваяГруппа.Наименование = "Магазины"; НоваяГруппа.Записать(); НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент(); НовыйЭлемент.Наименование = "Бакалейный"; НовыйЭлемент.Родитель = НоваяГруппа.Ссылка; НовыйЭлемент.Записать();
Заметьте, группа в коде выше, группа верхнего уровня. У неё при создании не был задан Родитель.
В случае иерархии элементов всегда нужно создавать элементы, но также следует в свойстве Родитель созданного элемента указать ссылку на другой элемент, которому будет подчинен созданный.
РегионЗК = Справочники.Регионы.СоздатьЭлемент(); РегионЗК.Наименование = "Забайкальский край"; РегионЗК.Записать(); РегионЧО = Справочники.Регионы.СоздатьЭлемент(); РегионЧО.Наименование = "Читинская область"; РегионЧО.Родитель = РегионЗК.Ссылка; РегионЧО.Записать();
Изменить элемент иерархического справочника 1С
Если мы хотим поменять подчиненность элемента иерархического справочника, или вообще убрать её, т.е. сделать из элемента элемент верхнего уровня, то следует работать со стандартным реквизитом Родитель. В случае, изменения подчиненности, этому реквизиту нужно присвоить ссылку на другую группу.
ОбъектКонтрагент = Элемент.ПолучитьОбъект(); ОбъектКонтрагент.Родитель = Группа; ОбъектКонтрагент.Записать();
Если же мы хотим сделать элемент верхнего уровня, то этому реквизиту нужно присвоить пустую ссылку.
ОбъектКонтрагент = Элемент.ПолучитьОбъект(); ОбъектКонтрагент.Родитель = Справочники.Контрагенты.ПустаяСсылка(); ОбъектКонтрагент.Записать();
Поиск в иерархическом справочнике 1С
В платформе 1С имеется возможность искать в определенной группе иерархического справочника, для этого следует в методах НайтиПоНаименованию, НайтиПоКоду и НайтиПоРеквизиту заполнять параметр Родитель.
Например, поиск в определенной группе будет осуществляться так:
ЭлементНайденый = Справочники.Контрагенты.НайтиПоНаименованию(НазваниеКонтрагента,Истина,Группа); Если ЭлементНайденый.Пустая() Тогда Сообщить("Нет такого элемента"); Возврат КонецЕсли;
Где, третий параметр Группа — это ссылка на группу, внутри которой ищется элемент по указанному названию.
Выборка иерархического справочника 1С
В платформе 1С 8.3. существует возможность выбрать элементы иерархического справочника, которые входят в ту или иную группу, для этого следует воспользоваться методом Выбрать с заполненным параметром Родитель. В этом случае будут выбраны группы и элементы, которых входят непосредственно в указанную группу, но не будут выбраны группы элементы, которые входят в подчиненные группы. Чтобы выбрать элемент и группы, входящие в какую-то группу, следует воспользоваться методом ВыбратьИерархически.
Например, при таком коде:
Выборка = Справочники.Контрагенты.Выбрать(Группа); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; Сообщить(Выборка.Наименование); КонецЦикла;
Будут выбраны элементы, входящие в указанную группу.
А в этом случае:
Выборка = Справочники.Контрагенты.ВыбратьИерархически(Группа); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; Сообщить(Выборка.Наименование); КонецЦикла;
Будут выбраны элементы, которые входят и в указанную группу, и в подчиненные ей группы.
И Выбрать, и ВыбратьИерархически отбирают и группы, и элементы справочников. Поэтому, в коде выше было использовано свойство ссылки справочника ЭтоГруппа. Это свойство имеет значение Истина, если ссылка является группой справочника.
Читайте также по теме:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
И вступайте в мои группы:
One Reply to “Иерархический справочник 1С”
Стас Антонов :
1. Создать справочник Жанры, справочник ТВКаналы с реквизитами номер, название канала(изменить стандартный код и наименование с помощью синонима) и Характер канала, с типом справочник ссылка жанры, подчиненный ему справочник Программы , с типом время начала и время окончания. Сделать все реквизиты обязательными для заполнения.
2. Создать форму элемента для справочника Сотрудники с реквизитами: фамилия, имя, отчество с типом строка; Должность (тип справочник ссылка должность); группу основные сведения, в ней пол (перечисления. пол), дата рождения (дата.дата), семейное положение (перечисление или справочник . семейное положение), количество детей (число, неотрицательное, точность 0); группу место проживание, в ней город и адрес (строка); группа Сведения об образованиях , в ней образование (справочник или перечисление образование), место учебы (строка); привести форму к следующему виду, картинка может быть любая, но она должна быть отображена полностью и не растягивать форму.
Как при выборе элемента справочника сделать отображение любого реквизита, а не код и наименование?
Порой бывают ситуации когда необходимо выбрать в табличном поле элемента справочника, но отобразить его не как код или наименование, а как значение какого-либо реквизита!
НО Представление справочника это либо Код, либо Наименование и другого никак не выбрать — пойдем в обход добавив в ТабЧасть отдельный Реквизит(с типом строка, число, дата и т.д) и при выборе справочника запишем туда значение любого реквизита этого справочника!
Вот примеры реализации этого:
Вариант 1 (Создаем два реквизита Контрагент и ИНН):
И при выборе Контрагента, в колонке ИНН должно появится ИНН этого контрагента!
1. Создаем в Табличной части два Реквизита:
а. Наименование = СправочникСсылка.Контрагенты
б. ИНН = Строка 12 символов
2. После размещения этих реквизитов в табличной части на форме заходим в Свойства колонки Наименование
Добавляем Событие ПриИзменении и пишем в нем:
Код 1C v 8.х
//При выборе Контрагента в Колонке ИНН установить ИНН Контрагента
Процедура ТабЧастьНаименованиеПриИзменении(Элемент)
ЭлементыФормы.ТабЧасть.ТекущаяСтрока.ИНН = Элемент.Значение.ИНН;
КонецПроцедуры
3. Сохраняем, проверям, наблюдаем 🙂
Вариант 2 (Создаем Один реквизит КПП и при нажатии на кнопку выбор должен открыться справочник контрагентов, далее выбрав контрагента, в поле должно попасть его КПП):
1. Создаем в Табличной части Реквизит:
КПП = Строка 9 символов
2. После размещения реквизита в табличной части на форме заходим в его Свойства
а. В разделе Использование:
Ставим галочку — Кнопка Выбора
б. В разделе События:
Добавляем НачалоВыбора и пишем код:
Код 1C v 8.х

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