Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

СКД - параметры, по умолчанию, список

СКД - параметры, по умолчанию, список
Я
   Масянька
 
05.07.21 - 10:35
День добрый!
Как в СКД задать параметр - список только по двум заданным элементам справочника?
Кусок запроса с условием:

ГДЕ
    ВнутренниеДокументы.ВидДокумента = &ВидДокумента

С одним параметром - вкладка "Параметры", колонка "Выражение".
Если ставлю галочку "Доступен список значений" - в колонке "Значения" выдает - https://ibb.co/gTktPgG
Спасибо.
   ДенисЧ
 
1 - 05.07.21 - 10:38
Ну и правильно выдаёт, в конфигураторе...
Сделай прикомпоновке, задай туда, в параметр, нужный список. Или можешь сохранить схему, открыть её в консоли в предприятии, напихать туда значений, сохранить, загрузить в отчёт. Но это плохо, потому что делаешь же ты в тестовой базе? А там уиды могут быть другими, чем в рабочей.
   ДенисЧ
 
2 - 05.07.21 - 10:38
Ну, или как вариант для извращенцев и Масянек - создай нужные предопределённые в справочнике. И тогда они будут доступны в конфигураторе.
   Масянька
 
3 - 05.07.21 - 10:41
(1) В ПриКомпоновке что получать? Компоновщик, Макет...
   ДенисЧ
 
4 - 05.07.21 - 10:42
(3) Схему компоновки, её настройки. И там уже устанавливать параметр
   Масянька
 
5 - 05.07.21 - 10:49
(4)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    СхемаКомпоновкиДанных.УстановитьПараметр(КомпоновщикНастроек, "ВидДокумента", Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Приказ по основной деятельности"));
    СхемаКомпоновкиДанных.УстановитьПараметр(КомпоновщикНастроек, "ВидДокумента", Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Распоряжение по основной деятельности"));

КонецПроцедуры

Дает: https://ibb.co/LtW34Rw
   ДенисЧ
 
6 - 05.07.21 - 10:53
(5) А может, ты туда будешь список подсовывать, а не по одному элементу?
Ну это так, в порядке бреда, тебе же список нужен?
   ejikbeznojek
 
7 - 05.07.21 - 10:59
Ну или сделай эти значения предопределёнными))
Добавь 2 предопределённых элемента (с обновлением предопределенных данных - не использовать) и привяжи к уже существующим через ИмяПредопределенныхДанных 

Тогда в конфигураторе добавишь
   Масянька
 
8 - 05.07.21 - 11:00
(6)     СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    СписокВидов = Новый СписокЗначений;
    СписокВидов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Приказ по основной деятельности"));
    СписокВидов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Распоряжение по основной деятельности"));
    СхемаКомпоновкиДанных.УстановитьПараметр(КомпоновщикНастроек, "ВидДокумента", СписокВидов);

Тоже самое (картинка).
   Масянька
 
9 - 05.07.21 - 11:00
(7) Конфигуратор трогать нельзя.
   Жан Пердежон
 
10 - 05.07.21 - 11:04
(8) раз уж такой говнокод пошёл - делай сразу в параметре список строк, туда их вбивай и в запросе используй - ничем не хуже будет
   ejikbeznojek
 
11 - 05.07.21 - 11:05
ВнутренниеДокументы.ВидДокумента = &ВидДокумента

Может если список значений, то
ВнутренниеДокументы.ВидДокумента в (&ВидДокумента) ?
   Масянька
 
12 - 05.07.21 - 11:06
(11) Исправила. Результат тот же. Пустой список.
   Масянька
 
13 - 05.07.21 - 11:09
(10) Почему говнокод?
В СКД нельзя в параметрах использовать список?
   Масянька
 
14 - 05.07.21 - 11:09
Сам параметр не заполняется списком.
   ejikbeznojek
 
15 - 05.07.21 - 11:18
   Масянька
 
16 - 05.07.21 - 11:28
(15) Нет 😭😭😭
   Масянька
 
17 - 05.07.21 - 11:31
(15) А что у тебя в колонке "Тип" на вкладке "Параметры"?
https://ibb.co/bXBDHbn
   ejikbeznojek
 
18 - 05.07.21 - 11:40
(17) Была строка.
Но я переделал на ссылки и всё равно всё работает.
https://prnt.sc/18p9tso
   Масянька
 
19 - 05.07.21 - 11:45
(18) Напиши, пожалуйста, строку (как у тебя) - Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый   ПараметрКомпоновкиДанных(....)
Имя как задаешь в прикомпоноке?
   ejikbeznojek
 
20 - 05.07.21 - 11:46
(13) Ну так делать не очень хорошо, потому что поменяют наименования у твоих 2х элементов и всё перестанет работать.
Он имел ввиду, что раз уже так делать, то можно написать
ГДЕ
    ВнутренниеДокументы.ВидДокумента.Наименование в (&СписокНаименований)
И зафигачить наименования в параметрах в конфигураторе.

(19)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СписокКодов = Новый СписокЗначений;
    СписокКодов.Добавить();
    СписокКодов.Добавить(Справочники.КлассификаторАдресов.НайтиПоКоду("SNL-08937"));
    СписокКодов.Добавить(Справочники.КлассификаторАдресов.НайтиПоКоду("SNL-08936"));
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый   ПараметрКомпоновкиДанных("СписокКодов"));
    Если Параметр <> Неопределено Тогда
        Параметр.Значение = СписокКодов;
        Параметр.Использование = ЗначениеЗаполнено(СписокКодов);
    КонецЕсли;    
    
    
КонецПроцедуры
   Малыш Джон
 
21 - 05.07.21 - 11:52
(20)
    >>Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый   ПараметрКомпоновкиДанных("СписокКодов"));
    >>Если Параметр <> Неопределено Тогда
    >>    Параметр.Значение = СписокКодов;
    >>    Параметр.Использование = ЗначениеЗаполнено(СписокКодов);
    >>КонецЕсли; 


ёп..прст..

Люди, будьте проще:

КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("СписокКодов", СписокКодов);
   Масянька
 
22 - 05.07.21 - 11:55
(21) Во-первых, не надо вспоминать Ё всуе.
Во-вторых, так тоже не работает.
   Малыш Джон
 
23 - 05.07.21 - 11:58
(22) конечно отдельно эта строка не работает
   Масянька
 
24 - 05.07.21 - 11:59
(23) Да, никак не работает (у меня).
Пустой список... Абсолютно...
   ejikbeznojek
 
25 - 05.07.21 - 12:00
Может не в тот отчёт добавляешь?)))
   Малыш Джон
 
26 - 05.07.21 - 12:01
(24)

СтандартнаяОбработка = Ложь;
    
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("СписокКодов", СписокКодов);
    
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
   Малыш Джон
 
27 - 05.07.21 - 12:03
+(26) имена параметров и способ формирования их значений изменять по вкусу
   ejikbeznojek
 
28 - 05.07.21 - 12:13
(21) Тот код, для того, чтобы она отладкой могла посмотреть, что параметр нашёлся и установился))
   Масянька
 
29 - 05.07.21 - 12:27
Мне нужен список. Чтобы из 2 (двух) значений списка выбирали нужное. А уже запрос отсекался только по одному.
По одному (если задать по умолчанию одно значение параметра) - все работает.
   ДенисЧ
 
30 - 05.07.21 - 12:33
"Мне нужен список. Чтобы из 2 (двух) значений списка выбирали нужное"
Анафейхоа, позвольте спросить, ты пытаешься впихнуть этот список в параметры СКД?
 
 
   Масянька
 
31 - 05.07.21 - 12:35
(30) А куда их впихивать?
   ДенисЧ
 
32 - 05.07.21 - 12:37
(31) Господа гусары!....
В список на форме, разумеется, если уж ты пользователя работать пытаешься заставить
   Жан Пердежон
 
33 - 05.07.21 - 13:47
(13)
в запросе:
ГДЕ
    ВнутренниеДокументы.ВидДокумента.Наименование = &ВидДокумента
В СКД параметр "ВидДокумента" Тип "Строка", Доступные значения - твои строки, "Доступен список значений" = Ложь
   Масянька
 
34 - 05.07.21 - 13:55
   Масянька
 
35 - 05.07.21 - 14:06
(33) Всё получилось.
Огромное спасибо!!!
   Масянька
 
36 - 05.07.21 - 14:06
😘😘😘😘😘


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.