Обнаружено логическое завершение исходного текста модуля как исправить

Содержание:

1.       Почему появляется ошибка «Обнаружено логическое завершение исходного текста модуля»

2.       Как избежать ошибки «Обнаружено завершение исходного текста модуля»  

1.    Почему появляется ошибка «Обнаружено логическое завершение исходного текста модуля»

Чтобы разобраться с причиной происхождения ошибки Обнаружено логическое завершение исходного текста модуля, нужно понять назначение использования точки с запятой в синтаксисе языка 1С. Впервые введенный печатником из Италии и затем использованный Шекспиром для разделения противоположных слов, данный символ нашел свое применение во многих языках программирования. Основное назначение точки запятой в программировании – разделение инструкций кода, символ завершения оператора цикла.

В языке 1С точка с запятой используется для разделения операторов. Например, присвоение значения переменной. Причем данные операторы можно писать в одну строчку, разделяя их точкой с запятой, а вот перенос строки не является символом завершения оператора, поэтому допустимы конструкции вида:

НоваяПеременная

=

1;

Но, наряду с операторами в синтаксисе языка существуют и так называемые операторные скобки, обрамляющие последовательность операторов кода. В Бейсике, на который язык 1С очень похож, примером таких операторных скобок служат конструкции вида beginend. В 1С же операторными скобками являются, для примера, начало и конец процедур и функций – Процедура (Функция) и КонецПроцедуры(КонецФункции). И так как точка с запятой служит только для разделения операторов в коде, то после окончания процедур и функций, т.е. операторных скобок, ее ставить не нужно. Но проверка синтаксиса 1С не будет считать ошибкой, если поставить точку с запятой в конце процедуры или функции, так как это просто будет означать завершение оператора.  

2.    Как избежать ошибки «Обнаружено завершение исходного текста модуля»

Если после того, как мы поставили точку с запятой после окончания, например, процедуры и затем в этом же модуле продолжили писать еще какой-то код, например, прописали еще одну процедуру, то 1С выдает ошибку обнаружения логического завершения исходного текста модуля. Как только появляется такая ошибка, нужно проверить все окончания процедур и функций на предмет точки запятой и продолжения кода после них. Так же внутри процедур и функций можно не ставить точку с запятой после самого последнего оператора, но, если ниже будет дописан еще какой-то код, то это уже вызовет ошибку Обнаружено завершение исходного текста модуля.

Специалист компании «Кодерлайн»

Александр Суворов

Обнаружено логическое завершение исходного текста модуля

Ошибка возникает, когда после точки запятой есть еще код — процедуры, функции, код тела модуля.

Пример кода, вызывающего ошибку:

Процедура ПроверитьТэгиИПоставщиков()
	Для каждого СтрокаТ из тПоставщиков Цикл
		Если ПустаяСтрока(СтрокаТ.TAG) или ЗначениеЗаполнено(СтрокаТ.Поставщик) = Ложь Тогда
			СтрокаТ.Создавать = Ложь;
			Сообщить("Не заполнены данные по поставщику "+СтрокаТ.TAG+"!");
		КонецЕсли;	
	КонецЦикла;	
КонецПроцедуры;	

Процедура ИмяЛокальногоОтветаОткрытие(Элемент, СтандартнаяОбработка)
	Текст = Новый ТекстовыйДокумент;
	Текст.Прочитать(ИмяЛокальногоОтвета);
	Текст.Показать("Файл ответа");
КонецПроцедуры

Разбор полётов

Сообщение ошибке «Обнаружено логическое завершение исходного текста модуля» возникает, когда вы добавляете функцию/процедуру после «;» даже, если она создается автоматически через конструкторы событий

Ошибка в этой строке:

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

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

1С считает эту «;» частью кода тела модуля, а процедуры/функции  в нем недопустимы

Решение простое:

Найти и убрать точку с запятой (необязательно что это будет последняя функция или процедура)

Реклама — это техника запудривания мозгов. Старайтесь не забывать об этом: с рекламой шутки плохи.

Содержание:

1.       Почему появляется ошибка «Обнаружено логическое завершение исходного текста модуля»

2.       Как избежать ошибки «Обнаружено завершение исходного текста модуля»  

1.    Почему появляется ошибка «Обнаружено логическое завершение исходного текста модуля»

Чтобы разобраться с причиной происхождения ошибки Обнаружено логическое завершение исходного текста модуля, нужно понять назначение использования точки с запятой в синтаксисе языка 1С. Впервые введенный печатником из Италии и затем использованный Шекспиром для разделения противоположных слов, данный символ нашел свое применение во многих языках программирования. Основное назначение точки запятой в программировании – разделение инструкций кода, символ завершения оператора цикла.

В языке 1С точка с запятой используется для разделения операторов. Например, присвоение значения переменной. Причем данные операторы можно писать в одну строчку, разделяя их точкой с запятой, а вот перенос строки не является символом завершения оператора, поэтому допустимы конструкции вида:

НоваяПеременная

=

1;

Но, наряду с операторами в синтаксисе языка существуют и так называемые операторные скобки, обрамляющие последовательность операторов кода. В Бейсике, на который язык 1С очень похож, примером таких операторных скобок служат конструкции вида beginend. В 1С же операторными скобками являются, для примера, начало и конец процедур и функций – Процедура (Функция) и КонецПроцедуры(КонецФункции). И так как точка с запятой служит только для разделения операторов в коде, то после окончания процедур и функций, т.е. операторных скобок, ее ставить не нужно. Но проверка синтаксиса 1С не будет считать ошибкой, если поставить точку с запятой в конце процедуры или функции, так как это просто будет означать завершение оператора.  

2.    Как избежать ошибки «Обнаружено завершение исходного текста модуля»

Если после того, как мы поставили точку с запятой после окончания, например, процедуры и затем в этом же модуле продолжили писать еще какой-то код, например, прописали еще одну процедуру, то 1С выдает ошибку обнаружения логического завершения исходного текста модуля. Как только появляется такая ошибка, нужно проверить все окончания процедур и функций на предмет точки запятой и продолжения кода после них. Так же внутри процедур и функций можно не ставить точку с запятой после самого последнего оператора, но, если ниже будет дописан еще какой-то код, то это уже вызовет ошибку Обнаружено завершение исходного текста модуля.

Специалист компании «Кодерлайн»

Александр Суворов

Содержание

  • Ошибка в доработанном программном коде
  • Ошибка вывода печатной формы
  • Ошибка исполнения кода на Клиенте
      • См. также:
    • Шаг 1. Обновление прошивки
    • Шаг 2. Команда авторизации
    • Шаг 3. Восстановление данных об организации
    • Шаг 4. Перерегистрация без замены ФН
    • Шаг 5. Восстановление NVR
    • Шаг 6. «Ошибка контрольной суммы ОЗУ»
  • Пример кода, вызывающего ошибку:
  • Разбор полётов

Ошибка Переменная не определена в 1С 8.3 указывает на то, что программа не может получить нужную информацию в исполняемом программном коде. Это может быть связано с обновлением или доработкой программы. Если стандартный набор действий при исправлении ошибок не помог:

  • чистка кеша;
  • тестирование и исправление информационной базы;
  • просмотр зарегистрированных ошибок на сайте 1С,

придется разбираться с местом возникновения ошибки в 1С самостоятельно.

БухЭксперт8 подготовил 3 примера получения и исправления ошибки:

  • в доработанном программном коде;
  • при выводе печатной формы;
  • при исполнении кода на Клиенте.

Ошибка в доработанном программном коде

В форму типового отчета Движение товаров программист добавил поле Склад. Список выбора значений в это поле ограничен. При открытии отчета появляется ошибка:

В сообщении об ошибке указано место возникновения ошибки — строка 919 в модуле формы. Для исправления ошибки необходимо выполнить следующие действия:

  1. Нажмите кнопку Подробно в форме сообщения об ошибке.
    В окне Обнаружены ошибки программа укажет:
    • номер неправильной строки кода;
    • исполняемую команду, которая привела к ошибке. Иногда подробной информации в окне Обнаружены ошибки достаточно для понимания причин ее возникновения, но не всегда. В большинстве случаев требуется перейти в место возникновения ошибки и проанализировать используемые в команде данные.
  2. Для перехода в место ошибки нажмите кнопку Конфигуратор.
    В Конфирураторе курсор автоматически установится на строке программного кода с ошибкой. Необходимо проверить используемые командой данные. В данном примере ошибка сигнализирует, что переменной ОсновнойСклад не задано значение: при добавлении в список складов программа не понимает, какой склад требуется добавить.
  3. Исправьте ошибку.
    Укажите нужное значение переменной в программном коде, например:
    • ОсновнойСклад = Справочники.Склады.НайтиПоНаименованию(«Основной склад»);
    • ОсновнойСклад = Справочники.Склады.ОсновнойСклад.
      Синтаксис Справочники.Склады.ОсновнойСклад используется только для предопределенного склада с именем ОсновнойСклад:
  4. Сохраните изменения и обновите информационную базу.
  5. Проверьте работу 1С после исправления ошибки.

После исправления отчет открывается без ошибки, а при выборе складов устанавливается нужное значение Основной склад.

Ошибка вывода печатной формы

Для вывода в печатную форму накладной данных об ответственном менеджере, оформившем документ поступления, программист внес изменения в макет ПФ_MXL_Накладная и программный код.

В макет документа добавлена область Подвал:

В программном коде дописан вывод данных области Подвал:

После доработки программы при попытке вывода накладной на печать 1С выдает ошибку:

Информация в окне сообщения об ошибке указывает, что в Модуле менеджера документа ПоступлениеТоваровУслуг не определено значение переменной Ответственный. Для исправления ошибки:

  1. Перейдите в Конфигуратор. В Модуле менеджера документа ПоступлениеТоваровУслуг перейдите на строку 4804.
  2. Укажите для вывода в печатную форму поля Ответственный — текущего пользователя, используя специальную команду 1С:
    • Пользователи.ТекущийПользователь().
  3. Сохраните изменения и обновите информационную базу.
  4. Перейдите в пользовательский режим для проверки выполненных изменений.

После исправления программного кода накладная сформируется без ошибки.

Ошибка исполнения кода на Клиенте

С переходом на управляемые формы в Бухгалтерия 3.0 работы программистам прибавилось.

Язык программирования стал сложнее. Часть команд теперь могут выполняться только на стороне клиента — это, условно говоря, компьютер пользователя, который посылает запросы на исполнение операций серверу. Сервер обрабатывает все поступившие запросы и отсылает обратно клиенту результат обработки данных.

Все это привело к тому, что в 1С команды делятся на исполняемые &НаСервере и &НаКлиенте. И при написании программного кода нужно это учитывать, иначе программа не сможет выполнить заданную операцию. При работе с переменными при написании программного кода важно понимать:

  • &НаКлиенте — переменные существуют только на время клиентского вызова;
  • &НаСервере— переменные существуют только на время серверного вызова.

Разделение команд в программном коде не зависит от того, используете ли вы файловую или клиент-серверную 1С. Разграничение должно четко исполняться, иначе будут возникать ошибки, одну из которых БухЭксперт8 разберет на примере.

При доработке программного кода программист использовал операцию получения данных склада &НаКлиенте в процедуре ПриОткрытии.

При сохранении изменений 1С сообщила об ошибке Переменная не определена (Справочники) при определении значения склада:

  • «?»Справочники.Склады.НайтиПоКоду(«»00-000002»).

Ошибка связана с тем, что данная операция исполняется только на сервере, т. е. &НаСервере. И несмотря на то, что сама команда исполнения корректна, ошибка будет формироваться до тех пор, пока ее не перенесут в область команд исполнения &НаСервере, например так:

Теперь сохранение изменений пройдет без ошибки.

Усложнение языка программирования 1С требует от разработчика более глубокого подхода к вносимым изменениям в программу. Недостаточно просто знать синтаксис команды, важно еще правильно задать область исполнения команды в режиме управляемых форм.

См. также:

  • Большое количество забивается решеткой
  • Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
  • Значение поля номер не уникально 1С 8.3: как исправить
  • У пользователя недостаточно прав на исполнение операции

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Здравствуйте!
Самописная конфигурация на платформе 1С:Предприятие 8.3 (8.3.3.641).
Режим Управляемое приложение.
Перенес из модуля формы функцию в ОбщиеМодули и общий модуль перестал инициализироваться.
У модуля ОбщиеМеханизмыКлиента указаны свойства: Клиент (управляемое приложение), Сервер, Вызов сервера.
Выдает ошибку при попытке вызова любой функции модуля:

Цитата Ошибка инициализации модуля: ОбщийМодуль.ОбщиеМеханизмыКлиента.Модуль
по причине:
{ОбщийМодуль.ОбщиеМеханизмыКлиента.Модуль(246,17)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос;
Функция, которая перенесена:
// *************************************************
// * Возвращает остаток на счете на момент времени *
// *************************************************
Функция ПолучитьОстаток(
пСчет, // «Счет», по которому определяется остаток
Знач пМоментВремени = Неопределено // «Момент времени», на который возвращается остаток
) Экспорт
// ======================================
// = Сформировать значения по умолчанию =
// ======================================
Если пМоментВремени = Неопределено Тогда
пМоментВремени = ТекущаяДата();
КонецЕсли;
// ============================================
// = Получить остаток по регистру бухгалтерии =
// ============================================
// Сформировать условие по отобору «Счета»
Отбор = Новый Структура(«Счет», пСчет);
// Выбрать данные
Выборка = РегистрыБухгалтерии.Фин_Отч_ЖурналОпераций.Остатки(пМоментВремени, , Отбор);
// Получить значение остатка
Остаток = Выборка.Итог(«СуммаОстатокДт») — Выборка.Итог(«СуммаОстатокКт»);
// =====================================
// = Добавить «Начальный баланс» счета =
// =====================================

// ——————————-
// — Получить «Начальный баланс» —
// ——————————-
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| НИС_Учт_Сч_Счета.НачальныйБаланс
|ИЗ
| Справочник.НИС_Учт_Сч_Счета КАК НИС_Учт_Сч_Счета
|ГДЕ
| НИС_Учт_Сч_Счета.Счет = &Счет»;
Запрос.УстановитьПараметр(«Счет», пСчет);
РезультатЗапроса = Запрос.Выполнить();

Ошибка означает, что данные в ФН и на фискальной плате не совпадают.
Может произойти при: замене платы FM15/16, при подаче команды авторизации на зарегистрированной кассе, и при сбое электропитания на кассе во время работы (т.к. на фискальной плате стоит энергозависимая память).

Обязательно используйте последнюю версию Fito.
Скачать ее можно тут: «Страница загрузок»

Точно ли эта инструкция мне нужна? (раскрыть)

Да, если:

  • На уже зарегистрированной кассе была заменена фискальная плата FM15/16
  • На уже зарегистрированную кассу была подана команда «Авторизация» или «Тех. Обнуление»
  • На чеке диагностики печатается «Ошибка модуля ФН»: значит, в данных фискальной платы нет информации по организации
  • В Fito стоит галочка «Фатальная ошибка ФН» или «Нефискальный режим»: обязательно проверьте серийный номер на чеке диагностики — совпадает ли он с номером на шильде

Инструкция:

  • Обязательно обновите прошивку!
  • На чеке диагностики заводской номер не совпадает с номером на шильдике
  • Восстановите данные по организации в памяти фискальной платы
  • Восстановите NVR (Счетчики нарастающих итогов)
  • «Ошибка контрольной суммы ОЗУ» — как исправить?

Шаг 1. Обновление прошивки

Проверьте версию прошивки на плате (как это сделать?). Если версия не является последней (последнюю можно найти тут: «Страница загрузок») — обновите ее.

Для Вики Принт, подключенному к ПК это можно сделать Менеджером Обновлений. Для иных случаев прошивайте плату с помощью этой инструкции.

Шаг 2. Команда авторизации

Команда Авторизации сотрёт всё содержимое памяти Вики Принт включая лицензии Дримкас Ключ. Лицензию нужно будет активировать повторно.

Fito → «Сервис» → «Авторизация» → укажите Модель ККТ из списка и последние 6 цифр заводского номера с шильдика → «Выполнить»

Шаг 3. Восстановление данных об организации

Fito → «Сервис» → «Проверка записи регистрации» → «Считать» → сохраните файл в любое место, он нам не нужен.

У вас нет такого пункта в Fito (раскрыть)

В Fito по умолчанию скрыты пункты меню, с помощью которых можно напрямую работать с данными в фискальной памяти.

Закройте Fito и скопируйте файл Fito.ini в папку с утилитой.
На кассах Вики путь к Fito следующий:

Либо можно добавить параметры вручную: откройте текстовым редактором файл Fito.ini и в раздел добавьте строку:
ServAccess=767 (измените цифры на 767, если пункт ServAccess уже есть).

Укажите следующие значения в полях этой таблицы (скриншот ниже):

  1. Серийный номер = если не совпадает с номером на шильде, вернитесь к шагу 2
  2. Регистрационный номер, ИНН, номер ФН — впишите соотв. значения
  3. Версия = 1
  4. Тип ФФД = 2 (если регистрация была по ФФД 1.05) или 1 (если по ФФД 1.0)

Внесли всё?

Нажмите «Записать» и перезагрузите ККТ из режима «Сервис» → «Рестарт ККТ».

Если после перезагрузки на чеке диагностики будет ошибка «Расхождение данных в ФН и NVR» — следуйте инструкции дальше.

Если же выйдет «Ошибка ФН» — значит, третий шаг выполнен некорректно. Вы где-то ошиблись или не сохранили данные. Начните заново с шага №3.

Шаг 4. Перерегистрация без замены ФН

Теперь нужно сделать перерегистрацию, установив СНО и режим работы.

Для начала проверим, что в ФН смена закрыта (ведь на открытой смене перерегистрацию сделать нельзя). Fito → «Тестирование» → «Ручной ввод команд» → Номер команды = 78; параметр 1 = 6 → «Выполнить» → «Детализация ответа». Если смена закрыта, то статус смены будет = 0, открыта = 1.

Если смена открыта в ФН, то нужно в на плате ее тоже открыть, что бы потом закрыть и на плате, и в ФН. Сначала откройте смену, потом закройте.

Как открыть и закрыть смену через Fito? (раскрыть)

Открыть смену: Fito → «Тестирование» → «Ручной ввод команды» → Номер команды = 23, Параметр 1 = имя кассира → «Выполнить»

Закрыть смену: Fito → «Тестирование» → «Печать отчетов» → «Печать z-отчета» → Имя оператора = имя кассира → «Выполнить»

Проверьте настройки отправки чеков:
Fito → «Программирование настроек сети» → «Считать» → заполните URL и порт сервера ОФД → «Установить». Настройки сети можно не заполнять — служба ComProxy сама возьмет их из текущего подключения к интернету.

Теперь можно сделать перерегистрацию:

Fito → «Сервис» → «Регистрация/Снятие с учета» → «Перерегистрация без замены ФН» → заполните все данные в полях (реквизиты организации, данные по ОФД, СНО и режимы работы) → «Выполнить»

Обязательно укажите чуть-чуть другой адрес или наименование организации (например, добавьте лишний пробел). Это нужно, чтобы у перерегистрации была причина. Если делать перерегистрацию с теми же самыми параметрами, на ФФД 1.05 выйдет ошибка.

Шаг 5. Восстановление NVR

Текст ошибки: «РАСХОЖДЕНИЕ НОМЕРОВ СМЕН В ФН И NVR».

Fito → «Сервис» → «Проверка NVR» → «Считать» → сохраните файл в любое место, он нам не нужен → «Умолчание» → заполните поля нарастающий итогов → «Записать»

Нарастающие итоги заполняются без разделителя между рублями и копейками. Например, сумма 28 884.00 записывается как 2888400.
Значения нарастающих итогов нужно взять из последнего z-отчета (если смена открыта, для корректности этих значений к этим цифрам нужно добавить то, что было набито на последней открытой смене — данные можно посмотреть в ОФД или распечатать из ФН).

У вас нет такого пункта в Fito (раскрыть)

В Fito по умолчанию скрыты пункты меню, с помощью которых можно напрямую работать с данными в фискальной памяти.

Закройте Fito и скопируйте файл Fito.ini в папку с утилитой.
На кассах Вики путь к Fito следующий:

Либо можно добавить параметры вручную: откройте текстовым редактором файл Fito.ini и в раздел добавьте строку:
ServAccess=767 (измените цифры на 767, если пункт ServAccess уже есть).

Шаг 6. «Ошибка контрольной суммы ОЗУ»

Ошибка некритичная, означает, что текущая контрольная сумма бит по конфигурации не совпадает с последней сохранённой.

Откройте и закройте смену, ошибка пропадет. Сделать это можно через кассовое ПО или через Fito.

Как открыть и закрыть смену через Fito? (раскрыть)

Открыть смену: Fito → «Тестирование» → «Ручной ввод команды» → Номер команды = 23, Параметр 1 = имя кассира → «Выполнить»

Закрыть смену: Fito → «Тестирование» → «Печать отчетов» → «Печать z-отчета» → Имя оператора = имя кассира → «Выполнить»

Ошибка возникает, когда после точки запятой есть еще код — процедуры, функции, код тела модуля.

Пример кода, вызывающего ошибку:

Процедура ПроверитьТэгиИПоставщиков() Для каждого СтрокаТ из тПоставщиков Цикл Если ПустаяСтрока(СтрокаТ.TAG) или ЗначениеЗаполнено(СтрокаТ.Поставщик) = Ложь Тогда СтрокаТ.Создавать = Ложь; Сообщить(«Не заполнены данные по поставщику «+СтрокаТ.TAG+»!»); КонецЕсли; КонецЦикла; КонецПроцедуры; Процедура ИмяЛокальногоОтветаОткрытие(Элемент, СтандартнаяОбработка) Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ИмяЛокальногоОтвета); Текст.Показать(«Файл ответа»); КонецПроцедуры

Разбор полётов

Сообщение ошибке «Обнаружено логическое завершение исходного текста модуля» возникает, когда вы добавляете функцию/процедуру после «;» даже, если она создается автоматически через конструкторы событий

Ошибка в этой строке:

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

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

1С считает эту «;» частью кода тела модуля, а процедуры/функции в нем недопустимы

Решение простое:

Найти и убрать точку с запятой (необязательно что это будет последняя функция или процедура)

1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

1

1C 8.x

Обнаружено логическое завершение исходного текста модуля

11.07.2021, 21:41. Показов 13562. Ответов 19


Студворк — интернет-сервис помощи студентам

Здравствуйте, подскажите.
1С:Предприятие 8.3 (8.3.17.1496)
После обновления релиза вылетает ошибка : Обнаружено логическое завершение исходного текста модуля и так везде. Очистка кэша не помогла. В чем может быть еще проблема?
Спасибо!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

11.07.2021, 21:41

19

57 / 39 / 19

Регистрация: 24.10.2016

Сообщений: 970

11.07.2021, 22:08

2

kukulkan93, может лишние запятые, точки наставил?

Добавлено через 8 минут
хотя я могу ошибаться



0



1870 / 1277 / 458

Регистрация: 16.01.2015

Сообщений: 5,581

11.07.2021, 23:22

3

Цитата
Сообщение от kukulkan93
Посмотреть сообщение

В чем может быть еще проблема?

в кривом обновлении

Цитата
Сообщение от никмейн
Посмотреть сообщение

хотя я могу ошибатьс

Не ошибаешься. 100 пудов где-то точку или запятую влепил случайно



0



Yulunga

1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 07:13

4

у нас в модулях есть

1C
1
2
3
#Область НашаПрекраснаяФирма
.....
#КонецОбласти

и при обновлении она встаёт последней.
а надо, чтобы последней была вот такая штука

#Область Инициализация
…..
#КонецОбласти

тогда оно не ругается.
наверно нельзя чтобы после инициализации переменных было ещё что-то (??) подтверждения не нашёл. плохо искал.



0



1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

12.07.2021, 10:26

 [ТС]

5

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

Yulunga, это все модули так проверить? я выборочно некоторые проверила и не вижу изменений. А релиз я несколько раз обновляла и каждый раз эта ошибка



0



1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 10:37

6

все не надо. оно же ругается на какой-то конкретный, а не «ошибка во всех модулях идите и проверяйте нас»
посмотрите
а у нас да. это дело под контролем в каждом обновлении



0



1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

12.07.2021, 11:12

 [ТС]

7

Yulunga, он не пишет, что везде, но все те отчеты которые я открываю, везде выходит это сообщение, так что по сути везде



0



1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 11:41

8

kukulkan93, прикрепите скрин или напишите слово в слово то, что пишет
он всегда ругается на какой-то конкретный место в конфигурации а не огульно «фи, я не работаю»
раз в каждом — значит ошибка произошла в каком-то который вызывается для всех



0



kukulkan93

1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

12.07.2021, 13:09

 [ТС]

9

Yulunga,

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    // Печать накладной на перемещение
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НакладнаяНаПеремещение") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "НакладнаяНаПеремещение",
            НСтр("ru = 'Накладная на перемещение медикаментов'"),
            ПечатьПеремещениеТоваров(МассивОбъектов, ОбъектыПечати),
            ,
            "Документ.ПеремещениеМедикаментов.ПФ_MXL_Накладная");
    КонецЕсли;
 
    // Печать формы З-5
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НакладнаяЗ5") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "НакладнаяЗ5",
            НСтр("ru = 'З-5 (накладная на перемещение медикаментов)'"),
            ПечатьЗ5(МассивОбъектов, ОбъектыПечати),
            ,
            "Документ.ПеремещениеМедикаментов.ПФ_MXL_З5");
    КонецЕсли;
    
КонецПроцедуры

ему тут что-то не нравится, не вижу что именно



0



1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 13:20

10

ну я не знаю, как вас заставить написать то, КАК именно он ругается.
он ругается не тут
а скорее всего в управлениепечатью
раз она тут используется и у вас ерунда всегда

так как вряд ли проблема в печатьперемещениетоваров или в печатьзэпять
хотя может и тут тоже.



0



1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

12.07.2021, 13:23

 [ТС]

11

Yulunga,

Миниатюры

Обнаружено логическое завершение исходного текста модуля
 



0



1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 14:16

12

kukulkan93, ЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ, это победаааааааааааа!!!!!!!!!!!!!!!!!!!!
ну так идите в этот модуль и смотрите, что в нём не так.
ctrl-g — 594 — ok
и смотрите, что там написано в 15-ом символе.
опять же можете сохранить в файлик и посмотреть, что там вам написали в JSON-e.
и обратите внимание на, как вам советовали, ненужные точки с запятыми
ну и на инициализацию.



0



1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

12.07.2021, 14:30

 [ТС]

13

Yulunga, Yulunga, тот код что я скинула 594 строка это: КонецПроцедуры
точнее следующий знак после него словно он ждет еще какой-то символ после него
а если удалить эту процедуру он цепляется к предыдущей процедуре и так же на строчке КонецПроцедуры



0



1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 15:05

14

ну я даже не знаю. пробовали проскроллить вниз на пару (десятков) эрканов, чтобы увидеть ту самую точку с запятой?



0



1870 / 1277 / 458

Регистрация: 16.01.2015

Сообщений: 5,581

12.07.2021, 15:32

15

Цитата
Сообщение от kukulkan93
Посмотреть сообщение

тот код что я скинула 594 строка это: КонецПроцедуры
точнее следующий знак после него

а какой знак?После КонецПроцедуры не должно быть никакого знака

Добавлено через 55 секунд
покажи скрин из конфигуратора, строчку на которую ругается



0



1556 / 988 / 376

Регистрация: 31.05.2012

Сообщений: 3,486

12.07.2021, 15:51

16

поищи выше в тексте модуля КонецПроцедуры; или КонецФункции;
если найдешь убери лишнюю ;
подобная ошибка чаще всего из-за этого или похожей причины



0



1 / 1 / 0

Регистрация: 21.11.2020

Сообщений: 67

12.07.2021, 15:53

 [ТС]

17

polax, так и я не понимаю какой знак он хочет после, если там не должно быть ничего

Миниатюры

Обнаружено логическое завершение исходного текста модуля
 



0



1183 / 723 / 210

Регистрация: 22.04.2013

Сообщений: 5,322

Записей в блоге: 1

12.07.2021, 16:06

18

а попробуй удалить всё то, что внизу. ругнётся? или там — крайне необходимые процедуры?
тогда попробуй перенести их наверх
вроде всё сходится к тому, что дело в 1-2 знаках



0



61 / 39 / 24

Регистрация: 24.09.2017

Сообщений: 170

12.07.2021, 16:49

19

Возможная ошибка
Хотя у меня по такой ошибке по другому ругается

Определение процедур и функций должны размещаться перед операторами тела модуля

Наверное это зависит от версии платформы. У меня 8.3 (8.3.11.2867)

А так ищи строку КонецПроцедкры; или КонецФункции; причем символ «точка с запятой» может уехать далеко вправо за видимый край экрана



0



polax

1870 / 1277 / 458

Регистрация: 16.01.2015

Сообщений: 5,581

12.07.2021, 17:40

20

kukulkan93, Проверь, нет ли после этого КонецПроцедуры незареимрованной строки кода? У тебя идет комментарий закрытый //, возможно что-то забыли закомментировать, одну строку. По аналогии с БП, в приведенном коде не хватает

1C
1
 ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

Может случайно вынесли за пределы процедуры?



0



Помогите!

Еще пару дней назад все было хорошо, а теперь стала вылезать это:

«{Документ.Продажа.Форма.ФормаДокумента.Форма(6,1)}: Неопознанный оператор

<<?>>&НаКлиенте (Проверка: Сервер)

{Документ.Продажа.Форма.ФормаДокумента.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Сервер)

{Документ.Продажа.Форма.ФормаДокумента.Форма(6,1)}: Неопознанный оператор

<<?>>&НаКлиенте (Проверка: Тонкий клиент)

{Документ.Продажа.Форма.ФормаДокумента.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Тонкий клиент)»

Вот сам текст:

«&НаКлиенте

Процедура ТоварыЦенаПродажиПриИзменении(Элемент)

    РассчитатьСумму();

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

&НаКлиенте

Процедура ТоварыКоличествоПриИзменении(Элемент)

    РассчитатьСумму();

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

&НаКлиенте

Процедура РассчитатьСумму()

    Стр = Элементы.Товары.ТекущиеДанные;

    Стр.Сумма = Стр.ЦенаПродажи * Стр.Количество;

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

&НаКлиенте

Процедура СотрудникПриИзменении(Элемент)

        Результат = Проверить(Объект.Сотрудник);

    Если Не Результат тогда

                Сообщить(«Не может быть выбран»);

        КонецЕсли;

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

    
        
&НаКлиенте

Процедура ТоварыТоварПриИзменении(Элемент)

Стр = Элементы.Товары.ТекущиеДанные;  

Стр.ЦенаПродажи = ПолучитьЦену(Стр.Товар);

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

&НаСервереБезКонтекста

Функция ПолучитьЦену(Товар)

//а=0;

Возврат Товар.ЦенаПродажи;

КонецФункции;»

Что тут не так?

Понравилась статья? Поделить с друзьями:
  • Соленый сулугуни как исправить
  • Как найти наибольшую общую подстроку
  • Как составить акт для перерасчета коммунальных услуг
  • Как найти военные мультики
  • Гра фик функ ции как найти