|
Fenlou 1 / 1 / 2 Регистрация: 11.03.2014 Сообщений: 483 |
||||
|
1 |
||||
|
13.03.2015, 12:27. Показов 3509. Ответов 1 Метки нет (Все метки)
Есть некоторый запрос, необходимо его отразить в табличное поле.
Вот обработка http://rghost.ru/85Dfm2Hhp
__________________
0 |
|
841 / 604 / 211 Регистрация: 24.07.2013 Сообщений: 2,101 |
|
|
13.03.2015, 17:32 |
2 |
|
РешениеВыполнить — зарезервированное слово, переименуй процедуру.
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’)
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С программистов и разработчик обновлятора).

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