Меню

Ожидается имя процедуры 1с ошибка

Fenlou

1 / 1 / 2

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

Сообщений: 483

1

13.03.2015, 12:27. Показов 3509. Ответов 1

Метки нет (Все метки)


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

1C
1
2
3
4
5
6
7
8
{Обработка.ПоискАссоциаций.Форма.Форма.Форма(22,11)}: Ожидается имя процедуры
Процедура <<?>>Выполнить(Команда) (Проверка: Сервер)
{Обработка.ПоискАссоциаций.Форма.Форма.Форма(22,29)}: Ожидается символ ';'
Процедура Выполнить(Команда)<<?>> (Проверка: Сервер)
{Обработка.ПоискАссоциаций.Форма.Форма.Форма(22,11)}: Ожидается имя процедуры
Процедура <<?>>Выполнить(Команда) (Проверка: Тонкий клиент)
{Обработка.ПоискАссоциаций.Форма.Форма.Форма(22,29)}: Ожидается символ ';'
Процедура Выполнить(Команда)<<?>> (Проверка: Тонкий клиент)

Вот обработка http://rghost.ru/85Dfm2Hhp

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Эксперт 1С

841 / 604 / 211

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

Сообщений: 2,101

13.03.2015, 17:32

2

Лучший ответ Сообщение было отмечено Fenlou как решение

Решение

Выполнить — зарезервированное слово, переименуй процедуру.



1



Всем привет! Делаю обработку поетки на удаление документов в 1С 8.3 . Создаю форму, на форме добавляю кнопку. Но эта кнопка не отображается на форме. В чем может быть проблема???

команду создай и свяжи с кнопкой

Сделал, и вот что он добавил в обработчик &НаСервере

Но когда пытаюсь обновить базу выдает ошибку {Обработка.ПометкаНаУдалениеДокументов.Форма.Форма.Форма(10,11)}: Ожидается имя процедуры Процедура <<?>>Выполнить(Команда) (Проверка: Сервер) Процедура Выполнить(Команда)<<?>> (Проверка: Сервер) {Обработка.ПометкаНаУдалениеДокументов.Форма.Форма.Форма(10,11)}: Ожидается имя процедуры {Обработка.ПометкаНаУдалениеДокументов.Форма.Форма.Форма(10,29)}: Ожидается символ ‘;’ Процедура Выполнить(Команда)<<?>> (Проверка: Тонкий клиент) Я уже в шрке от это 8.3  на 8.2 такого не было.. что он хочет то???

намекну Выполнить (Execute) Синтаксис: Параметры:     <Строка>     Строка, содержащая текст исполняемого кода. Описание: Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения. Примечание: В режиме запуска веб-клиент оператор не поддерживается и его вызов игнорируется.

а у кого нибуть есть код обработки пометки на удаление документа? Я только учусь писать(((

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

> Я только учусь писать((( памперсы не предлагать?

пиши всегда так «мояНоваяКомманда»

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Начнём описывать первую формулу:

1-1)  y := x*x — это x²

1-2)  y := x*x + sqr() — это квадрат для тангенса

1-3)  y := x*x + sqr( sin() / cos() ) — это собственно тангенс, которого нет в паскале

1-4)  в скобочки sin и cos нужно добавить (x+pi)/2

Как итог, первая формула получилась такой:

y := x*x + sqr( sin((x + pi) / 2) / cos((x + pi) / 2) )

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Вторая:

2-1)  y := cos() — это понятно итак

2-2)  y := cos( exp( ln() / 5)) — корень пятой степени

2-2)  y := cos( exp( ln( abs(x + ln(abs(x))) ) / 5)) — тут просто

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Третья:

3-1)  y := exp( ln() / 3) — корень третьей степени

3-2)  y := exp( ln( x + exp(x) * sqrt(x + 1) - pi ) / 3) — добавить только то, что под корнем

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Вот и вся программа:

var
  x,y: real;
begin
  writeln('ввести x');
  readln(x); 
  if x <= -0.5 then
    y := x*x + sqr( sin((x + pi) / 2) / cos((x + pi) / 2) )
  else if x > +0.5 then
    y := exp( ln(x + exp(x) * sqrt(x + 1) - pi) / 3 )
  else  { -0.5 < x <= +0.5 }
    y := cos( exp(ln( abs(x + ln(abs(x))) ) / 5) );
  writeln('y(', x:6:2, ') = ', y:6:2);
end.

Guest


  • #1

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

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

Zab


  • #2

Ну, скорее всего у тебя есть «Процедура Хххххх()» но нет «КонецПроцедуры», или написано с ошибкой. Хотя, иногда она вылетает и по другим причинам, но тогда надо сначала поправить предыдущие ошибки, и эта уходит сама-собой.

Guest


  • #3

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

Isabela


  • #4

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

jcnby


  • #5

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

Guest


  • #6

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

LSH


  • #7

Варианта 3:

1. Либо не хватает ключевого слова КонецПроцедуры (после твоего модуля)
2. Либо оно есть, но написано КонецПроцедуры; (точка с запятой не нужны)
3. Что такое:

Во-первых, в 1С нельзя использовать эту Си’шную конструкцию. Тут обязательно надо указывать условие.
Во вторых, где ключевое слово Тогда?
Наверное, должно быть так:

Код:

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

Guest


  • #8

Если Остат = Кол0 Тогда
Сообщить(…

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

FAETON1981


  • #9

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

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]

FAETON1981


  • #11

Спасибо большое все получилось:)

FAETON1981


  • #12

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

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

kaa


  • #13

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

FAETON1981


  • #14

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

b00tch


  • #15

смотри предыдущую процедуру…

vbs


  • #16

а может быть вот этот монстр мешает
Таб.ВывестиСеуцию(«Строка»); ?

FAETON1981


  • #17

Нет Таб.ВывестиСеуцию(«Строка»); не мешает

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

jj_mail


  • #18

В предыдущей процедуре не закрыт цикл, или если, и т.д.

Процедура или функция с указанным именем не определена

Ошибка в управляемой форме списка в контексте выполняемой на сервере процедуры (Проверка: Сервер).

Вот полный текст ошибки:

{Документ.ЗатратыПоСтраховомуПокрытию.Форма.ФормаСписка.Форма(92,30)}: Процедура или функция с указанным именем не определена (СписокЗатратПоКарте)
СписокЗн.ЗагрузитьЗначения(<<?>>СписокЗатратПоКарте(СтраховаяКарта)); (Проверка: Сервер)

Вот фрагмент кода:

&НаСерверБезКонтекста
Функция СписокЗатратПоКарте(СтраховаяКарта)
	
	Если СтраховаяКарта = Неопределено Или СтраховаяКарта = Справочники.СтраховыеКарты.ПустаяСсылка() Тогда
		Возврат Новый Массив;
	КонецЕсли;	
КонецФункции

Решение:

  • поскольку из «серверной» процедуры вполне можно вызывать вне контекстную функцию/процедуру этого же модуля проверяем ее имя, количество параметров ( в данном случае всё было верно)
  • если же модуль общий проверяем в его свойствах установленные флажки «Вызов сервера», «Клиент (управляемое приложение»
  • проверяем ее название, не должны совпадать с уже существующими системными функциями. Например, СтрНайти(), СтрШаблон(), СтрСравнить(), СтрНачинаетсяС(), СтрЗаканчиваетсяНа(), СтрРазделить(),СтрСоединить().
  • Проверяем директиву компиляции: оказалось пропущена буква «е» -> &НаСервереБезКонтекста. Редактор подсвечивает директиву, не выдает ошибок, но при исполнении и вызове выходит указанное сообщение

Реклама — самая интересная и самая трудная форма современной литературы.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

2017-12-18T22:02:53+00:00Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

См. урок #1 для начинающих по процедурам в 1С
См. урок #2 для начинающих по процедурам в 1С
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Смотреть видео с демонстрацией выполнения кода

Полный синтаксис (нажмите, чтобы раскрыть)

Оглавление (нажмите, чтобы раскрыть)

/// Как передать в процедуру параметр по ссылке в 1с 8.3, 8.2
 
&НаКлиенте
Процедура П1(ПараметрПереданныйПоСсылке)
 
    // изменяем значение и внутри и снаружи
    ПараметрПереданныйПоСсылке = 25;
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример1(Команда)
 
    Перем А;
    А = 1;
    // сейчас А равно 1
    П1(А);
    // а после вызова процедуры уже 25
 
КонецПроцедуры
 
/// Как передать в процедуру параметр по значению в 1с 8.3, 8.2
 
// возможно только для простых типов (число, строка, дата, ... )
// более сложные объекты всё равно будут переданы по ссылке
 
&НаКлиенте
Процедура П2(Знач ПараметрПереданныйПоЗначению)
 
    // изменяем значение только внутри процедуры
    ПараметрПереданныйПоЗначению = 25;
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример2(Команда)
 
    Перем А;
    А = 1;
    // сейчас А равно 1
    П2(А);
    // после вызова процедуры А по-прежнему равно 1
 
КонецПроцедуры
 
/// Как передать в процедуру массив по значению в 1с 8.3, 8.2
 
// это можно сделать только через создание копии массива
 
&НаКлиенте 
Процедура П3(Параметр)
 
    // меняем первый элемент массива
    Параметр[0] = 25;
 
    // теперь в массиве Параметр
    // числа 25 2
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример3(Команда)
 
    Числа = Новый Массив();
    Числа.Добавить(1);
    Числа.Добавить(2);
 
    // сейчас в массиве числа: 1 2
 
    // создаём копию массива
    КопияЧисел = Новый СписокЗначений;
    КопияЧисел.ЗагрузитьЗначения(Числа);
    КопияЧисел = КопияЧисел.ВыгрузитьЗначения();
 
    // вызываем процедуру, меняющую
    // переданный массив
    П3(КопияЧисел);
 
    // после вызова процедуры в массиве Числа
    // по-прежнему числа: 1 2 
 
КонецПроцедуры
 
/// Как для параметра процедуры установить значение
/// по умолчанию в 1с 8.3, 8.2
 
&НаКлиенте
Процедура П4(Имя = "Сергей", Отчество, Фамилия = "не задано")
 
    Сообщить(Имя + " " + Отчество + " " + Фамилия);
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример4(Команда)
 
    П4("Вадим", "Иванович", "Сидоров"); // Вадим Иванович Сидоров
    П4("Вадим", "Иванович"); // Вадим Иванович не задано
    П4(, "Иванович"); // Сергей Иванович не задано
    П4(,,); // Сергей Неопределено не задано
 
КонецПроцедуры
 
/// Как в процедуре объявить локальные переменные в 1с 8.3, 8.2
 
&НаКлиенте
Процедура П5()
 
    // объявляем переменные 
    // в самом начале процедуры
 
    Перем ч1, ч2; 
    Перем ч3;
 
    ч1 = 12;
    ч2 = 15;
    ч3 = 45;
 
    // а вот здесь уже объявлять
    // новые переменные нельзя
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример5(Команда)
 
    П5();
 
КонецПроцедуры
 
/// Как сделать процедуру доступной из других модулей в 1с 8.3, 8.2
 
// объявляем эту процедуру в общем модуле Библиотека
 
&НаКлиенте
Процедура П6() Экспорт
 
    Сообщить("Привет, я процедура П6");
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример6(Команда)
 
    // вызываем экспортную процедуру П6
    // из модуля Библиотека
 
    Библиотека.П6();
 
КонецПроцедуры
 
/// Как вернуть значение из функции в 1с 8.3, 8.2
 
&НаКлиенте
Функция Сумма(А, Б)
 
    Возврат А + Б;
 
КонецФункции
 
&НаКлиенте
Процедура Пример7(Команда)
 
    Результат = Сумма(5, 3); // 8
    Сообщить(Результат);
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Процедуры в языке 1С 8.3, 8.2 (в примерах)

Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ока код ошибки минус 1
  • Ой что то пошло не так ошибка 1603