Имя: Пароль:
1C
1С v8
Условие на несколько обязательных вхождений
,
0 trialex3
 
25.07.22
13:33
Добрый день. Какое должно быть верное условие, что бы отобрать те заказы покупателя где есть ВСЕ указанные товары. Конструкция В() не подходит, так как она проверяет каждый товар по отдельности.
1 trialex3
 
25.07.22
13:36
Блин. Неужели надо будет соединять справочник сам с собой каждый раз? 8 товаров указано - 8 соединений?
2 Галахад
 
гуру
25.07.22
13:37
Можно "=" и "="...
3 Галахад
 
гуру
25.07.22
13:38
Можно В + Имеющие(КоличествоРазличных) = В.Количество()
4 trialex3
 
25.07.22
13:39
(2) Пробовал у меня это не работает после обновления релиза
5 Галахад
 
гуру
25.07.22
13:39
Можно В + Имеющие(КоличествоРазличных) = СписокТоваров.Количество()
6 Галахад
 
гуру
25.07.22
13:40
(4) Беда. Обновление сломало синтаксис запросов. О_о
7 trialex3
 
25.07.22
13:41
(6) Честно говоря не знаю - обновлял администратор. Но там были проблемы с встроенными процедурами ПобитовоеИ, ПобитовоеИЛИ и побитовоеНе. Может быть это виной...
8 trialex3
 
25.07.22
13:44
(6) Ну в старой базе через = И = тоже не ищет
9 trialex3
 
25.07.22
13:46
(5) Можно поподробнее не очень понял как это в запросе описать?Куда это вставить?

ВЫБРАТЬ
    ЗаказПокупателяТовары.Ссылка КАК Ссылка
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры.наименование  = "А"
    И ЗаказПокупателяТовары.ХарактеристикаНоменклатуры.наименование  = "Б"
10 trialex3
 
25.07.22
14:56
(6) Короче я проверил все базы - даже за 19 год. Везде условие А=1 И А=2 не работает. При этом менеджеры продаж утверждают что в пятницу все работало. Как могло обновление одной базы повлиять на все базы?
11 Ryzeman
 
25.07.22
15:02
(10) Очевидно что он ИЛИ имел ввиду. Разве не ясно что А = 1 И А = 2 никогда не будет выполняться?...
12 ZDenis
 
25.07.22
15:04
(10) Покажи изначальный запрос, который работал в пятницу
13 Галахад
 
гуру
25.07.22
15:11
(9) Типа:
14 Галахад
 
гуру
25.07.22
15:11
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Т.Ссылка КАК Ссылка,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Номенклатура) КАК Номенклатура
ИЗ
    Документ.ЗаказПокупателя.Товары КАК Т
ГДЕ
    Т.Номенклатура В(&Список)

СГРУППИРОВАТЬ ПО
    Т.Ссылка

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Номенклатура) = &СписокКоличество
15 trialex3
 
25.07.22
15:25
(12) Это стандартный отчет "Анализ заказа покупателя" в УПП. Там есть отбор. Если в отборе указать несколько раз Характеристика = Товар то выходили именно те заказы, которые содержат все строки из отбора
16 1Сергей
 
25.07.22
15:26
(15) Черепашка
17 trialex3
 
25.07.22
15:29
(14) Если я правильно понимаю то этот отчет даст только те заказы в которых только указанные характеристики. А если там они и еще что-то, то запрос откинет подобное.
18 trialex3
 
25.07.22
15:30
(16) Не понял. Это игра и мне на А? Аист
19 kostyan29
 
25.07.22
15:32
(0)

Передать в запрос таблицу значений с нужными позициями номенклатур, запихнуть ее во временную таблицу, и с ней уже сверить. Отдельным параметром передать количество  позиций в списке



ВЫБРАТЬ
    НоменклатураТаблица.Номенклатура
ПОМЕСТИТЬ
    ВТСписокНоменклатуры
ИЗ
    &ТаблицаЗначенийНоменклатуры КАК НоменклатураТаблица
;

ВЫБРАТЬ
    ЗаказПокупателяТовары.Ссылка КАК Заказ,
    КОЛИЧЕСТВО(ЗаказПокупателяТовары.Номенклатура) КАК Количество
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСписокНоменклатуры ПО ВТСписокНоменклатуры.Номенклатура=ЗаказПокупателяТовары.Номенклатура

СГРУППИРОВАТЬ ПО
    ЗаказПокупателяТовары.Ссылка

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(ЗаказПокупателяТовары.Номенклатура)=&колво
20 trialex3
 
25.07.22
15:36
(11) Нашел старую базу где это работает:)
21 Ryzeman
 
25.07.22
15:38
(20) Это нигде блин не будет работать. Я тебе дам миллион долларов если твоя фамилия равна "Петров" и твоя фамилия равно "Иванов". Булева алгебра, 1-ый курс.
22 1Сергей
 
25.07.22
15:39
(18) Это из анекдота про три черепашки
23 Галахад
 
гуру
25.07.22
15:42
(17) Не, так не интересно. Даже готовый запрос не разобрать. :-(
24 Жан Пердежон
 
25.07.22
15:44
(0) задачка для стажера на знание языка запросов
25 trialex3
 
25.07.22
15:54
(21) Значит отчет как то это обыгрывает. Я только что сделал отбор
Заказ.Товары.ХарактеристикаНоменклатуры = А
Заказ.Товары.ХарактеристикаНоменклатуры = Б
И отчет дал только 1 заказ.
26 trialex3
 
25.07.22
15:54
(24) Благодарю за критику.
27 kostyan29
 
25.07.22
15:59
(23) А что не так? Может, не слишком оптимально, но вроде работает...
28 trialex3
 
25.07.22
16:03
Любопытно что если прервать отчет и посмотреть на отбор, который он с табдока потом стирает то там просто через равно условия по характеристике. Видимо он где то под капотом соединяет

Анализ заказов покупателей
Период: Период не установлен
Показатели: Оплата(Запланировано, Осталось оплатить, Предоплата); Отгрузка (в ед. хранения)(Запланировано, Осталось отгрузить, Со склада, Размещено в заказах, Осталось обеспечить);
Группировки строк: Заказ (Элементы);
"Отборы:
Заказ.Товары.Характеристика номенклатуры Равно "А";
Заказ.Товары.Характеристика номенклатуры Равно "Б";
Заказ.Товары.Характеристика номенклатуры Равно "В"
"Дополнительные поля:
Запланировано оплатить (Вместе с измерениями, После группировки);
Осталось оплатить (Вместе с измерениями, После группировки);
Предоплата (Вместе с измерениями, После группировки);
Запланировано отгрузить (в ед. хранения) (Вместе с измерениями, После группировки);
Осталось отгрузить (в ед. хранения) (Вместе с измерениями, После группировки);
Отгрузить со склада (в ед. хранения) (Вместе с измерениями, После группировки);
Размещено в заказах (в ед. хранения) (Вместе с измерениями, После группировки);
Осталось обеспечить (в ед. хранения) (Вместе с измерениями, После группировки);"
Сортировка: Заказ (По возрастанию);
29 trialex3
 
25.07.22
16:04
(27) {(2, 2)}: Тип не может быть выбран в запросе
<<?>>НоменклатураТаблица.Номенклатура КАК Номенклатура
30 trialex3
 
25.07.22
16:28
КОРОЧЕ РЕШЕНА ПРОБЛЕМА.
Оказалась загвоздка в совместимости. Если совместимость ставить выше 8.3.10 то отчеты стандартные так не работают через несколько РАВНО. Если ставить 8.3.10 то все работает нормально
31 Ryzeman
 
25.07.22
18:38
(25) Какой-то семёрочный код. Тут впрочем нет "И"
32 trialex3
 
26.07.22
10:50
(31) Да пес его знает как эти стандартные отчеты работают. Могу лишь сказать что после установки совместимости 8.3.10 отчеты заработали с несколькими условиями как раньше. Будет время разберу из гляну где собака зарыта.
Независимо от того, куда вы едете — это в гору и против ветра!