Ошибка в листинге Функции модуля объекта документа (1С 8.3)
Написал функцию перед обработкой проведения в модуле документа вставив её перед процедурой проведения, но получаю ошибку:
Документ.ФормированиеБригады.МодульОбъекта(17,9)}: Оператор Возврат (Return) не может употребляться вне процедуры или функции
Возврат <<?>>Истина; (Проверка: Сервер)
{Документ.ФормированиеБригады.МодульОбъекта(20,9)}: Оператор Возврат (Return) не может употребляться вне процедуры или функции
Возврат <<?>>Ложь; (Проверка: Сервер)
{Документ.ФормированиеБригады.МодульОбъекта(20,14)}: Обнаружено логическое завершение исходного текста модуля
Возврат Ложь;<<?>> (Проверка: Сервер)
Вот сам листинг:
Функция ПроверкаЗаполненияТС (ТранспортныеСредства) ;
"ВЫБРАТЬ
| ТранспортныеСредства.Ссылка
|ИЗ
| Справочник.ТранспортныеСредства КАК ТранспортныеСредства
|ГДЕ
| ТранспортныеСредства.Ссылка = &ТС"
Запрос.УстановитьПараметр("ТС", Объект.ТС);
//Далее выполняем запрос, с записью в соответствующую переменную:
Результат = Запрос.Выполнить();
//Получаем выборку из этой переменной:
Выборка = Результат.Выбрать();
//Теперь получив выборку, постараемся ее обойти с помощью цикла:
Если Выборка.Следующий() Тогда
//если в справочнике, есть хоть одна запись, то возвращаем значение истина
Возврат Истина;
КонецЕсли;
//в противном случае возвращаем запись ложь
Возврат Ложь;
КонецФункции
Процедура ОбработкаПроведения(Отказ, Режим)
Если ПроверкаЗаполненияТС (ТранспортныеСредства) Тогда
//переменную Отказ выставляю в значении ложь, так как если он нашел в справочнике это ТС, то значит Поле этой формы заполнено. (Возврат наверное, напишем в самом конце, после проведения).
Отказ ложь
// регистр Бригады
Движения.Бригады.Записывать = Истина;
Движение = Движения.Бригады.Добавить();
Движение.Период = Дата;
Движение.ТС = ТС;
Движение.Водитель = Водитель;
Движение.Грузчик1 = Грузчик1;
Движение.Грузчик2 = Грузчик2;
Движение.МедРаботник = МедРаботник;
Движение.ИнженерПоТБ = ИнженерПоТБ;
КонецПроцедуры
Пока весьма посредственно разбираюсь в этом, прошу помочь, как исправить код
Документ.ФормированиеБригады.МодульОбъекта(17,9)}: Оператор Возврат (Return) не может употребляться вне процедуры или функции
Возврат <<?>>Истина; (Проверка: Сервер)
{Документ.ФормированиеБригады.МодульОбъекта(20,9)}: Оператор Возврат (Return) не может употребляться вне процедуры или функции
Возврат <<?>>Ложь; (Проверка: Сервер)
{Документ.ФормированиеБригады.МодульОбъекта(20,14)}: Обнаружено логическое завершение исходного текста модуля
Возврат Ложь;<<?>> (Проверка: Сервер)
Вот сам листинг:
Функция ПроверкаЗаполненияТС (ТранспортныеСредства) ;
"ВЫБРАТЬ
| ТранспортныеСредства.Ссылка
|ИЗ
| Справочник.ТранспортныеСредства КАК ТранспортныеСредства
|ГДЕ
| ТранспортныеСредства.Ссылка = &ТС"
Запрос.УстановитьПараметр("ТС", Объект.ТС);
//Далее выполняем запрос, с записью в соответствующую переменную:
Результат = Запрос.Выполнить();
//Получаем выборку из этой переменной:
Выборка = Результат.Выбрать();
//Теперь получив выборку, постараемся ее обойти с помощью цикла:
Если Выборка.Следующий() Тогда
//если в справочнике, есть хоть одна запись, то возвращаем значение истина
Возврат Истина;
КонецЕсли;
//в противном случае возвращаем запись ложь
Возврат Ложь;
КонецФункции
Процедура ОбработкаПроведения(Отказ, Режим)
Если ПроверкаЗаполненияТС (ТранспортныеСредства) Тогда
//переменную Отказ выставляю в значении ложь, так как если он нашел в справочнике это ТС, то значит Поле этой формы заполнено. (Возврат наверное, напишем в самом конце, после проведения).
Отказ ложь
// регистр Бригады
Движения.Бригады.Записывать = Истина;
Движение = Движения.Бригады.Добавить();
Движение.Период = Дата;
Движение.ТС = ТС;
Движение.Водитель = Водитель;
Движение.Грузчик1 = Грузчик1;
Движение.Грузчик2 = Грузчик2;
Движение.МедРаботник = МедРаботник;
Движение.ИнженерПоТБ = ИнженерПоТБ;
КонецПроцедуры
Пока весьма посредственно разбираюсь в этом, прошу помочь, как исправить код
По теме из базы знаний
- Типовая борьба - личный опыт работы с типовыми конфигурациями 1С:8
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Подключаемые печатные формы с .DOCX макетом без Word'а
- Пайплайны Jenkins - программирование и настройка. Загружаемые модули. Цикл "Многопоточный CI для 1С", часть 5
- Пример создания документа с движениями в ERP 2.5.7
Найденные решения
//Теперь получив выборку, постараемся ее обойти с помощью цикла:
ФлагПроверки = ложь;
Если Выборка.Следующий() Тогда
//если в справочнике, есть хоть одна запись, то возвращаем значение истина
ФлагПроверки = Истина;
КонецЕсли;
//в противном случае возвращаем запись ложь
Возврат ФлагПроверки ;
КонецФункции
ФлагПроверки = ложь;
Если Выборка.Следующий() Тогда
//если в справочнике, есть хоть одна запись, то возвращаем значение истина
ФлагПроверки = Истина;
КонецЕсли;
//в противном случае возвращаем запись ложь
Возврат ФлагПроверки ;
КонецФункции
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
//Теперь получив выборку, постараемся ее обойти с помощью цикла:
ФлагПроверки = ложь;
Если Выборка.Следующий() Тогда
//если в справочнике, есть хоть одна запись, то возвращаем значение истина
ФлагПроверки = Истина;
КонецЕсли;
//в противном случае возвращаем запись ложь
Возврат ФлагПроверки ;
КонецФункции
ФлагПроверки = ложь;
Если Выборка.Следующий() Тогда
//если в справочнике, есть хоть одна запись, то возвращаем значение истина
ФлагПроверки = Истина;
КонецЕсли;
//в противном случае возвращаем запись ложь
Возврат ФлагПроверки ;
КонецФункции
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот