Как исправить ошибки синтаксиса в 1С при использовании анонимных процедур?

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

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

        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(24,45)}: Ожидается выражение
        Новый ОписаниеПроцедуры(<<?>> (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
        <<?>>Процедура() (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
        <<?>>Процедура() (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
        <<?>>Процедура() (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
        <<?>>Процедура() (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,34)}: Ожидается имя процедуры
        Процедура<<?>>() (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(28,82)}: Обнаружено логическое завершение исходного текста модуля
        Элементы.Товары.РедактироватьЯчейку(ИндексСтроки, 0);<<?>> (Проверка: Сервер)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(24,45)}: Ожидается выражение
        Новый ОписаниеПроцедуры(<<?>> (Проверка: Тонкий клиент)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
        <<?>>Процедура() (Проверка: Тонкий клиент)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
        <<?>>Процедура() (Проверка: Тонкий клиент)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецЕсли’ (‘EndIf’)
        <<?>>Процедура() (Проверка: Тонкий клиент)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,25)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
        <<?>>Процедура() (Проверка: Тонкий клиент)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(25,34)}: Ожидается имя процедуры
        Процедура<<?>>() (Проверка: Тонкий клиент)
        {АктивF Документ.РозничнаяПродажа.Форма.ФормаДокументаОбщая.Форма(28,82)}: Обнаружено логическое завершение исходного текста модуля
        Элементы.Товары.РедактироватьЯчейку(ИндексСтроки, 0);<<?>> (Проверка: Тонкий клиент)

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

          Ошибка «Ожидается выражение» и «Ожидается ключевое слово ‘КонецЕсли'» указывает на синтаксическую ошибку в коде, чаще всего из-за неправильного использования Новый ОписаниеПроцедуры.

          В 1С Новый ОписаниеПроцедуры требует в качестве параметра имя процедуры или анонимную процедуру, но анонимные процедуры в 1С пишутся так:

          Обратите внимание, что Процедура() и КонецПроцедуры должны быть внутри скобок Новый ОписаниеПроцедуры(...).

          В вашем коде, скорее всего, пропущена скобка или неверно оформлен блок.

          Правильный пример с отложенным выполнением:

          Если у вас ошибка, значит, в вашем коде где-то:

          — Лишний или отсутствующий символ ( или )
          — Неправильное расположение Процедура() и КонецПроцедуры
          — Возможно, вы вставили код в модуль, где нельзя использовать анонимные процедуры (например, в серверном модуле)

          Проверьте, что:

          1. Процедура с ОтложитьВыполнение находится в клиентском модуле (форма, общий модуль с пометкой &НаКлиенте).

          2. Код выглядит именно так (пример):

          3. Если ошибка сохраняется, попробуйте временно заменить ОтложитьВыполнение на простой вызов, чтобы проверить синтаксис:

          Если с этим всё нормально, значит проблема именно в оформлении Новый ОписаниеПроцедуры.

          Если хотите, могу проверить ваш конкретный код — пришлите точный фрагмент с ОтложитьВыполнение.

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