Имя: Пароль:
1C
1С v8
Как получить номенклатуру, спецификация которой содержит необходимые значения рабочих мест
0 Archi91
 
30.11.21
12:41
Доброго времени суток, товарищи! Третий день ломаю голову, так и не смог придумать ничего путного...

Задача такая:
Имеется справочник "СпецификацииМедицинскихУслуг" с табличной частью "МестаВыполненияЭтапов".
Этот справочник имеет реквизит "Номенклатура".

Необходимо найти всю номенклатуру, спецификация которой содержит в табличной части все необходимые мне места выполения этапов...

Пытался сделать вот такой запрос:

Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
     | СпецификацииМедУслугРабочиеМеста.Ссылка.Номенклатура КАК Номенклатура
     |ИЗ
     | Справочник.СпецификацииМедицинскихУслуг.МестаВыполненияЭтапов КАК СпецификацииМедУслугРабочиеМеста
     |ГДЕ
     | СпецификацииМедУслугРабочиеМеста.Ссылка.Активная = ИСТИНА
     | И СпецификацииМедУслугРабочиеМеста.МестоВыполнения = &РабочееМесто1
     | И СпецификацииМедУслугРабочиеМеста.МестоВыполнения = &РабочееМесто2
     | И СпецификацииМедУслугРабочиеМеста.МестоВыполнения = &РабочееМесто3";
Запрос.УстановитьПараметр("РабочееМесто1", РабочееМесто1);
Запрос.УстановитьПараметр("РабочееМесто2", РабочееМесто2);
Запрос.УстановитьПараметр("РабочееМесто3", РабочееМесто3);
Выгрузка = Запрос.Выполнить().Выгрузить();

В результате - пустое значение "Выгрузка"...

Надеюсь на вашу помощь, господа!
1 RomanYS
 
30.11.21
12:45
...
где
СпецификацииМедУслугРабочиеМеста.МестоВыполнения В (&РабочееМесто1, &РабочееМесто2, &РабочееМесто3)
...
сгруппировать
...
имеющие количество(Различные  СпецификацииМедУслугРабочиеМеста.МестоВыполнения) = &КоличествоЭлементовСписка
2 Archi91
 
30.11.21
12:55
(1) Тогда в выборку попадут все, в которых есть хотя бы одно место выполнения этапов. А надо только такие, в которых все.
3 RomanYS
 
30.11.21
13:00
(2) имеющие отсечёт лишнее
4 УдавВПопугаях
 
30.11.21
15:11
активная И (место1 Или место2)
5 Archi91
 
01.12.21
06:11
(3) Благодарю!!! Всё получилось :)
6 Archi91
 
01.12.21
06:16
Итоговый код получился таким:

ВЫБРАТЬ
    СпецификацииМедУслугРабочиеМеста.Ссылка.Номенклатура КАК Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СпецификацииМедУслугРабочиеМеста.МестоВыполнения) КАК МестоВыполнения
ИЗ
    Справочник.СпецификацииМедицинскихУслуг.МестаВыполненияЭтапов КАК СпецификацииМедУслугРабочиеМеста
ГДЕ
    СпецификацииМедУслугРабочиеМеста.Ссылка.Активная = ИСТИНА
    И (СпецификацииМедУслугРабочиеМеста.МестоВыполнения = &РабочееМесто1
            ИЛИ СпецификацииМедУслугРабочиеМеста.МестоВыполнения = &РабочееМесто2
            ИЛИ СпецификацииМедУслугРабочиеМеста.МестоВыполнения = &РабочееМесто3)

СГРУППИРОВАТЬ ПО
    СпецификацииМедУслугРабочиеМеста.Ссылка,
    СпецификацииМедУслугРабочиеМеста.Ссылка.Номенклатура,

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СпецификацииМедУслугРабочиеМеста.МестоВыполнения) = &КоличествоРабочихМест
7 Мимохожий Однако
 
01.12.21
07:01
".Ссылка" в тексте запроса лишнее
8 Archi91
 
01.12.21
07:48
(7) Верно заметили, спасибо! Видимо осталась группировка по Ссылкам после предыдущих экспериментов...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн