Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 13:29

Запрос в 1С УТ 11

Автор san4ezart, 27 сен 2013, 02:59

0 Пользователей и 1 гость просматривают эту тему.

san4ezart

Добрый день. Мучаюсь уже второй день. Есть отчет. В зависимости от Сезона номенклатуры (поле П30) (дополнительные сведения, не реквизит) хочу в ячейку (поле П29) вставлять определенное значение, строку. Но сравнение никак не происходит и я получаю всегда "Значение2" Привожу запрос.


Где я ошибся?



ВЫБРАТЬ
ВЫБОР
КОГДА Выгружен.ВыгруженВИС = ЛОЖЬ
ТОГДА "I"
КОГДА Выгружен.ВыгруженВИС ЕСТЬ NULL
ТОГДА "I"
ИНАЧЕ "U"
КОНЕЦ КАК П1,
"A" КАК П2,
ПеремещениеТоваровТовары.Номенклатура.Артикул КАК П3,
ВЫБОР
КОГДА ВложенныйЗапрос.Штрихкод ПОДОБНО "_________"
ТОГДА "MANL"
ИНАЧЕ "EAN13"
КОНЕЦ КАК П4,
ПеремещениеТоваровТовары.Номенклатура.Наименование КАК П5,
ПеремещениеТоваровТовары.Номенклатура.Родитель.Наименование КАК П6,
ПОДСТРОКА(ВложенныйЗапрос.Штрихкод, 0, 13) КАК П8,
"EA" КАК П9,
"0" КАК П10,
"RU" КАК П11,
"NF" КАК П12,
" " КАК П13,
ВЫБОР
КОГДА ПеремещениеТоваровТовары.Номенклатура.Родитель.Родитель.Родитель.Наименование = "женское"
ТОГДА "F"
ИНАЧЕ "M"
КОНЕЦ КАК П14,
"" КАК П15,
ПеремещениеТоваровТовары.Ссылка.СкладПолучатель.НомерДоговора КАК П16,
"" КАК П17,
"" КАК П18,
"" КАК П19,
"" КАК П20,
Цвет.Значение КАК П21,
Размер.Значение КАК П22,
Состав.Значение КАК П23,
"" КАК П24,
ВложенныйЗапрос2.Цена КАК П25,
"RUB" КАК П26,
ВложенныйЗапрос1.Цена КАК П27,
Сезон.Значение КАК П30,
ВЫБОР
КОГДА Сезон.Значение = "fw 13-14"
ТОГДА "Значение1"
ИНАЧЕ "Значение2"
КОНЕЦ КАК П29,
ПеремещениеТоваровТовары.КоличествоУпаковок КАК П32,
ПеремещениеТоваровТовары.Номенклатура.ЦеноваяГруппа.Наименование" КАК П28
{ВЫБРАТЬ
П1,
П2,
П3,
П4,
П5,
П6,
П8,
П9,
П10,
П11,
П12,
П13,
П14,
П15,
П16,
П17,
П18,
П19,
П20,
П21,
П22,
П23,
П24,
П25,
П26,
П27,
П29,
П30,
П32}
ИЗ
Константы КАК Константы,
Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
ШтрихкодыНоменклатуры.Характеристика КАК Характеристика,
ШтрихкодыНоменклатуры.Склад КАК Склад
ИЗ
РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры) КАК ВложенныйЗапрос
ПО ПеремещениеТоваровТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
И ПеремещениеТоваровТовары.Характеристика = ВложенныйЗапрос.Характеристика
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение,
НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
НоменклатураДополнительныеРеквизиты.Свойство.Наименование = "Сезон") КАК Сезон
ПО ПеремещениеТоваровТовары.Номенклатура = Сезон.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение,
НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
НоменклатураДополнительныеРеквизиты.Свойство.Наименование = "Состав") КАК Состав
ПО ПеремещениеТоваровТовары.Номенклатура = Состав.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Розничная") КАК ВложенныйЗапрос1
ПО ПеремещениеТоваровТовары.Номенклатура = ВложенныйЗапрос1.Номенклатура
И ПеремещениеТоваровТовары.Характеристика = ВложенныйЗапрос1.Характеристика
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Значение,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ГДЕ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Наименование = "Цвет") КАК Цвет
ПО ПеремещениеТоваровТовары.Характеристика = Цвет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Значение,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ГДЕ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство.Наименование = "Размер") КАК Размер
ПО ПеремещениеТоваровТовары.Характеристика = Размер.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение,
НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
НоменклатураДополнительныеРеквизиты.Свойство.Наименование = "Дизайнер") КАК Дизайнер
ПО ПеремещениеТоваровТовары.Номенклатура = Дизайнер.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ИмпортВоВнешнююСистему.Склад КАК Склад,
ИмпортВоВнешнююСистему.Номенклатура КАК Номенклатура,
ИмпортВоВнешнююСистему.Характеристика КАК Характеристика,
ИмпортВоВнешнююСистему.ВыгруженВИС КАК ВыгруженВИС
ИЗ
РегистрСведений.ИмпортВоВнешнююСистему КАК ИмпортВоВнешнююСистему) КАК Выгружен
ПО ПеремещениеТоваровТовары.Номенклатура = Выгружен.Номенклатура
И ПеремещениеТоваровТовары.Характеристика = Выгружен.Характеристика
И ПеремещениеТоваровТовары.Ссылка.СкладПолучатель = Выгружен.Склад
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Цена поступления") КАК ВложенныйЗапрос2
ПО ПеремещениеТоваровТовары.Номенклатура = ВложенныйЗапрос2.Номенклатура
И ПеремещениеТоваровТовары.Характеристика = ВложенныйЗапрос2.Характеристика
ГДЕ
ПеремещениеТоваровТовары.Ссылка.СкладПолучатель = &Склад
И ПеремещениеТоваровТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
И ПеремещениеТоваровТовары.Ссылка.ЗагруженВИСЦветной = ЛОЖЬ
И ВложенныйЗапрос.Склад = &ТипШтрихКода


УПОРЯДОЧИТЬ ПО
П1,
П2,
П3,
П4,
П5,
П6,
П8,
П9,
П10,
П11,
П12,
П13,
П14,
П15,
П16,
П17,
П18,
П19,
П20,
П21,
П22,
П23,
П24,
П25,
П26,
П27,
П29,
П30

san4ezart

Кстати, когда делаю такое условие
ВЫБОР
      КОГДА Сезон.Значение = Сезон.Значение
         ТОГДА "Значение1"
      ИНАЧЕ "Значение2"
   КОНЕЦ КАК П29

То получаю "Значение1".
Строковое значение и даже ПОДОБНО "%" не срабатывает - получаю "Значение2"
Добавлено: 27 сен 2013, 03:16


Может быть с типом что-то? Как посмотреть тип "Сезон.Значение"? Как в 1С (если вообще такое есть) привести значение к типу в запросе?
Добавлено: 27 сен 2013, 03:28


ВЫБОР
КОГДА (ВЫРАЗИТЬ(Сезон.Значение КАК СТРОКА(10))) = (ВЫРАЗИТЬ("fw 13-14" КАК СТРОКА(10)))
ТОГДА "Значение1"
ИНАЧЕ ВЫРАЗИТЬ(Сезон.Значение КАК СТРОКА(10))
КОНЕЦ КАК П29

Удивительно, но такой вот запрос выдает мне NULL. Но почему? Почему просто "Сезон.Значение" он вставляет, но оперировать им не может, выдает NULL?
Добавлено: 27 сен 2013, 03:43


Ну вот, тип данных "Значение свойства объекта". Как мне его со строкой то сравнить? Или какие есть обходные пути? Можно ли заранее предопределить константу нужного типа и записать в него значение, которое бы сравнивалось нормально?
Уже даже рассматриваю вытягивание одной номенклатуры с заранее ясным сезоном, и там уже сравнивать похожие по типу значения, но это извращение какое-то.
Добавлено: 27 сен 2013, 03:46


А как потом можно результаты запроса обработать? Там я уж думаю проще должно быть?
Добавлено: 27 сен 2013, 03:51


Когда нажимаю на кнопку Сформировать (не я писал), выполняется
ЭтаФорма.СкомпоноватьРезультат();
Этаформа.Результат.ФиксацияСлева = 0;
ЭтаФорма.Результат.ФиксированныйФон = Ложь;

Как здесь обработку сделать? Пробежаться по всем строкам и сделать то, что мне так необходимо?

Теги: Запрос 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск