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

СКД. Отключить незаполненный параметр

СКД. Отключить незаполненный параметр
Я
   Родом из детства
 
29.12.20 - 11:32
текущий запрос:

ВЫБРАТЬ
...
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , {Номенклатура.ВидНоменклатуры = &ВидНоменклатуры}) КАК ТоварыНаСкладахОстаткиИОбороты
...

Условие по виду номенклатуры поставил в фигурные скобки. На форме, если пользователь не ставит галочку напротив параметра ВидНоменклатуры, то условие отбора по виду игнорируется - нурм, но, если галка стоит, а пользователь просто не ввел значение этого поля, то результат пустой - отбор работает, а мне нужно его отключить. Прошустрил несколько тем, однако, так и не нашел ответа(
 
 Партнерская программа EFSOL Oblako
   Родом из детства
 
1 - 29.12.20 - 11:36
(0) Также пробовал делать иным способом - в запросе параметр убирал. Далее в СКД создавал отбор, где правым значением был этот параметр. Далее, была идея в обработчике события "ПриКомпоновкеРезультата", проверять: заполнено ли значение параметра "ВидНоменклатуры", и, если нет, то отключать отбор. Однако, не получилось получить значение параметра...
Пытался получить следующим образом:
ЗначениеПараметраДанных = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВидНоменклатуры")).Значение;
   Ненавижу 1С
 
2 - 29.12.20 - 11:38
(0) на это и рассчитано, а иначе зачем?
   Родом из детства
 
3 - 29.12.20 - 11:41
(2) ну типо пользователи, похоже совсем некомпетентны и не знают, что нужно включать/отключать галочку. Тупо жмут на кнопку выполнить, без заполнения параметра, а потом не понимают, почему результат пустой
   ДенисЧ
 
4 - 29.12.20 - 11:41
"а пользователь просто не ввел значение этого поля, то результат пустой - отбор работает"

Это нормальное поведение. А вдруг пользователю действительно надо по пустому значению отчёт построить?
   ДенисЧ
 
5 - 29.12.20 - 11:42
(3) Таких надо учить. Не научаются - наказывать. Пряником. По мягкому месту.
   Kassern
 
6 - 29.12.20 - 11:48
(0) В условии пишешь, Выбор когда &ТвойПараметр<>ПустомуЗначению тогда НужноеПоле=&ТвойПараметр Иначе Истина Конец
   Родом из детства
 
7 - 29.12.20 - 11:54
(5) учить - не ко мне, я всего-лишь программист. Так поставили задачу, к сожалению
   Родом из детства
 
8 - 29.12.20 - 11:55
(6) Здесь? РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Выбор когда...) КАК
   Родом из детства
 
9 - 29.12.20 - 12:08
(6) Похоже, так делать нельзя, или я туплю...
ВЫБОР 
    КОГДА &ВидНоменклатуры <> ЗНАЧЕНИЕ(Справочник.ВидНоменклатуры.ПустаяСсылка) Тогда
    Номенклатура.ВидНоменклатуры = &ВидНоменклатуры 
    ИНАЧЕ 
КОНЕЦ        

-> Неверные параметры "Справочник.ВидНоменклатуры.ПустаяСсылка)"
Также брал строку "Номенклатура.ВидНоменклатуры = &ВидНоменклатуры" в ковычки, тоже ошибка
   Ненавижу 1С
 
10 - 29.12.20 - 12:09
1. Именно в этом отчете этот параметр вообще не нужен, совсем. Отборы справляются.
2. Как отобрать данные по товарам с незаполненным видом номенклатуры?
   Ненавижу 1С
 
11 - 29.12.20 - 12:10
(9) "Справочник.ВидНоменклатуры" - нет такой таблицы, но вообще вы бред городите
   Родом из детства
 
12 - 29.12.20 - 12:10
(10) С незаполненным - никак, но, судя по задаче, это и не нужно. Соглашусь, странная постановка
   Родом из детства
 
13 - 29.12.20 - 12:12
(11) Конфигуратор -> Справочники -> ВидыНоменклатуры -> Представление объекта = "Вид номенклатуры". Разве не так?
   Ненавижу 1С
 
14 - 29.12.20 - 12:13
для особо упоротых:

ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , (Номенклатура.ВидНоменклатуры = &ВидНоменклатуры) или (&ВидНоменклатуры=ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.ПустаяСсылка)))
   Ненавижу 1С
 
15 - 29.12.20 - 12:14
(13) причем здесь представление объекта и его идентификатор? Вы же сами пишите "Справочники -> ВидыНоменклатуры"
   ДенисЧ
 
16 - 29.12.20 - 12:14
(7) Могу подарить компАс. Чтобы направление на юг постановщику показать.
   Родом из детства
 
17 - 29.12.20 - 12:14
(15) Потому  что я тот ещё валет%)
   Родом из детства
 
18 - 29.12.20 - 12:15
(14) Спасибо!
   mistеr
 
19 - 29.12.20 - 12:19
(3) Значит тебе нужно делать это за них. Перед формированием проверять заполнение и включать/отключать параметр программно.
   Родом из детства
 
20 - 29.12.20 - 12:24
(19) Да, я так пытался сделать. Описал во втором сообщении темы. Почему-то значение параметра всегда пустое...
   hhhh
 
21 - 29.12.20 - 12:38
(7) тогда в компоновщике настроек найди этот отбор и в нем поставь Использование = Ложь;


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