Имя: Пароль:
1C
1С v8
СКД. Параметры виртуальной таблицы. Ошибка: глобальные элементы отбора обязательно должны
0 realevgenius
 
13.07.18
10:43
Всем  - привет!

Изучаю СКД

Хочу сделать отчетик по номенклатуре, которая есть на остатках

Текст запроса:

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

При попытке задать параметр "Склады" ошибка

глобальные элементы отбора обязательно должны использовать поля

Что не так и куда включить?

ПС: левое соединение и проч, не предлагать... Это запросик для примера просто. Номенклатуру надо получить именно с таким условием, чтобы она входила в таблицу остатков

Возможно такое условие использовать вообще в СКД? Просто запросом получается без проблем.

Спасибо!
1 realevgenius
 
13.07.18
10:45
2 DrWatson
 
13.07.18
10:51
Замени условие с параметром на фигурные скобки:
{(Склад).*}
Тогда их можно будет задавать в отборах. А так как сейчас - только в параметрах, не очень удобно.
3 Timon1405
 
13.07.18
10:54
(1) на второй вкладке галка "доступен список значений"
4 realevgenius
 
13.07.18
10:57
(3) Да, пробовал... Такаяж ошибка
5 DrWatson
 
13.07.18
10:58
Если всё же параметры. То 2 способа:
1. Задать значения в конфигураторе. Что вряд ли, т.к. склады скорее всего не предопределенные.
2. Убери галку "Ограничение доступности" и задавай параметр (не отбор) в режиме предприятия.
6 realevgenius
 
13.07.18
10:59
(2) {(Склад).*}  - не совсем понял, что и где прописать..

РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Склад).*} В (&Склады)) КАК ТоварыНаСкладахОстатки - так ошибка

РегистрНакопления.ТоварыНаСкладах.Остатки(, {Склад.*} В (&Склады)) - ошибка
7 DrWatson
 
13.07.18
11:00
(6) Всё условия заменить на {}
Остатки(, {(Склад).*})
8 realevgenius
 
13.07.18
11:04
(7) Сделал... В отборе выбрать склады не возможно... НЕту...
видимо, что-то еще требуется
9 Tonik992
 
13.07.18
11:05
Устанавливать значение параметра нельзя во вкладке "Отбор" в настройках отчет. Удаляйте его оттуда
10 realevgenius
 
13.07.18
11:05
11 realevgenius
 
13.07.18
11:06
(9) А как задать склады? Или такое условие для формирование списка номенклатуры - в принципе не приемлемо?
12 Tonik992
 
13.07.18
11:08
Так у вас же вкладка "Параметры" есть. Там и устанавливайте.
В свойствах пользовательских настроек укажите "Быстрый доступ"
13 DrWatson
 
13.07.18
11:11
(10) покажи первую закладку схемы компоновки
14 realevgenius
 
13.07.18
11:11
15 DrWatson
 
13.07.18
11:13
(14) и где там Остатки(, {(Склад).*}) ?
16 realevgenius
 
13.07.18
11:16
(15) Убрал...
От них толку не было... Вообще негде было выбирать склады...
17 DrWatson
 
13.07.18
11:17
Что убрал? Ты поставил фигурные скобки как я написал? Отбор появился? Нет - давай скриншот первой закладки.
18 realevgenius
 
13.07.18
11:19
(17)

Вот добавил
https://ibb.co/etfy7T

С параметров склады пропали
https://ibb.co/kRVbu8

В польз режиме тоже пусто
https://ibb.co/bVwc1o
19 youalex
 
13.07.18
11:21
(0)  а не проще просто из регистра выбрать номенклатуру ?
20 realevgenius
 
13.07.18
11:24
(19) Много чего проще...
Надо в запросе, который я показал

Есть СКД... Там много чего наворочено, я не хочу это все это переделывать, во все вникать... просто хочу добавить свое условие, чтобы попадала номенклатура, которая мне нужна, которая есть на складах. А в остальном, чтобы запрос работал как раньше
21 DrWatson
 
13.07.18
11:32
(18) ага, понял. Внутри условия фигурные скобки оказывается не проходят. Тогда например такой вариант:
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ НоменклатураСОстатками
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Склад).*}) КАК ТоварыНаСкладахОстатки
ГДЕ
    ТоварыНаСкладахОстатки.ВНаличииОстаток >= 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Номенклатура.Ссылка КАК Номенклатура
{ВЫБРАТЬ
    Номенклатура}
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Ссылка В
            (ВЫБРАТЬ
                НоменклатураСОстатками.Номенклатура КАК Номенклатура
            ИЗ
                НоменклатураСОстатками)
{ГДЕ
    Номенклатура.Ссылка.* КАК Номенклатура}
22 DrWatson
 
13.07.18
11:34
Хотя условие ГДЕ лучше заменить на ВНУТРЕННЕЕ СОЕДИНЕНИЕ:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Номенклатура.Ссылка КАК Номенклатура
{ВЫБРАТЬ
    Номенклатура}
ИЗ
    НоменклатураСОстатками КАК НоменклатураСОстатками
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО НоменклатураСОстатками.Номенклатура = Номенклатура.Ссылка
{ГДЕ
    Номенклатура.Ссылка.* КАК Номенклатура}
23 realevgenius
 
13.07.18
11:36
(22) Еще раз повторю, что писал в (0)
ПС: левое соединение и проч, не предлагать... Это запросик для примера просто. Номенклатуру надо получить именно с таким условием, чтобы она входила в таблицу остатков

Тоесть, я понимаю, сделать, как в (0) не реально?
24 DrWatson
 
13.07.18
11:42
(23) в (21) написал как в (0). В (22) улучшенный вариант, который так же хорошо встраивается в сложные запросы. Это имхо, не хочешь - бери (21).
25 realevgenius
 
13.07.18
11:44
(24) Спасибо большое! Не вчитался, видимо...
Попробую...
26 realevgenius
 
13.07.18
11:52
Да, с помощью (21) появились отборы... Но результата нет... ПУсто, отчет ничего не формирует
27 realevgenius
 
13.07.18
11:54
Уважаемый   DrWatson. Можете вы мне сделать за плату это дело? Напишите [email protected],если есть время
28 realevgenius
 
13.07.18
12:04
В итоге все получилось... Я - просто криворукий... DrWatson - предлагаю вознаграждение... Денег на телефон или еще как, пишите в почту
29 DrWatson
 
13.07.18
12:11
(26) Не знаю. Вставил в УТ - работает.
30 DrWatson
 
13.07.18
12:12
(28) Не, не надо.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.