Выявление ошибок

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

Гость
#1
:) Подскажите,что это за ошибка :

{Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
 

Zab

Well-Known Member
07.08.2006
583
0
#2
Ну, скорее всего у тебя есть "Процедура Хххххх()" но нет "КонецПроцедуры", или написано с ошибкой. Хотя, иногда она вылетает и по другим причинам, но тогда надо сначала поправить предыдущие ошибки, и эта уходит сама-собой.
 

Гость
#3
На этом заострял внимание, всё есть. Думаю какая-то не синтакс. ошибка, а логическая. Это разбирал пошаговый пример, там взял этот код, всё перепроверил, должен документ проводиться, но не проводится, и выдаёт не ошибку,а это сообщение:
{Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
 
I

Isabela

Гость
#4
а что, синтакс-контроль модуля ошибок не выдает ?
 
J

jcnby

Гость
#5
Хм- логическая выскакивает походу при работе в самой программе. Перепроверь модуль чтобы по 2 раза не стояли слова типа "Процедура" и т.д. - ибо может при копировании ( т.к. текст брал с примера) мог либо что-нить потерять либо лишнего добавить .
 

Гость
#6
Вот начало кода:
Процедура ОбработкаПроведения()
РегОст=СоздатьОбъект("Регистр.ОстаткиТоваров");
Если СравнитьТА()=-1 Тогда
// Проверяем, не проводится ли документ ранее точки актуальности итогов
РегОст.ВременныйРасчет(1);
РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;
// Проверка на наличие на остатке
ВыбратьСтроки();
ФлагОтказа=0;
Пока (ПолучитьСтроку()>0) Цикл
Остат=РегОст.СводныйОстаток(Склад,Товар,Сорт,,"Количество");
Если Остат
Сообщить("Нет товара № "
+СокрЛП(Товар.Код)+"/"
+СокрЛП(Сорт.Наименование)+" в колич. "
+КолО+" (имеется "+Остат+")");
ФлагОтказа=1;
КонецЕсли;
КонецЦикла;Вот на этой строке выдаёт сообщение:{Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
 
L

LSH

Гость
#7
Варианта 3:

1. Либо не хватает ключевого слова КонецПроцедуры (после твоего модуля)
2. Либо оно есть, но написано КонецПроцедуры; (точка с запятой не нужны)
3. Что такое:
Код:
Если Остат
Сообщить(...
Во-первых, в 1С нельзя использовать эту Си'шную конструкцию. Тут обязательно надо указывать условие.
Во вторых, где ключевое слово Тогда?
Наверное, должно быть так:
Код:
Если Остат = 0 Тогда
Сообщить(...
 

Гость
#8
Если Остат = Кол0 Тогда
Сообщить(...

Всё понял,просто был невнимателен,поставил вот так и всё заработало.Спасибо!
 
F

FAETON1981

Гость
#9
Процедура ОбработкаПроведения()
//длог за поставленный товар возрос
Регистр.Взаиморасчеты.Контрагент=Поставщик;
Регистр.Взаиморасчеты.Договор=Договор;
Регистр.Сумму=Итог("Сумма");
Регистр.Взаиморасчеты.ФлагДвижения=1;
Регистр.Взаиморасчеты.ДвижениеПриходВыполнить();
//по кождой строке
Регистр.ОстаткиТоваров.Склад=Склад;
Регистр.ОстаткиТоваров.Товар=Товар;
Регистр.ОстаткиТоваров.Сорт=Сорт;
Регистр.ОстаткиТоваров.Партия=ТекущийДокумент();
Регистр.ОстаткиТоваров.Количество=КолО;
Регистр.ОстаткиТоваров.СуммаП=Сумма;
Регистр.ОстаткиТоваров.СуммаД=Сумма;
Регистр.ОстаткиТоваров.ФлагДвижения=1;
Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки);
//команда ПривязыватьСтроку() к каждой записи по движению регистра
//указывается какя имено строка доакумента произвела это движения
Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить();
//запись о росте товарооборота
Регистр.ОборотыТоварав.Склад=Склад;
Регистр.ОборотыТоваров.Товар=Товар;
Регистр.ОборотыТоваров.Сорт=Сорт;
Регистр.ОборотыТоваров.Количество=КолО;
Регистр.ОборотыТоваров.СуммаУ=Сумма;
Регистр.ОборотыТоваров.ФлагДвижения=1;
Регистр.ОборотыТоваров.ПривязыватьСтроку(НомерСтроки);
Регистр.ОборотыТоваров.ДвижениеВыполнить();
//оборотный регистр движения
КонецЦикла;
КонецПроцедуры
1с выдает {Документ.ПриходнаяНакладная.Модуль Документа(33)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
проверел 100 раз не могу найти ошибку помогите плиз
 
L

LSH

Гость
#10
<!--QuoteBegin-FAETON1981+31:10:2007, 14:12 -->
<span class="vbquote">(FAETON1981 @ 31:10:2007, 14:12 )</span><!--QuoteEBegin-->...
Регистр.ОборотыТоваров.ФлагДвижения=1;
Регистр.ОборотыТоваров.ПривязыватьСтроку(НомерСтроки);
Регистр.ОборотыТоваров.ДвижениеВыполнить();
//оборотный регистр движения
КонецЦикла; - это лишнее
КонецПроцедуры
[snapback]83770" rel="nofollow" target="_blank[/snapback]​
[/quote]


Или даже вот так правильно:
<!--QuoteBegin-FAETON1981+31:10:2007, 14:12 -->
<span class="vbquote">(FAETON1981 @ 31:10:2007, 14:12 )</span><!--QuoteEBegin-->Процедура ОбработкаПроведения()
//длог за поставленный товар возрос
Регистр.Взаиморасчеты.Контрагент=Поставщик;
Регистр.Взаиморасчеты.Договор=Договор;
Регистр.Сумму=Итог("Сумма");
Регистр.Взаиморасчеты.ФлагДвижения=1;
Регистр.Взаиморасчеты.ДвижениеПриходВыполнить();
//по кождой строке
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл

Регистр.ОстаткиТоваров.Склад=Склад;
Регистр.ОстаткиТоваров.Товар=Товар;
Регистр.ОстаткиТоваров.Сорт=Сорт;
Регистр.ОстаткиТоваров.Партия=ТекущийДокумент();
Регистр.ОстаткиТоваров.Количество=КолО;
Регистр.ОстаткиТоваров.СуммаП=Сумма;
Регистр.ОстаткиТоваров.СуммаД=Сумма;
Регистр.ОстаткиТоваров.ФлагДвижения=1;
Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки);
//команда ПривязыватьСтроку() к каждой записи по движению регистра
//указывается какя имено строка доакумента произвела это движения
Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить();
//запись о росте товарооборота
Регистр.ОборотыТоварав.Склад=Склад;
Регистр.ОборотыТоваров.Товар=Товар;
Регистр.ОборотыТоваров.Сорт=Сорт;
Регистр.ОборотыТоваров.Количество=КолО;
Регистр.ОборотыТоваров.СуммаУ=Сумма;
Регистр.ОборотыТоваров.ФлагДвижения=1;
Регистр.ОборотыТоваров.ПривязыватьСтроку(НомерСтроки);
Регистр.ОборотыТоваров.ДвижениеВыполнить();
//оборотный регистр движения
КонецЦикла; //Тогда это оставляем.
КонецПроцедуры
[snapback]83770" rel="nofollow" target="_blank[/snapback]​
[/quote]
 
F

FAETON1981

Гость
#12
Извените последний вопрос тож самое
Процедура Печать()
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НС=НомерСтроки;
//атрибут НомерСтроки возвпащает номер текущей строки
//табличной части
Таб.ВывестиСеуцию("Строка");
КонецЦикла;
ИтогПр=Формат(Итог("Сумма"),"ЧПДС");
//в переменую ИтогПр выводим сумму прописью
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.ПараметрыСтраницы(1,100,1);
Таб.Показать("");
КонецПроцедуры

{Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure') :D
 
K

kaa

Гость
#13
Для: FAETON1981
Ошибок невижу скопруйте полностью строку сообщения с ошибкой
 
F

FAETON1981

Гость
#14
<<?>>Процедура Печать()
{Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>Процедура Печать()
{Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
 

vbs

Well-Known Member
18.02.2007
1 708
3
#16
а может быть вот этот монстр мешает
Таб.ВывестиСеуцию("Строка"); ?
 
F

FAETON1981

Гость
#17
Нет Таб.ВывестиСеуцию("Строка"); не мешает

Как может влиять предидущие процедуры на эту
 
J

jj_mail

Гость
#18
В предыдущей процедуре не закрыт цикл, или если, и т.д.
 
Статус
Закрыто для дальнейших ответов.