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

Условие в запросе

Автор kah, 09 мая 2021, 16:18

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

kah

Здравствуйте есть код для списания товаров, нужно чтобы фильтровал номенклатуру и показывал только ту, которая является материалом (оно указывается в справочнике). Вот код, немного не понимаю почему через "ГДЕ" не работает:

"ВЫБРАТЬ
| ОстаткиОбороты.КоличествоРасход КАК КоличествоРасход,
| ОстаткиОбороты.Номенклатура КАК Номенклатура,
| ОстаткиОбороты.Номенклатура.ТипУчетаТовара КАК НоменклатураТипУчетаТовара
|ПОМЕСТИТЬ Расход
|ИЗ
| РегистрНакопления.Остатки.Обороты КАК ОстаткиОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| -СписаниеОбороты.КоличествоРасход,
| СписаниеОбороты.Номенклатура,
| СписаниеОбороты.Номенклатура.ТипУчетаТовара
|ИЗ
| РегистрНакопления.Списание.Обороты КАК СписаниеОбороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СУММА(Расход.КоличествоРасход) КАК Количество,
| Расход.Номенклатура КАК Номенклатура,
| Расход.НоменклатураТипУчетаТовара КАК НоменклатураТипУчетаТовара
|ИЗ
| Расход КАК Расход
|ГДЕ
| Расход.НоменклатураТипУчетаТовара.Ссылка = &"Материал"
|
|СГРУППИРОВАТЬ ПО
| Расход.Номенклатура,
| Расход.НоменклатураТипУчетаТовара
|
|ИМЕЮЩИЕ
| СУММА(Расход.КоличествоРасход) > 0";

/code]

Каримдат

Если надо жёстко указать Материал, тогда надо без & писать, в кавычках.

Расход.НоменклатураТипУчетаТовара.Ссылка = "Материал"

Или после запроса передавать параметр &Материал
Запрос.УстановитьПараметр("Материал", Материал);

Примерно так, возможно ошибся чуток с конструкцией.

kah

Цитата: Каримдат от 09 мая 2021, 16:47
Если надо жёстко указать Материал, тогда надо без & писать, в кавычках.

Расход.НоменклатураТипУчетаТовара.Ссылка = "Материал"

Или после запроса передавать параметр &Материал
Запрос.УстановитьПараметр("Материал", Материал);

Примерно так, возможно ошибся чуток с конструкцией.
Ну вот пишу в кавычках выдает следующую ошибку:

{Документ.Списание.Форма.ФормаДокумента.Форма(34,49)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
| Расход.НоменклатураТипУчетаТовара.Ссылка = "<<?>>Материал" (Проверка: Сервер)
{Документ.Списание.Форма.ФормаДокумента.Форма(43,2)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли; (Проверка: Сервер)
{Документ.Списание.Форма.ФормаДокумента.Форма(34,49)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
| Расход.НоменклатураТипУчетаТовара.Ссылка = "<<?>>Материал" (Проверка: Тонкий клиент)
{Документ.Списание.Форма.ФормаДокумента.Форма(43,2)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли; (Проверка: Тонкий клиент)


Каримдат

ВЫБРАТЬ
ТоварыВРозницеОстаткиИОбороты.Номенклатура,
ТоварыВРозницеОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты КАК ТоварыВРозницеОстаткиИОбороты
ГДЕ
ТоварыВРозницеОстаткиИОбороты.Номенклатура.ВидНоменклатуры.Наименование = "Кольцо"

kah

Цитата: Каримдат от 09 мая 2021, 17:27
ВЫБРАТЬ
ТоварыВРозницеОстаткиИОбороты.Номенклатура,
ТоварыВРозницеОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты КАК ТоварыВРозницеОстаткиИОбороты
ГДЕ
ТоварыВРозницеОстаткиИОбороты.Номенклатура.ВидНоменклатуры.Наименование = "Кольцо"

Чет опять туплю, написал следующий код, ошибки не выдает, но по итогу вообще ничего не показывает


"ВЫБРАТЬ
| ОстаткиОбороты.КоличествоРасход КАК КоличествоРасход,
| ОстаткиОбороты.Номенклатура КАК Номенклатура,
| NULL КАК НоменклатураТипУчетаТовара
|ПОМЕСТИТЬ Расход
|ИЗ
| РегистрНакопления.Остатки.Обороты КАК ОстаткиОбороты
|ГДЕ
| ОстаткиОбороты.Номенклатура.ТипУчетаТовара = ""Материал""

Каримдат

У реквизита ТипУчетаТовара есть наименование или представление?

kah

Цитата: Каримдат от 09 мая 2021, 21:46
У реквизита ТипУчетаТовара есть наименование или представление?
А ну вот реквизит "ТипУчетаТовара" это перечисление, наименование такое же

nvj84


= ЗНАЧЕНИЕ(Перечисление.ТипУчетаТовара.Материал)

Или передать как параметр как выше писали

Запрос.УстановитьПараметр("Параметр",Перечисления.ТипУчетаТовара.Материал);

kah

Цитата: nvj84 от 10 мая 2021, 08:57

= ЗНАЧЕНИЕ(Перечисление.ТипУчетаТовара.Материал)

Или передать как параметр как выше писали

Запрос.УстановитьПараметр("Параметр",Перечисления.ТипУчетаТовара.Материал);

Понял, спасибо работает. Совсем забыл, что мой реквизит является перечислением)

kah


Теги:

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

Рейтинг@Mail.ru

Поиск