Имя: Пароль:
1C
1С v8
Как сделать, чтобы запрос не был пустым при незаполненной цене?
0 Мисти
 
27.01.14
17:28
Если ВидЦены (который = &Св) пока еще никому не задан вообще, то результат запроса нулевой. А у меня там еще ожидается куча полезной информации!
1 Мисти
 
27.01.14
17:28
|ВЫБРАТЬ
    |    ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад,
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    |    ЕСТЬNULL(СвободныеОстатки.ВРезерве, 0) КАК ВРезерве,
    |    ЕСТЬNULL(СвободныеОстатки.ВНаличии, 0) КАК ВНаличии,
    |    ЕСТЬNULL(СвободныеОстатки.ПолныйОстаток, 0) КАК ПолныйОстаток,
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
    |    ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаИзмерения) КАК ТовЕд,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
    |ИЗ
    |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Св4 И ВЫБОР
    |                    КОГДА &ВыбТМЦВыбран
    |                        ТОГДА Номенклатура в иерархии (&ВыбТМЦ)
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ
    |) КАК ЦеныНоменклатурыСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СвободныеОстатки.Номенклатура
2 salvator
 
27.01.14
17:31
Посмотри внимательно на параметры виртуальной таблицы. Пример там. Сделать по аналогии.
3 Nenaviwu1c20
 
27.01.14
17:35
ТипыЦенНоменклатуры
ВЫБОР
    |                    КОГДА &Св4 = Значение(Справочник.ТипыЦенНоменклатуры.Пустая)
    |                        ТОГДА 1=1    |                    ИНАЧЕ ВидЦены = &Св4
    |                КОНЕЦ
4 Мисти
 
27.01.14
17:35
Не понимаю!
Какое-нибудь эдакое условие:
ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
Но куда его присобачить?
5 Мисти
 
27.01.14
17:37
(3) Нет, там другое условие! ТипЦены такой существует, но не проставлен пока ни одной номенклатуре.
6 Nenaviwu1c20
 
27.01.14
17:38
|ВЫБРАТЬ
    |    ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад,
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    |    ЕСТЬNULL(СвободныеОстатки.ВРезерве, 0) КАК ВРезерве,
    |    ЕСТЬNULL(СвободныеОстатки.ВНаличии, 0) КАК ВНаличии,
    |    ЕСТЬNULL(СвободныеОстатки.ПолныйОстаток, 0) КАК ПолныйОстаток,
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
    |    ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаИзмерения) КАК ТовЕд,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
    |ИЗ
    |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВЫБОР
    |                    КОГДА &Св4=Значение(Справочник.ТипыЦенНоменклатуры.Пустая)
    |                        ТОГДА 1=1    |                    ИНАЧЕ ВидЦены = &Св4
    |                КОНЕЦ И ВЫБОР
    |                    КОГДА &ВыбТМЦВыбран
    |                        ТОГДА Номенклатура в иерархии (&ВыбТМЦ)
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ
    |) КАК ЦеныНоменклатурыСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СвободныеОстатки.Номенклатура
7 Nenaviwu1c20
 
27.01.14
17:38
(5) Тогда что ты хочешь скажи?)
8 Apokalipsec
 
27.01.14
17:39
(5) ну передавай тогда пустую ссылку.
9 Nenaviwu1c20
 
27.01.14
17:39
какова логика получени данных?Может стоит получить всех у кого не заполнен тип цен?
10 WildSery
 
27.01.14
17:43
(0) &Св4 = ЕСТЬNULL(ВидЦены.Ссылка, Значение(Справочник.ТипыЦенНоменклатуры.Пустая))

(3)(6) ТОГДА ИСТИНА
11 Мисти
 
27.01.14
17:43
Мне нужны вообще все по прочим условиям. Есть цена - давай с ценой, нет цены - давай без цены.
Так и получается, если цена присвоена хоть одному элементу!
12 WildSery
 
27.01.14
17:44
(0) Или же &Св4 = ЕСТЬNULL(ВидЦены.Ссылка, &Св4)
Не совсем ясно что нужно получить
13 Nenaviwu1c20
 
27.01.14
17:45
А если в остатке нет и цены нет а номенклатура есть?
14 Мисти
 
27.01.14
17:45
А если данный тип цены не установлен ни у одной номен., то запрос выдает пустой результат, хотя остатки по товарам есть!
15 Мисти
 
27.01.14
17:45
(13) Тоже надо! Там где-то у меня есть потом отбор - пропускать совсем пустые строки или нет.
16 Nenaviwu1c20
 
27.01.14
17:46
Дай весь запрос я перепишу
17 Nenaviwu1c20
 
27.01.14
17:46
там вся номенклатура будет выходить
18 Nenaviwu1c20
 
27.01.14
17:47
Скажу что нужно цеплять все к справочнику номенклатура
19 Мисти
 
27.01.14
17:51
Текст =
    "ВЫБРАТЬ
    |    ЕСТЬNULL(СвободныеОстаткиОстатки.Склад, ТоварыНаСкладахОстатки.Склад) КАК Склад,
    |    ЕСТЬNULL(СвободныеОстаткиОстатки.Номенклатура, ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура,
    |    ЕСТЬNULL(СвободныеОстаткиОстатки.ВРезервеОстаток, 0) КАК ВРезерве,
    |    ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ВНаличии,
    |    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ПолныйОстаток,
    |    СвободныеОстаткиОстатки.Номенклатура.ВидНоменклатуры КАК ВидНомен
    |ПОМЕСТИТЬ ВТ_СвободныеОстатки
    |ИЗ
    |    РегистрНакопления.СвободныеОстатки.Остатки(
    |            ,
    |            ВЫБОР
    |                    КОГДА &СкладВыбран
    |                        ТОГДА Склад = &ВыбСклад
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ
    |            И ВЫБОР
    |                    КОГДА &ВыбТМЦВыбран
    |                        ТОГДА Номенклатура  в иерархии  (&ВыбТМЦ)
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ
    |                И ВЫБОР
    |                    КОГДА &ВидНоменВыбран
    |                        ТОГДА Номенклатура.ВидНоменклатуры = &ВыбВидНомен
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ {(Номенклатура)}) КАК СвободныеОстаткиОстатки
    |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
    |                ,
    |                ВЫБОР
    |                        КОГДА &СкладВыбран
    |                            ТОГДА Склад = &ВыбСклад
    |                        ИНАЧЕ ИСТИНА
    |                    КОНЕЦ
    |            И ВЫБОР
    |                    КОГДА &ВыбТМЦВыбран
    |                        ТОГДА Номенклатура в иерархии (&ВыбТМЦ)
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ
    |                    И ВЫБОР
    |                        КОГДА &ВидНоменВыбран
    |                            ТОГДА Номенклатура.ВидНоменклатуры = &ВыбВидНомен
    |                        ИНАЧЕ ИСТИНА
    |                    КОНЕЦ {(Номенклатура)}) КАК ТоварыНаСкладахОстатки
    |        ПО СвободныеОстаткиОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    |            И СвободныеОстаткиОстатки.Склад = ТоварыНаСкладахОстатки.Склад
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ЕСТЬNULL(СвободныеОстатки.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад,
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    |    ЕСТЬNULL(СвободныеОстатки.ВРезерве, 0) КАК ВРезерве,
    |    ЕСТЬNULL(СвободныеОстатки.ВНаличии, 0) КАК ВНаличии,
    |    ЕСТЬNULL(СвободныеОстатки.ПолныйОстаток, 0) КАК ПолныйОстаток,
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
    |    ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаИзмерения) КАК ТовЕд,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
    |ИЗ
    |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Св4 И ВЫБОР
    |                    КОГДА &ВыбТМЦВыбран
    |                        ТОГДА Номенклатура в иерархии (&ВыбТМЦ)
    |                    ИНАЧЕ ИСТИНА
    |                КОНЕЦ
    |) КАК ЦеныНоменклатурыСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СвободныеОстатки КАК СвободныеОстатки
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СвободныеОстатки.Номенклатура
    |ИТОГИ
    |    СУММА(ВРезерве),
    |    СУММА(ВНаличии),
    |    СУММА(ПолныйОстаток),
    |   Максимум (Цена)
    |ПО
    |    Склад,
    |    Номенклатура ИЕРАРХИЯ";
20 Nenaviwu1c20
 
27.01.14
18:01
Так проблема.У тебя все переписанно.Поэтому говорю как сделать.Добовляешь в последний запрос таблицу СпрНоменклатура,а затем к ней левым соединением по номенклатуре цепляешь цены и остаток
21 Мисти
 
27.01.14
18:10
Переписано относительно чего?
22 Мисти
 
27.01.14
18:30
ПО СвободныеОстаткиОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    |            И СвободныеОстаткиОстатки.Склад = ТоварыНаСкладахОстатки.Склад
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураСпр
    |        ПО СвободныеОстаткиОстатки.Номенклатура = НоменклатураСпр.Ссылка

Так?
23 vicof
 
27.01.14
18:49
(0) ТС - знатный тролль.
24 Мисти
 
27.01.14
19:19
Ну вот, опять тролль.
А я 6 печатных форм сделала!
25 Мисти
 
27.01.14
19:20
У меня этот фокус так пока и не получился.
Мучаю перегрузку.
26 Мисти
 
27.01.14
19:50
(20) Не цепляется!
27 Enders
 
27.01.14
20:05
(22) ну правильно) ты ж левым соединением цепляешь справочник.
А надо к справочнику цеплять цены и остатки левым)
28 Enders
 
27.01.14
20:09
Или между ценами и остатками сделать полное соединение,
Или (если нужен полный список товара), то между ценами и остатками сделать полное соединение - поместить в ВТ,
После чего Выбрать все товары из справочника номенклатура и левым соединением присобачить ваше ВТ по номенклатуре.
29 Мисти
 
27.01.14
20:16
Нэ умэю.
30 Мисти
 
28.01.14
15:32
Помогите уже по буквам, люди добрые!
(стыдно, а что делать?)
Программист всегда исправляет последнюю ошибку.