Имя: Пароль:
1C
1С v8
Помогите подкорректировать запрос
0 legggga
 
23.09.20
12:40
Добрый день, обращаюсь за помощью. Я админ понимаю в этом почти ничего, программиста вызвонить не могу, он с короной на больничном, а время жмет. Конфа ут 10.3 переписанная. Есть обработка отправляющая на почту прайс. Необходимо в запрос добавить фильтр чтобы туда не попадала номенклатура, у которой в подчиненном справочнике Цвета был выбран определенный цвет (код этого элемента 000000003). ВОт сам запрос

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет КАК НоменклатураЦвет
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура.Цвет = &Цвет
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
      Запрос.УстановитьПараметр("Цвет", Справочники.Цвета.НайтиПоКоду("000000003"));
    Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.Розничная);
1 Ёпрст
 
23.09.20
12:43
(0) И ? что не работает то ?
2 Ёпрст
 
23.09.20
12:45
>>>И НЕ Номенклатура.Цвет = &Цвет

реквизит Цвет хоть есть у самой номенклатуры ?
и он точно =  Справочники.Цвета.НайтиПоКоду("000000003")) ?

Скорее нет, чем да..
3 legggga
 
23.09.20
12:46
не работает, у Номенклатуры точно есть реквизит Цвет. Код у нужного элемента в справочнике Цвета точно 000000003
4 ДенисЧ
 
23.09.20
12:46
Как связаны строки
|                И НЕ Номенклатура.Цвет = &Цвет
и
"в подчиненном справочнике Цвета"

?
5 Ёпрст
 
23.09.20
12:46
И.. если это подчиненный справочник, то серии кодов, стоят как ? В пределах подчинения или во всем справочнике ?
Если первое, то .НайтиПоКоду вернёт тебе один из многих с таким кодом
6 ДенисЧ
 
23.09.20
12:47
"у Номенклатуры точно есть реквизит Цвет"

Ну... Тут или крестик, или трусики...
То подчинённый, то реквизит...
7 legggga
 
23.09.20
12:47
все что в запрос добавлено про Цвет добавлено моими кривыми руками(( читал форумы чего-то писал...((
8 Ёпрст
 
23.09.20
12:47
А тебе нужен запрос к подчиненному справочнику, из него вытаскивать владелец и его пихать уже в фильтр
9 Ёпрст
 
23.09.20
12:48
(7) Без привязки к коду, как можно различать цвета в подчиненном справочнике ?
10 legggga
 
23.09.20
12:50
честно для меня это темный лес, а если мы пойдет другим путем, нет ли желающих подправить это все естественно не безвозмездно?)
11 Ёпрст
 
23.09.20
12:56
(10)

ВЫБРАТЬ
    Цвета.Владелец КАК Номенклатура
ПОМЕСТИТЬ Табличка
ИЗ
    Справочник.Цвета КАК Цвета
ГДЕ
    Цвета.ТвойРеквизитПоКоторомуОднозначноОпределяетсяЧтоОнЖелтый = &Цвет
;
...........

//   И НЕ Номенклатура.Цвет = &Цвет
   И НЕ Номенклатура в (Выбрать Номенклатура Из Табличка)

Реквизиты оплаты смотри в личной карточке.
12 legggga
 
23.09.20
13:02
(11) глубочайше печалясь своему идиотизму все же спрошу - это пихать в тот же запрос или это какой-то дополнительный?
13 sitex
 
naïve
23.09.20
13:06
(11) Лучше уж напиши полностью запрос, а то замучает.
14 Ёпрст
 
23.09.20
13:07
(12) в тот же
15 legggga
 
23.09.20
13:07
(13) отлично сказано)
16 legggga
 
23.09.20
13:09
и озвучьте сумму пожалуйста)
17 Ёпрст
 
23.09.20
13:10
(16) ты в начале добейся. что б работало
18 legggga
 
23.09.20
13:11
Вот что получилось
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    Цвета.Владелец КАК Номенклатура
                   |ПОМЕСТИТЬ Табличка
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура в (Выбрать Номенклатура Из Табличка)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |        Справочник.Цвета КАК Цвета
                   |ГДЕ
                   |    Цвета.НайтиПоКоду("000000003") = &Цвет
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
      Запрос.УстановитьПараметр("Цвет", Справочники.Цвета.НайтиПоКоду("000000003"));
    Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.Розничная);
19 legggga
 
23.09.20
13:14
вернее вот так получилось

Запрос.Текст = "ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    Цвета.Владелец КАК Номенклатура
                   |ПОМЕСТИТЬ Табличка
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура в (Выбрать Номенклатура Из Табличка)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |        Справочник.Цвета КАК Цвета
                   |ГДЕ
                   |    Цвета.НайтиПоКоду(000000003) = &Цвет
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
      Запрос.УстановитьПараметр("Цвет", Справочники.Цвета.НайтиПоКоду("000000003"));
    Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.Розничная);
20 legggga
 
23.09.20
13:16
но получается вот это

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(74)}: Ошибка при вызове метода контекста (Выполнить)
    Рез = Запрос.Выполнить().Выгрузить();
по причине:
{(19, 9)}: Синтаксическая ошибка "Справочник.Цвета"
<<?>>Справочник.Цвета КАК Цвета
21 ДенисЧ
 
23.09.20
13:22
Мдя... Ёпрст, не мучай ребёнка... Напиши ему запрос полностью...
22 Ёпрст
 
23.09.20
13:29

   Запрос.Текст = "ВЫБРАТЬ
|    Цвета.Владелец КАК Номенклатура
|ПОМЕСТИТЬ Табличка
|ИЗ
|    Справочник.Цвета КАК Цвета
|ГДЕ
|    Цвета.ТвойРеквизитПоКоторомуОднозначноОпределяетсяЧтоОнЖелтый = &Цвет
|;
|ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет КАК НоменклатураЦвет
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура.Цвет = &Цвет
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";


ТвойРеквизитПоКоторомуОднозначноОпределяетсяЧтоОнЖелтый  - это ты должен сам определить, по какому признаку в подчиненном справочнике указывается. что он желтый, а не зеленый или красный
23 legggga
 
23.09.20
13:29
да да, счастью моему не было бы предела...)
24 Ёпрст
 
23.09.20
13:30

   Запрос.Текст = "ВЫБРАТЬ
|    Цвета.Владелец КАК Номенклатура
|ПОМЕСТИТЬ Табличка
|ИЗ
|    Справочник.Цвета КАК Цвета
|ГДЕ
|    Цвета.ТвойРеквизитПоКоторомуОднозначноОпределяетсяЧтоОнЖелтый = &Цвет
|;
|ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет КАК НоменклатураЦвет
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура в (Выбрать Номенклатура Из Табличка)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
25 legggga
 
23.09.20
13:33
(24) вопрос по реквизиту - у этого справочника Цвета есть конкретный элемент ( с кодом "000000003" и наименованием "Зеленый  заказной/неликви") вот если он выбран в номенклатуре то такая номенклатура и не должна попадать.
26 Ёпрст
 
23.09.20
13:36
(25) и прям у каждой номенклатуры есть подчиненный элемент с таким кодом ?
27 Ёпрст
 
23.09.20
13:37
серии кодов в справочнике цвета как заданы ? В пределах подчинения справочника или непрерывно, во всём справочнике ?
28 legggga
 
23.09.20
13:39
(26) (27) во всем справочнике Цвета всего десяток элементов, на форме элемента Номенклатуры есть поле выбора Цвет (выбирается из этого справочника Цвета), реквизит Цвет у справочника Номенклатура тоже есть
29 dka80
 
23.09.20
13:42
Извините, что не в тему, а программист присмерти или просто отдыхает?
30 legggga
 
23.09.20
13:45
(29) на карантине с короной не поверите
31 Ёпрст
 
23.09.20
13:47
(28) их гораздо больше. Это ты видишь с отбором по владельцу - номенклатуре.
32 Ёпрст
 
23.09.20
13:47
Вот для каждой номенклатуры их и есть с 10-ок..
33 dka80
 
23.09.20
13:50
(30) я это прочитал в (0) и поэтому спрашиваю: он присмерти и совсем не может подключиться, потратить 10 минут времени и сделать?
34 legggga
 
23.09.20
13:51
(33) не могу дозвониться банально, по вчерашнему разговору судя - состояние у него мягко говоря не ахти.
35 legggga
 
23.09.20
13:52
(31) (32) а нельзя тупо по наименованию одинаковому сравнивать (простите за идиотизм), ведь в каждой карточке каждой номенклатуры я вижу элементы этого справочника с одним и тем же названием
36 legggga
 
23.09.20
13:55
и еще может я вас дезенформировал по поводу подчинения справочника, просто если не привязываясь к номенклатуре открыть этот справочник то там все же 10 элементов, а не тысячи как например с ]единицами измерения, которая для каждой номенклатуры своя
37 legggga
 
23.09.20
13:57
ну и для интересующихся - дозвонился жене, он в больнице, состояние средней тяжести, разговоры про ивл ходят(( веселого мало
38 Ёпрст
 
23.09.20
13:58
(35) можно

|ГДЕ
//|    Цвета.ТвойРеквизитПоКоторомуОднозначноОпределяетсяЧтоОнЖелтый = &Цвет
|Где Цвета.Наименование Подобно ""%желтый%""
39 dka80
 
23.09.20
14:02
И НЕ Номенклатура.Цвет.Наименование подобно "%зеленый%"
40 legggga
 
23.09.20
14:06
Запрос.Текст = "ВЫБРАТЬ
                 |    Цвета.Владелец КАК Номенклатура
|ПОМЕСТИТЬ Табличка
|ИЗ
|    Справочник.Цвета КАК Цвета
|ГДЕ
|    Цвета.Наименование Подобно ""%Зеленый  заказной/неликви%""
|;
|ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНцаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет КАК НоменклатураЦвет
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура в (Выбрать Номенклатура Из Табличка)
                   |                И НЕ Номенклатура.Цвет.Наименование подобно ""%Зеленый  заказной/неликви%""
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.Розничная);
41 legggga
 
23.09.20
14:06
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(79)}: Ошибка при вызове метода контекста (Выполнить)
    Рез = Запрос.Выполнить().Выгрузить();
по причине:
{(2, 11)}: Поле не найдено "Цвета.Владелец"
Цвета.<<?>>Владелец КАК Номенклатура
42 legggga
 
23.09.20
14:07
вот что получается
43 ДенисЧ
 
23.09.20
14:08
(41) (42) Значит, справочник Цвета не является подчинённым. Что входит в противоречие с исходным посылом...
44 legggga
 
23.09.20
14:10
(43) у меня в 36 посте возникло такое ощущение( как тогда быть собственно?
45 ДенисЧ
 
23.09.20
14:14
(44) Для начала показать картинку со справочником Цвета из конфигуратора. А потом номенклатуру в месте, где этот цвет задаётся. Опять же из конфигуратора...
46 dka80
 
23.09.20
14:15
ты (39) пробывал?

вместо
|                И НЕ Номенклатура.Цвет = &Цвет

напиши
| И НЕ Номенклатура.Цвет.Наименование подобно "%зеленый%"
47 Ёпрст
 
23.09.20
14:18
Ну, тогда (0) должен и так заработать..
48 Ёпрст
 
23.09.20
14:18
как есть
49 legggga
 
23.09.20
14:21
50 legggga
 
23.09.20
14:21
51 legggga
 
23.09.20
14:21
не знаю то ли это?
52 legggga
 
23.09.20
14:22
для общего понимания у меня код сейчас точно как в 40.
53 Ёпрст
 
23.09.20
14:28
(52) так пробуй

Запрос.Текст  = "
|ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНцаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет КАК НоменклатураЦвет
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура.Цвет.Наименование подобно ""%Зеленый  заказной/неликви%""
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
54 Ёпрст
 
23.09.20
14:28
не быстро, но и пофик
55 legggga
 
23.09.20
14:31
опечатка прокралась, убрал, пробую
56 legggga
 
23.09.20
14:39
собственно запрос срабатывает, файл выгружается, однако, я взял для эксперимента одну номенклатуру поставил ей сей цвет и выгрузил затем убрал и выгрузил, ее нет ни в первом ни втором случае, хотя до наших мытарств выгружалась(
57 Ёпрст
 
23.09.20
14:59
(56)  а точно надо убирать номенклатуру из этой папки ?

>>>> НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
58 Ёпрст
 
23.09.20
15:00
Мот наеборот ?
59 legggga
 
23.09.20
15:02
(57) (58) а что если по русски значит это условие? я думал оно означает не брать номенклатуру лежащую в корне справочника (хотя такой нет совсем)
60 legggga
 
23.09.20
15:04
на всякий случай показываю как выглядел запрос до того как я в него полез сегодня кривыми руками

Запрос.Текст = "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
    |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(
    |            ,
    |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
    |                И Склад В (&Склады)
    |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
    |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
    |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
    |    ТоварыНаСкладахОстатки.Номенклатура.Производитель
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ";
61 legggga
 
23.09.20
15:05
если я правильно понимаю, он высыпает всю номенклатуру имеющую остатки и цены исключая номенклатуру в папке и Шины и в папке Диски (это я про оригинальный)
62 Ёпрст
 
23.09.20
15:14
(61) ине берет всю номенклатуру во всех папках и подпапках группы (&Номенклатура)
63 legggga
 
23.09.20
15:16
(62) а как же я тогда вижу в файле вексельном 74 страницы номенклатуры списком с остатками и ценами, может весь код обработки показать?)
64 Deon
 
23.09.20
15:21
(62) Это, скорее всего, номенклатура-исключения
65 legggga
 
23.09.20
15:34
(64) глупый вопрос - а какой принцип исключения и попадания в эту выгрузку как узнать?
собственно показываю вообще весь код обработки выгрузки (там таких запросов кстати три, потому что выгружаются три файла, первый без номенклатуры из папок ШИНЫ и ДИСКИ, второй только ШИНЫ, третий только ДИСКИ)

Таб = Новый ТабличныйДокумент;
    Таб2 = Новый ТабличныйДокумент;
    Таб3 = Новый ТабличныйДокумент;
    Макет = ПолучитьОбщийМакет("Прайс");
    Обл = Макет.ПолучитьОбласть("Шапка");
    Таб.Вывести(Обл);
    
    Обл = Макет.ПолучитьОбласть("Строка");
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                   |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет КАК НоменклатураЦвет
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                   |            ,
                   |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
                   |                И Склад В (&Склады)
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Шины)
                   |                И НЕ Номенклатура.Цвет.Наименование подобно ""%Зеленый  заказной/неликви%""
                   |                И НЕ Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТоварыНаСкладахОстатки.Номенклатура,
                   |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
                   |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
                   |    ТоварыНаСкладахОстатки.Номенклатура.Производитель,
                   |    ЦеныНоменклатурыСрезПоследних.Номенклатура.Цвет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номенклатура
                   |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.Розничная);
    МасСклады = Новый Массив;
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000072"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000194"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000024"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000013"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("000000002"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000054"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000008"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000167"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("000000003"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000067"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("000000001"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000026"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("000000005"));
    МасСклады.Добавить(Справочники.Склады.НайтиПоКоду("Ш00000088"));
    Запрос.УстановитьПараметр("Склады",МасСклады);
    МасШины = Новый Массив;
    МасШины.Добавить(Справочники.НоменклатурныеГруппы.НайтиПоКоду("Ш00000313"));
    МасШины.Добавить(Справочники.НоменклатурныеГруппы.НайтиПоКоду("Ш00000085"));
    МасШины.Добавить(Справочники.НоменклатурныеГруппы.НайтиПоКоду("Ш00000580"));
    МасШины.Добавить(Справочники.НоменклатурныеГруппы.НайтиПоКоду("Ш00000084"));
    Запрос.УстановитьПараметр("Шины",МасШины);
    МасДиски = Новый Массив;
    МасДиски.Добавить(Справочники.НоменклатурныеГруппы.НайтиПоКоду("Ш00000088"));
    МасДиски.Добавить(Справочники.НоменклатурныеГруппы.НайтиПоКоду("Ш00000087"));
    Запрос.УстановитьПараметр("Диски",МасДиски);
    Запрос.УстановитьПараметр("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("00000099105"));
    Рез = Запрос.Выполнить().Выгрузить();
    Для Каждого Стр Из Рез Цикл
        Обл.Параметры.Заполнить(Стр);
        Таб.Вывести(Обл);
    КонецЦикла;
    ПолныйПутьКФайлуXLS = ПолучитьИмяВременногоФайла("xls");
    Таб.Записать(ПолныйПутьКФайлуXLS, ТипФайлаТабличногоДокумента.XLS97);
    
    Файл1 = Новый Файл(ПолныйПутьКФайлуXLS);
    ИВФ1 = Файл1.Путь+"Прайс Товар.xls";
    КопироватьФайл(ПолныйПутьКФайлуXLS,ИВФ1);
    
    Запрос.Текст = "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
    |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(
    |            ,
    |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
    |                И Склад В (&Склады)
    |                И Номенклатура.НоменклатурнаяГруппа В (&Шины)) КАК ТоварыНаСкладахОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
    |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
    |    ТоварыНаСкладахОстатки.Номенклатура.Производитель
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ";
    Рез = Запрос.Выполнить().Выгрузить();
    Обл = Макет.ПолучитьОбласть("Шапка");
    Таб2.Вывести(Обл);
    
    Обл = Макет.ПолучитьОбласть("Строка");
    Для Каждого Стр Из Рез Цикл
        Обл.Параметры.Заполнить(Стр);
        Таб2.Вывести(Обл);
    КонецЦикла;
    ПолныйПутьКФайлуXLS = ПолучитьИмяВременногоФайла("xls");
    Таб2.Записать(ПолныйПутьКФайлуXLS, ТипФайлаТабличногоДокумента.XLS97);
    
    Файл2 = Новый Файл(ПолныйПутьКФайлуXLS);
    ИВФ2 = Файл2.Путь+"Прайс Шины.xls";
    КопироватьФайл(ПолныйПутьКФайлуXLS,ИВФ2);
    
    Запрос.Текст = "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Остаток,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК Артикул,
    |    ТоварыНаСкладахОстатки.Номенклатура.Производитель КАК Производитель
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(
    |            ,
    |            НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура)
    |                И Склад В (&Склады)
    |                И Номенклатура.НоменклатурнаяГруппа В (&Диски)) КАК ТоварыНаСкладахОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
    |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0),
    |    ТоварыНаСкладахОстатки.Номенклатура.Артикул,
    |    ТоварыНаСкладахОстатки.Номенклатура.Производитель
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ";
    Рез = Запрос.Выполнить().Выгрузить();
    Обл = Макет.ПолучитьОбласть("Шапка");
    Таб3.Вывести(Обл);
    
    Обл = Макет.ПолучитьОбласть("Строка");
    Для Каждого Стр Из Рез Цикл
        Обл.Параметры.Заполнить(Стр);
        Таб3.Вывести(Обл);
    КонецЦикла;
    ПолныйПутьКФайлуXLS = ПолучитьИмяВременногоФайла("xls");
    Таб3.Записать(ПолныйПутьКФайлуXLS, ТипФайлаТабличногоДокумента.XLS97);
    
    Файл3 = Новый Файл(ПолныйПутьКФайлуXLS);
    ИВФ3 = Файл3.Путь+"Прайс Диски.xls";
    КопироватьФайл(ПолныйПутьКФайлуXLS,ИВФ3);
    
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = "mail.nic.ru";
    Профиль.АдресСервераPOP3 = "mail.nic.ru";
    Профиль.ПортPOP3 = 110;
    Профиль.ПортSMTP = 25;
    Профиль.Пользователь = "[email protected]";
    Профиль.Пароль = "Foto2017";
    Профиль.ПользовательSMTP = "[email protected]";
    Профиль.ПарольSMTP = "Foto2017";
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
    Почта = Новый ИнтернетПочта;
    
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Текст = Письмо.Тексты.Добавить("Автоматическая выгрузка");
    Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
    Письмо.Тема = "Прайсы для Вадика";
    Письмо.Отправитель = "[email protected]";
    Письмо.ИмяОтправителя = "Прайсы";
    Письмо.Получатели.Добавить("[email protected]");
    Письмо.Вложения.Добавить(ИВФ1);
    Письмо.Вложения.Добавить(ИВФ2);
    Письмо.Вложения.Добавить(ИВФ3);
    
    Попытка
        Почта.Подключиться(Профиль);
        Почта.Послать(Письмо);
    Исключение
    КонецПопытки;
    
    Почта.Отключиться();
66 sitex
 
naïve
23.09.20
15:36
(65) хоть бы пароль убрал , а то для Вадика полетит сейчас много чего)))
67 Ёпрст
 
23.09.20
15:38
(65) ну вот, спалил контору.

ЗЫ: тому кто пишет такой код с привязкой к кодам в справочнике, в рукти бы нагадить
68 legggga
 
23.09.20
15:39
упс ступил
69 legggga
 
23.09.20
15:39
отредактировать сообщение уже нельзя тут?))
70 Ёпрст
 
23.09.20
15:40
(68) ну и посмотри, что за группа номенклатуры с кодом "00000099105"... вот её нет в твоей выгрузке
71 Ёпрст
 
23.09.20
15:40
(69) можно, за деньги
72 Ёпрст
 
23.09.20
15:40
тут всё можно, но за деньги :)
73 legggga
 
23.09.20
15:42
(70) а вот нет такой группы
74 Ёпрст
 
23.09.20
15:43
(73) поэтому, смотри (67).
75 Deon
 
23.09.20
15:43
Вот вы привязались к этой бедной группе номенклатуры
76 legggga
 
23.09.20
15:45
собственно что делать? кина не будет?(
77 Deon
 
23.09.20
15:47
(74) Условие НЕ Номенклатура В ИЕРАРХИИ (&Номенклатура) ни на что не влияет, ибо в &Номенклатура пустая ссылка
78 Ёпрст
 
23.09.20
15:48
(77) а должна бы..
79 Deon
 
23.09.20
15:48
(76) Код в 0 должен, по идее, работать
Пихни в начало обработки:

Сообщить(Справочники.Цвета.НайтиПоКоду("000000003"));

Посмотрим, находит он этот цвет или нет
80 Ёпрст
 
23.09.20
15:48
ибо код в справочнике поменяли
81 legggga
 
23.09.20
15:49
да нашел тот самый нужный элемент
82 Deon
 
23.09.20
15:50
(80) Это уж наверняка. Как и в половине элеменетов в этом "элегантном" коде из (65)
83 legggga
 
23.09.20
15:50
Зеленый  заказной/неликви
84 Deon
 
23.09.20
15:54
(83) И что в итоге выдавал запрос из (0)?
Пустоту или как и раньше, все номенклатуры, включая этот зеленый цвет?
85 legggga
 
23.09.20
15:55
(84) да все подряд и зеленые и синие)
86 legggga
 
23.09.20
15:56
(85) стоп это я выполнил запрос из 52
87 legggga
 
23.09.20
15:57
0 тот что в заголовке не работал совсем, это я чего-то туда накаляла собственноручно как-то
88 legggga
 
23.09.20
16:01
в порядке бреда выполнил обработку с запросом из 0. выгрузилось еще больше номенклатуры и вместе с зеленой)
89 Evgenchik
 
23.09.20
16:07
Ты понимаешь, что чем больше тебе помогают, тем больше денег возьмут потом, чтобы разгрести все косяки?
90 legggga
 
23.09.20
16:10
(89) понимаю, однако, пока мне непонятно какие косяки нам удалось разгрести? более того мы не говорим про оптимизацию кода, скорее о дополнительном фильтре в запросе. И с этим пока 0.
91 Deon
 
23.09.20
16:13
(90) Кстати, ты уверен, что в справочнике цветов всего одна запись с этим зеленым цветом?
92 legggga
 
23.09.20
16:14
(91) да там всего 8-10 элементов
93 Deon
 
23.09.20
16:26
(88) А где ты видишь, что там есть зеленая номенклатура?  в прайсе где-то рисуется цвет?
94 legggga
 
23.09.20
16:28
(93) то что она зеленая я вижу в подборе (он переписан и строчка с такой номенклатурой выделена зеленым)
вот справочник цвета

https://skr.sh/s4I3Ev1Z6St
95 legggga
 
23.09.20
16:33
ну и собственно в выгрузке я вижу в файле товар который зеленый в подборе
96 Deon
 
23.09.20
16:36
(95) Странно. Этого не может быть, потому что этого быть не может.

Ну, попробуй убрать НЕ. Давай проверим, попадут ли в прайс только зеленые товары:

И Номенклатура.Цвет = &Цвет
97 legggga
 
23.09.20
16:42
(96) в таком раскладе выгрузилось совсем мало товара, буквально 1 страница, реально зеленого товара в десятки раз больше и этот что выгрузился весь поголовно зеленый!
98 legggga
 
23.09.20
16:43
как будто по какому-то принципу не весь попадает
99 Deon
 
23.09.20
16:46
(98) Вывод - зеленый товар бывает ещё по какому-то другому условию, кроме как Номенклатура.Цвет.
Если открыть карточку номенклатуры, которая зеленая но не попала в (97) У неё там справа снизу тоже выбран цвет 000000003?
100 legggga
 
23.09.20
16:48
(99) именно! сразу несколько проверил
101 legggga
 
23.09.20
16:48
(100) по поводу условия не знаю, могу сказать что если убрать цвет строчка становится черной, возвращаешь становится зеленой
102 legggga
 
23.09.20
16:57
вынужден прерваться, убегаю, если завтра еще будут желающие продолжим, всем спасибо
103 delgadoo
 
23.09.20
18:48
(102) постучись в email. подключусь - помогу.
104 СвинТуз
 
23.09.20
19:48
Если он не умрет от короновируса его можно повесить, как Мусолини за ноги. За растрату ресурсов компьютера.

Шутка. Барбамбия киргуду.

Запрос интересный.

НоменклатурнаяГруппа  это не всегда папочка в справочнике "Номенклатура".
105 СергТ
 
24.09.20
09:20
Только присоединился. Читаю в (0): "не попадала номенклатура, у которой в подчиненном справочнике Цвета был выбран определенный цвет"
А в запросе вижу "И НЕ Номенклатура.Цвет = &Цвет" Диссонанс. Этим условием отсекаются ТОЛЬКО товары, у которых реквизит Цвет (в справочнике Номенклатура) установлен равным &Цвет. Если я правильно понял, то требуется отсечь не такие товары, а такие, у которых, среди прочих, есть и &Цвет в подчинённом справочнике Цвета.
Для этого нужно получить номенклатуру, у которой это условие выполняется, а уже потом основной запрос отсортировать по этому списку.
Запрос писать не буду, времени нет, напишут другие ( ;))) )

Виртуальная таблица 1:
Выбрать СпрЦвета.Владелец КАК Номенклатура
Поместить НужнаяНоменклатура
Из Справочник.Цвета КАК СпрЦвета
Где Справочник.Цвет=&Цвет
//(здесь же можно добавить и все остальные фильтры по номенклатуру для оптимальности (Иерархия, номенклатурная группа, пометка удаления...)
Индексировать По Номенклатура

Запрос:
Выбрать НужнаяНоменклатура.Номенклатура, РегОст.Остаток....
Из РегОст...(Склад В Склад... Номенклатура в Выбрать НужнаяНоменклатура.Номенклатура Из НужнаяНоменклатура КАК НужнаяНоменклатура....

Как-то так. Без подробностей ))
106 Deon
 
24.09.20
09:25
(105) Там где-то в середине выяснили, что справочник Цвета не подчинен Номенклатуре
107 СергТ
 
24.09.20
09:35
(106)  Ы :D
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший