|
Как получить номенклатуру, спецификация которой содержит необходимые значения рабочих мест |
☑ |
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) Верно заметили, спасибо! Видимо осталась группировка по Ссылкам после предыдущих экспериментов...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший