Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 фев 2024, 01:53

Ошибка "{Отчет.Подарки.Форма.ФормаОтчета.Форма(34,40)}: Переменная не определена (Кошелек) МаксПодар

Автор Dm1Tr0N, 22 янв 2024, 20:45

0 Пользователей и 1 гость просматривают эту тему.

Dm1Tr0N

Помогите исправить ошибку в этом коде, он не выполняется, уже несколько дней пытаюсь решить проблему которая находится в модуле формы отчёта Подарки

И ошибка появляться при формировании Отчёта


&НаСервере
Функция СформироватьНаСервере(Кошелек, Подарок)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| БонусныйКошелек.Ссылка,
| БонусныйКошелек.Дата,
| БонусныйКошелек.СуммаДокумента,
| ЦЕЛ(БонусныйКошелек.СуммаДокумента / &Подарок) КАК МаксимальноеКолво,
| &Кошелек
|ИЗ
| Документ.БонусныйКошелек КАК БонусныйКошелек";

Запрос.УстановитьПараметр("Кошелек", Кошелек);
Запрос.УстановитьПараметр("Подарок", Подарок);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

МаксПодарков = 0;

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл   
МаксПодарков =+ ВыборкаДетальныеЗаписи.Выбрать();
КонецЦикла; 

Возврат МаксПодарков;

КонецФункции

&НаКлиенте
Процедура Софрмировать(Команда,Отчёт)         
МаксПодароков = СформироватьНаСервере(Кошелек, Подарок);

Строка = СтрШаблон("Максимальное количество подарков стоимостью %1 балла = %2", Подарок, МаксПодароков);
Сообщить(Строка);
КонецПроцедуры

Вот ошибка "{Отчет.Подарки.Форма.ФормаОтчета.Форма(34,40)}: Переменная не определена (Кошелек)
   МаксПодароков = СформироватьНаСервере(<<?>>Кошелек, Подарок);  (Проверка: Тонкий клиент)
{Отчет.Подарки.Форма.ФормаОтчета.Форма(34,49)}: Переменная не определена (Подарок)
   МаксПодароков = СформироватьНаСервере(Кошелек, <<?>>Подарок);  (Проверка: Тонкий клиент)
{Отчет.Подарки.Форма.ФормаОтчета.Форма(36,82)}: Переменная не определена (Подарок)
   Строка = СтрШаблон("Максимальное количество подарков стоимостью %1 балла = %2", <<?>>Подарок, МаксПодароков); (Проверка: Тонкий клиент)




Заранее огромное спасибо! Я новичок и не могу выполнить задание которое хранится в Word документе ЗадачаПро кофе

fruitella

Думаю &Кошелек Как Кошелек

Либо оставляешь как есть и используешь такой вариант

Если Кошелек <> Неопределено Тогда
   Запрос.Текст = СтрЗаменить(ИсходнаяСтрока, ПодстрокаДляРедактирования, РезультатКоторыйНужноВставить);
Иначе
   Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Кошелек" , "");
КонецЕсли;

А так отладчиком глянь, что у тебя в этой переменной приходит или не приходит.

Dm1Tr0N

fruitella, Что должно быть в 3 параметре? Запрос.Текст = СтрЗаменить(Запрос.Текст, &Кошелек , "");

fruitella

Dm1Tr0N, Ничего, это пустая строка.
Тут условие же написано, иначе если переменная Кошелек будет неопределено, тогда ищем твоем запросе параметр &Кошелек, и заменяем его на пустую строку "", чтобы синтаксической ошибки не было.

Dm1Tr0N

fruitella, Проблемма в том что до функции СформироватьНаСервере я даже добратся не могу у меня ошибка на строке МаксПодароков = СформироватьНаСервере(Кошелек, Подарок); Которую я показывал ранее
Цитировать{ВнешнийОтчет.ВнешнийОтчет.Форма.ФормаОтчета.Форма(34,40)}: Переменная не определена (Кошелек)
    МаксПодароков = СформироватьНаСервере(<<?>>Кошелек, Подарок);
{ВнешнийОтчет.ВнешнийОтчет.Форма.ФормаОтчета.Форма(34,49)}: Переменная не определена (Подарок)
    МаксПодароков = СформироватьНаСервере(Кошелек, <<?>>Подарок);
{ВнешнийОтчет.ВнешнийОтчет.Форма.ФормаОтчета.Форма(36,82)}: Переменная не определена (Подарок)
    Строка = СтрШаблон("Максимальное количество подарков стоимостью %1 балла = %2", <<?>>Подарок, МаксПодароков);

fruitella

Надо смотреть из какой процедуры или функции она вызывается и что у туда передается в качестве аргумента. Поэтому падает с ошибкой, в отладке есть стэк вызовов, там можно посмотреть цепочку всех вызовов.
Проверь, что вызывается перед СформироватьНаСервере и в этой процедуре и проходиться отладкой.

Dm1Tr0N

fruitella, Я хочу передать туда данные реквизитов отчёта, которые есть на форме отчёта, для последующего формирования сообщения на основе этих данных.

fruitella


Dm1Tr0N

fruitella,
ЦитироватьНет, я создал на форме кнопку и к кнопке команду в которой и пишу всю логику

bsn-chita


Теги:  1с код 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск