Всем привет. Почему не видит список отбора?
Или у условии не могу такое писать?
Ошибка:
СписокОтбораСклады = Новый СписокЗначений;
Дальше устанавливаю значения
Запрос.УстановитьПараметр("СписокОтбораCклады",СписокОтбораСклады);
СписокОтбораСклады не пустой. Почему же ошибка?
Или у условии не могу такое писать?
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| КОНЕЦ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| КОНЕЦ
Ошибка:
по причине:
{(56, 33)}: Не задано значение параметра "СписокОтбораСклады"
ТоварыНаСкладахОстатки.Склад В(<<?>>&СписокОтбораСклады)
{(56, 33)}: Не задано значение параметра "СписокОтбораСклады"
ТоварыНаСкладахОстатки.Склад В(<<?>>&СписокОтбораСклады)
СписокОтбораСклады = Новый СписокЗначений;
Дальше устанавливаю значения
Запрос.УстановитьПараметр("СписокОтбораCклады",СписокОтбораСклады);
СписокОтбораСклады не пустой. Почему же ошибка?
По теме из базы знаний
- Ошибка "Неправильный запрос" при работе с опубликованной на IIS 7 базой 1С:БП 3.0
- Опять эти запросы...
- Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах
- Одно из возможных решений ошибки "Ошибка при выполнении запроса POST к ресурсу /e1cib/modules/call"
- Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm. Ошибка SDBL: Пропущена точка с запятой
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
азрешена в предложении "ГДЕ"
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыНаСкладахОстатки.Склад.Код КАК КодСклада,
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоУПП,
| 0 КАК КоличествоБУХ,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоРазница,
| 0 КАК СуммаБУХ
|ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХНеСГРУПП
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СертификацияНоменклатуры.СрезПоследних КАК СертификацияНоменклатурыСрезПоследних
| ПО ТоварыНаСкладахОстатки.СерияНоменклатуры = СертификацияНоменклатурыСрезПоследних.СерияНоменклатуры
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| КОНЕЦ
Показать| ТоварыНаСкладахОстатки.Склад.Код КАК КодСклада,
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоУПП,
| 0 КАК КоличествоБУХ,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоРазница,
| 0 КАК СуммаБУХ
|ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХНеСГРУПП
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СертификацияНоменклатуры.СрезПоследних КАК СертификацияНоменклатурыСрезПоследних
| ПО ТоварыНаСкладахОстатки.СерияНоменклатуры = СертификацияНоменклатурыСрезПоследних.СерияНоменклатуры
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| КОНЕЦ
(6)
(7)
Весь код от Запрос = новый Запрос; до Запрос.Выполнить()
(7)
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыНаСкладахОстатки.Склад.Код КАК КодСклада,
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоУПП,
| 0 КАК КоличествоБУХ,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоРазница,
| 0 КАК СуммаБУХ
|ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХНеСГРУПП
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СертификацияНоменклатуры.СрезПоследних КАК СертификацияНоменклатурыСрезПоследних
| ПО ТоварыНаСкладахОстатки.СерияНоменклатуры = СертификацияНоменклатурыСрезПоследних.СерияНоменклатуры
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| КОНЕЦ
Показать| ТоварыНаСкладахОстатки.Склад.Код КАК КодСклада,
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоУПП,
| 0 КАК КоличествоБУХ,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоРазница,
| 0 КАК СуммаБУХ
|ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХНеСГРУПП
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СертификацияНоменклатуры.СрезПоследних КАК СертификацияНоменклатурыСрезПоследних
| ПО ТоварыНаСкладахОстатки.СерияНоменклатуры = СертификацияНоменклатурыСрезПоследних.СерияНоменклатуры
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| КОНЕЦ
Весь код от Запрос = новый Запрос; до Запрос.Выполнить()
(7)
В любом случае, вот так точно делать не следует. Полагаю что достаточно
P.S. В секции "ГДЕ" "ВЫБОР" с логическим выражением работает. Тем не менее, у меня аналогичный пример со списком значений отработал без ошибок. Видимо что-то в коде.
|ГДЕ
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| ВЫБОР
| КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
В любом случае, вот так точно делать не следует. Полагаю что достаточно
| ГДЕ ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)"
либо надо переформулировать условие | ГДЕ
| ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| И СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
| ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
| И СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
P.S. В секции "ГДЕ" "ВЫБОР" с логическим выражением работает. Тем не менее, у меня аналогичный пример со списком значений отработал без ошибок. Видимо что-то в коде.
(9)
Мне нужно чтобы по списку складов был отбор в регистре с разрешением. Иначе не пойму как сделать.
Можно было бы занести в параметры, но там нет доступа к регистру.
ОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)" либо надо переформулировать условие.
Мне нужно чтобы по списку складов был отбор в регистре с разрешением. Иначе не пойму как сделать.
Можно было бы занести в параметры, но там нет доступа к регистру.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ОстаткиБухБазы.КодСклада,
ОстаткиБухБазы.НаименованиеСклада,
ОстаткиБухБазы.Склад,
ОстаткиБухБазы.КодНоменклатуры,
ОстаткиБухБазы.НаименованиеНоменклатуры,
ОстаткиБухБазы.Номенклатура,
ОстаткиБухБазы.Количество,
ОстаткиБухБазы.Сумма
ПОМЕСТИТЬ ВТ_ОстаткиБух
ИЗ
&ОстаткиБухБазы КАК ОстаткиБухБазы
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ОстаткиБух.КодСклада,
ВТ_ОстаткиБух.НаименованиеСклада
ПОМЕСТИТЬ ВТ_СкладыБух
ИЗ
ВТ_ОстаткиБух КАК ВТ_ОстаткиБух
СГРУППИРОВАТЬ ПО
ВТ_ОстаткиБух.КодСклада,
ВТ_ОстаткиБух.НаименованиеСклада
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПартииТоваровНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
ВЫБОР
КОГДА ПартииТоваровНаСкладахОстатки.КоличествоОстаток = 0
ТОГДА 0
ИНАЧЕ ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток
КОНЕЦ КАК Цена,
ПартииТоваровНаСкладахОстатки.Склад
ПОМЕСТИТЬ ВТ_ЦеныНоменклатуры
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ПартииТоваровНаСкладахОстатки
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыНаСкладахОстатки.Склад.Код КАК КодСклада,
ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоУПП,
0 КАК КоличествоБУХ,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоРазница,
0 КАК СуммаБУХ
ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХНеСГРУПП
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыНаСкладахОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СертификацияНоменклатуры.СрезПоследних КАК СертификацияНоменклатурыСрезПоследних
ПО ТоварыНаСкладахОстатки.СерияНоменклатуры = СертификацияНоменклатурыСрезПоследних.СерияНоменклатуры
ГДЕ
ВЫБОР
КОГДА ТоварыНаСкладахОстатки.Склад В (&СписокОтбораСклады)
ТОГДА СертификацияНоменклатурыСрезПоследних.СостояниеСертификации = ЗНАЧЕНИЕ(Перечисление.СостоянияСертификацииНоменклатуры.ЕстьБезРазрешения)
КОНЕЦ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ТоварыКПолучениюОстатки.Склад.Код,
ТоварыКПолучениюОстатки.Номенклатура.Код,
-ТоварыКПолучениюОстатки.КоличествоОстаток,
0,
-ТоварыКПолучениюОстатки.КоличествоОстаток,
0
ИЗ
РегистрНакопления.ТоварыКПолучениюНаСклады.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ), СЕКУНДА, 1), ) КАК ТоварыКПолучениюОстатки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВТ_ОстаткиБух.КодСклада,
ВЫБОР
КОГДА ПОДСТРОКА(ВТ_ОстаткиБух.КодНоменклатуры, 1, 1) = "Н"
ТОГДА "0" + ПОДСТРОКА(ВТ_ОстаткиБух.КодНоменклатуры, 2, 10)
ИНАЧЕ ВТ_ОстаткиБух.КодНоменклатуры
КОНЕЦ,
0,
ВТ_ОстаткиБух.Количество,
-ВТ_ОстаткиБух.Количество,
ВТ_ОстаткиБух.Сумма
ИЗ
ВТ_ОстаткиБух КАК ВТ_ОстаткиБух
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ОстаткиУППиБУХНеСГРУПП.КодСклада,
ВТ_ОстаткиУППиБУХНеСГРУПП.КодНоменклатуры,
СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.КоличествоУПП) КАК КоличествоУПП,
СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.КоличествоБУХ) КАК КоличествоБУХ,
СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.КоличествоРазница) КАК КоличествоРазница,
СУММА(ВТ_ОстаткиУППиБУХНеСГРУПП.СуммаБУХ) КАК СуммаБУХ
ПОМЕСТИТЬ ВТ_ОстаткиУППиБУХбезНаименований
ИЗ
ВТ_ОстаткиУППиБУХНеСГРУПП КАК ВТ_ОстаткиУППиБУХНеСГРУПП
СГРУППИРОВАТЬ ПО
ВТ_ОстаткиУППиБУХНеСГРУПП.КодСклада,
ВТ_ОстаткиУППиБУХНеСГРУПП.КодНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_ОстаткиУППиБУХбезНаименований.КодСклада,
ЕСТЬNULL(СкладыУПП.Наименование, "") КАК НаименованиеСкладаУПП,
ЕСТЬNULL(СкладыБУХ.НаименованиеСклада, "") КАК НаименованиеСкладаБУХ,
ЕСТЬNULL(СкладыУПП.Ссылка, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Склад,
ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры КАК КодНоменклатуры,
ЕСТЬNULL(НоменклатураБУХ.КодНоменклатуры, "") КАК КодНоменклатурыБУХ,
ЕСТЬNULL(НоменклатураУПП.Наименование, "") КАК НаименованиеНоменклатурыУПП,
ЕСТЬNULL(НоменклатураБУХ.НаименованиеНоменклатуры, "") КАК НаименованиеНоменклатурыБУХ,
ЕСТЬNULL(НоменклатураУПП.Ссылка, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Номенклатура,
ВТ_ОстаткиУППиБУХбезНаименований.КоличествоУПП,
ВТ_ОстаткиУППиБУХбезНаименований.КоличествоБУХ,
ВТ_ОстаткиУППиБУХбезНаименований.КоличествоРазница,
ЕСТЬNULL(ВТ_ЦеныНоменклатуры.Цена, 0) * ВТ_ОстаткиУППиБУХбезНаименований.КоличествоУПП КАК СуммаУПП,
ВТ_ОстаткиУППиБУХбезНаименований.СуммаБУХ,
ЕСТЬNULL(ВТ_ЦеныНоменклатуры.Цена, 0) * ВТ_ОстаткиУППиБУХбезНаименований.КоличествоУПП - ВТ_ОстаткиУППиБУХбезНаименований.СуммаБУХ КАК СуммаРазница
ИЗ
ВТ_ОстаткиУППиБУХбезНаименований КАК ВТ_ОстаткиУППиБУХбезНаименований
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК СкладыУПП
ПО ВТ_ОстаткиУППиБУХбезНаименований.КодСклада = СкладыУПП.Код
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СкладыБух КАК СкладыБУХ
ПО ВТ_ОстаткиУППиБУХбезНаименований.КодСклада = СкладыБУХ.КодСклада
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураУПП
ПО ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры = НоменклатураУПП.Код
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ_ОстаткиБух.НаименованиеНоменклатуры КАК НаименованиеНоменклатуры,
ВТ_ОстаткиБух.КодНоменклатуры КАК КодНоменклатуры
ИЗ
ВТ_ОстаткиБух КАК ВТ_ОстаткиБух) КАК НоменклатураБУХ
ПО (ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры = ВЫБОР
КОГДА ПОДСТРОКА(НоменклатураБУХ.КодНоменклатуры, 1, 1) = "Н"
ТОГДА "0" + ПОДСТРОКА(НоменклатураБУХ.КодНоменклатуры, 2, 10)
ИНАЧЕ НоменклатураБУХ.КодНоменклатуры
КОНЕЦ)
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЦеныНоменклатуры КАК ВТ_ЦеныНоменклатуры
ПО ВТ_ОстаткиУППиБУХбезНаименований.КодНоменклатуры = ВТ_ЦеныНоменклатуры.КодНоменклатуры
И (СкладыУПП.Ссылка = ВТ_ЦеныНоменклатуры.Склад)
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот