Имя: Пароль:
1C
1С v8
Поле отбора в скд
,
0 Mst
 
18.03.20
19:59
Всем привет. Есть отчёт на скд где одна из группировок - строка. Нужно сделать ее в отборе со своим списком выбора или формой выбора. Набор возможных значений ограничен и хранится в таблице значений.Не понимаю как это сделать правильно
1 Ns33
 
18.03.20
20:19
Не в отбор а в параметры.

ВЫБРАТЬ
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
{ГДЕ
    (Номенклатура.РеквизитСтрока = (&СпСтрок))}

В параметрах для СпСтрок устанавливаешь доступные значения.
2 Mst
 
19.03.20
10:15
Спасибо, похоже то что надо
3 Mst
 
20.03.20
00:13
Что-то не получается заполнить возможными значениями список выбора. Делаю так при открытии формы

ПараметрСхемы = СхемаКомпоновкиДанных.Параметры.Найти("МойПараметр");
ПараметрСхемы.УстановитьДоступныеЗначения(МойСписокЗначений);


поле с параметром появляется как простая строка , даже без кнопки выбора, в отладчике следов моего списка в параметре не видно
4 тарам пам пам
 
20.03.20
09:10
Может, забыл у параметра СКД установить ДоступенСписокЗначений = Истина сначала?
5 Ns33
 
20.03.20
09:19
Не надо ДоступенСписокЗначений, в этом случае идет сравнение со всем списком, а нам надо единичные строки сравнивать.
6 Ns33
 
20.03.20
09:35
Попробуй так:

СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Найти("Значение").УстановитьДоступныеЗначения(сп);
7 тарам пам пам
 
20.03.20
10:19
А, понял, что неправильно понял задачу.

>> поле с параметром появляется как простая строка , даже без кнопки выбора, в отладчике следов моего списка в параметре не видно

А ты делаешь повторную инициализацию компоновщика настроек после изменения схемы компоновки?
8 Mst
 
20.03.20
11:15
Инициализацию делаю :

КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    
Этот вариант тоже попробовал
СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Найти("Значение").УстановитьДоступныеЗначения(сп);

Не взлетело.
9 Mst
 
20.03.20
11:17
Если сделать так
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПараметры.Элементы[1].ДоступныеЗначения =МойСписокЗначений;

То в отладчике список присваивается но на форме в настройках отсутствует
10 Franchiser
 
гуру
20.03.20
14:39
У меня так работает, только стандартные настройки установи:

Процедура ИнициализацияОтчета()
    СписокВалют = Новый СписокЗначений;
    СписокВалют.Добавить(Справочники.Валюты.НайтиПоКоду("643"));
    СписокВалют.Добавить(Справочники.Валюты.НайтиПоКоду("840"));
    ПараметрыСхемы = СхемаКомпоновкиДанных.Параметры.Найти("ВалютаОтчета");
    ПараметрыСхемы.УстановитьДоступныеЗначения(СписокВалют);
    
    ПараметрыСхемы1 = СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Найти("Ссылка");
    ПараметрыСхемы1.УстановитьДоступныеЗначения(СписокВалют);
    
            
КонецПроцедуры

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    // Вставить содержимое обработчика.
    СписокВалют = Новый СписокЗначений;
    СписокВалют.Добавить(Справочники.Валюты.НайтиПоКоду("643"));
    СписокВалют.Добавить(Справочники.Валюты.НайтиПоКоду("840"));
    
    ПараметрыСхемы1 = СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Найти(новый ПолеКомпоновкиДанных("Ссылка"));
    ПараметрыСхемы1.УстановитьДоступныеЗначения(СписокВалют);
    
КонецПроцедуры


ИнициализацияОтчета();
11 Franchiser
 
гуру
20.03.20
14:43
ОбработкаПроверкиЗаполнения лишняя...
12 Franchiser
 
гуру
20.03.20
14:51
Код размещен в модуле объекта внешнего отчета
13 Mst
 
20.03.20
15:26
(10) Так тоже не заработало. Может у вас еще что то сделано , из за чего работает?
14 Franchiser
 
гуру
20.03.20
15:50
15 Mst
 
20.03.20
16:08
(14) Спасибо, но к сожалению в этой обработке выбор работает, потому что параметр имеет тип справочника ,  он и открывается, даже если код закомментарить
16 Franchiser
 
гуру
20.03.20
17:23
(15) со строками тоже работает, проверил
17 Franchiser
 
гуру
20.03.20
17:27
18 Mst
 
20.03.20
18:49
Да, действительно, по кнопке Настройка все работает, у меня оказывается то же, просто я смотрел в быстром доступе на форме, а там все не так радужно почему-то (
19 Mst
 
20.03.20
19:09
Выкрутился пока так - добавил в открытии формы
    Элементы.КомпоновщикНастроекПользовательскиеНастройкиЭлемент0Значение.РежимВыбораИзСписка = Истина;
    Элементы.КомпоновщикНастроекПользовательскиеНастройкиЭлемент0Значение.СписокВыбора.ЗагрузитьЗначения( МойСписок);

после этого заработало как нужно, хотя понятно, что костыль
20 Franchiser
 
гуру
20.03.20
19:13
(18) в быстром доступе у меня работает, если предварительно сбросить пользовательские настройки
21 Mst
 
20.03.20
19:42
Да, верно, я ступил. Спасибо всем!