Первоначально исходного текста будут обнаружены ошибки тексте

Содержание

  • Ошибка в доработанном программном коде
  • Ошибка вывода печатной формы
  • Ошибка исполнения кода на Клиенте
      • См. также:
    • Шаг 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С считает эту «;» частью кода тела модуля, а процедуры/функции в нем недопустимы

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

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

П3.
СООБЩЕНИЯ И КОДЫ ОШИБОК

П3.1. СООБЩЕНИЯ
ОБ ОШИБКАХ ПЕРИОДА КОМПИЛЯЦИИ

Среда Турбо Паскаля дает исчерпывающую
информацию о характере и месте обнаруженной
компилятором ошибки. При обнаружении
ошибки среда автоматически загружает
в окно редактора исходный файл и помещает
курсор около того места, где в исходном
тексте обнаружена ошибка. При этом в
верхней строке редактора появляется
диагностическое сообщение. После нажатия
на любую клавишу (кроме FI) верхняя строка
восстанавливает свой первоначальный
вид и среда переходит к режиму
редактирования. Если после появления
сообщения об ошибке нажать F1, на экране
появится окно справочной службы с
детальной информацией об ошибке и
рекомендациями по ее устранению.
Некоторые ошибки в исходном тексте
обнаруживаются не сразу, а в ходе
продолжающегося контекстного разбора.
Например, несоответствие типов в
операторе присваивания не может быть
обнаружено до тех пор, пока не будет
вычислено целиком выражение в правой
части этого оператора. В таких случаях
ищите ошибку слева от курсора или в
предыдущей строке текста.

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

На экране после кода ошибки (цифры) нет
точки, поэтому ее нет и в соответствующем
месте текста.

1 Out of memory  (Выход
за границы памяти).

Компилятору не хватает памяти. Имеется
ряд возможных решений этой проблемы:

  • если в опции COMPILE/DESTINATION установлено
    значение MEMORY, замените эту опцию на
    DISK;

  • если в опции OPTIONS/LINKER/LINK BUFFER установлено
    значение MEMORY, замените эту опцию т DISK;

  • если Вы используете резидентные
    обслуживающие программы, такие как
    SIDEKICK, NORTON, удалите их из памяти;

  • если Вы используете интегрированную
    среду TVRBO.EXE, то попробуйте воспользоваться
    компилятором ТРС.ЕХЕ — он занимает
    меньше памяти.

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

2 Identifier
expected (He указан
идентификатор).

В этом месте должен находиться
идентификатор. Возможно, Вы пытаетесь
использовать в качестве идентификатора
зарезервированное слово.

3 Unknown identifier (Неизвестный
идентификатор). 

Этот идентификатор не был описан.

4 Duplicate identifier (Двойной
идентификатор). 

Попытка дважды описать один и тот же
идентификатор.

5 Syntax error (Синтаксическая
ошибка).

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

6 Error in real constant (Ошибка
в вещественной константе). 

Синтаксис констант вещественного типа
описан в гл.4.

7 Error in integer constant
(Ошибка в целой константе).

Синтаксис констант целого типа описан
в гл.4. Учтите, что после целых действительных
чисел, превышающих диапазон представления
целых чисел (-2147483648..+2147483647), должны
ставиться точка и ноль, например,
12345678912.0.

8 String constant exceeds line
(Строковая константа превышает допустимые
размеры).

Вероятно, Вы забыли поставить апостроф
в конце строковой константы.

9 Too many nested files (Слишком
много вложенных файлов).

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

10 Unexpected end of file (He
найден конец файла).

Вы могли получить это сообщение об
ошибке по одной из следующих причин:

  • Ваш исходный файл закончился перед
    последним END основного раздела операторов;
    вероятно, в Вашей программе неодинаковое
    количество операторов BEGIN и END;

  • включаемый файл заканчивается в середине
    раздела операторов; каждый раздел
    операторов должен целиком помещаться
    в одном файле;

  • Вы не закончили комментарий.

11 Line too long (Слишком
длинная строка).

Максимальная длина строки, обрабатываемой
компилятором, равна 126 символам (обратите
внимание: редактор среды может обрабатывать
строки практически неограниченной
длины).

12 Type identifier expected
(Здесь нужен идентификатор типа). 

Не указан тип идентификатора.

13 Too many open files (Слишком
много открытых файлов).

Появление этой ошибки означает, что
конфигурационный файл CONFIG.SYS операционной
системы не включает параметр FlLES=xx или
этот параметр указывает слишком мало
файлов. Увеличьте число файлов до нужного
значения, например, до 80.

14 Invalid file name (Неверное
имя файла). 

Имя файла неверно или указан несуществующий
путь.

15 File not found (Файл не
найден). 

Файл не был найден в просмотренных
каталогах.

16 Disk full (Диск
заполнен). 

Удалите некоторые файлы или воспользуйтесь
новым диском.

17 Invalid compiler directive
(Неправильная директива компилятора). 

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

18 Too many files (Слишком
много файлов).

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

19 Undefined type in pointer
definition (Неопределенный тип в объявлении
указателя).

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

20 Variable identifier expected
(Отсутствует идентификатор переменной). 

На этом месте должен быть идентификатор
переменной.

21 Error in type (Ошибка в
объявлении типа). 

Объявление типа не может начинаться с
этого символа.

22 Structure too large (Слишком
большая структура). 

Максимально допустимый размер любого
структурного типа составляет 65520 байт.

23 Set base type of range
(Базовый тип множества нарушает границы). 

Базовый тип множества должен представлять
собой тип-диапазон с границами в пределах
от 0 до 255 или перечисляемый тип с не
более чем 256 значениями.

24 File components may not be files (Компонентами файла
не могут быть файлы) .

Конструкции типа file of file (файл файлов)
или file of object (файл объектов) не допускаются.
Нельзя объявлять любые структурные
типы, которые используют в качестве
компонентов объекты или файлы.

25 Invalid string length
(Неверная длина строки). 

Объявляемая длина строки должна
находиться в диапазоне от 1 до 255.

26 Type mismatch (Несоответствие
типов).

Это сообщение может быть вызвано
следующими причинами:

  • несовместимые типы переменной и
    выражения в операторе присваивания;

  • несовместимые типы фактического и
    формального параметров в обращении к
    процедуре или функции;

  • тип выражения не совместим с типом
    индекса при индексировании массива;

  • несовместимые типы операндов в выражении.

27 Invalid subrange base
type(Неправильный базовый тип для
типа-диапазона).

Допустимыми базовыми типами являются
все порядковые типы.

28 Lower bound greater than upper
bound (Нижняя граница больше верхней). 

Описание типа-диапазона содержит
неправильные границы.

29 Ordinal type expected (Нужен
порядковый тип) .

Вещественные, строковые, структурные,
процедурные типы и указатели в данном
месте программы не допускаются.

30 Integer constant expected
(Нужна целая константа).

31 Constant expected (Нужна
константа).

32 Integer or real constant
expected (Нужна целая или вещественная
константа) .

33 Tуре identifier expected
(Нужен идентификатор типа)

34 Invalid function result type
(Неправильный тип результата функции) 

Правильными типами результата функции
являются все простые типы, строковые
типы и указатели.

35 Label identifier expected
(Нужен идентификатор метки).

Метка не обозначена с помощью
идентификатора, как это требуется из
контекста программы.

36 BEGIN expected (Нужен
BEGIN).

37 END expected (Нужен END).

38 Integer expression expected
(Нужно выражение типа INTEGER).

39 Ordinal expression expected
(Нужно выражение перечисляемого типа).

40 Boolean expression expected
(Нужно выражение типа BOOLEAN).

41 Operand types do not match
operator (Типы операндов не соответствуют
операции).

Данная операция не может быть применена
к указанным операндам, например, ‘ А’ div
‘ 2 ‘ .

42 Error in expression (Ошибка
в выражении).

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

43 Illegal assignment (Неверное
присваивание).

Файлам и нетипизированным переменным
нельзя присваивать значения. Идентификатору
функции можно присвоить значение только
внутри раздела операторов данной
функции.

44 Field identifier expected
(Нужен идентификатор поля).

Попытка использовать запись целиком в
том месте, где требуется ссылка на
какое-либо поле записи.

45 Object file too large
(Объектный файл слишком большой). 

Турбо Паскаль не может компоновать
файлы .OBJ больше 64 Кбайт.

46 Undefined external
(Неопределенная внешняя процедура).

Внешняя процедура или функция не имеет
соответствующего определения PUBLIC в
объектном файле. Убедитесь, что Вы
указали все объектные файлы в директивах
{$L <имя .OBJ-файлa>} и проверьте написание
идентификаторов процедуры или функции
в файле . ASM.

47 Invalid object file record
(Неправильная запись объектного файла). 

Файл .OBJ содержит неверную объектную
запись. Убедитесь, что данный файл
является действительно файлом .OBJ.

48 Code segment too large
(Сегмент кода слишком большой).

Максимальный размер кода программы или
программного модуля равняется 65520
байтам. Разбейте Вашу программу или
модуль на два или более модулей.

49 Data segment too large
(Сегмент данных слишком велик).

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

50 DO expected (Нужен
оператор DO).

51 Invalid PUBLIC definition
(Неверное PUBLIC-определение). 

Возможные причины сообщения:

  • данный идентификатор получил тип PUBLIC
    с помощью соответствующей директивы
    языка ассемблера, но не соответствует
    описанию EXTERNAL в программе или программном
    модуле Паскаля;

  • две или более директивы PUBLIC языка
    ассемблера определяют один и тот же
    идентификатор;

  • файлы .OBJ определяют символы PUBLIC, не
    находящиеся в сегменте CODE.

52 Invalid EXTRN definition
(Неправильное EXTRN-определение). 

Возможные причины сообщения:

  • программа на ассемблере ссылается с
    помощью директивы EXTRN на идентификатор,
    который не описан в программе на Паскале
    и не был описан в интерфейсных секциях
    используемых программных модулей;

  • ассемблерная программа ссылается на
    идентификатор, обозначающий абсолютную
    переменную (т.е. определенную словом
    ABSOLUTE);

  • ассемблерная программа ссылается на
    идентификатор процедуры или функции
    типа INLINE.

53 Too many EXTRN definition
(Слишком много EXTRN-определений). 

Турбо Паскаль не может обрабатывать
файлы .OBJпри более чем 256 определениях
EXTRN.

54 OF expected (Требуется
OF).

55 INTERFACE expected (Требуется
интерфейсная секция).

56 Invalid relocatable reference
(Неправильная перемещаемая ссылка). 

Возможные причины сообщения:

  • файл .OBJ содержит данные и перемещаемые
    ссылки в сегментах, отличных от CODE.
    Например, Вы пытаетесь описать
    инициализированные переменные в
    сегменте DATA;

  • файл .OBJ содержит ссылки с размерами в
    байтах на перемещаемые символы. Такая
    ошибка происходит в случае, если Вы
    используете операторы HIGH и LOW с
    перемещаемыми символами или если Вы
    ссылаетесь в директивах DB на перемещаемые
    символы;

  • операнд ссылается на перемещаемый
    символ, который не был определен в
    сегменте CODE или в сегменте DATA;

  • операнд ссылается на процедуру EXTRN или
    функцию EXTRN со сдвигом, например, CALL
    SortProc+8.

57 THEN expected (Требуется
THEN).

58 TO or DOWNTO expected
(Требуется ТО или DOWNTO).

59 Undefined forward
(Неопределенное опережающее описание). 

Возможные причины сообщения:

  • была рписана процедура или функция в
    интерфейсной секции программного
    модуля, но ее определение отсутствует
    в секции реализации;

  • процедуры или функции были описаны с
    помощью опережающего описания, но их
    определение не найдено.

60 Too many procedures (Слишком
иного процедур).

Турбо Паскаль допускает не более 512
процедур или функций в одном модуле.
Если Вы компилируете программу, то
поместите некоторые процедуры или
функции в модули. Если Вы компилируете
модуль, то разбейте его на два или
несколько модулей.

61 Invalid typecast (Неверное
преобразование типа). 

Возможные причины сообщения:

  • Вы пытаетесь разместить в памяти,
    занимаемой некоторой переменной,
    значение выражения другого типа э
    случае, когда размер размещаемого
    значения не равен размеру переменной;

  • Вы пытаетесь осуществить преобразование
    типа выражения, когда разрешается
    только ссылка на переменную, процедуру
    или функцию.

62 Division by zero (Деление
на ноль). 

Предшествующая операция пытается
выполнить деление на ноль.

63 Invalid file type (Неверный
файловый тип).

Данный файловый тип не обслуживается
процедурой обработки файлов. Например,
процедура READLN используется для
типизированного файла или процедура
SEEK — для текстового файла.

64 Cannot Read or Write variables
of this type (Нет возможности считать или
записать переменные данного типа). 

Нарушены следующие ограничения:

  • процедуры READ и READLN могут считывать
    переменные символьного, целого,
    действительного и строкового типов;

  • процедуры WRITE и WRITELN могут выводить
    переменные символьного, целого,
    действительного, булевского и строкового
    типов.

65 Pointer variable expected
(Нужно использовать переменную-указатель). 

Предыдущая переменная должна быть
указателем.

66 String variable expected
(‘Нужна строковая переменная) . 

Предшествующая переменная должна иметь
строковый тип.

67 String expression expected
(Нужно выражение строкового типа). 

Предшествущее выражение должно иметь
строковый тип.

68 Circular unit reference
(Перекрестная ссылка модулей). 

Два модуля ссылаются друг на друга:

Unit A;      
Unit В;

Uses В;      
Uses А; 

…..        
…..

69 Unit name mismatch
(Несоответствие имен программных
модулей). 

Имя программного модуля, найденное в
файле .TPU, не соответствует имени,
указанному в предложении USES.

70 Unit version mismatch
(Несоответствие версий модулей).

Один или несколько программных модулей,
используемых данной программой, были
изменены после их компиляции. Воспользуйтесь
опцией COMPILE/MAKE или COMPILE/BUILD в интегрированной
среде или опциями /М или /В в компиляторе
ТРС, что позволит автоматически
скомпилировать программные модули,
нуждающиеся в перекомпиляции.

71 Duplicate unit name (Повторное
имя программного модуля). 

Вы уже указали этот программный модуль
в операторе USES.

72 Unit file format error (Ошибка
формата файла модуля). 

Файл .TPU не соответствует стандарту
Турбо Паскаля.

73 IMPLEMENTATION expected
(Отсутствует исполняемая часть модуля).

74 Constant and case types do not
match (Типы констант и тип выражения
оператора CASE не соответствуют друг
другу).

Тип константы оператора CASE не совместим
с выражением в операторе варианта.

75 Record variable expected
(Нужна переменная типа запись) . 

Предшествующая переменная должна иметь
тип запись.

76 Constant out of range
(Константа нарушает границы). 

Возможные причины сообщения:

  • Вы пытаетесь указать индекс массива,
    выходящий за его границы;

  • Вы пытаетесь присвоить переменной
    значение, выходящее за границы, допустимые
    для типа этой переменной;

  • Вы пытаетесь передать в качестве
    фактического параметра процедуре или
    функции константу, выходящую за границы,
    допустимые для типа соответствующего
    формального параметра.

77 File variable expected (Нужна
файловая переменная). 

Предшествующая переменная должна иметь
файловый тип.

78 Pointer expression expected
(Нужно выражение типа указатель). 

Предшествующее выражение должно иметь
тип указателя.

79 Integer or real expression
expected (Нужно выражение вещественного
или целого типа).

Предшествующее выражение должно иметь
тип REAL или INTEGER.

80 Label not within current block
(Метка не находится внутри текущего
блока) .

Оператор GOTO не может ссылаться на метку,
находящуюся вне текущего блока.

81 Label already defined (Метка
уже определена). 

Данная метка уже помечает оператор.

82 Undefined label in processing
statement part (Неопределенная метка в
предшествующем разделе операторов).

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

83 Invalid @ argument
(Неправильный аргумент операции @). 

Правильными аргументами являются
идентификаторы переменных, процедур и
функций.

84 Unit expected (Нужно
кодовое слово UNIT).

85«;» expected (Нужно
указать»;») .

86«:» expected (Нужно
указать*:») .

87«,» expected (Нужно
указать»,») .

88 «(» expected (Нужно
указать «(»).

89«)» expected (Нужно
указать»)»).

90 «=» expected (Нужно
указать «=») .

91«:=» expected (Нужно
указать»:=»).

92 «[» or «(.» expected
(Нужно указать «[» или «(.»).

93«]» or «.)» expected (Нужно
указать»]» или».)»).

94».» expected (Нужно
указать».») ,

95«..» expected (Нужно
указать»..») .

96 Too many variables (Слишком
много переменных).

Нарушены следующие ограничения:

  • общий размер глобальных переменных,
    описанных в программе или программном
    модуле, не может превышать 64 Кбайт;

  • размер локальных переменных, описанных
    в процедуре или функции, не может
    превышать 64 Кбайт. .

97 Invalid FOR control
variable(Неправильный параметр цикла
оператора FOR).

Параметр цикла оператора FOR должен быть
переменной порядкового типа, определенной
в разделе описаний текущей подпрограммы.

98 Integer variable expected
(Нужна переменная целого типа). 

Предшествующая переменная должна иметь
целый тип.

99 File and procedure types are
not allowed here (Здесь не могут использоваться
файлы или процедурные типы).

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

100 String length mismatch
(Несоответствие длины строки).

Длина строковой константы не соответствует
количеству элементов символьного
массива.

101 Invalid ordering of fields
(Неверный порядок полей). 

Поля в константе типа запись должны
записываться в порядке их описания.

102 String constant expected
(Нужна константа строкового типа).

103 Integer or real variable
expected (Нужна переменная типа INTEGER или
REAL).

Предшествующая переменная должна иметь
целый или вещественный тип.

104 Ordinal variable expected
(Нужна переменная порядкового типа). 

Предшествующая переменная должна иметь
порядковый тип.

105 INLINE error (Ошибка в
операторе INLINE).

Оператор «<» не допускается в сочетании
с перемещаемыми ссылками на переменные.
Такие ссылки всегда имеют размер в
слово.

106 Character expression expected
(Предшествующее выражение должно иметь
символьный тип).

107 Too many relocation items
(Слишком много перемещаемых Элементов).

Размер таблицы перемещения файла .ЕХЕ
превышает 64 Кбайта, что является верхним
пределом в Турбо Паскале. Если Вы
обнаружили эту ошибку, то это значит,
что программа просто слишком велика
для обработки компоновщиком Турбо
Паскаля. Возможно также, что она слишком
велика для выполнения в MS-DOS. В таком
случае нужно выделить в программе
основной раздел, который выполнял бы
обращение к двум или более вспомогательным
разделам с помощью процедуры ЕХЕС из
модуля DOS (см. гл.11).

108 Overflow in arithmetic
operator (Переполнение при выполнении
арифметического оператора).

Результат предыдущей арифметической
операции не лежит в диапазоне -2 146 483
648…+2 147 483 647. Исправьте операцию или
используйте вещественные типы вместо
целочисленных.

109 No enclosing FOR, WHILE or
REPEAT statment (Нет операторов, заканчивающих
операторы FOR, WHILE или REPEAT) .

Процедуры BREAK и CONTINUE не могут вызываться
вне тела оператора цикла.

110 Debug information table
overflow (Переполнение информационной
таблицы отладки).

Возможно, программа содержит более
65536 имен или 65536 строк. Отключите генерацию
таблиц отладки директивой компилятора
{$D-} или исправьте один или более модулей.

111

Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль.

112 CASE constant out of
range(Константа CASE нарушает допустимые
границы).

Целочисленные константы оператора CASE
должны находиться в диапазоне от -32768
до 32767.

113 Error in
statement (Ошибка
в
операторе). 

Данный символ не может быть первым
символом в операторе.

114 Cannot call an interrupt
procedure (Невозможно вызвать процедуру
прерывания) .

Вы не можете непосредственно вызвать
процедуру обработки прерывания.

115

Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль.

116 Must be in
8087 mode to compile this (Для
компиляции
необходим
режим
8087) .

Данная программа может быть скомпилирована
только в режиме {$N+}. В состоянии {SN-}
операции с типами SINGLE, DOUBLE, EXTENDED и СОМР
не допускаются.

117 Target address not found
(Указанный адрес не найден).

Команда COMPILE/FIND ERROR в среде Турбо Паскаля
(или поиск с помощью опции /F в командной
строке компилятора ТРС.ЕХЕ) не обнаружила
оператор, соответствующий заданному
адресу.

118 Include
files are not allowed here (Здесь
не
допускаются
включаемые
файлы)
.

Раздел операторов должен целиком
размещаться в одном файле.

119 No inherited methods are
accessible here (В этом месте программы нет
унаследованных методов).

Вы используете зарезервированное слово
INHERITED вне метода объекта или в методе,
который не унаследован от родительского
объекта.

120

Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль. .

121 Invalid qualifier (Неверный
квалификатор). 

Возможные причины сообщения:

  • Вы пытаетесь индексировать переменную,
    которая не является массивом;

  • Вы пытаетесь указать поля в переменной,
    которая не является записью;

  • Вы используете в качестве указателя
    переменную, которая не является
    указателем.

122 Invalid variable reference
(Недействительная ссылка на переменную).

Предыдущая конструкция удовлетворяет
синтаксису ссылки на переменную, но она
не указывает адрес памяти. Возможно Вы
вызываете функцию-указатель, но забываете
сослаться на результат с помощью знака
^.

123 Too many symbols'(Слишком
много символов) .

Программа или программный модуль
содержат более 64 Кбайт символов. Если
Вы компилируете программу с директивой
{$D+}, то попробуйте отключить эту директиву
или разбейте программу на несколько
модулей.

124 Statement part too large
(Слишком большой раздел операторов).

Турбо Паскаль ограничивает размер
раздела операторов до величины примерно
24 Кбайта. Если Вы обнаружили эту ошибку,
поместите части раздела операторов в
одну или несколько процедур и вообще
сделайте Вашу программу более
структурированной.

125

Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль.

126 Files must be var parameters
(Файлы должны передаваться как
параметры-переменные) .

Вы пытаетесь передать процедуре или
функции параметр-значение файлового
типа. Параметры файлового типа должны
быть параметрами-переменными.

127 Too many conditional symbols
(Слишком много условных символов). 

Недостаточно памяти для определения
условных символов (слов, управляющих
командами условной компиляции).
Попытайтесь удалить некоторые символы
или уменьшить их длину.

128 Misplaced conditional
directive (Пропущена условная директива). 

Компилятор обнаружил директиву {$ELSE}
или {$ENDIF} без соответствующих директив
{$IFDEF}, {$IFNDEF} или {$IFOPT}.

129 ENDIF
directive missing (Пропущена
директива
ENDIF).

Исходный файл закончился внутри
конструкции условной компиляции. В
исходном файле должно быть равное
количество директив {$IFxxx} и {$ENDIF}.

130 Error in
initial conditional defines (Ошибка
в
условных
определениях).

Исходные условные символы.указанные в
опции OPTIONS/COMPILER /CONDITIONAL DEFINES являются
недействительными. Турбо Паскаль требует
нуля или более идентификаторов,
разделенных пробелами, запятыми или
точками с запятой.

131 Header does not match
previous definition (Заголовок не соответствует
предыдущему определению). 

Возможные причины сообщения:

  • заголовок процедуры или функции,
    указанный в интерфейсной секции, не
    соответствует заголовку в исполняемой
    части.

  • заголовок процедуры или функции,
    указанный с помощью опережающего
    описания FORWARD, не соответствует заголовку
    найденной далее одноименной процедуры
    или функции.

132 Critical disk error
(Критическая ошибка диска).

Во время компиляции произошла критическая
ошибка диска (например, дисковод находится
в состоянии «не готов»).

133 Cannot
evaluate this expression (Нельзя
вычислить
данное
выражение).

В выражении-константе или в отладочном
выражении Вы пытаетесь использовать
неподдерживаемые средства, например,
в описании константы пытаетесь
использовать функцию SIN или вызвать в
отладочном выражении определенную
пользователем функцию.

134 Expression incorrectly
terminated (Некорректное завершение
выражения). 

Контекстуально в данном месте программы
должен быть конец выражения или оператора.

135 Invalid format specifier
(Неверный спецификатор формата). 

Используется неверный спецификатор
формата или числовой аргумент спецификатора
формата выходит за допустимые границы.

136 Invalid indirect reference
(Недопустимая косвенная ссылка).

Оператор пытается осуществить недопустимую
косвенную ссылку. Например, Вы используете
абсолютную переменную, базовая переменная
которой в текущем модуле неизвестна,
или используете программу типа INLINE, в
которой делается ссылка на переменную,
неопределенную в текущем модуле.

137 Structured variable are not
allowed here (Здесь нельзя использовать
переменную структурного типа).

Делается попытка выполнить над переменной
структурного типа неподдерживаемую
операцию. Например, Вы пытаетесь
перемножить две записи.

138 Cannot evaluate without
System unit (Нельзя вычислить выражение без
модуля SYSTEM).

Чтобы отладчик смог вычислить выражение,
в файле TURBO.TPL должен содержаться модуль
SYSTEM.

139 Cannot access this symbol
(Нет доступа к данному символу). 

Как только Вы скомпилируете программу,
все множество ее символов становится
доступным. Однако к отдельным символам
(например, к переменным) нельзя получить
доступ, пока Вы не запустите программу.

140 Invalid floating-point
operation (Недопустимая операция с плавающей
запятой) .

При выполнении операции с плавающей
запятой произошло переполнение или
деление на ноль.

141 Cannot compile overlay to
memory (Нельзя выполнить компиляцию
оверлейных модулей в память).

Программа, использующая оверлейные
модули, должна компилироваться на диск.

142 Procedure or function
variable expected (Должна использоваться
переменная процедурного типа).

В этом контексте оператор получения
адреса @ может использоваться только с
переменной процедурного типа.

143 Invalid
procedure or function reference (Недопустимая
ссылка
на
процедуру
или
функцию).

Возможные причины сообщения:

  • Вы пытаетесь вызвать процедуру в
    выражении;

  • процедура или функция, использующаяся
    в качестве параметра вызова другой
    процедуры или функции, должна
    компилироваться в состоянии {$F+} и не
    может описываться с помощью
    зарезервированных слов INLINE или INTERRUPT.

144 Cannot overlay this unit
(Этот модуль не может использоваться в
качестве оверлейного).

Попытка использовать в качестве
оверлейного модуль, который не был
скомпилирован с директивой {$O+}.

145 Too many nested scopes
(Слишком много вложений).

В программе не может быть больше 512
вложений с не более чем 128 вложениями в
каждом модуле. Вложениями считаются:

  • каждый модуль в предложении USES;

  • каждая вложенная запись в типе RECORD;

  • каждый вложенный оператор WITH.

146 File access denied (Отказано
в доступе к файлу). 

Возможные причины:

  • Вы пытаетесь использовать файл с
    атрибутом «только для чтения» в качестве
    выводного файла;

  • Вы используете имя каталога вместо
    имени выводного файла.

147 Object
type expected (Здесь
должен
быть
тип
OBJECT). 

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

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

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

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

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

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

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

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

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

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

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

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

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

Об идеалах нации можно судить по ее рекламе.

Содержание:

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

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

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

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

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

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

=

1;

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

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

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

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

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

1 / 1 / 0

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

Сообщений: 67

1

1C 8.x

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

11.07.2021, 21:41. Показов 13778. Ответов 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

Сообщений: 974

11.07.2021, 22:08

2

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

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



0



1904 / 1304 / 465

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

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

11.07.2021, 23:22

3

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

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

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

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

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

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



0



Yulunga

1195 / 733 / 212

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

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

Записей в блоге: 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



1195 / 733 / 212

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

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

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

12.07.2021, 10:37

6

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



0



1 / 1 / 0

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

Сообщений: 67

12.07.2021, 11:12

 [ТС]

7

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



0



1195 / 733 / 212

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

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

Записей в блоге: 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



1195 / 733 / 212

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

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

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

12.07.2021, 13:20

10

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

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



0



1 / 1 / 0

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

Сообщений: 67

12.07.2021, 13:23

 [ТС]

11

Yulunga,

Миниатюры

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



0



1195 / 733 / 212

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

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

Записей в блоге: 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



1195 / 733 / 212

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

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

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

12.07.2021, 15:05

14

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



0



1904 / 1304 / 465

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

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

12.07.2021, 15:32

15

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

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

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

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



0



1564 / 993 / 379

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

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

12.07.2021, 15:51

16

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



0



1 / 1 / 0

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

Сообщений: 67

12.07.2021, 15:53

 [ТС]

17

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

Миниатюры

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



0



1195 / 733 / 212

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

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

Записей в блоге: 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

1904 / 1304 / 465

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

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

12.07.2021, 17:40

20

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

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

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



0



Помогите!

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

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

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

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

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

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

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

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

«&НаКлиенте

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

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

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

&НаКлиенте

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

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

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

&НаКлиенте

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

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

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

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

&НаКлиенте

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

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

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

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

        КонецЕсли;

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

    
        
&НаКлиенте

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

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

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

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

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

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

//а=0;

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

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

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

  • Первоклассники начинают постигать первые трудности обучения ошибка
  • Пежо 607 ошибка тормозов
  • Первое узи показало девочку может ли быть ошибка
  • Пежо 607 ошибка p1730
  • Первое сентября принято считать как бы началом учебного года ошибки