1.3.1.128: партия ввода остатков и фиксация суммы регл.

Загрузчик создаёт и проводит внутреннюю накладную и ставит её в шапку КБ. Признак на форме ввода остатков сохраняет историческую сумму регл. при смене количества и даты.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-10-12 16:27:36 +03:00
parent 1aae9c08bc
commit 6561283d8e
9 changed files with 28360 additions and 6 deletions
+13
View File
@@ -4,6 +4,19 @@
--- ---
## 1.3.1.128 (2026-10-12)
### #76: партия ввода остатков
- Перед записью КБ загрузчик находит или создаёт один документ «Первичный документ» типа «Внутренняя накладная» на организацию и дату ввода, записывает и проводит его без режима загрузки.
- Ссылка ставится в шапку собственных документов и комиссии 2.5.
### #77: сумма регл. не по курсу даты
- У документа «Ввод остатков товаров» в расширении реквизит «Не пересчитывать сумму регл. по курсу даты». По умолчанию выключен, выведен в шапку формы.
- При включённом признаке смена количества берёт курс строки (сумма регл. / сумма без НДС), а если его нет — курс даты документа. Смена даты сумму регл. и НДС регл. не меняет.
- Загрузчик включает признак у создаваемых КБ.
## 1.3.1.127 (2026-10-12) ## 1.3.1.127 (2026-10-12)
### #36: серии ввода остатков без идентификатора строки ### #36: серии ввода остатков без идентификатора строки
+1 -1
View File
@@ -1 +1 @@
1.3.1.127 1.3.1.128
+5
View File
@@ -309,6 +309,11 @@
<Metadata name="DataProcessor.РК_ПроверкаСерий.Form.ФормаИзмененияМастерСерии" id="2ef7dbf8-ecdd-4f24-b896-a5a95e049d34" configVersion="7aaaae663b4f536faba34cd50931e7a37b497d46"/> <Metadata name="DataProcessor.РК_ПроверкаСерий.Form.ФормаИзмененияМастерСерии" id="2ef7dbf8-ecdd-4f24-b896-a5a95e049d34" configVersion="7aaaae663b4f536faba34cd50931e7a37b497d46"/>
<Metadata name="DataProcessor.РК_ПроверкаСерий.Form.ФормаИзмененияМастерСерии.Form" id="2ef7dbf8-ecdd-4f24-b896-a5a95e049d34.0" configVersion="7aaaae663b4f536faba34cd50931e7a37b497d46"/> <Metadata name="DataProcessor.РК_ПроверкаСерий.Form.ФормаИзмененияМастерСерии.Form" id="2ef7dbf8-ecdd-4f24-b896-a5a95e049d34.0" configVersion="7aaaae663b4f536faba34cd50931e7a37b497d46"/>
<Metadata name="DefinedType.РаспоряжениеНаОтгрузку" id="afb3288b-968a-4b19-8b67-721e50974db4" configVersion="b4e7b9549112d57eb9da5a9947237f4f601039e7"/> <Metadata name="DefinedType.РаспоряжениеНаОтгрузку" id="afb3288b-968a-4b19-8b67-721e50974db4" configVersion="b4e7b9549112d57eb9da5a9947237f4f601039e7"/>
<Metadata name="Document.ВводОстатковТоваров" id="98328985-25f2-4ada-8193-b28a7c3b963a" configVersion="853faacd5cf82b370477c28f2779a606fb2f2a34">
<Metadata name="Document.ВводОстатковТоваров.Attribute.РК_НеПересчитыватьСуммуРеглПоКурсу" id="93e77ae4-6ec5-48c0-bf4c-3c833e8995b9"/>
</Metadata>
<Metadata name="Document.ВводОстатковТоваров.Form.ФормаТовары" id="2824b790-f37f-4fab-bdb9-1a967084cde4" configVersion="c66e9e76edd61eb7a24ab50332ccf80bf8a58a1c"/>
<Metadata name="Document.ВводОстатковТоваров.Form.ФормаТовары.Form" id="2824b790-f37f-4fab-bdb9-1a967084cde4.0" configVersion="e37a4d4d6bafe329990594068ec7883ff65b0aa6"/>
<Metadata name="Document.ЗаказКлиента" id="83c6bfba-2c6d-4fe7-a05b-1b54e8208966" configVersion="0f1941010a3f2e5c6ace2f57e4dab142a17f8f20"/> <Metadata name="Document.ЗаказКлиента" id="83c6bfba-2c6d-4fe7-a05b-1b54e8208966" configVersion="0f1941010a3f2e5c6ace2f57e4dab142a17f8f20"/>
<Metadata name="Document.РасходныйОрдерНаТовары" id="3d303157-526b-4725-8f94-4077b108b463" configVersion="43ce890f8166575f8e201b20e1bea4cf341f6e47"> <Metadata name="Document.РасходныйОрдерНаТовары" id="3d303157-526b-4725-8f94-4077b108b463" configVersion="43ce890f8166575f8e201b20e1bea4cf341f6e47">
<Metadata name="Document.РасходныйОрдерНаТовары.TabularSection.ТоварыПоРаспоряжениям.Attribute.Распоряжение" id="f189fc59-8635-4c7d-bb98-120ed8da4000"/> <Metadata name="Document.РасходныйОрдерНаТовары.TabularSection.ТоварыПоРаспоряжениям.Attribute.Распоряжение" id="f189fc59-8635-4c7d-bb98-120ed8da4000"/>
+2 -1
View File
@@ -62,7 +62,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
</DefaultRoles> </DefaultRoles>
<Vendor/> <Vendor/>
<Version>1.3.1.127</Version> <Version>1.3.1.128</Version>
<DefaultStyle/> <DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage> <DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/> <BriefInformation/>
@@ -115,6 +115,7 @@
<Catalog>ВидыНоменклатуры</Catalog> <Catalog>ВидыНоменклатуры</Catalog>
<Catalog>ВидыЦен</Catalog> <Catalog>ВидыЦен</Catalog>
<Document>РеализацияТоваровУслуг</Document> <Document>РеализацияТоваровУслуг</Document>
<Document>ВводОстатковТоваров</Document>
<Document>ЗаказКлиента</Document> <Document>ЗаказКлиента</Document>
<Document>РасходныйОрдерНаТовары</Document> <Document>РасходныйОрдерНаТовары</Document>
<Enum>ХозяйственныеОперации</Enum> <Enum>ХозяйственныеОперации</Enum>
@@ -485,6 +485,20 @@
ДобавитьСтрокуПротокола(Результат, "Удалено документов: " + Формат(Результат.УдаленоДокументов, "ЧН=0; ЧГ=0")); ДобавитьСтрокуПротокола(Результат, "Удалено документов: " + Формат(Результат.УдаленоДокументов, "ЧН=0; ЧГ=0"));
КонецЕсли; КонецЕсли;
ПартияВвода = Документы.ПервичныйДокумент.ПустаяСсылка();
СоздаватьДокументы = Истина;
Если Не РежимТест
И (СтрокиПоСкладу.Количество() > 0 Или СтрокиКомиссии.Количество() > 0) Тогда
Попытка
ПартияВвода = НайтиИлиСоздатьПартиюВводаОстатков(ТекстТега, Результат);
Исключение
СоздаватьДокументы = Ложь;
Результат.Ошибок = Результат.Ошибок + 1;
ДобавитьСтрокуПротокола(Результат, "[ERROR] партия ввода остатков: "
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
Для Каждого ЭлементСклада Из СтрокиПоСкладу Цикл Для Каждого ЭлементСклада Из СтрокиПоСкладу Цикл
СкладДок = ЭлементСклада.Ключ; СкладДок = ЭлементСклада.Ключ;
@@ -507,8 +521,13 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если Не СоздаватьДокументы Тогда
ДобавитьСтрокуПротокола(Результат, "[SKIP] " + Контекст + " — нет партии ввода остатков");
Продолжить;
КонецЕсли;
ДобавитьСтрокуПротокола(Результат, "[FILL] " + Контекст); ДобавитьСтрокуПротокола(Результат, "[FILL] " + Контекст);
Док = СоздатьДокументПоСкладу(СкладДок, СтрокиСклада, ТекстТега); Док = СоздатьДокументПоСкладу(СкладДок, СтрокиСклада, ТекстТега, ПартияВвода);
Если ДокументВводаСозданУспешно(Док) Тогда Если ДокументВводаСозданУспешно(Док) Тогда
Результат.СозданоДокументов = Результат.СозданоДокументов + 1; Результат.СозданоДокументов = Результат.СозданоДокументов + 1;
Результат.СтрокВДокументах = Результат.СтрокВДокументах + Док.Товары.Количество(); Результат.СтрокВДокументах = Результат.СтрокВДокументах + Док.Товары.Количество();
@@ -558,8 +577,13 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если Не СоздаватьДокументы Тогда
ДобавитьСтрокуПротокола(Результат, "[SKIP] " + Контекст + " — нет партии ввода остатков");
Продолжить;
КонецЕсли;
ДобавитьСтрокуПротокола(Результат, "[FILL] " + Контекст); ДобавитьСтрокуПротокола(Результат, "[FILL] " + Контекст);
Док = СоздатьДокументКомиссии(СтрокиГруппы, ТекстТега); Док = СоздатьДокументКомиссии(СтрокиГруппы, ТекстТега, ПартияВвода);
Если ДокументВводаСозданУспешно(Док) Тогда Если ДокументВводаСозданУспешно(Док) Тогда
Результат.СозданоДокументовКомиссии = Результат.СозданоДокументовКомиссии + 1; Результат.СозданоДокументовКомиссии = Результат.СозданоДокументовКомиссии + 1;
Результат.СтрокКомиссии = Результат.СтрокКомиссии + Док.Товары.Количество(); Результат.СтрокКомиссии = Результат.СтрокКомиссии + Док.Товары.Количество();
@@ -957,6 +981,54 @@
КонецФункции КонецФункции
Функция НайтиИлиСоздатьПартиюВводаОстатков(ТекстТега, Результат)
КомментарийПартии = ТекстТега + ", партия ввода остатков";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.ПервичныйДокумент КАК Док
|ГДЕ
| НЕ Док.ПометкаУдаления
| И Док.Организация = &Организация
| И Док.ТипПервичногоДокумента = ЗНАЧЕНИЕ(Перечисление.ТипыПервичныхДокументов.ВнутренняяНакладная)
| И Док.Дата = &Дата
| И Док.Комментарий ПОДОБНО &Комментарий";
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Дата", ДатаДокументовВвода);
Запрос.УстановитьПараметр("Комментарий", "%" + КомментарийПартии + "%");
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Док = Выборка.Ссылка.ПолучитьОбъект();
Найдена = Истина;
Иначе
Док = Документы.ПервичныйДокумент.СоздатьДокумент();
Док.Дата = ДатаДокументовВвода;
Док.Организация = Организация;
Док.ТипПервичногоДокумента = Перечисления.ТипыПервичныхДокументов.ВнутренняяНакладная;
Док.Комментарий = КомментарийПартии;
Найдена = Ложь;
КонецЕсли;
Док.ОбменДанными.Загрузка = Ложь;
Если Не Док.Проведен Тогда
Док.Записать(РежимЗаписиДокумента.Запись);
Док.ОбменДанными.Загрузка = Ложь;
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
ДобавитьСтрокуПротокола(Результат, "[PARTY] "
+ ?(Найдена, "найдена", "создана")
+ " " + СокрЛП(Строка(Док.Ссылка))
+ ?(Док.Проведен, ", проведена", ", не проведена"));
Возврат Док.Ссылка;
КонецФункции
Функция СгруппироватьСопоставленныеСтрокиПоСкладу() Функция СгруппироватьСопоставленныеСтрокиПоСкладу()
Группы = Новый Соответствие; Группы = Новый Соответствие;
@@ -1055,7 +1127,7 @@
КонецФункции КонецФункции
Функция СоздатьДокументПоСкладу(СкладДок, СтрокиСклада, ТекстТега) Функция СоздатьДокументПоСкладу(СкладДок, СтрокиСклада, ТекстТега, ПартияВвода)
Док = Документы.ВводОстатковТоваров.СоздатьДокумент(); Док = Документы.ВводОстатковТоваров.СоздатьДокумент();
Док.Дата = ДатаДокументовВвода; Док.Дата = ДатаДокументовВвода;
@@ -1063,6 +1135,8 @@
Док.Склад = СкладДок; Док.Склад = СкладДок;
Док.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковСобственныхТоваров; Док.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковСобственныхТоваров;
Док.Комментарий = ТекстТега + ", склад " + СокрЛП(Строка(СкладДок)); Док.Комментарий = ТекстТега + ", склад " + СокрЛП(Строка(СкладДок));
Док.Партия = ПартияВвода;
Док.РК_НеПересчитыватьСуммуРеглПоКурсу = Истина;
Док.ОтражатьВОперативномУчете = Истина; Док.ОтражатьВОперативномУчете = Истина;
Док.ОтражатьСебестоимость = ЕстьСтоимостьВСтроках(СтрокиСклада); Док.ОтражатьСебестоимость = ЕстьСтоимостьВСтроках(СтрокиСклада);
Док.ЦенаВключаетНДС = Ложь; Док.ЦенаВключаетНДС = Ложь;
@@ -1120,7 +1194,7 @@
КонецФункции КонецФункции
Функция СоздатьДокументКомиссии(СтрокиГруппы, ТекстТега) Функция СоздатьДокументКомиссии(СтрокиГруппы, ТекстТега, ПартияВвода)
Первая = СтрокиГруппы[0]; Первая = СтрокиГруппы[0];
ДоговорШапки = Первая.Договор; ДоговорШапки = Первая.Договор;
@@ -1141,6 +1215,8 @@
Док.Контрагент = Первая.Контрагент; Док.Контрагент = Первая.Контрагент;
Док.Договор = ДоговорШапки; Док.Договор = ДоговорШапки;
Док.Комментарий = ТекстТега + ", комиссия 2.5, " + СокрЛП(Строка(Первая.Партнер)); Док.Комментарий = ТекстТега + ", комиссия 2.5, " + СокрЛП(Строка(Первая.Партнер));
Док.Партия = ПартияВвода;
Док.РК_НеПересчитыватьСуммуРеглПоКурсу = Истина;
Док.ОтражатьВОперативномУчете = Истина; Док.ОтражатьВОперативномУчете = Истина;
Док.ОтражатьСебестоимость = ЕстьСтоимостьВСтроках(СтрокиГруппы); Док.ОтражатьСебестоимость = ЕстьСтоимостьВСтроках(СтрокиГруппы);
Док.ЦенаВключаетНДС = Ложь; Док.ЦенаВключаетНДС = Ложь;
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
<Document uuid="98328985-25f2-4ada-8193-b28a7c3b963a">
<InternalInfo>
<xr:GeneratedType name="DocumentObject.ВводОстатковТоваров" category="Object">
<xr:TypeId>5719c72b-76b1-43b9-8f81-2f15f76f30bf</xr:TypeId>
<xr:ValueId>0ab8c865-e7fc-4866-b55f-8558d7aa5706</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentRef.ВводОстатковТоваров" category="Ref">
<xr:TypeId>b7a0471e-be57-4d71-a748-aba2f35ceae5</xr:TypeId>
<xr:ValueId>171d675a-6dbb-4728-bf9f-6404ee5d54d7</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentSelection.ВводОстатковТоваров" category="Selection">
<xr:TypeId>67db6f20-b180-475b-b961-206dd3786ad2</xr:TypeId>
<xr:ValueId>4ffc047d-32b8-465a-aa0b-7e94862d2252</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentList.ВводОстатковТоваров" category="List">
<xr:TypeId>145005ae-21a1-43ac-b2cb-dc97a8d49e8a</xr:TypeId>
<xr:ValueId>d90b58fe-f592-4777-8a53-47218adce8f8</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentManager.ВводОстатковТоваров" category="Manager">
<xr:TypeId>e923d112-c102-4a2b-ae80-cb7b5266b1d3</xr:TypeId>
<xr:ValueId>f1636c2d-8878-40d0-91df-6b3c580c9992</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>ВводОстатковТоваров</Name>
<Comment/>
<ExtendedConfigurationObject>66c3293d-14ec-4a51-8b6b-ac5b70921345</ExtendedConfigurationObject>
<RegisterRecords/>
</Properties>
<ChildObjects>
<Attribute uuid="93e77ae4-6ec5-48c0-bf4c-3c833e8995b9">
<Properties>
<ObjectBelonging>Own</ObjectBelonging>
<Name>РК_НеПересчитыватьСуммуРеглПоКурсу</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Не пересчитывать сумму регл. по курсу даты</v8:content>
</v8:item>
</Synonym>
<Comment/>
<ExtendedConfigurationObject>00000000-0000-0000-0000-000000000000</ExtendedConfigurationObject>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>При изменении количества курс берётся из строки. Смена даты не пересчитывает сумму регл.</v8:content>
</v8:item>
</ToolTip>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>true</FillFromFillingValue>
<FillValue xsi:type="xs:boolean">false</FillValue>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Form>ФормаТовары</Form>
</ChildObjects>
</Document>
</MetaDataObject>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
<Form uuid="2824b790-f37f-4fab-bdb9-1a967084cde4">
<InternalInfo>
<xr:PropertyState>
<xr:Property>Form</xr:Property>
<xr:State>Extended</xr:State>
</xr:PropertyState>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>ФормаТовары</Name>
<Comment/>
<ExtendedConfigurationObject>602db51b-4294-49bb-a25b-250915472c8c</ExtendedConfigurationObject>
<FormType>Managed</FormType>
</Properties>
</Form>
</MetaDataObject>
@@ -0,0 +1,162 @@
#Область РК_СуммаРегл
&НаКлиенте
&ИзменениеИКонтроль("КоличествоПриИзменении")
Процедура РК_КоличествоПриИзменении()
ТекущаяСтрока = Элементы[ИмяТекущейТаблицыФормы].ТекущиеДанные;
#Вставка
// --- РК ---
КоэффициентСуммыРегл = КоэффициентПересчетаИзВалютыУпрВРегл;
Если Объект.РК_НеПересчитыватьСуммуРеглПоКурсу Тогда
КоэффициентСуммыРегл = РК_КоэффициентСуммыРеглСтроки(ТекущаяСтрока, КоэффициентПересчетаИзВалютыУпрВРегл);
КонецЕсли;
// ---
#КонецВставки
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц", ПараметрыПересчетаКоличестваЕдиниц(Объект.ХозяйственнаяОперация));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
Если ЭтоОстаткиСобственныхТоваров
Или ЭтоОстаткиПринятойТары
Или ЭтоОстаткиПереданнойТары
Или ЭтоОстаткиПереданныхПереработчикамТоваров2_5
Или ЭтоОстаткиПринятыхНаКомиссиюТоваров
Или ЭтоОстаткиПринятыхНаХранениеТоваров
Или ЭтоОстаткиПереданныхНаКомиссиюТоваров
Или ЭтоОстаткиПереданныхНаКомиссиюТоваров2_5
Или ЭтоОстаткиПереданныхНаХранениеТоваров
Или ЭтоОстаткиПереданныхВПроизводствоТоваров
Или ЭтоОстаткиОтгруженныхТоваров Тогда
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
СтруктураДействий = Новый Структура;
Если Не Объект.ЦенаВключаетНДС Тогда
ТекущаяСтрока.СуммаБезНДС = ТекущаяСтрока.Сумма;
Иначе
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДС", СтруктураПересчетаСуммы);
КонецЕсли;
#Удаление
СтруктураДействий.Вставить("ПересчитатьСуммуРегл", КоэффициентПересчетаИзВалютыУпрВРегл);
#КонецУдаления
#Вставка
// --- РК ---
СтруктураДействий.Вставить("ПересчитатьСуммуРегл", КоэффициентСуммыРегл);
// ---
#КонецВставки
Если НЕ (ЭтоОстаткиПринятойТары
Или ЭтоОстаткиПереданнойТары) Тогда
СтруктураДействий.Вставить("ПересчитатьНДСРегл", СтруктураПересчетаСуммы);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
&ИзменениеИКонтроль("ДатаПриИзмененииСервер")
Процедура РК_ДатаПриИзмененииСервер()
#Вставка
// --- РК ---
СнимокСуммРегл = Неопределено;
Если Объект.РК_НеПересчитыватьСуммуРеглПоКурсу Тогда
СнимокСуммРегл = РК_СнимокСуммРегл();
КонецЕсли;
// ---
#КонецВставки
КоэффициентПересчетаИзВалютыУпрВРегл = КоэффициентПересчета(ВалютаУправленческогоУчета, ВалютаРегламентированногоУчета, Объект.Дата);
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.ВводОстатковТоваров));
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий);
УстановитьВидимость();
Документы.ВводОстатковТоваров.ЗаполнитьВидДеятельностиНДС(Объект, ЭтотОбъект, Истина);
ЗаполнитьНалогообложениеНДС();
НалогообложениеНДСПриИзмененииСервер();
ПолучитьМетодОценкиСтоимостиТоваров();
УстановитьВидимостьКоличестваРНПТ();
Если Не Элементы.СобственныеТоварыГруппаКоличествоПоРНПТ.Видимость
Или Не Элементы.ПолученныеНаКомиссиюГруппаКоличествоПоРНПТ.Видимость
Или Не Элементы.ПолученныеНаХранениеГруппаКоличествоПоРНПТ.Видимость
Или Не Элементы.ПереданныеНаКомиссиюГруппаКоличествоПоРНПТ.Видимость
Или Не Элементы.ПереданныеНаКомиссию25ГруппаКоличествоПоРНПТ.Видимость
Или Не Элементы.ПереданныеНаХранениеГруппаКоличествоПоРНПТ.Видимость Тогда
ПересчитатьКоличествоРНПТ();
КонецЕсли;
//++ Локализация
//-- Локализация
УчетПодакцизныхТоваров.ОбновитьЭлементыУчетаПодакцизныхТоваров(ЭтотОбъект);
#Вставка
// --- РК ---
Если СнимокСуммРегл <> Неопределено Тогда
РК_ВосстановитьСуммыРегл(СнимокСуммРегл);
КонецЕсли;
// ---
#КонецВставки
КонецПроцедуры
&НаКлиенте
Функция РК_КоэффициентСуммыРеглСтроки(СтрокаТовара, КоэффициентДаты)
Если СтрокаТовара.СуммаБезНДС = 0 Или СтрокаТовара.СуммаРегл = 0 Тогда
Возврат КоэффициентДаты;
КонецЕсли;
Возврат СтрокаТовара.СуммаРегл / СтрокаТовара.СуммаБезНДС;
КонецФункции
&НаСервере
Функция РК_СнимокСуммРегл()
Снимок = Новый Массив;
Для Каждого СтрокаТовара Из Объект.Товары Цикл
Снимок.Добавить(Новый Структура(
"НомерСтроки, СуммаРегл, НДСРегл",
СтрокаТовара.НомерСтроки,
СтрокаТовара.СуммаРегл,
СтрокаТовара.НДСРегл));
КонецЦикла;
Возврат Снимок;
КонецФункции
&НаСервере
Процедура РК_ВосстановитьСуммыРегл(Снимок)
Для Каждого Элемент Из Снимок Цикл
Если Элемент.НомерСтроки < 1 Или Элемент.НомерСтроки > Объект.Товары.Количество() Тогда
Продолжить;
КонецЕсли;
СтрокаТовара = Объект.Товары[Элемент.НомерСтроки - 1];
СтрокаТовара.СуммаРегл = Элемент.СуммаРегл;
СтрокаТовара.НДСРегл = Элемент.НДСРегл;
КонецЦикла;
КонецПроцедуры
#КонецОбласти