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

Переменная не определена

Автор aboba174, 19 мая 2023, 10:19

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

aboba174

Здравствуйте. Делаю расчет НДС, пишу в общем модуле условие, чтобы если номенклатура с видом перечисления материал, то будет НДС, а если номенклатура с перечислением услуга, то нету ндс.

Написал в общем модуле функцию по примеру другой, но он почему-то не видит перечисления, подскажите в чем проблема?

Процедура РассчетНДС(СтрокаТабличнойЧасти, АктуальнаяДата, ЭлементНоменклатуры) Экспорт



стрРасчет = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
стрРасчет2 = стрРасчет * 0.3;

Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);

Если ЭлементНоменклатуры.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
СтрокаТабличнойЧасти.Сумма = стрРасчет2 + стрРасчет;
Иначе
СтрокаТабличнойЧасти.Сумма = стрРасчет;
КонецЕсли;

КонецПроцедуры


{ОбщийМодуль.РаботаСДокументами.Модуль(16,45)}: Переменная не определена (Перечисления)
   Если ЭлементНоменклатуры.ВидНоменклатуры = <<?>>Перечисления.ВидыНоменклатуры.Материал Тогда (Проверка: Тонкий клиент)

aboba174

Поставил в свойствах  общего модуля - Сервер. И теперь пишет при расчете недостаточно фактических параметров...

Afinogen

РассчетНДС(СтрокаТабличнойЧасти, АктуальнаяДата, ЭлементНоменклатуры)

3 параметра должны передавать когда вызываете эту функцию

aboba174

Afinogen, Удалил параметр Дата, и теперь передаю 2 параметра, но...

Я так понимаю конфликтует типы?


antoneus

Сервер не умеет в ТекущиеДанные. Надо или структуру с данными передавать, или просто ссылку, но в функцию, которая возвращает цыферки.

aboba174

antoneus, Может лучше создать отдельный общий модуль, и там разметить Процедуру эту? Только надо будет с тонкого клиента получить данные с сервера  :xfbnsdfb:

aboba174

Переделал процедуру на функция и возвращаю структуру , но все равно ошибка  :angry:
Функция РассчитатьСумму(СтрокаТабличнойЧасти, ЭлементНоменклатуры) Экспорт

стрРасчет = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
стрРасчет2 = стрРасчет * 0.3;

Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);

Если ЭлементНоменклатуры.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
СтрокаТабличнойЧасти.Сумма = стрРасчет2 + стрРасчет;
Иначе
СтрокаТабличнойЧасти.Сумма = стрРасчет;
КонецЕсли;
Возврат СтрокаТабличнойЧасти.ЭлементНоменклатуры;


//СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;



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

Kvark5d

aboba174, во первых, какую ошибку выдает?
во вторых, что такое СтрокаТабличнойЧасти? ЭлементНоменклатуры? Что именно Вы передаете в функцию?
в третьих, почему Возврат СтрокаТабличнойЧасти.ЭлементНоменклатуры ???

Теги:

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

Рейтинг@Mail.ru

Поиск