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

Срочно нужна помощь при расчете НДС

Автор Salima, 11 мая 2011, 11:12

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

Salima

Дело в том, что создаю документ Приходный кассовый ордер на 1С: 8.2 и в табличной части "РасчетныеРеквизиты" необходимо, чтобы после ввода суммы("СуммаПлатежа") и выбора ставки НДС("СтавкаНДС") вычислялась сумма НДС. Ставки НДС берутся из справочника "ВидыСтавокНДС" и имеют три значения: "18%", "18% в сумме", "Без НДС".
При заполнении документа при выборе ставки НДС выходит ошибка "Значение не является значением объектного типа (СтавкаНДС)" и у меня вопрос: при имеющихся данных как присвоить реквизиту "СтавкаНДС" значение объектного типа???



В модуле формы документа у меня такой код:

&НаКлиенте
Процедура РасчетныеРеквизитыСуммаПлатежаПриИзменении(Элемент)
   СтрокаТабличнойЧасти=Элементы.РасчетныеРеквизиты.ТекущаяСтрока;
   РаботаСДокументами.РассчитатьСуммуНДС(СтрокаТабличнойЧасти);

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

&НаКлиенте
Процедура РасчетныеРеквизитыСтавкаНДСПриИзменении(Элемент)
   СтрокаТабличнойЧасти=Элементы.РасчетныеРеквизиты.ТекущаяСтрока;
   РаботаСДокументами.РассчитатьСуммуНДС(СтрокаТабличнойЧасти);

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

А в общем модуле "РаботаСДокументами" следующая процедура:

Процедура РассчитатьСуммуНДС(СтрокаТабличнойЧасти) Экспорт
   
     Если СтрокаТабличнойЧасти.СтавкаНДС="18%" Тогда СтрокаТабличнойЧасти.СуммаНДС=(СтрокаТабличнойЧасти.СуммаПлатежа*18)/100;
    Если СтрокаТабличнойЧасти.СтавкаНДС="18% в сумме" Тогда СтрокаТабличнойЧасти.СуммаНДС=СтрокаТабличнойЧасти.СуммаПлатежа*1.18;
   КонецЕсли;    
   Иначе СтрокаТабличнойЧасти.СуммаНДС="0";
   КонецЕсли;
                              
КонецПроцедуры         
               

cubase

если ставка ндс предорпеделенный элемент справочника, то

Если СтрокаТабличнойЧасти.СтавкаНДС= Справочники.СтавкиНДС.18%  Тогда
Только насчет % сомневаюсь - похоже это не допустимый символ xml !

Если не предопределенный

Ставка18 = Справочники.СтавкиНДС.НайтиПоНаименованию("18%");
Если СтрокаТабличнойЧасти.СтавкаНДС= Ставка18  Тогда

Salima

Спасибо, если использовать первый вариант выдает ошибку:  Переменная не определена (Справочники).
Как мне ее "определить"?

cska-fanat-kz

На клиенте предопределенный элемент справочника можно получить с помощью функции ПредопределенноеЗначение()

Если СтрокаТабличнойЧасти.СтавкаНДС= ПредопределенноеЗначение("Справочник.СтавкиНДС.18Проц")  Тогда
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Salima

теперь выходит ошибка "значение не является значением объектного типа (СтавкаНДС)". Что делать?

cska-fanat-kz

Точку останова и проверяйте чему равна СтрокаТабличнойЧасти
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Salima

извините пожалуйста, а как сделать точку останова?

Klyacksa

F9 на нужной строке, потом запускаем в режиме отладки.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Klyacksa

Salima, если Вы будете безпричинно давить кнопку "Сообщить модератору", заработаете только раздражение в свой адрес.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Salima

Извините, пожалуйста, я думала так вы быстрее увидите)

Теги:

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

Рейтинг@Mail.ru

Поиск