Имя: Пароль:
1C
 
Не работает условие построителя. Почему?
0 alf2006x
 
25.08.21
10:37
Бьюсь с настройками динамического списка.
Нужно: сделать фильтр документов по одному реквизиту его таб. части (Поставщик).

Нашел вот это решение, но оно у меня почему-т о не работает:
Отбор в динамическом списке по значению табличной части.

Колдую пока в консоли запроса.

Вот так - работает:
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 100
    ЗаказПокупателяУслуги.Поставщик,
    ЗаказыПокупателей.Ссылка КАК Ссылка,
    ЗаказыПокупателей.Дата КАК Дата,
    ЗаказыПокупателей.Номер КАК Номер,
    ЗаказыПокупателей.Контрагент,
    ЗаказыПокупателей.ДоговорКонтрагента
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказыПокупателей
        {ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Услуги КАК ЗаказПокупателяУслуги
        ПО ЗаказыПокупателей.Ссылка = ЗаказПокупателяУслуги.Ссылка}
ГДЕ
    ЗаказПокупателяУслуги.Поставщик = &ПоставщикУслуги


А вот так уже не работает. Не фильтрует по выбранному значению (а мне очень надо):
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 100
    ЗаказПокупателяУслуги.Поставщик,
    ЗаказыПокупателей.Ссылка КАК Ссылка,
    ЗаказыПокупателей.Дата КАК Дата,
    ЗаказыПокупателей.Номер КАК Номер,
    ЗаказыПокупателей.Контрагент,
    ЗаказыПокупателей.ДоговорКонтрагента
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказыПокупателей
        {ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Услуги КАК ЗаказПокупателяУслуги
        ПО ЗаказыПокупателей.Ссылка = ЗаказПокупателяУслуги.Ссылка}
{ГДЕ
    ЗаказПокупателяУслуги.Поставщик.* КАК &ПоставщикУслуги}

ЧЯДНТ?
У товарища из найденного мной решения то работает ?!
1 alf2006x
 
25.08.21
12:35
- Доктор, меня все игнорируют...
- Следующий!

)
2 Вафель
 
25.08.21
12:42
{ГДЕ
    ЗаказПокупателяУслуги.Поставщик.* КАК &ПоставщикУслуги}
Амперсант тут лишний
3 mzelensky
 
25.08.21
13:16
(0) Осталось просто погуглить - что означают "{...}" в запросах 1С.
4 mzelensky
 
25.08.21
13:18
(2) Нет, тут другое лишнее - ".* КАК"
5 mzelensky
 
25.08.21
13:19
(4) Хотя нет. Зависит от задачи.
6 alf2006x
 
25.08.21
13:53
(2) Да, согласен, & забыл стереть. Но без него всё равно не работает. Не фильтрует.
(4) КАК поставил чтобы параметр не сливался с таким же в реквизите самого документа.
Видать сначала поставщик назначался на весь заказ, а потом его решили сделать построчно.

Делаю
{ГДЕ ЗаказПокупателяУслуги.Поставщик}
- всё равно не фильтрует... (
7 youalex
 
25.08.21
14:13
консоль запросов разве умеет в скобочки?
8 alf2006x
 
25.08.21
14:25
Сам запрос - умеет.
А вот результат похоже нет. )
9 alf2006x
 
25.08.21
14:26
(7) А чем его тогда протестить?
10 youalex
 
25.08.21
14:39
(9) в самом списке и тести.
ну или в пустой обработке сделай ДС и назначь его основным реквизитом.
11 alf2006x
 
25.08.21
16:30
Кладу в копилку коллективного разума.

В общем, "лишними" в итоге оказались первые фигурные скобки!
Найдено экспериментально путем перебирания вариантов в запросе дино-списка.
Почему так - не знаю, но это факт.

Вот так всё работает (причём работает просто великолепно):

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказыПокупателей.Ссылка КАК Ссылка,
    ЗаказыПокупателей.Дата КАК Дата,
    ЗаказыПокупателей.Номер КАК Номер,
    ЗаказыПокупателей.Контрагент,
    ЗаказыПокупателей.ДоговорКонтрагента
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказыПокупателей
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Услуги КАК ЗаказПокупателяУслуги
        ПО ЗаказыПокупателей.Ссылка = ЗаказПокупателяУслуги.Ссылка
{ГДЕ
    ЗаказПокупателяУслуги.Поставщик.* КАК ПоставщикУслуги}


PS. В форме отбора появляется поле отбора "ПоставщикУслуги"

PPS. Конструктор запроса эту конструкцию не отрабатывает (не фильтрует) видимо потому, что в нем нет построителя отчета,
к которому и относятся фигурные скобки.
12 Вафель
 
25.08.21
16:33
все должно работать. кривая консоль скорее всего
13 Вафель
 
25.08.21
16:34
и соединение в скобках должно работать
14 alf2006x
 
25.08.21
17:11
Внезапно нарисовалась другая проблема.
В отборе дин. списка теперь включены все измерения всех присоединяемых регистров
(там много чего надо выводить по заказу: оплаты, доставки документов и т.д. и т.п.)

То есть ранее я ошибся, оказалось что в документе нет поля "Поставщик".
Это поле в отбор было добавлено из одного из присоединяемых регистров.

Собственно все измерения всех присоединяемых регистров были добавлены в отбор.
Так как фильтровать по ним дело неблагодарное то возник вопрос: а как из отбора
убрать лишние реквизиты? То есть требуется убрать все измерения приплывшие в отбор
из регистров.

Чтобы оставить пользователю только отбор по реквизитам самого документа и свежеиспечёный отбор
по поставщику из таб. части документа.
15 youalex
 
25.08.21
17:27
(14) В ДС не построитель отчета , а СКД
Обычный запрос (Новый Запрос) - фигурные скобки просто игнорит
В ДС фигурные скобки должны работать и в соединении (потому что СКД). В конструкторе запроса ДС этим управляет галка "Обязательная" на закладке Компоновка/Таблицы
ЧТобы задать конкретные поля, тебе нужно убрать галку Автозаполнение доступных полей в свойствах ДС, и прописать все нужные поля в {ВЫБРАТЬ ...}   и {ГДЕ...}
Все как в СКД
16 alf2006x
 
27.08.21
16:36
(15) Весьма интересно, но сия птичка (Автозаполнение доступных полей) недоступна для снятия. Почему-то...
Как её сделать доступной?
17 youalex
 
27.08.21
16:49
(16) странно, а остальное все доступно?
18 alf2006x
 
27.08.21
16:52
Вид ключа и поле ключа тоже недоступны.
Видимо из-за этого (нашел на просторах мисты): "...Можно выключить автозаполнение доступных полей (с 8.3.10)..."

А у меня включена совместимость с 8.2.16