![]() |
|
не расчитывается сумма НДС в табличной части документа "Поступление товаров | ☑ | ||
---|---|---|---|---|
0
Anzhi
22.03.07
✎
18:27
|
Помогите разобраться почему не расчитывается сумма НДС в табличной части документа "Поступление товаров и услуг" на закладке "Оборудование"
Процедура ОборудованиеСтавкаНДСПриИзменении(Элемент) РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Оборудование.ТекущиеДанные, ЭтотОбъект); КонецПроцедуры // Расчет, исходя из постоянной суммы Процедура РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт МетаданныеДокумента = ДокументОбъект.Метаданные(); ИмяТабличнойЧасти = ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти); Если ЕстьРеквизитТабЧастиДокумента("Сумма", МетаданныеДокумента, ИмяТабличнойЧасти) И ЕстьРеквизитТабЧастиДокумента("СтавкаНДС", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда СтрокаТабличнойЧасти.СуммаНДС = РассчитатьСуммуНДС(СтрокаТабличнойЧасти.Сумма, ?(ЕстьРеквизитДокумента("УчитыватьНДС", МетаданныеДокумента),ДокументОбъект.УчитыватьНДС,Истина), ?(ЕстьРеквизитДокумента("СуммаВключаетНДС", МетаданныеДокумента),ДокументОбъект.СуммаВключаетНДС,Ложь), ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); КонецЕсли; КонецПроцедуры // РассчитатьСуммуНДСТабЧасти() |
|||
1
MikleV
22.03.07
✎
18:28
|
ну и
|
|||
2
MikleV
22.03.07
✎
18:28
|
лезь отладчиком да смотри, вот проблем то
|
|||
3
Anzhi
22.03.07
✎
18:32
|
Процедура РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт
не функционирует, хотя она написана правильно |
|||
4
Dionisious
22.03.07
✎
18:37
|
(3) Оригинально не функционирует функция РассчитатьСуммуНДСТабЧасти а код привел процедуры РассчитатьСуммуНДСТабЧасти
|
|||
5
Dionisious
22.03.07
✎
18:37
|
(4)+ что то я стормозил.
|
|||
6
Dionisious
22.03.07
✎
18:41
|
В функции ЕстьРеквизитТабЧастиДокумента второй параметр не строка случайно?
|
|||
7
Anzhi
25.03.07
✎
14:06
|
"не функционирует" значит не работает, не действует и не оказывает ни какого влияния...
Там (в demo версии) нет никакой функции, только процедура. "В функции ЕстьРеквизитТабЧастиДокумента второй параметр не строка случайно?" Вроде, нет! |
|||
8
Neco
25.03.07
✎
14:23
|
У реквизита "СтавкаНДС" табличной части "Оборудование" установлен обработчик события ПриИзменении?
|
|||
9
Anzhi
25.03.07
✎
15:11
|
У реквизита "СтавкаНДС" табличной части "Оборудование" установлен обработчик события ПриИзменении
Да, установлен. |
|||
10
Anzhi
25.03.07
✎
16:48
|
Влияет ли последователность процедур и функций?
Что означает эта ошибка? {ОбщийМодуль.РасчетНДС(55,13)}: Обнаружено логическое завершение исходного текста модуля КонецФункции<<?>> // ЕстьРеквизитТабЧастиДокумента() // Функция возвращает имя табличной части, к которой принадлежит переданная строка Функция ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти) Экспорт Возврат Метаданные.НайтиПоТипу(ТипЗнч(СтрокаТабличнойЧасти)).Имя; КонецФункции // ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку() // Позволяет определить есть ли среди реквизитов шапки документа // реквизит с переданным именем. // // Параметры: // ИмяРеквизита - строковое имя искомого реквизита, // МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск. // // Возвращаемое значение: // Истина - нашли реквизит с таким именем, Ложь - не нашли. // Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецФункции // ЕстьРеквизитДокумента() // Позволяет определить есть ли среди реквизитов табличной части документа // реквизит с переданным именем. // // Параметры: // ИмяРеквизита - строковое имя искомого реквизита, // МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск. // ИмяТабЧасти - строковое имя табличной части документа, среди реквизитов которого производится поиск // // Возвращаемое значение: // Истина - нашли реквизит с таким именем, Ложь - не нашли. // Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, МетаданныеДокумента, ИмяТабЧасти) Экспорт ТабЧасть = МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти); Если ТабЧасть = Неопределено Тогда // Нет такой таб. части в документе Возврат Ложь; Иначе Возврат НЕ (ТабЧасть.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецЕсли; КонецФункции // ЕстьРеквизитТабЧастиДокумента() //Функция возвращает курс ставку НДС Параметры: Валюта - СправочникСсылка.Валюты, валюта, по которой необходимо получить курс ДатаКурса - Дата, календарная дата, на которую необходимо получить курс валюты Возвращаемое значение: Курс переданной валюты на переданную дату, 1 в случае отсутствия значения. Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда Возврат 20; ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда Возврат 10; ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда Возврат 18; КонецЕсли; Возврат 0; КонецФункции // ПолучитьСтавкуНДС() // Рассчитывает сумму НДС исходя из суммы и флагов налогообложения // // Параметры: // Сумма - число, сумма от которой надо рассчитывать налоги, // УчитыватьНДС - булево, признак учета НДС в сумме, // СуммаВключаетНДС - булево, признак включения НДС в сумму ("внутри" или "сверху"), // СтавкаНДС - число , процентная ставка НДС, // // Возвращаемое значение: // Число, полученная сумма НДС // Функция РассчитатьСуммуНДС(Сумма, УчитыватьНДС, СуммаВключаетНДС, СтавкаНДС) Экспорт Если (УчитыватьНДС) И (СуммаВключаетНДС) Тогда СуммаБезНДС = 100 * Сумма / (100 + СтавкаНДС); СуммаНДС = Сумма - СуммаБезНДС; Иначе СуммаБезНДС = Сумма; КонецЕсли; Если УчитыватьНДС Тогда Если НЕ СуммаВключаетНДС Тогда СуммаНДС = СуммаБезНДС * СтавкаНДС / 100; КонецЕсли; Иначе СуммаНДС = 0; КонецЕсли; Возврат СуммаНДС; КонецФункции // РассчитатьСуммуНДС() // Расчет, исходя из постоянной суммы // // Параметры: // СтрокаТабличнойЧасти - строка табличной части документа, // ДокументОбъект - объект редактируемого документа. // Процедура РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт МетаданныеДокумента = ДокументОбъект.Метаданные(); ИмяТабличнойЧасти = ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти); Если ЕстьРеквизитТабЧастиДокумента("Сумма", МетаданныеДокумента, ИмяТабличнойЧасти) И ЕстьРеквизитТабЧастиДокумента("СтавкаНДС", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда СтрокаТабличнойЧасти.СуммаНДС = РассчитатьСуммуНДС(СтрокаТабличнойЧасти.Сумма, ?(ЕстьРеквизитДокумента("УчитыватьНДС", МетаданныеДокумента),ДокументОбъект.УчитыватьНДС,Истина), ?(ЕстьРеквизитДокумента("СуммаВключаетНДС", МетаданныеДокумента),ДокументОбъект.СуммаВключаетНДС,Ложь), ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); КонецЕсли; КонецПроцедуры // РассчитатьСуммуНДСТабЧасти() // Процедура заполняет ставку НДС в строке табличной части документа // // Параметры: // СтрокаТабличнойЧасти - строка табличной части документа, // ДокументОбъект - объект редактируемого документа. // Процедура ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт/////// ИмяТабличнойЧасти = ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти); МетаданныеДокумента = ДокументОбъект.Метаданные(); //Заполнить СтавкаНДС Если ЕстьРеквизитТабЧастиДокумента("Номенклатура", МетаданныеДокумента, ИмяТабличнойЧасти) и ТипЗнч(СтрокаТабличнойЧасти.Номенклатура) = Тип("СправочникСсылка.Номенклатура") и ЕстьРеквизитТабЧастиДокумента("СтавкаНДС", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда СтрокаТабличнойЧасти.СтавкаНДС = СтрокаТабличнойЧасти.Номенклатура.СтавкаНДС; КонецЕсли; КонецПроцедуры // ЗаполнитьСтавкуНДСТабЧасти() |
|||
11
Anzhi
25.03.07
✎
17:01
|
С ошибкой разобралась.
{ОбщийМодуль.РасчетНДС(55,13)}: Обнаружено логическое завершение исходного текста модуля КонецФункции<<?>> // ЕстьРеквизитТабЧастиДокумента() Я не понимаю почему не рассчитывается СуммаНДС. Модуль см. выше... |
|||
12
Anzhi
25.03.07
✎
17:49
|
Все ли я процедуры и функции использовала для расчета Суммы НДС?
// Функция возвращает имя табличной части, к которой принадлежит переданная строка Функция ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти) Экспорт // Позволяет определить есть ли среди реквизитов шапки документа // реквизит с переданным именем. Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт // Позволяет определить есть ли среди реквизитов табличной части документа // реквизит с переданным именем. Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, МетаданныеДокумента, ИмяТабЧасти) Экспорт Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт // Рассчитывает сумму НДС исходя из суммы и флагов налогообложения Функция РассчитатьСуммуНДС(Сумма, УчитыватьНДС, СуммаВключаетНДС, СтавкаНДС) Экспорт // Расчет, исходя из постоянной суммы Процедура РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт |
|||
13
Anzhi
26.03.07
✎
16:33
|
помогите
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |