Ошибка в функциях расчёта цены

Все вопросы по обмену электронными счетами-фактурами, внутреннему и внешнему документообороту, а также по работе системы для межведомственного документооборота.

Правила форума
Тема закрыта! Все обсуждения теперь ведутся в группе Электронный документооборот
Подробнее о том как найти группы и вступить в них.

Ошибка в функциях расчёта цены

Обнаружена ошибка во всех функциях расчёта цены в обработке СБИС для 1С.
Ошибка приводит к тому, что при использовании механизма скидок (например при заполнении реквизита табличной части ПроцентСкидкиНаценки в документе "Реализация товаров и услуг") в стандартной конфигурации 1С: УПП 1.3 (а вероятно любых версий) в выгружаемые документы реализации (ТОРГ12, Счет-фактура...) в части случаев (если сумма документа не включает НДС) попадает неверная цена: без учёта скидки. При этом все стандартные встроенные печатные формы 1С во всех случаях работают верно: дают цену с учётом скидки.

На примере функции сбисВычислитьЦену() сейчас там код:

Код: Выделить всё
Функция сбисВычислитьЦену(Контекст) Экспорт
   // функция рассчитывает цену без НДС   
   Если Контекст.СуммаВключаетНДС Тогда
      Попытка
         Кол_во = Число(Контекст.ТаблДок_Кол_во);
      Исключение
         Кол_во = 0;
      КонецПопытки;
      Попытка
         Сумма = Число(Контекст.ТаблДок_Сумма);
      Исключение
         Сумма = 0;
      КонецПопытки;
      Попытка
         СуммаНДС = Число(Контекст.СуммаНДС);
      Исключение
         СуммаНДС = 0;
      КонецПопытки;
      
      Возврат Формат(?(Кол_во = 0, (Сумма-СуммаНДС), (Сумма-СуммаНДС) / Кол_во),"ЧЦ=17; ЧДЦ=2; ЧРД=.; ЧГ=0; ЧН=0.00");
   Иначе
      Возврат Формат(Контекст.Цена,"ЧЦ=17; ЧДЦ=2; ЧРД=.; ЧГ=0; ЧН=0.00");
   КонецЕсли;
КонецФункции


А очевидно должен бы быть например такой код:

Код: Выделить всё
Функция сбисВычислитьЦену(Контекст) Экспорт
   // функция рассчитывает цену без НДС   
   Попытка
      Кол_во = Число(Контекст.ТаблДок_Кол_во);
   Исключение
      Кол_во = 0;
   КонецПопытки;
   Попытка
      Сумма = Число(Контекст.ТаблДок_Сумма);
   Исключение
      Сумма = 0;
   КонецПопытки;
   Попытка
      СуммаНДС = Число(Контекст.СуммаНДС);
   Исключение
      СуммаНДС = 0;
   КонецПопытки;
   Если Контекст.СуммаВключаетНДС Тогда   
      Возврат Формат(?(Кол_во = 0, (Сумма-СуммаНДС), (Сумма-СуммаНДС) / Кол_во),"ЧЦ=17; ЧДЦ=2; ЧРД=.; ЧГ=0; ЧН=0.00");
   Иначе
      Возврат Формат(?(Кол_во = 0, (Сумма), (Сумма) / Кол_во),"ЧЦ=17; ЧДЦ=2; ЧРД=.; ЧГ=0; ЧН=0.00");
   КонецЕсли;
КонецФункции


Аналогично ошибка повторена и в других функциях: сбисВычислитьЦенуСНДС, сбисВычислитьПредЦену, сбисВычислитьРасхождениеЦены...
Прошу оперативно поправить обработку.
Dmitri 
» 06 окт 2017, 13:47


Вопрос решен в рамках обращения Тех. Поддержку
Ткаченко Дмитрий 
» 09 окт 2017, 17:51


Тех. поддержка переопределила эту функцию в дополнительной обработке ВнешниеФункции_Клиент.epf, отказавшись внести это изменение в конфигурацию основной обработки.
Решение не совсем хорошее, теперь нам придётся постоянно контролировать каждое обновление основной обработки и файлов "xml", т.к. например при изменении там наименования функции - перестанет работать. :roll:
Dmitri 
» 10 окт 2017, 16:51


Ваше обращение еще не закрыто, мы обсудим с разработчиками необходимость внесение изменений в конфигурацию основной обработки.
Ткаченко Дмитрий 
» 10 окт 2017, 17:42


Каковы результаты обсуждения с разработчиками?
Dmitri 
» 19 дек 2017, 16:41




Вернуться в Электронный документооборот