1.3.1.113: расчёт НДС в строках документов ввода остатков (#33).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-09-03 12:32:42 +03:00
parent 53a319c106
commit d4a063f48c
5 changed files with 69 additions and 4 deletions
+7
View File
@@ -4,6 +4,13 @@
---
## 1.3.1.113 (2026-09-03)
### РК_ЗагрузкаОстатков — расчёт НДС в строках ввода (#33)
- После заполнения ТЧ own/comm: `СуммаНДС`, `СуммаСНДС`, `СуммаБезНДС`, `НДСРегл` через `ПакетнаяОбработкаТабличнойЧасти` (fallback — `УчетНДСУПКлиентСервер.РассчитатьСуммуНДС`).
- Учитывает `ЦенаВключаетНДС` / `НалогообложениеНДС` / ставку «Без НДС» и процентные ставки.
## 1.3.1.112 (2026-09-03)
### РК_ЗагрузкаОстатков — CSV таблиц и файловый лог (#29)
+1 -1
View File
@@ -1 +1 @@
1.3.1.112
1.3.1.113
+2 -2
View File
@@ -57,7 +57,7 @@
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.Form.ЗагрузкаДанныхИзФайла" id="f47d02ff-17f2-4764-a151-627f4067a479" configVersion="247298ad849a4d46b1f412e90c0184fe64756489"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.Form.ЗагрузкаДанныхИзФайла.Form" id="f47d02ff-17f2-4764-a151-627f4067a479.0" configVersion="e853a6b3591994346f9ce1d3b7d5cf0daf864fb8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.ManagerModule" id="b6fd11ac-f702-4d13-b328-9a78b0874483.2" configVersion="78276e2de46cee0ce6ddd3972858ba87a64b96c0"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="5cf7af6dad46b008d3e4349d85612dbf1c629e27">
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="73b97230198894aa437bb01f8d33b6fb01b9ccba">
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеКомиссионныеТовары.Attribute.СтоимостьРегл" id="068e3fcc-0bd5-4af0-a192-d100909a8cc1"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.СкладИдентификатор" id="086673fd-91b2-4966-8472-144da87650e6"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.КомментарийСопоставления" id="09d80a73-1aa6-4ecc-a39a-c667e99e3084"/>
@@ -205,7 +205,7 @@
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.ПодборСкладов.Form" id="9dfcb2a8-bf22-44c3-97a7-a69f70ca4d61.0" configVersion="8cddcd809beef075b470c32dd5564aebb81e405c"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма" id="dc49348d-9257-4545-9c29-70c138312177" configVersion="4b1376c92cb4d29bf8988c9421235ef3cf31f0b7"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма.Form" id="dc49348d-9257-4545-9c29-70c138312177.0" configVersion="1c0bcc3797d32496f768807785da9f2e4780769b"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.ObjectModule" id="5922bda8-8f69-487c-823a-8b09e343f59a.0" configVersion="d67564ee9b92b0817ea68a2eb2cad2773de572f3"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.ObjectModule" id="5922bda8-8f69-487c-823a-8b09e343f59a.0" configVersion="c56db52af66e13a3d82e77ce60242a034db891f4"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен" id="a18e1801-18e0-4000-8000-000000000001" configVersion="800c7286acdc6bcc40d47f7aa70bdf0f18e2aa5d">
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.ПодключениеКСтороннейБазе" id="a18e1801-18e0-4000-8000-000000000101"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен.Attribute.ДатаЦен" id="a18e1801-18e0-4000-8000-000000000102"/>
+1 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles>
<Vendor/>
<Version>1.3.1.112</Version>
<Version>1.3.1.113</Version>
<DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/>
@@ -806,6 +806,8 @@
Возврат Документы.ВводОстатковТоваров.ПустаяСсылка();
КонецЕсли;
ПересчитатьСуммыНДСДокументаВвода(Док);
ОбщегоНазначенияУТ.ЗаполнитьИдентификаторыДокумента(Док, "Товары");
Попытка
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(Док, Документы.ВводОстатковТоваров);
@@ -876,6 +878,8 @@
Возврат Документы.ВводОстатковТоваров.ПустаяСсылка();
КонецЕсли;
ПересчитатьСуммыНДСДокументаВвода(Док);
ОбщегоНазначенияУТ.ЗаполнитьИдентификаторыДокумента(Док, "Товары");
Попытка
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(Док, Документы.ВводОстатковТоваров);
@@ -933,6 +937,60 @@
КонецПроцедуры
// Расчёт СуммаНДС / СуммаСНДС / СуммаБезНДС / НДСРегл после заполнения строк (#33).
// Штатный путь — ПакетнаяОбработкаТабличнойЧасти (как в форме/модуле ВводОстатковТоваров).
//
Процедура ПересчитатьСуммыНДСДокументаВвода(Док)
Если Док.Товары.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Попытка
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Док);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьНДСРегл", СтруктураПересчетаСуммы);
Кэш = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Док.Товары, СтруктураДействий, Кэш);
Возврат;
Исключение
КонецПопытки;
Для Каждого СтрТов Из Док.Товары Цикл
ПересчитатьСуммыНДССтрокиВводаНапрямую(СтрТов, Док.ЦенаВключаетНДС, Док.НалогообложениеНДС);
КонецЦикла;
КонецПроцедуры
Процедура ПересчитатьСуммыНДССтрокиВводаНапрямую(СтрТов, ЦенаВключаетНДС, НалогообложениеНДС)
Если Не ЗначениеЗаполнено(СтрТов.СтавкаНДС) Тогда
Возврат;
КонецЕсли;
СтрТов.СуммаНДС = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС(
СтрТов.Сумма, СтрТов.СтавкаНДС, ЦенаВключаетНДС, НалогообложениеНДС);
Если ЦенаВключаетНДС Тогда
СтрТов.СуммаСНДС = СтрТов.Сумма;
СтрТов.СуммаБезНДС = СтрТов.Сумма - СтрТов.СуммаНДС;
Иначе
СтрТов.СуммаБезНДС = СтрТов.Сумма;
СтрТов.СуммаСНДС = СтрТов.Сумма + СтрТов.СуммаНДС;
КонецЕсли;
Попытка
Если СтрТов.СуммаРегл <> 0 Тогда
СтрТов.НДСРегл = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС(
СтрТов.СуммаРегл, СтрТов.СтавкаНДС, Ложь, НалогообложениеНДС);
КонецЕсли;
Исключение
КонецПопытки;
КонецПроцедуры
Функция ЕстьСтоимостьВСтроках(Строки)
Для Каждого СтрТ Из Строки Цикл