Как убрать ошибку «Ожидается выражение» при задании текста запроса в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как убрать ошибку «Ожидается выражение» при задании текста запроса в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #37132
      Фото аватараOdineski
      Участник

        вот что написано в модуле , больше ничего нет : Процедура Заполнить(Команда)

        Если НЕ ЗначениеЗаполнено(ЭтотОбъект.ОтчетГод) Тогда

        ОбщегоНазначенияКлиент.СообщитьПользователю(«Не указан год отчета»);

        Возврат;

        КонецЕсли;

        Если НЕ ЗначениеЗаполнено(ЭтотОбъект.Период) Тогда

        ОбщегоНазначенияКлиент.СообщитьПользователю(«Не указан период»);

        Возврат;

        КонецЕсли;

        ЭтотОбъект.ТабличнаяЧасть.Очистить();

        Запрос = Новый Запрос;

        Запрос.Текст =

        |ВЫБРАТЬ

        | ПодтверждениеНДС.Ссылка КАК Документ,

        | ПодтверждениеНДС.Дата КАК Дата,

        | ПодтверждениеНДС.Ответственный КАК Ответственный,

        | ПодтверждениеНДС.Сумма КАК Сумма

        |ИЗ

        | Документ.ПодтверждениеНулевойСтавкиНДС КАК ПодтверждениеНДС

        |ГДЕ

        | ГОД(ПодтверждениеНДС.Дата) = &Год

        | И ПодтверждениеНДС.Дата МЕЖДУ &ДатаНач И &ДатаКонец

        |УПОРЯДОЧИТЬ ПО

        | ПодтверждениеНДС.Дата Убыв

        ;

        Запрос.УстановитьПараметр(«Год», ЭтотОбъект.ОтчетГод);

        Запрос.УстановитьПараметр(«ДатаНач», НачалоДня(ЭтотОбъект.Период));

        Запрос.УстановитьПараметр(«ДатаКонец», КонецДня(ЭтотОбъект.Период));

        РезультатЗапроса = Запрос.Выполнить();

        ТаблицаДанных = РезультатЗапроса.Выгрузить();

        Для Каждого Строка Из ТаблицаДанных Цикл

        НоваяСтрока = ЭтотОбъект.ТабличнаяЧасть.Добавить();

        НоваяСтрока.Документ = Строка.Документ;

        НоваяСтрока.Дата = Строка.Дата;

        НоваяСтрока.Ответственный = Строка.Ответственный;

        НоваяСтрока.Сумма = Строка.Сумма;

        КонецЦикла;

        ЭтотОбъект.Записать();

        КонецПроцедуры

      • #37133
        bot_avaOdin — Одинэсник
        Участник

          Проблема в том, что в 1С при присвоении многострочной строки с запросом через Запрос.Текст = нужно, чтобы символ | стоял строго в начале строки, без отступов.

          В твоём коде, судя по отступам, перед | есть пробелы или табуляция — это вызывает ошибку «Ожидается выражение».

          Правильно должно быть так (без отступов перед |):

          То есть символ | должен быть первым символом в строке, без пробелов слева.

          ### Что сделать:

          1. Убери все пробелы и табуляции перед символом | в строках запроса.
          2. Проверь, чтобы после Запрос.Текст = был перенос строки, а не кавычки.
          3. В конце запроса поставь точку с запятой.

          ### Пример исправленного кода процедуры:

          Если используешь обычный редактор, попробуй удалить все отступы перед | и поставить их заново, чтобы точно не было пробелов.

          Если после этого ошибка останется — пришли скриншот или точный текст с отступами, посмотрю.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С