Здравствуйте.
В БП 3.0 к документу "Реализация товаров и услуг" добавлено дополнительное сведение "Наше Сведение". Затем написан отчет на СКД

```1c
    ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    РеализацияТоваровУслугТовары.Количество КАК Количество,
    РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
    ЕСТЬNULL(ДополнительныеСведения.Значение, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК НашеСведение,
    ДополнительныеСведения.Свойство КАК Свойство
    ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
    И (&Свойство = ДополнительныеСведения.Свойство)
    И (РеализацияТоваровУслугТовары.Ссылка.Дата >= НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ))
    И (РеализацияТоваровУслугТовары.Ссылка.Дата <= КОНЕЦПЕРИОДА(&Дата, ДЕНЬ))
```

&Свойство = Наше Сведение.

Поле "Наше Сведение" включено в пользовательские настройки и показывается в шапке отчета.
Каким образом можно при выборе значений поля "Наше Сведение" ограничить список или свойству, или по наименованию свойства? На данный момент в списке выбора показываются все значения свойств для всех документов.
Пробовал через "Параметры редактирования" у поля, но ничего не получилось.
---
Параметры редактирования. Связи параметров выбора. Там просто параметру нужно писать не просто Владелец, а Отбор.Владелец
Пример во вложении
---
https://its.1c.ru/db/metod8dev/content/1795/hdoc

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

Единственный минус - наименования свойств будут полными - например, Характеристика номенклатуры.Диагональ (Справочник "Характеристики номенклатуры" (Общие))
---
Дело в том, что при подборе открывается другая форма, и ей пофиг на доступные значения.
(46) Значит через параметры выкручиваться.
криво конечно... через строки... параметры отбираются. Сам запрос проверить не могу.
---
На самом деле типовая форма отчета не такая тупая и она все параметры учитывает, и установленные значения, и параметры выбора, и на основании этого подбирает формы для выбора.
Я затолкал список в схему и переинициализировал компоновщик. Теперь список не слетает при изменении настроек:

```1c
    СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Сведение").УстановитьДоступныеЗначения(СЗ);
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
```
---
в итоге все скомбинировал. Добавил Параметр, установил его значение.

```1c
    ПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Сведение (Реализация (акты, накладные))");
    СхемаКомпоновкиДанных.Параметры["ПВХ"].Значение = ПВХ;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
```

В параметрах редактирования поля "Сведение" указал связи параметров выбора "Отбор.Владелец: ПараметрыДанных.ПВХ".

Всем спасибо за помощь.
---
В СКД ограничить выбираемые значения параметра можно на вкладке Параметры в поле Доступные значения. Также доступно и программно:
ДоступныйПараметрКомпоновкиДанных.ДоступныеЗначения (DataCompositionAvailableParameter.AvailableValues)
ДоступныйПараметрКомпоновкиДанных (DataCompositionAvailableParameter)
ДоступныеЗначения (AvailableValues)
Использование:

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

Тип: СписокЗначений; Неопределено.
Содержит список значений, которые может принимать значение параметра.
Неопределено - значения поля неограничены.
---
скажите как? поле доступно только в режиме 1С предприятие.
---
Прямо в модуле объекта, например:
```1c
    Массив = Новый Массив;
    Массив.Добавить(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Нужное сведение"));
    КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПараметры.НайтиПараметр(Новый ПараметрКомпоновкиДанных("Свойство")).ДоступныеЗначения.ЗагрузитьЗначения(Массив);
```

В СКД на вкладке параметры нужно указать этому параметру в доступных значениях хотя бы пустую ссылку, чтоб ДоступныеЗначения стало типом СписокЗначений.
---
вопрос в том можно ли это сделать в скд?
---
Что мешает?
---
мешает то что я не знаю как это сделать и именно только в конфигураторе ...
---
проверил работает, только если так делать, то каждый допреквизит/свойство нужно прописывать.
с отбором по документу получилось так

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ДополнительныеРеквизитыИСведения.Ссылка,
    | ДополнительныеРеквизитыИСведения.НаборСвойств
    |ИЗ
    | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
    |ГДЕ
    | ДополнительныеРеквизитыИСведения.НаборСвойств = &НаборСвойств";
    Запрос.Параметры.Вставить("НаборСвойств", Справочники.НаборыДополнительныхРеквизитовИСведений.НайтиПоНаименованию("Реализации товаров и услуг"));

    Массив = Новый Массив;
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Массив.Добавить(Выборка.Ссылка);
    КонецЦикла;
    КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПараметры.НайтиПараметр(Новый ПараметрКомпоновкиДанных("Свойство")).ДоступныеЗначения.ЗагрузитьЗначения(Массив);
```

И при первом запуске в списке присутствует <Пустое значение>
---
можно ли это сделать только в скд не создавая отдельную форму для отчета?
---
форму делать не обязательно. в модуле отчета прописываете этот код.
---
прописал, список устанавливается, но так как это не параметр, сделал немного по другому

```1c
    СВ = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.Элементы.Найти("Свойство");
    Запрос = Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    | ЗначенияСвойствОбъектов.Ссылка КАК Значение
    |ИЗ
    | Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |ГДЕ
    | ЗначенияСвойствОбъектов.Владелец.Наименование = "Свойство (Реализация (акты, накладные))"";

    Массив = Новый Массив;
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Массив.Добавить(Выборка.Значение);
    КонецЦикла;
    СВ.ДоступныеЗначения.ЗагрузитьЗначения(Массив);
```

только выбранные значения не применяются к отчету, отчет пишет:
"( Свойство В списке ""<Пустое значение>; <Пустое значение>"" )"
хотя на форме все выбрано

Пробовал так же через установку параметра и связи параметров выбора, но значение параметра остается пустым, т.е. в модуле объекта не устанавливается.

```1c
    ПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Свойство (Реализация (акты, накладные))");
    КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПВХ", ПВХ);
```
---
если это не параметр, то надо это делать в
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
и ДоступныеЗначения тут вообще ни при чем.
Чего вы все-таки добиться хотите? Максимально подробно опишите, иначе это в битву экстрасенсов превращается...
---
на форме пользователю доступно поле отбора "Сведение" куда он может подбирать список значений из справочника "ЗначенияСвойствОбъектов". В данном справочнике хранятся все дополнительные сведения, например для документа поступление, реализация ... Необходимо оставить пользователю для выбора только сведения привязанные к реализации или отфильтровать их по наименованию.

Во вложении сам отчет и скриншоты с выделением что нужно убрать.
---
не совсем понятно что нужно в итоге? Чтоб пользователь выбирал из списка, или чтоб пользователь совсем ничего не выбирал, а значение было жестко прописано?
Для последнего, как вариант жесткого кодирования:

```1c
    ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
    И (ДополнительныеСведения.Свойство.Наименование = "Наше Сведение")
```
---
значения добавляются в режиме предприятия пользователем, дополнительных сведений может быть много, необходимо ограничить список выбора в конфигураторе, для ограничения его в режиме предприятия.
---
не ответили на вопрос: "Выбирать значения должны пользователи из ограниченного списка, или нужно жестко прописать эти значения в конфигураторе без возможности выбора пользователем?
Если второе и ограничить значения несколькими свойствами:

```1c
    ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
    И (ДополнительныеСведения.Свойство.Наименование = "Наше Сведение"
    ИЛИ ДополнительныеСведения.Свойство.Наименование = "Наше второе Сведение"
    ИЛИ ДополнительныеСведения.Свойство.Наименование = "Наше третье Сведение")
```
---
пользователи выбирают сами эти значения, так же как и вводят их сами, сведения привязаны к документу. Я знаю лишь наименование и тип этого свойства в конфигураторе
---
т.е. известны Наименование свойств. Нужно дать пользователю список выбора заполненный заранее известными значениями?
Тогда самый простой вариант, при условии, что имена не поменяет пользователь:

```1c
    ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
    И (ДополнительныеСведения.Свойство.Наименование = &СвойствоНаименование
```

Далее в СКД Параметры:
Тип параметра СвойстваНаименование = Строка.
Доступные значения = составляете список нужных наименований.
Выводите пользователю.
В общем все.
---
нет. я тоже не сразу понял, что хочет ТС.
Ему надо при установке параметра пользователем, ограничить список выбора дополнительных сведений, только теми, которые относятся к конкретному типу документа.
---
Список выбора текстовых представлений свойства?
В параметрах создаете свой параметр, тип строка. В доступные значения пишете свой список. И ставите использовать - всегда и галку запрещать незаполненные значения.
---
список расширяется в режиме предприятия пользователем
---
в чем тогда ограничение?
по идее тогда "доступен список значений" к этому прибавить. а "запрещать незаполненные значения" по усмотрению.
или я не понимаю, чего вы хотите добиться...
---
Если поле "Наше Сведение" предопределенное, то добавить его в СКД в доступные значения.
---
предопределенных значений типа "Дополнительное сведение" нет, они добавляются только в режиме 1С предприятие.
---
Выстави в параметр отчета не само значение свойства, а его наименование. Для этого параметра заранее определи доступные значения.
А уже в запросе ищи нужное тебе свойство по полученному наименованию.
---
мне нужно ограничить выбор для пользователя, чтобы он видел только определенные сведения и это не имеет никакого отношения к запросу.
---
Если наименования свойства известны, то как раз сделайте как я сказал.

Создайте свой параметр, например "НаименованиеСвойства", задайте список доступных значений. У пользователя при работе с отчетом будет выпадающий список.

В тексте запроса сделайте: " &НаименованиеСвойства = ДополнительныеСведения.Свойство.Наименоавние"
---
мне нужно сделать это в конфигураторе, так как свойства вводятся только в режиме предприятия, то они недоступны в режиме конфигуратора. И это не имеет отношения к запросу! Речь идет о выборе пользователя в режиме предприятия.
---
Вы меня похоже не понимаете. Я про конфигуратор и говорю. Если вы знаете список наименований свойств которые можно использовать, так пропишите его в скд и дайте пользователю фиксированный список.
---
покажите каким образом, наверное и правда мы друг друга не понимаем.
---
что в (10) вам не понятно. Вы параметр умеете создавать, список доступных значений можете ему задать ?
Я даже кусок текста запроса привел.
---
Параметры редактирования. Связи параметров выбора. Там просто параметру нужно писать не просто Владелец, а Отбор.Владелец
Пример во вложении
---
это вариант, но как сделать без выбора свойства в пользовательском режиме, нужно ограничить список или по свойству, или по наименованию свойства.
---
Привяжите к параметру и не выводите его :)
я хотел проверить, что при смене отрабатывает
---
каким образом привязать? свойство доступно только в пользовательском режиме, так как там его и добавляли, можно ли как то это решить? Если только в СКД никак, то как в коде? Но оч не хочется создавать форму для отчета.
---
И правда. Обычно можно настройки СКД выгрузить, потом в консоли скд в предприятии задать значение и снова загрузить в конфигураторе. С параметрами такая штука прокатывает, а вот с параметрами выбора почему-то не хочет. Либо оставляет пустым, либо передает уид строкой в качестве владельца.
---
Похоже при выносе в быстрые настройки СКД хочет и параметр из быстрых брать. Если и параметр и отбор в быстрых настройках, тогда отрабатывает. Либо если и параметр и отбор доступны и не вынесены, тогда через обычные настройки можно назначать.

Настроить и сохранить вариант не прокатит?

Еще можно попробовать свойства не явно в запрос кинуть, а через характеристики СКД. Тогда будет "Реализация.Наше свойство = ..."
---
настроить и сохранить в пользовательском режиме точно нет, ОНИ знают как сбрасывать настройки и нередко этим пользуются. Про характеристики можно подробнее если это решит проблему?
---
https://its.1c.ru/db/metod8dev/content/1795/hdoc

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

Единственный минус - наименования свойств будут полными - например, Характеристика номенклатуры.Диагональ (Справочник "Характеристики номенклатуры" (Общие))
---
Прошу прощения, в типовых не на уровне отчетов, а на уровне метаданных - вкладка Данные - Характеристики.
По поводу имен: имя самого выводимого поля можно поменять, а вот для отбора будет полное наименование свойства.
---
В модуле менеджера справочников/документов можно формировать нужній список процедурой ОбработкаПолученияДанныхВыбора
---
В модуле обработки

```1c
    СЗ = новый СписокЗначений;

    Запрос = Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    | ЗначенияСвойствОбъектов.Ссылка КАК Значение
    |ИЗ
    | Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |ГДЕ
    | ЗначенияСвойствОбъектов.Владелец.Наименование = "Свойство (Реализация (акты, накладные))"";

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    СЗ.Добавить(Выборка.Значение);
    КонецЦикла;

    КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Сведение").ДоступныеЗначения = СЗ;
```
---
код отрабатывает, но при выборе пользователю по прежнему доступны все элементы справочника "ЗначенияСвойствОбъектов". Что то я видимо делаю не так.
---
Что вы можете не так сделать? Код же не ваш :) Он присваивает доступным значениям список значений, а список значений надо загружать. Надо сделать как я и сказал ранее:В СКД на вкладке параметры нужно указать этому параметру в доступных значениях хотя бы пустую ссылку, чтоб ДоступныеЗначения стало типом СписокЗначений. А если используете не параметр, а поле, то соответственно надо в наборе данных у поля это сделать.
Код будет такой:

```1c
    КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Сведение").ДоступныеЗначения.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Значение"));
```
Выше выборка и цикл уже не нужны.

А если не создаете свою форму, то все это работает до первого изменения настроек или варианта.
---
список заполняется, но к отчету не применяется. Отчет выводит:
Отбор: Сведение В списке "<Пустое значение>; <Пустое значение>" хотя выбраны не пустые значения.
---
Дело в том, что при подборе открывается другая форма, и ей пофиг на доступные значения.
(46) Значит через параметры выкручиваться.
криво конечно... через строки... параметры отбираются. Сам запрос проверить не могу.
---
На самом деле типовая форма отчета не такая тупая и она все параметры учитывает, и установленные значения, и параметры выбора, и на основании этого подбирает формы для выбора.
Я затолкал список в схему и переинициализировал компоновщик. Теперь список не слетает при изменении настроек:

```1c
    СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Сведение").УстановитьДоступныеЗначения(СЗ);
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
```
---
в итоге все скомбинировал. Добавил Параметр, установил его значение.

```1c
    ПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Сведение (Реализация (акты, накладные))");
    СхемаКомпоновкиДанных.Параметры["ПВХ"].Значение = ПВХ;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
```

В параметрах редактирования поля "Сведение" указал связи параметров выбора "Отбор.Владелец: ПараметрыДанных.ПВХ".

Всем спасибо за помощь.
---
А у меня был еще такой вариант:

```1c
    ПараметрВыбора = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Сведение").ПараметрыРедактирования.Элементы.Найти("ПараметрыВыбора");
    НовыйОтбор = ПараметрВыбора.Значение.Добавить();
    НовыйОтбор.Имя = "Отбор.Владелец";
    НовыйОтбор.Значение = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Сведение (Реализация (акты, накладные))");
    ПараметрВыбора.Использование = Истина;
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
```

Но я его не предложил, потому что с параметром БыстрыйВыбор = Истина он не работал нормально - в списке с флажками появлялись все значения, а тестировал-то я именно с ним. Видимо все-таки в типовой форме отчета что-то не докручено. Без быстрого выбора оказалось работает нормально, только через Подбор надо выбирать.