1с запрос параметр не задан

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Параметры в запросах в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Сделал в обработке консоль запросов таблицу оборотов по регистру «Товары организации» за период, с использованием для условий конструкции ГДЕ. Сгруппировал по полю номенклатура с подсчетом итогов по группировке и общие итоги

И выдает ошибку: Не задано значение параметра «Организация»

ТоварыОрганизацийОбороты.Организация = <>&Организация
Подскажите как исправить?
ВЫБРАТЬ
ТоварыОрганизацийОбороты.Номенклатура,
ТоварыОрганизацийОбороты.КоличествоПриход,
ТоварыОрганизацийОбороты.КоличествоРасход,
ТоварыОрганизаций.Период КАК Период
ИЗ
РегистрНакопления.ТоварыОрганизаций.Обороты КАК ТоварыОрганизацийОбороты,
РегистрНакопления.ТоварыОрганизаций КАК ТоварыОрганизаций
ГДЕ
ТоварыОрганизацийОбороты.Организация = &Организация
И ТоварыОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаКонца

СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОбороты.Номенклатура,
ТоварыОрганизацийОбороты.КоличествоПриход,
ТоварыОрганизацийОбороты.КоличествоРасход,
ТоварыОрганизаций.Период

С подобной ошибкой любой разработчик встречался хотя бы один раз. Ее непосредственная причина – попытка запроса использовать параметр, который в запрос не был помещен.

Почему так происходит? Код постоянно меняется, текст запросов, параметры могут переименовываться, добавляться, удаляться, но в ходе работы формируются различные приемы и методики, позволяющие данную проблему нивелировать.

При инициализации запроса, параметры необходимо указывать до текста запроса. Таким образом, еще до чтения текста, вы объявляете параметры, с которым необходимо работать. Также это позволяет улучшить самоконтроль – сначала определяем параметр, а потом его используем.

Бывают ситуации, когда параметры в зависимости от различных условий не нужны.

Самое простое решение – это использовать дополнительный параметр с типом Булево, определяющий необходимость использования основного параметра.

Такой запрос не вполне оптимален с точки зрения быстродействия (из-за конструкции ИЛИ в условии отбора), но если потери быстродействия терпимы, то ими можно пренебречь.

Более технологичным решением может быть использование возможностей компоновщика. Для простых случаев подойдет построитель запроса. Вы можете инициализировать запрос построителем, а параметры добавлять динамически.

Данный код приведен в качестве примера и скомпонован с целью повышения наглядности. Рекомендуется не использовать его в чистом виде, а реализовать в виде полноценного инструмента по динамической работе с отборами в запросе.

Оцените статью