Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка СУБД SQL Server: Case expressions may only be nested to level 10

Ошибка СУБД SQL Server: Case expressions may only be nested to level 10
Я
   Mikhail Volkov
 
19.09.17 - 19:11
Если по русски: Количество уровней вложенности выражений CASE не может превышать 10.
Альфа-Авто содержит такой фрагмент запроса:

                |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                |    ТаблицаПодразделений.Уровень КАК Уровень,
                |    ТаблицаЦен.Номенклатура,
                |    ТаблицаЦен.ТипЦен,
                |    (ВЫБОР КОГДА ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = 1 ТОГДА
                |        ВЫРАЗИТЬ((ТаблицаЦен.Цена + 0.05) * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета КАК ЧИСЛО(15, 1))
                |    ИНАЧЕ ВЫБОР КОГДА ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = 0 ТОГДА
                |        ВЫРАЗИТЬ((ТаблицаЦен.Цена + 0.0) * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета КАК ЧИСЛО(15, 0))
                |    ИНАЧЕ ВЫБОР КОГДА ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = -1 ТОГДА
                |        (ВЫРАЗИТЬ((ТаблицаЦен.Цена + 5) * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета / 10 КАК ЧИСЛО(15, 0))) * 10
                |    ИНАЧЕ ВЫБОР КОГДА ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = -2 ТОГДА
                |        (ВЫРАЗИТЬ((ТаблицаЦен.Цена + 50) * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета / 100 КАК ЧИСЛО(15, 0))) * 100
                |    ИНАЧЕ ВЫБОР КОГДА ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = -3 ТОГДА
                |        (ВЫРАЗИТЬ((ТаблицаЦен.Цена + 500) * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета / 1000 КАК ЧИСЛО(15, 0))) * 1000
                |    ИНАЧЕ ВЫБОР КОГДА ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = 2 ТОГДА
                |        ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета
                |    ИНАЧЕ ВЫБОР КОГДА НЕ ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = 1 ТОГДА
                |        ВЫРАЗИТЬ(ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета КАК ЧИСЛО(15, 1))
                |    ИНАЧЕ ВЫБОР КОГДА НЕ ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = 0 ТОГДА
                |        ВЫРАЗИТЬ(ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета КАК ЧИСЛО(15, 0))
                |    ИНАЧЕ ВЫБОР КОГДА НЕ ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = -1 ТОГДА
                |        (ВЫРАЗИТЬ(ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета / 10 КАК ЧИСЛО(15, 0))) * 10
                |    ИНАЧЕ ВЫБОР КОГДА НЕ ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = -2 ТОГДА
                |        (ВЫРАЗИТЬ(ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета / 100 КАК ЧИСЛО(15, 0))) * 100
                |    ИНАЧЕ ВЫБОР КОГДА НЕ ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = -3 ТОГДА
                |        (ВЫРАЗИТЬ(ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета / 1000 КАК ЧИСЛО(15, 0))) * 1000
                |    ИНАЧЕ ВЫБОР КОГДА НЕ ТаблицаЦен.ТипЦен.ОкруглятьВБольшуюСторону И ТаблицаЦен.ТипЦен.Точность = 2 ТОГДА
                |        ТаблицаЦен.Цена * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета
                |    ИНАЧЕ 0
                |    КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ) КАК Цена

и что, их (не единственный) переписывать? Другого выхода нет?
 
 
   mehfk
 
1 - 19.09.17 - 19:20
Переписывай. Убирай "ИНАЧЕ", тут достаточно одного CASE.
   mehfk
 
2 - 19.09.17 - 19:21
* убирай "ИНАЧЕ ВЫБОР"
   Господин ПЖ
 
3 - 19.09.17 - 19:21
(0) научи их писать

выбор
когда тогда
когда тогда
когда тогда
когда тогда
   Филиал-msk
 
4 - 19.09.17 - 19:22
КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ КОНЕЦ

Внушаеть!
   Господин ПЖ
 
5 - 19.09.17 - 19:23
(4) ай да рарус! ай да сукин сын
   mehfk
 
6 - 19.09.17 - 19:23
Альфа - это сборник примеров как делать не надо.
   Mikhail Volkov
 
7 - 20.09.17 - 11:12
(3) А эта конструкция не превысит вложенности выражений CASE?
Всю эту хрень одной строчкой в запросе заменил:
|    (ВЫРАЗИТЬ((ТаблицаЦен.Цена + ПоправкаЦеныПрайсЛист) * КурсыВалютСрезПоследних.Курс / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) / &КурсВалютыОтчета ВыражениеИзПоправкиЦеныПрайсЛист КАК Цена

В конце добавил:
ВыражениеИзПоправкиЦеныПрайсЛист = "";    //+МВ 20.09.2017

ТекстТаблицЦенБазовыхТиповЦен = СтрЗаменить(ТекстТаблицЦенБазовыхТиповЦен, "ПоправкаЦеныПрайсЛист", мвДоработки.ПоправкаЦеныПрайсЛист(БазовыйТипЦен, ВыражениеИзПоправкиЦеныПрайсЛист));
ТекстТаблицЦенБазовыхТиповЦен = СтрЗаменить(ТекстТаблицЦенБазовыхТиповЦен, "ВыражениеИзПоправкиЦеныПрайсЛист", ВыражениеИзПоправкиЦеныПрайсЛист);    //-МВ


Работает в SQL
   Йохохо
 
8 - 20.09.17 - 11:22
(7) обфускация изменения ВыражениеИзПоправкиЦеныПрайсЛист в второй строке
   Mikhail Volkov
 
9 - 20.09.17 - 11:46
(8) Да, еще:

// Возвращает поправку цены Прайс-листа

//
Функция ПоправкаЦеныПрайсЛист(ТипЦен, Выражение = "") Экспорт

    Поправка = "";
    Если ТипЦен.Точность = 1 Тогда 
        Поправка = "0.05";
        Выражение = "КАК ЧИСЛО(15, 1)))";
    ИначеЕсли ТипЦен.Точность = 0 Тогда 
        Выражение = "КАК ЧИСЛО(15, 0)))";
    ИначеЕсли ТипЦен.Точность = -1 Тогда 
        Поправка = "5";
        Выражение = "/ 10 КАК ЧИСЛО(15, 0))) * 10";
    ИначеЕсли ТипЦен.Точность = -2 Тогда 
        Поправка = "50";
        Выражение = "/ 100 КАК ЧИСЛО(15, 0))) * 100";
    ИначеЕсли ТипЦен.Точность = -3 Тогда 
        Поправка = "500";
        Выражение = "/ 1000 КАК ЧИСЛО(15, 0))) * 1000";
    КонецЕсли;
    Возврат ?(ТипЦен.ОкруглятьВБольшуюСторону, Поправка, 0);

КонецФункции// ПоправкаЦеныПрайсЛист()
   mistеr
 
10 - 20.09.17 - 11:53
(0) Все эти варианты прямо в тексте или генерируются?

Как-то не верится, что у всех работает, а у тебя нет.
 
 Рекламное место пустует
   Господин ПЖ
 
11 - 20.09.17 - 11:58
такая ошибка на линкованных серверах всплывает
   Mikhail Volkov
 
12 - 20.09.17 - 12:20
(10) Прямо в тексте. Старая Альфа-Авто 4.1.01.30 на 8.3.10.2466
   Ненавижу 1С
 
13 - 20.09.17 - 12:30
(11) расшифруй
   Фрэнки
 
14 - 20.09.17 - 12:35
(13) наверное, он хотел сказать о постгри на линухах
   Господин ПЖ
 
15 - 20.09.17 - 12:36
(14) садись, два
   Господин ПЖ
 
16 - 20.09.17 - 12:36
   Ненавижу 1С
 
17 - 20.09.17 - 12:59
(16) там о 10 ветках WHEN в одном CASE

а у автора о 10 вложенных операторах CASE
   Вафель
 
18 - 20.09.17 - 13:02
(17) Там ответ
   Вафель
 
19 - 20.09.17 - 13:02
Not in the query text, no. But the parser always expands CASE expressions to the nested form
Так что написал (0) так сам скл делает всегда
   Mikhail Volkov
 
20 - 21.09.17 - 15:42
Прислали еще ошибку:
{ОбщийМодуль.отОтчеты.Модуль(6947)}: Ошибка при установке значения атрибута контекста (Текст): {(145, 1)}: Ожидается выражение ")"
<<?>>ПОМЕСТИТЬ ТаблицаЦенТипЦен9685bde5_e9b7_11e0_a4c7_68b599b4ac4e
{ОбщийМодуль.зфЗащищенныеФункции.Модуль(2538)}: Метод объекта не обнаружен (СформироватьТабличныйДокумент)
У себя ее получить не смог. Но отчет ПрайсЛист работает как-то странно: в фильтре по номенклатуре меняю только каталог номенклатуры. Для одних работает, для других кроме шапки - пусто!?
Вернулся в файловую копию (где нет моих исправлений) - тоже самое!?
   mehfk
 
21 - 21.09.17 - 15:54
   Mikhail Volkov
 
22 - 23.09.17 - 14:37
Если есть отбор по Номенклатуре, то в запросе должно быть &Номенклатура? Смотрю текст запроса в начальной стадии формирования - &Номенклатура не нахожу!? Пытаюсь его извлечь на окончательной стадии, выражение ТекстЗапроса = ПостроительОтчета.Текст(); ошибку дает? Хотя отладчик его показывает!? Что ни так? Он большой, хочу в сообщение его вывести, и поискать &Номенклатура.
   Mikhail Volkov
 
23 - 23.09.17 - 16:08
Текст запроса получил ПостроительОтчета.ПолучитьЗапрос().Текст перед самым выполнением:
ТекстЗапроса = "
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    |    ПрайсЛисты.Ссылка КАК ПрайсЛист,
    |    ПрайсЛисты.Номенклатура КАК Номенклатура
    |ПОМЕСТИТЬ ТаблицаПрайсЛистов
    |ИЗ
    |    Справочник.ПрайсЛист КАК ПрайсЛисты
    |ГДЕ
    |    ПрайсЛисты.Владелец = &ВидПрайсЛиста
    |    И ПрайсЛисты.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    |    И ПрайсЛисты.Номенклатура В ИЕРАРХИИ (&Параметр1)
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

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

    |УНИЧТОЖИТЬ ТаблицаПрайсЛистов
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ТаблицаПодразделений.Родитель КАК Родитель,
    |    ТаблицаПодразделений.Уровень КАК Уровень
    |ПОМЕСТИТЬ ТаблицаПодразделений
    |ИЗ
    |    (ВЫБРАТЬ
    |        ЗНАЧЕНИЕ(Справочник.ПодразделенияКомпании.ПустаяСсылка) КАК Родитель,
    |        2 КАК Уровень
    |    
    |    ОБЪЕДИНИТЬ
    |    
    |    ВЫБРАТЬ
    |        &Подразделение0,
    |        0
    |    
    |    ОБЪЕДИНИТЬ
    |    
    |    ВЫБРАТЬ
    |        &Подразделение1,
    |        1) КАК ТаблицаПодразделений
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Родитель
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

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

    |ВЫБРАТЬ
    |    МИНИМУМ(ТаблицаЦен.Уровень) КАК Уровень,
    |    ТаблицаЦен.Номенклатура КАК Номенклатура
    |ПОМЕСТИТЬ ТаблицаОтбораЦенТипЦенd01dde69_2607_11e1_baf9_68b599b4ac4e
    |ИЗ
    |    ТаблицаЦенТипЦенd01dde69_2607_11e1_baf9_68b599b4ac4e КАК ТаблицаЦен
    |ГДЕ
    |    ТаблицаЦен.Номенклатура В ИЕРАРХИИ (&Параметр5)
    |
    |СГРУППИРОВАТЬ ПО
    |    ТаблицаЦен.Номенклатура
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    ТаблицаЦен.Номенклатура КАК Номенклатура,
    |    ТаблицаЦен.Цена КАК Цена
    |ПОМЕСТИТЬ ТаблицаЦенПодразделенияТипЦенd01dde69_2607_11e1_baf9_68b599b4ac4e
    |ИЗ
    |    ТаблицаЦенТипЦенd01dde69_2607_11e1_baf9_68b599b4ac4e КАК ТаблицаЦен
    |ГДЕ
    |    (ТаблицаЦен.Уровень, ТаблицаЦен.Номенклатура) В
    |            (ВЫБРАТЬ
    |                ТаблицаЦен.Уровень,
    |                ТаблицаЦен.Номенклатура
    |            ИЗ
    |                ТаблицаОтбораЦенТипЦенd01dde69_2607_11e1_baf9_68b599b4ac4e КАК ТаблицаЦен)
    |    И ТаблицаЦен.Номенклатура В ИЕРАРХИИ (&Параметр6)
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    ТаблицаЦен.Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |УНИЧТОЖИТЬ ТаблицаЦенТипЦенd01dde69_2607_11e1_baf9_68b599b4ac4e
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

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

Но не пойму как реализован отбор по номенклатуре!? Тексты запроса одни и те же независимо от выбранного каталога номенклатуры.
   Mikhail Volkov
 
24 - 23.09.17 - 17:01
Блин, оказывается в Альфа-Авто есть специальный справочник "Прайс-лист", сперва его надо заполнить, отобрать только нужное для Прайс-листа.
   mexanik_96
 
25 - 23.09.17 - 22:50
(6) да ладно? а как надо покажи. художники разные бывают. анси 1с нет, так что не надо.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует