Содержание:
1. Почему появляется ошибка «Обнаружено логическое завершение исходного текста модуля»
2. Как избежать ошибки «Обнаружено завершение исходного текста модуля»
1. Почему появляется ошибка «Обнаружено логическое завершение исходного текста модуля»
Чтобы разобраться с причиной происхождения ошибки Обнаружено логическое завершение исходного текста модуля, нужно понять назначение использования точки с запятой в синтаксисе языка 1С. Впервые введенный печатником из Италии и затем использованный Шекспиром для разделения противоположных слов, данный символ нашел свое применение во многих языках программирования. Основное назначение точки запятой в программировании – разделение инструкций кода, символ завершения оператора цикла.
В языке 1С точка с запятой используется для разделения операторов. Например, присвоение значения переменной. Причем данные операторы можно писать в одну строчку, разделяя их точкой с запятой, а вот перенос строки не является символом завершения оператора, поэтому допустимы конструкции вида:
НоваяПеременная
=
1;
Но, наряду с операторами в синтаксисе языка существуют и так называемые операторные скобки, обрамляющие последовательность операторов кода. В Бейсике, на который язык 1С очень похож, примером таких операторных скобок служат конструкции вида beginend. В 1С же операторными скобками являются, для примера, начало и конец процедур и функций – Процедура (Функция) и КонецПроцедуры(КонецФункции). И так как точка с запятой служит только для разделения операторов в коде, то после окончания процедур и функций, т.е. операторных скобок, ее ставить не нужно. Но проверка синтаксиса 1С не будет считать ошибкой, если поставить точку с запятой в конце процедуры или функции, так как это просто будет означать завершение оператора.
2. Как избежать ошибки «Обнаружено завершение исходного текста модуля»
Если после того, как мы поставили точку с запятой после окончания, например, процедуры и затем в этом же модуле продолжили писать еще какой-то код, например, прописали еще одну процедуру, то 1С выдает ошибку обнаружения логического завершения исходного текста модуля. Как только появляется такая ошибка, нужно проверить все окончания процедур и функций на предмет точки запятой и продолжения кода после них. Так же внутри процедур и функций можно не ставить точку с запятой после самого последнего оператора, но, если ниже будет дописан еще какой-то код, то это уже вызовет ошибку Обнаружено завершение исходного текста модуля.
Специалист компании «Кодерлайн»
Александр Суворов
Обнаружено логическое завершение исходного текста модуля
Ошибка возникает, когда после точки запятой есть еще код — процедуры, функции, код тела модуля.
Пример кода, вызывающего ошибку:
Процедура ПроверитьТэгиИПоставщиков() Для каждого СтрокаТ из тПоставщиков Цикл Если ПустаяСтрока(СтрокаТ.TAG) или ЗначениеЗаполнено(СтрокаТ.Поставщик) = Ложь Тогда СтрокаТ.Создавать = Ложь; Сообщить("Не заполнены данные по поставщику "+СтрокаТ.TAG+"!"); КонецЕсли; КонецЦикла; КонецПроцедуры; Процедура ИмяЛокальногоОтветаОткрытие(Элемент, СтандартнаяОбработка) Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ИмяЛокальногоОтвета); Текст.Показать("Файл ответа"); КонецПроцедуры
Разбор полётов
Сообщение ошибке «Обнаружено логическое завершение исходного текста модуля» возникает, когда вы добавляете функцию/процедуру после «;» даже, если она создается автоматически через конструкторы событий
Ошибка в этой строке:
КонецПроцедуры;
Если после точки с запятой ничего нет, такой модуль не вызывает ошибку.
1С считает эту «;» частью кода тела модуля, а процедуры/функции в нем недопустимы
Решение простое:
Найти и убрать точку с запятой (необязательно что это будет последняя функция или процедура)
Об идеалах нации можно судить по ее рекламе.
Обнаружено логическое завершение текста |
Я |
21.10.10 — 17:12
Доброго времени суток,
Создаю в чистом модуле формы элемента справочника Контрагенты процедуру
Процедура ПриОткрытии()
// Вставить содержимое обработчика.
КонецПроцедуры
пишет в режиме предприятия
Справочник.Контрагенты.Форма.ФормаЭлемента(1,1)}: Обнаружено логическое завершение исходного текста модуля
объясните сие феномен
1 — 21.10.10 — 17:15
А текст можно глянуть?
2 — 21.10.10 — 17:17
в том то и дело эта процедура есть весь текст модуля
Процедура ПриОткрытии()
// Вставить содержимое обработчика.
КонецПроцедуры
Кроме нее ничего нет
3 — 21.10.10 — 17:19
а если удалить , то форма открывается
4 — 21.10.10 — 17:20
Точка с запятой в конце ПРЕДЫДУЩЕЙ процедуры?
5 — 21.10.10 — 17:20
я сам в шоке, может какая защитамодуля стоит
6 — 21.10.10 — 17:20
в слове КонецПроцедуры
7 — 21.10.10 — 17:23
При
Процедура ПриОткрытии()
// Вставить содержимое обработчика.
КонецПроцедуры;
тоже самое
8 — 21.10.10 — 17:23
лишних символов нету
9 — 21.10.10 — 17:26
А в свойствах формы в событиях ничего такого…? Событие ПриОткрытии ссылается на какую-то процедуру?
10 — 21.10.10 — 17:26
(7) После КОнецПроцедуры НЕ НАДО никаких точек с запятой. А то проблемы будут. Сам натыкался.
11 — 21.10.10 — 17:28
(7) хоть с точкой хоть без одна петрушка
12 — 21.10.10 — 17:28
(10)
13 — 21.10.10 — 17:30
в событиях только это Приоткрытии
14 — 21.10.10 — 17:30
о форма одна только у этого справочника?
15 — 21.10.10 — 17:31
(0) Когда ругнется в режиме предприятия — перейди в отладчик и посмотри на текст. Возможно из кэша берется.
16 — 21.10.10 — 17:32
Форма списка и формаЭлемента
17 — 21.10.10 — 17:34
(15) Не ловит точка останова, эта же первая строка модуля
18 — 21.10.10 — 17:35
(17) Добавь какой нить оператор типа а=1
19 — 21.10.10 — 17:37
ща выдало:
{Справочник.Контрагенты.Форма.ФормаЭлемента(1,1)}: Обнаружено логическое завершение исходного текста модуля
<<?>>????????? ???????????()
20 — 21.10.10 — 17:38
(18) бесполезно
21 — 21.10.10 — 17:39
(20) CTRL-A, потом Del?
22 — 21.10.10 — 17:40
2(21) там написано: (1,1) — первый символ первой строки
23 — 21.10.10 — 17:41
в каком режиме запускаешь предприятие, какая версия платформы?
24 — 21.10.10 — 17:41
я уже на вирусы проверял
25 — 21.10.10 — 17:42
Файловый,1С:Предприятие 8.1 (8.1.15.14)
26 — 21.10.10 — 17:43
(24) тогда это кэш. почисть
27 — 21.10.10 — 17:43
как?
28 — 21.10.10 — 17:44
(27) перепропиши базу заново
29 — 21.10.10 — 17:44
(3) говорит о том, что кэш вряд ли виноват
30 — 21.10.10 — 17:44
(26)?
31 — 21.10.10 — 17:45
2(29) ну нет, не совсем говорит…
32 — 21.10.10 — 17:45
врет значит
33 — 21.10.10 — 17:46
(30) а чтобы ты сделал если бы сейчас все участники форума умерили, но интернет бы остался и поисковые машины остались бы рабочими?
34 — 21.10.10 — 17:46
отладка — остановка по ошибке
35 — 21.10.10 — 17:46
(28) — очень способ
36 — 21.10.10 — 17:47
(0) 8.2 ?
37 — 21.10.10 — 17:47
а. вижу
38 — 21.10.10 — 17:50
Ты ее че руками что ли создаешь? А кнопочку жмакнуть в событиях формы или тупо выбрать из списка процедур в модуле формы не пробовал?
39 — 21.10.10 — 17:51
(38)z nfr b ltkf.
40 — 21.10.10 — 17:51
(38) я так и делаю
41 — 21.10.10 — 17:52
тогда странно.
42 — 21.10.10 — 17:52
очистка кэша и остановка по ошибке не помогло
43 — 21.10.10 — 17:52
это какой то бред
44 — 21.10.10 — 17:53
убей форму и создай по новой
45 — 21.10.10 — 17:54
(43) Выгрузи файлы конфигурации по этому справочнику, сделай какие нить изменения в нем и заново их загрузи
46 — 21.10.10 — 17:55
(44) получилось
47 — 21.10.10 — 17:57
о как — надо будет сделать себе заметку.
48 — 21.10.10 — 17:59
все-таки в кэше выходит было дело.
49 — 21.10.10 — 18:01
(48) Как такая ошибка может возникать?
50 — 21.10.10 — 18:02
+(49) Однажды было, что под одним пользователем поле документа видно было, под другим видно не было
51 — 21.10.10 — 18:02
2(49) безсистемно. Нам жеж неизвестно до тонкостей что именно платформа делает с формами — как извлекает из, как отрисовывает… Известно только что каждый объект конфигурации имеет свой уид. Убили форму, создали новую — у новой новый УИД, из кэша не извлекается.
52 — 21.10.10 — 18:04
У меня было в одной обработке, которую я часто правил в конфигураторе, и тут же ее закрывал и открывал в конфигураторе — что не отображались изменения. Не помогало даже копирование обработки в другое место.
Сооздание новой и копирование в нее форм и модулей и макетов через буфер помогло
53 — 21.10.10 — 18:08
«и тут же ее закрывал и открывал в конфигураторе» = «и тут же ее закрывал и открывал в предприятии»
54 — 21.10.10 — 18:09
(52) Жесть!
55 — 21.10.10 — 18:10
Мне помогло (45) с проблемой из (50)
56 — 21.10.10 — 18:14
57 — 21.10.10 — 18:39
(49) Парсер тупит.. Было такое.
ПС. Естественно не в v8, bison и ругается подругому, но принцып тот-же — есть процедурины, нет переменных. Не всегда пропускает без переменных.
Живой Ископаемый
58 — 21.10.10 — 18:39
2(57) а в новой форме стало быть не тупит?
1 / 1 / 0 Регистрация: 21.11.2020 Сообщений: 67 |
|
1 |
|
1C 8.x Обнаружено логическое завершение исходного текста модуля11.07.2021, 21:41. Показов 13774. Ответов 19
Здравствуйте, подскажите.
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,676 |
|
11.07.2021, 23:22 |
3 |
В чем может быть еще проблема? в кривом обновлении
хотя я могу ошибатьс Не ошибаешься. 100 пудов где-то точку или запятую влепил случайно
0 |
Yulunga 1195 / 733 / 212 Регистрация: 22.04.2013 Сообщений: 5,385 Записей в блоге: 1 |
||||
12.07.2021, 07:13 |
4 |
|||
у нас в модулях есть
и при обновлении она встаёт последней. #Область Инициализация тогда оно не ругается.
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,
ему тут что-то не нравится, не вижу что именно
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, ЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ, это победаааааааааааа!!!!!!!!!!!!!!!!!!!!
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,676 |
|
12.07.2021, 15:32 |
15 |
тот код что я скинула 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 |
а попробуй удалить всё то, что внизу. ругнётся? или там — крайне необходимые процедуры?
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,676 |
||||
12.07.2021, 17:40 |
20 |
|||
kukulkan93, Проверь, нет ли после этого КонецПроцедуры незареимрованной строки кода? У тебя идет комментарий закрытый //, возможно что-то забыли закомментировать, одну строку. По аналогии с БП, в приведенном коде не хватает
Может случайно вынесли за пределы процедуры?
0 |
Что за ошибка?Помогите!
Автор andryscha92, 06 сен 2013, 10:11
0 Пользователей и 1 гость просматривают эту тему.
при проведении или пометке на удалении именно одного документа возникает ошибка :
{Документ.ОС_Покупка.МодульОбъекта(1,1)}: Обнаружено логическое завершение исходного текста модуля
<<?>>?=Ms?u?nP*?!?u?k7-?l+?)’?C..?rR?t??rI.9?*N? LQi???? (????%??X???C??!w?}t???L??b?Mh1;??????W???o????.??
Текст модуля, пожалуйста, скиньте..
Смотри модуль объекта документа ПЕРВУЮ СТРОКУ ОС_Покупка.МодульОбъекта(1,1) 100% косяк в синтаксисе
(P.S. скорее всего после слова ПередЗаписью(); стоит точка с запятой)
Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!
Цитата: Новенькая от 06 сен 2013, 10:17
Текст модуля, пожалуйста, скиньте..
вот что тут вообще
�=Ms�u�nP*?!�u�k7-�l+�)’�C..�rR�t��rI.9�*N� LQi���� (����%��X���C��!w�}t���L��bڄMh1;����ׯ�W���o����.��%�Y|s@?K�
����X|�����7��Kh�?o�g�ly ����������ƥ�������A=�å��ѥ�z|$dk������J��
�N’�ۥ�?Z?
��/��ҿ���G?]��l�|Y���·�|�N����0ӫ���G�k�(?��G�n��/O���0ߟ��C�����oD8��uH��K�����be��_���u��ʿ��$���_��=���Y�<h�?�7���/��C9���@�
Добавлено: 06 сен 2013, 10:26
Цитата: Dethmontt от 06 сен 2013, 10:18
Смотри модуль объекта документа ПЕРВУЮ СТРОКУ ОС_Покупка.МодульОбъекта(1,1) 100% косяк в синтаксисе
(P.S. скорее всего после слова ПередЗаписью(); стоит точка с запятой)
это происходит при открытии документа, текст модуля я скинул какой то непонятный
О_о откуда вы взяли такой текст модуля???? Зайдите в конфигуратор, щелкните правой кнопкой по документу «ОС_Покупка», далее «открыть модуль объекта»…и пришлите код который там есть
там код зашифрован почему то…
Добавлено: 06 сен 2013, 10:46
Цитата: Новенькая от 06 сен 2013, 10:40
О_о откуда вы взяли такой текст модуля???? Зайдите в конфигуратор, щелкните правой кнопкой по документу «ОС_Покупка», далее «открыть модуль объекта»…и пришлите код который там есть
я скинул смотрите
Еще одна жертва БГУ… мне очень жаль… Обновлялась база последний раз норм? Какой релиз платформы и программы?
Правильно ведите учет или пишите программы и вам воздастся!…
(Кстати — кнопочку Сказать Спасибо — никто не отменял)
Цитата: LordWizard от 06 сен 2013, 10:48
Еще одна жертва БГУ… мне очень жаль… Обновлялась база последний раз норм? Какой релиз платформы и программы?
спасибо.обновили и код вышел.сейчас посмотрю заработало ли
Зная по своему тяжелому опыту внедренца БГУ — я бы не торопился ставить обновления — БГУ не знаю кто и как пишет — но руки точно не от нужного места растут — ни конвертации нормальной нет с предыдущих редакций, ни половина механизмов норм не отрабатывается.
Правильно ведите учет или пишите программы и вам воздастся!…
(Кстати — кнопочку Сказать Спасибо — никто не отменял)