From d4a063f48ce942e29437389971e5b23bdfc1425c Mon Sep 17 00:00:00 2001 From: mihailkudravcev Date: Thu, 3 Sep 2026 12:32:42 +0300 Subject: [PATCH] =?UTF-8?q?1.3.1.113:=20=D1=80=D0=B0=D1=81=D1=87=D1=91?= =?UTF-8?q?=D1=82=20=D0=9D=D0=94=D0=A1=20=D0=B2=20=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BA=D0=B0=D1=85=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=82=D0=BA=D0=BE=D0=B2=20(#33).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- CHANGELOG.md | 7 +++ VERSION | 2 +- src/ConfigDumpInfo.xml | 4 +- src/Configuration.xml | 2 +- .../РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl | 58 +++++++++++++++++++ 5 files changed, 69 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5867cf5..6b1f1a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ --- +## 1.3.1.113 (2026-09-03) + +### РК_ЗагрузкаОстатков — расчёт НДС в строках ввода (#33) + +- После заполнения ТЧ own/comm: `СуммаНДС`, `СуммаСНДС`, `СуммаБезНДС`, `НДСРегл` через `ПакетнаяОбработкаТабличнойЧасти` (fallback — `УчетНДСУПКлиентСервер.РассчитатьСуммуНДС`). +- Учитывает `ЦенаВключаетНДС` / `НалогообложениеНДС` / ставку «Без НДС» и процентные ставки. + ## 1.3.1.112 (2026-09-03) ### РК_ЗагрузкаОстатков — CSV таблиц и файловый лог (#29) diff --git a/VERSION b/VERSION index b060239..2c3c82c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1.112 +1.3.1.113 diff --git a/src/ConfigDumpInfo.xml b/src/ConfigDumpInfo.xml index 9d3a8a1..592048f 100644 --- a/src/ConfigDumpInfo.xml +++ b/src/ConfigDumpInfo.xml @@ -57,7 +57,7 @@ - + @@ -205,7 +205,7 @@ - + diff --git a/src/Configuration.xml b/src/Configuration.xml index d8d554d..0e2efd1 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.1.112 + 1.3.1.113 Language.Русский diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl index 471959b..e605d4d 100644 --- a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl +++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl @@ -806,6 +806,8 @@ Возврат Документы.ВводОстатковТоваров.ПустаяСсылка(); КонецЕсли; + ПересчитатьСуммыНДСДокументаВвода(Док); + ОбщегоНазначенияУТ.ЗаполнитьИдентификаторыДокумента(Док, "Товары"); Попытка ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(Док, Документы.ВводОстатковТоваров); @@ -876,6 +878,8 @@ Возврат Документы.ВводОстатковТоваров.ПустаяСсылка(); КонецЕсли; + ПересчитатьСуммыНДСДокументаВвода(Док); + ОбщегоНазначенияУТ.ЗаполнитьИдентификаторыДокумента(Док, "Товары"); Попытка ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(Док, Документы.ВводОстатковТоваров); @@ -933,6 +937,60 @@ КонецПроцедуры +// Расчёт СуммаНДС / СуммаСНДС / СуммаБезНДС / НДСРегл после заполнения строк (#33). +// Штатный путь — ПакетнаяОбработкаТабличнойЧасти (как в форме/модуле ВводОстатковТоваров). +// +Процедура ПересчитатьСуммыНДСДокументаВвода(Док) + + Если Док.Товары.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Попытка + СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Док); + СтруктураДействий = Новый Структура; + СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); + СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); + СтруктураДействий.Вставить("ПересчитатьСуммуБезНДС", СтруктураПересчетаСуммы); + СтруктураДействий.Вставить("ПересчитатьНДСРегл", СтруктураПересчетаСуммы); + Кэш = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения(); + ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Док.Товары, СтруктураДействий, Кэш); + Возврат; + Исключение + КонецПопытки; + + Для Каждого СтрТов Из Док.Товары Цикл + ПересчитатьСуммыНДССтрокиВводаНапрямую(СтрТов, Док.ЦенаВключаетНДС, Док.НалогообложениеНДС); + КонецЦикла; + +КонецПроцедуры + +Процедура ПересчитатьСуммыНДССтрокиВводаНапрямую(СтрТов, ЦенаВключаетНДС, НалогообложениеНДС) + + Если Не ЗначениеЗаполнено(СтрТов.СтавкаНДС) Тогда + Возврат; + КонецЕсли; + + СтрТов.СуммаНДС = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС( + СтрТов.Сумма, СтрТов.СтавкаНДС, ЦенаВключаетНДС, НалогообложениеНДС); + Если ЦенаВключаетНДС Тогда + СтрТов.СуммаСНДС = СтрТов.Сумма; + СтрТов.СуммаБезНДС = СтрТов.Сумма - СтрТов.СуммаНДС; + Иначе + СтрТов.СуммаБезНДС = СтрТов.Сумма; + СтрТов.СуммаСНДС = СтрТов.Сумма + СтрТов.СуммаНДС; + КонецЕсли; + + Попытка + Если СтрТов.СуммаРегл <> 0 Тогда + СтрТов.НДСРегл = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС( + СтрТов.СуммаРегл, СтрТов.СтавкаНДС, Ложь, НалогообложениеНДС); + КонецЕсли; + Исключение + КонецПопытки; + +КонецПроцедуры + Функция ЕстьСтоимостьВСтроках(Строки) Для Каждого СтрТ Из Строки Цикл