Имя: Пароль:
1C
1С v8
Запрос по ценам номенклатуры
0 polkin
 
12.10.16
14:52
Ранее в таблицу через запрос выводил "Оптовую цену".

ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)

Цена была одна и все было нормально.
Но сейчас цен несколько и соответственно выводит несколько списков номенклатуры в таблице. Но выводить нужно только одну "Оптовую цену"

Можно после запроса перебрать всю таблицу и удалить по виду цен лишние строки. Но должно же быть решение и через запрос....

ВЫБОР
    КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦен="Оптовая цена"
    ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
    ИНАЧЕ 0
КОНЕЦ    

через выбор не работает...
1 DrShad
 
12.10.16
14:57
давай весь запрос
2 DrShad
 
12.10.16
14:57
да и ВидЦен врядли строка
3 Radkt
 
12.10.16
14:59
параметром никак выбрать нужную цену?
4 1sanekmaloi1
 
12.10.16
14:59
установить параметр "ВидЦены" вирт таблицы срезапоследних и будет счастие
5 polkin
 
12.10.16
15:20
Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура1.Ссылка КАК Номенклатура,
    |    ЕСТЬNULL(ХарактеристикиНоменклатуры.Ссылка, НЕОПРЕДЕЛЕНО) КАК Характеристика,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    |    ЕСТЬNULL(ЗапасыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
    |    ЕСТЬNULL(ЗаказыПоставщикамОстатки.КоличествоОстаток, 0) КАК Заказано,
    |    Номенклатура1.ЕдиницаИзмерения,
    |    Номенклатура1.СсылкаWEB,
    |    Номенклатура1.СтавкаНДС,
    |    Номенклатура1.НаименованиеПолное КАК Содержание,
    |    НоменклатураПрисоединенныеФайлы.Ссылка КАК ФайлКартинки,
    |    ЦеныНоменклатурыСрезПоследних.ВидЦен КАК ВидЦен
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура1
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки
    |            ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЗапасыНаСкладахОстатки.Номенклатура
    |                И ЦеныНоменклатурыСрезПоследних.Характеристика = ЗапасыНаСкладахОстатки.Характеристика
    |            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
    |            ПО (ХарактеристикиНоменклатуры.Ссылка = ЦеныНоменклатурыСрезПоследних.Характеристика)
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
    |            ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура
    |                И ЦеныНоменклатурыСрезПоследних.Характеристика = ЗаказыПоставщикамОстатки.Характеристика
    |        ПО Номенклатура1.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
    |        ПО Номенклатура1.ФайлКартинки = НоменклатураПрисоединенныеФайлы.Ссылка
    |ГДЕ
    |    Номенклатура1.Родитель = &Родитель
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВидЦен УБЫВ,
    |    Номенклатура,
    |    Характеристика
    |АВТОУПОРЯДОЧИВАНИЕ";
6 DrShad
 
12.10.16
15:25
7 1sanekmaloi1
 
12.10.16
15:33
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
Заменить на
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(,&ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
8 1sanekmaloi1
 
12.10.16
15:36
+(7) Чутка поторопился, так точнее ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(,ВидЦен = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
9 DrShad
 
12.10.16
15:39
(8) т.е. остальное пусть остается? в частности Остатки без параметров ВТ и т.п.?

ой спешишь
10 1sanekmaloi1
 
12.10.16
15:46
(9) а в ТЗ было указано: ..."Но выводить нужно только одну "Оптовую цену"", остальное как говорится за отдельную плату.
11 polkin
 
12.10.16
16:04
(8) программу закрывает
12 polkin
 
12.10.16
16:11
"ВЫБРАТЬ
    |    Номенклатура1.Ссылка КАК Номенклатура,
    |    ЕСТЬNULL(ХарактеристикиНоменклатуры.Ссылка, НЕОПРЕДЕЛЕНО) КАК Характеристика,
    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    |    ЕСТЬNULL(ЗапасыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
    |    ЕСТЬNULL(ЗаказыПоставщикамОстатки.КоличествоОстаток, 0) КАК Заказано,
    |    Номенклатура1.ЕдиницаИзмерения,
    |    Номенклатура1.СсылкаWEB,
    |    Номенклатура1.СтавкаНДС,
    |    Номенклатура1.НаименованиеПолное КАК Содержание,
    |    НоменклатураПрисоединенныеФайлы.Ссылка КАК ФайлКартинки,
    |    ЦеныНоменклатурыСрезПоследних.ВидЦен КАК ВидЦен
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура1
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки
    |            ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЗапасыНаСкладахОстатки.Номенклатура
    |                И ЦеныНоменклатурыСрезПоследних.Характеристика = ЗапасыНаСкладахОстатки.Характеристика
    |            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
    |            ПО (ХарактеристикиНоменклатуры.Ссылка = ЦеныНоменклатурыСрезПоследних.Характеристика)
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
    |            ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура
    |                И ЦеныНоменклатурыСрезПоследних.Характеристика = ЗаказыПоставщикамОстатки.Характеристика
    |        ПО Номенклатура1.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
    |        ПО Номенклатура1.ФайлКартинки = НоменклатураПрисоединенныеФайлы.Ссылка
    |ГДЕ
    |    Номенклатура1.Родитель = &Родитель
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВидЦен УБЫВ,
    |    Номенклатура,
    |    Характеристика
    |АВТОУПОРЯДОЧИВАНИЕ";


выкидывает из программы, какая то ошибка.
13 xXeNoNx
 
12.10.16
16:13
- Напильник!
- Что напильник?
- А что запрос?
14 Дарлок
 
12.10.16
16:14
(12) для начала переделай все левые соединения к справочнику номенклатуры, потом параметры ВТ начни юзать
15 1sanekmaloi1
 
12.10.16
16:16
Надеюсь Запрос.УстановитьПараметр("ВидЦены", тут ссылка на вид цены); сам дописал?
16 1sanekmaloi1
 
12.10.16
16:18
+(15)Если нет, тогда забудь все что я писал,закрой конфигуратор и объясни людям что отныне так и должно работать, имхо это проще доказать чем объяснять тут азы программирования на 1с.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший