Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поведение подчиненного справочника
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
SergXP
Задача:
Справочник Б подчинен иерархическому справочнику А. На форме списка справочника Б имеем поле выбора элемента справочника А. Если установить списку Б свойство "Связь по владельцу" соответственно - работает как доктор прописал, но...

Вопрос:
Хочется, чтобЫ:
1. если не выбран владелец - список содержал все записи.
2. если выбрана группа справочника А - в списке все записи, входящие в эту группу по иерархии.
3. ну и третий вариант - стандартный, как сейчас и работает собственно.

Ответ принимается даже если нужно отказаться от владельствования. Подозреваю, что нужен будет отбор, но у меня пока сделать это не получается, платформа ругается, что "Отбор" не для записи...
Petre
Цитата(SergXP @ 19.05.14, 15:21) необходимо зарегистрироваться для просмотра ссылки
платформа ругается, что "Отбор" не для записи

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

Первое изменение "владельца" проходит, а второе - ругается "Ошибка при установке значения атрибута контекста (Значение)"

В синт-помощнике говорится:
"Описание:

Предназначен для хранения условий отбора.
Представляет собой коллекцию элементов отбора. Используется для установки фильтрации данных в различных выборках, наборах записей, визуальных списках.
Каждый из элементов может устанавливать одно условие. Весь объект представляет собой составное условие, состоящее из отдельных условий, описываемых элементами, соединяющимися по "И".
"
Значит поэтому ругань? Но как так?
Vofka
В СправочникСписок.Отбор нужно сначала добавить элемент отбора (если его там нету). Вы это видимо делаете изначально в настройках списка, но после СправочникСписок.Отбор.Сбросить() оно наверное удаляется.
SergXP
Цитата(Vofka @ 20.05.14, 9:09) необходимо зарегистрироваться для просмотра ссылки
В СправочникСписок.Отбор нужно сначала добавить элемент отбора (если его там нету). Вы это видимо делаете изначально в настройках списка, но после СправочникСписок.Отбор.Сбросить() оно наверное удаляется.

Нет, все намного прозаичнее. Я уже разобрался...
Отбор самостоятельно был уже заполнен всеми полями справочника. Сам я ничего не делал. Проблему решил, прочитав помощьника по буквам.

Цитата
Значение (Value)
Использование:

Чтение и запись.
Описание:

Тип: Произвольный.
Содержит значение, по которому будет осуществляться фильтрация.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Если ВидСравнения принимает значение ВСписке, ВСпискеПоИерархии, НеВСписке или НеВСпискеПоИерархии, то тип значения СписокЗначений.


Главное выделил. После первого присваивания "Подразделения" "Значение принимает тип "СписокЗначений" и дальнейшее простое присваивание другого значения не проходит. Я поменял "ВидСравнения" на "ВИерархии" и все заработало. Всем удачи!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.