База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибки синтаксиса в 1С при использовании анонимных процедур?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
26 августа 2026 в 11:20 #38476
{Актив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);<<?>> (Проверка: Тонкий клиент) -
26 августа 2026 в 11:20 #38477
Ошибка «Ожидается выражение» и «Ожидается ключевое слово ‘КонецЕсли'» указывает на синтаксическую ошибку в коде, чаще всего из-за неправильного использования
Новый ОписаниеПроцедуры.В 1С
Новый ОписаниеПроцедурытребует в качестве параметра имя процедуры или анонимную процедуру, но анонимные процедуры в 1С пишутся так:1С (Код)123Новый ОписаниеПроцедуры(Процедура()// тело процедурыКонецПроцедуры)Обратите внимание, что
Процедура()иКонецПроцедурыдолжны быть внутри скобокНовый ОписаниеПроцедуры(...).В вашем коде, скорее всего, пропущена скобка или неверно оформлен блок.
Правильный пример с отложенным выполнением:
1С (Код)123456789ОтложитьВыполнение(Новый ОписаниеПроцедуры(Процедура()Элементы.Товары.УстановитьФокус();Элементы.Товары.ТекущаяСтрока = ИндексСтроки;Элементы.Товары.РедактироватьЯчейку(ИндексСтроки, 0);КонецПроцедуры));Если у вас ошибка, значит, в вашем коде где-то:
— Лишний или отсутствующий символ
(или)
— Неправильное расположениеПроцедура()иКонецПроцедуры
— Возможно, вы вставили код в модуль, где нельзя использовать анонимные процедуры (например, в серверном модуле)—
Проверьте, что:
1. Процедура с
ОтложитьВыполнениенаходится в клиентском модуле (форма, общий модуль с пометкой &НаКлиенте).2. Код выглядит именно так (пример):
1С (Код)123456789101112131415161718192021222324252627282930313233343536&НаКлиентеПроцедура VDP_Подключаемый_ПослеОбработкиШтрихкодов(РезультатОбработкиШтрихкода, ДополнительныеПараметры) ЭкспортЕсли РезультатОбработкиШтрихкода.ТребуетсяОбработкаШтрихкода Тогда// Вызов основной обработкиШтрихкодированиеИСКлиентПереопределяемый.ПослеОбработкиШтрихкодов(ЭтотОбъект,ДанныеДляОбработки,КэшированныеЗначения);Если РезультатОбработкиШтрихкода.ДобавленныеСтроки <> Неопределено И РезультатОбработкиШтрихкода.ДобавленныеСтроки.Количество() > 0 ТогдаПоследняяСтрока = РезультатОбработкиШтрихкода.ДобавленныеСтроки[РезультатОбработкиШтрихкода.ДобавленныеСтроки.Количество() - 1];ИндексСтроки = Элементы.Товары.Объект.НайтиПоИдентификатору(ПоследняяСтрока);Если ИндексСтроки <> Неопределено ТогдаОтложитьВыполнение(Новый ОписаниеПроцедуры(Процедура()Элементы.Товары.УстановитьФокус();Элементы.Товары.ТекущаяСтрока = ИндексСтроки;Элементы.Товары.РедактироватьЯчейку(ИндексСтроки, 0);КонецПроцедуры));КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедуры3. Если ошибка сохраняется, попробуйте временно заменить
ОтложитьВыполнениена простой вызов, чтобы проверить синтаксис:1С (Код)123Элементы.Товары.УстановитьФокус();Элементы.Товары.ТекущаяСтрока = ИндексСтроки;Элементы.Товары.РедактироватьЯчейку(ИндексСтроки, 0);Если с этим всё нормально, значит проблема именно в оформлении
Новый ОписаниеПроцедуры.—
Если хотите, могу проверить ваш конкретный код — пришлите точный фрагмент с
ОтложитьВыполнение.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.