1.3.1.120: ДатаСрокаГодностиПоУмолчанию вместо fallback на дату среза (#46).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-09-04 16:19:32 +03:00
parent d8fcece505
commit be2c3479b4
7 changed files with 104 additions and 10 deletions
+9
View File
@@ -4,6 +4,15 @@
--- ---
## 1.3.1.120 (2026-09-04)
### РК_ЗагрузкаОстатков — ДатаСрокаГодностиПоУмолчанию (#46)
- Сохраняемый реквизит `ДатаСрокаГодностиПоУмолчанию` + поле на вкладке Настройки.
- Fallback `ГоденДо` при создании серии без `series_expire` / даты в имени — из реквизита, **не** из даты среза.
- Пустой реквизит: заглушка `Перенос_*` не создаётся (комментарий сопоставления).
- `ДатаПроизводства` по-прежнему = дата среза остатков.
## 1.3.1.119 (2026-09-04) ## 1.3.1.119 (2026-09-04)
### РК_ЗагрузкаОстатков — порядок команд + версия на форме (#40) ### РК_ЗагрузкаОстатков — порядок команд + версия на форме (#40)
+1 -1
View File
@@ -1 +1 @@
1.3.1.119 1.3.1.120
+4 -3
View File
@@ -57,7 +57,7 @@
<Metadata name="DataProcessor.ЗагрузкаДанныхИзФайла.Form.ЗагрузкаДанныхИзФайла" id="f47d02ff-17f2-4764-a151-627f4067a479" configVersion="247298ad849a4d46b1f412e90c0184fe64756489"/> <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.ЗагрузкаДанныхИзФайла.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.ЗагрузкаДанныхИзФайла.ManagerModule" id="b6fd11ac-f702-4d13-b328-9a78b0874483.2" configVersion="78276e2de46cee0ce6ddd3972858ba87a64b96c0"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="88cc47d1bfe473c3065db3641aac761d98c644c3"> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков" id="5922bda8-8f69-487c-823a-8b09e343f59a" configVersion="c245faecd5f7244c1c6a21afab46e2b2fd804bf0">
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеКомиссионныеТовары.Attribute.СтоимостьРегл" id="068e3fcc-0bd5-4af0-a192-d100909a8cc1"/> <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="086673fd-91b2-4966-8472-144da87650e6"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.КомментарийСопоставления" id="09d80a73-1aa6-4ecc-a39a-c667e99e3084"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ВходящиеСобственныеТовары.Attribute.КомментарийСопоставления" id="09d80a73-1aa6-4ecc-a39a-c667e99e3084"/>
@@ -179,6 +179,7 @@
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.ПутьКФайламВыгрузкиТаблиц" id="82f9884b-f782-4b29-af1c-3512694ede64"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.ПутьКФайламВыгрузкиТаблиц" id="82f9884b-f782-4b29-af1c-3512694ede64"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.РежимЗаписиФайловВыгрузки" id="28583859-cefe-4f6e-be17-c6973face4f5"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.РежимЗаписиФайловВыгрузки" id="28583859-cefe-4f6e-be17-c6973face4f5"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.ВыгружатьДанныеТаблиц" id="570cf0cd-82ef-4682-87ec-8da84f95d75e"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.ВыгружатьДанныеТаблиц" id="570cf0cd-82ef-4682-87ec-8da84f95d75e"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Attribute.ДатаСрокаГодностиПоУмолчанию" id="2dc0feb1-8117-4773-8077-96c516707e01"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ПолитикаУчетаНоменклатуры.Attribute.ВидНоменклатурыНаименование" id="e4d84e8b-fbd4-4967-9f84-67622403de0a"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ПолитикаУчетаНоменклатуры.Attribute.ВидНоменклатурыНаименование" id="e4d84e8b-fbd4-4967-9f84-67622403de0a"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ОтборСкладовВнешнейБазы" id="e7012345-a678-4bcd-9ef0-123456789abc"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ОтборСкладовВнешнейБазы" id="e7012345-a678-4bcd-9ef0-123456789abc"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ОтборСкладовВнешнейБазы.Attribute.Идентификатор" id="e7012345-a678-4bcd-9ef0-123456789abe"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.TabularSection.ОтборСкладовВнешнейБазы.Attribute.Идентификатор" id="e7012345-a678-4bcd-9ef0-123456789abe"/>
@@ -204,8 +205,8 @@
</Metadata> </Metadata>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.ПодборСкладов" id="9dfcb2a8-bf22-44c3-97a7-a69f70ca4d61" configVersion="3bf7d51ed9ee398e1704b692c5cf543de885b35d"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.ПодборСкладов" id="9dfcb2a8-bf22-44c3-97a7-a69f70ca4d61" configVersion="3bf7d51ed9ee398e1704b692c5cf543de885b35d"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.ПодборСкладов.Form" id="9dfcb2a8-bf22-44c3-97a7-a69f70ca4d61.0" configVersion="8cddcd809beef075b470c32dd5564aebb81e405c"/> <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="8d6458e1de5049dde370d27c41a8841a02b13055"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма" id="dc49348d-9257-4545-9c29-70c138312177" configVersion="bd8cf45c896cbf009f8bfca42d768b17b9283a3b"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма.Form" id="dc49348d-9257-4545-9c29-70c138312177.0" configVersion="985562dc721d1412fd5a3a3a7d1b0ad8c3186def"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.Form.Форма.Form" id="dc49348d-9257-4545-9c29-70c138312177.0" configVersion="faf295e39df18813419e6a9e760b95cb8cb254f7"/>
<Metadata name="DataProcessor.РК_ЗагрузкаОстатков.ObjectModule" id="5922bda8-8f69-487c-823a-8b09e343f59a.0" configVersion="485b51d595cded0353c7f82593b08ae6c18ea677"/> <Metadata name="DataProcessor.РК_ЗагрузкаОстатков.ObjectModule" id="5922bda8-8f69-487c-823a-8b09e343f59a.0" configVersion="485b51d595cded0353c7f82593b08ae6c18ea677"/>
<Metadata name="DataProcessor.РК_ЗагрузкаЦен" id="a18e1801-18e0-4000-8000-000000000001" configVersion="800c7286acdc6bcc40d47f7aa70bdf0f18e2aa5d"> <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-000000000101"/>
+1 -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.119</Version> <Version>1.3.1.120</Version>
<DefaultStyle/> <DefaultStyle/>
<DefaultLanguage>Language.Русский</DefaultLanguage> <DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation/> <BriefInformation/>
@@ -348,6 +348,43 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput> <ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="2dc0feb1-8117-4773-8077-96c516707e01">
<Properties>
<Name>ДатаСрокаГодностиПоУмолчанию</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дата срока годности по умолчанию</v8:content>
</v8:item>
</Synonym>
<Comment>Fallback ГоденДо для серий без series_expire и без даты в имени (#46). Не путать с датой среза.</Comment>
<Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>Date</v8:DateFractions>
</v8:DateQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<TabularSection uuid="11e438df-e73c-44d2-b3ed-08c04b320d8e"> <TabularSection uuid="11e438df-e73c-44d2-b3ed-08c04b320d8e">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="DataProcessorTabularSection.РК_ЗагрузкаОстатков.ВходящиеСобственныеТовары" category="TabularSection"> <xr:GeneratedType name="DataProcessorTabularSection.РК_ЗагрузкаОстатков.ВходящиеСобственныеТовары" category="TabularSection">
@@ -119,7 +119,10 @@
ДобавитьСтрокуПротокола(Результат, "Режим: " + ?(РежимТест, "тест (без создания)", "запись")); ДобавитьСтрокуПротокола(Результат, "Режим: " + ?(РежимТест, "тест (без создания)", "запись"));
ДобавитьСтрокуПротокола(Результат, "Строк во входящих: " ДобавитьСтрокуПротокола(Результат, "Строк во входящих: "
+ Формат(ВходящиеСобственныеТовары.Количество(), "ЧН=0; ЧГ=0") + Формат(ВходящиеСобственныеТовары.Количество(), "ЧН=0; ЧГ=0")
+ "; заглушки серий: " + ?(СоздаватьЗаглушкиСерий, "вкл", "выкл")); + "; заглушки серий: " + ?(СоздаватьЗаглушкиСерий, "вкл", "выкл")
+ "; ГоденДо по умолчанию: "
+ ?(ЗначениеЗаполнено(ДатаСрокаГодностиПоУмолчанию),
Формат(ДатаСрокаГодностиПоУмолчанию, "ДФ=yyyy-MM-dd"), "(не задан)"));
СуффиксДатыСер = Формат(?(ЗначениеЗаполнено(ДатаДокументовВвода), ДатаДокументовВвода, ДатаОстатков), "ДФ=yyyyMMdd"); СуффиксДатыСер = Формат(?(ЗначениеЗаполнено(ДатаДокументовВвода), ДатаДокументовВвода, ДатаОстатков), "ДФ=yyyyMMdd");
Если ПустаяСтрока(СуффиксДатыСер) Тогда Если ПустаяСтрока(СуффиксДатыСер) Тогда
@@ -209,7 +212,10 @@
ДобавитьСтрокуПротокола(Результат, "Режим: " + ?(РежимТест, "тест (без создания)", "запись")); ДобавитьСтрокуПротокола(Результат, "Режим: " + ?(РежимТест, "тест (без создания)", "запись"));
ДобавитьСтрокуПротокола(Результат, "Строк во входящих: " ДобавитьСтрокуПротокола(Результат, "Строк во входящих: "
+ Формат(ВходящиеКомиссионныеТовары.Количество(), "ЧН=0; ЧГ=0") + Формат(ВходящиеКомиссионныеТовары.Количество(), "ЧН=0; ЧГ=0")
+ "; заглушки серий: " + ?(СоздаватьЗаглушкиСерий, "вкл", "выкл")); + "; заглушки серий: " + ?(СоздаватьЗаглушкиСерий, "вкл", "выкл")
+ "; ГоденДо по умолчанию: "
+ ?(ЗначениеЗаполнено(ДатаСрокаГодностиПоУмолчанию),
Формат(ДатаСрокаГодностиПоУмолчанию, "ДФ=yyyy-MM-dd"), "(не задан)"));
СуффиксДатыСер = Формат(?(ЗначениеЗаполнено(ДатаДокументовВвода), ДатаДокументовВвода, ДатаОстатков), "ДФ=yyyyMMdd"); СуффиксДатыСер = Формат(?(ЗначениеЗаполнено(ДатаДокументовВвода), ДатаДокументовВвода, ДатаОстатков), "ДФ=yyyyMMdd");
Если ПустаяСтрока(СуффиксДатыСер) Тогда Если ПустаяСтрока(СуффиксДатыСер) Тогда
@@ -1789,6 +1795,18 @@
КонецФункции КонецФункции
// Fallback ГоденДо, если нет series_expire / СерияГоденДо и даты в имени (#46).
// Дата среза остатков сюда НЕ подставляется.
//
Функция ГоденДоПоУмолчаниюОбработки()
Если ЗначениеЗаполнено(ДатаСрокаГодностиПоУмолчанию) Тогда
Возврат КонецДня(ДатаСрокаГодностиПоУмолчанию);
КонецЕсли;
Возврат '00010101';
КонецФункции
Функция КодНоменклатурыДляЗаглушкиСерии(СтрТ, Ном) Функция КодНоменклатурыДляЗаглушкиСерии(СтрТ, Ном)
Арт = СокрЛП(СтрТ.Артикул); Арт = СокрЛП(СтрТ.Артикул);
@@ -1900,7 +1918,12 @@
Возврат Сер; Возврат Сер;
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(ГоденДо) Тогда Если Не ЗначениеЗаполнено(ГоденДо) Тогда
ГоденДо = КонецДня(ДатаСрезаОстатковОбработки()); ГоденДо = ГоденДоПоУмолчаниюОбработки();
КонецЕсли;
Если Не ЗначениеЗаполнено(ГоденДо) Тогда
СтрТ.КомментарийСопоставления =
"Серия обязательна, срок годности не определён (задайте «Дата срока годности по умолчанию»)";
Возврат Сер;
КонецЕсли; КонецЕсли;
СтрТ.СерияГоденДо = ГоденДо; СтрТ.СерияГоденДо = ГоденДо;
НомерСерии = СформироватьНомерЗаглушкиСерии(СтрТ, Ном, ГоденДо); НомерСерии = СформироватьНомерЗаглушкиСерии(СтрТ, Ном, ГоденДо);
@@ -1912,6 +1935,9 @@
Если Не ЗначениеЗаполнено(ГоденДо) Тогда Если Не ЗначениеЗаполнено(ГоденДо) Тогда
ГоденДо = ДатаИзИмениСерии(ИмяСерии); ГоденДо = ДатаИзИмениСерии(ИмяСерии);
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(ГоденДо) Тогда
ГоденДо = ГоденДоПоУмолчаниюОбработки();
КонецЕсли;
Если ЗначениеЗаполнено(ГоденДо) Тогда Если ЗначениеЗаполнено(ГоденДо) Тогда
СтрТ.СерияГоденДо = ГоденДо; СтрТ.СерияГоденДо = ГоденДо;
КонецЕсли; КонецЕсли;
@@ -1968,9 +1994,16 @@
Если Не ЗначениеЗаполнено(Сер) И МожноСоздать Тогда Если Не ЗначениеЗаполнено(Сер) И МожноСоздать Тогда
Попытка Попытка
Если Не ЗначениеЗаполнено(ГоденДо) Тогда Если Не ЗначениеЗаполнено(ГоденДо) Тогда
ГоденДо = КонецДня(ДатаСрезаОстатковОбработки()); ГоденДо = ГоденДоПоУмолчаниюОбработки();
Если ЗначениеЗаполнено(ГоденДо) Тогда
СтрТ.СерияГоденДо = ГоденДо; СтрТ.СерияГоденДо = ГоденДо;
КонецЕсли; КонецЕсли;
КонецЕсли;
Если ЭтоЗаглушка И Не ЗначениеЗаполнено(ГоденДо) Тогда
СтрТ.КомментарийСопоставления =
"Серия обязательна, срок годности не определён (задайте «Дата срока годности по умолчанию»)";
Возврат Сер;
КонецЕсли;
ОбСер = Справочники.СерииНоменклатуры.ПустойОбъект(ВидСер); ОбСер = Справочники.СерииНоменклатуры.ПустойОбъект(ВидСер);
Если ИспНомерСерии Тогда Если ИспНомерСерии Тогда
ОбСер.Номер = ?(ЗначениеЗаполнено(НомерСерии), НомерСерии, ОбСер.Номер = ?(ЗначениеЗаполнено(НомерСерии), НомерСерии,
@@ -234,6 +234,19 @@
<ContextMenu name="СоздаватьЗаглушкиСерийКонтекстноеМеню" id="178"/> <ContextMenu name="СоздаватьЗаглушкиСерийКонтекстноеМеню" id="178"/>
<ExtendedTooltip name="СоздаватьЗаглушкиСерийРасширеннаяПодсказка" id="179"/> <ExtendedTooltip name="СоздаватьЗаглушкиСерийРасширеннаяПодсказка" id="179"/>
</CheckBoxField> </CheckBoxField>
<InputField name="ДатаСрокаГодностиПоУмолчанию" id="1593">
<DataPath>Объект.ДатаСрокаГодностиПоУмолчанию</DataPath>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ГоденДо новых серий, если в API/имени серии срока нет. Дата среза остатков сюда не подставляется. Пустое значение — заглушки без срока не создаются</v8:content>
</v8:item>
</ToolTip>
<ToolTipRepresentation>ShowRight</ToolTipRepresentation>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ДатаСрокаГодностиПоУмолчаниюКонтекстноеМеню" id="1594"/>
<ExtendedTooltip name="ДатаСрокаГодностиПоУмолчаниюРасширеннаяПодсказка" id="1595"/>
</InputField>
<CheckBoxField name="ПерезаписатьДокументы" id="120"> <CheckBoxField name="ПерезаписатьДокументы" id="120">
<DataPath>Объект.ПерезаписатьДокументы</DataPath> <DataPath>Объект.ПерезаписатьДокументы</DataPath>
<ToolTip> <ToolTip>
@@ -1375,6 +1388,7 @@
<Save> <Save>
<Field>Объект.ДатаДокументовВвода</Field> <Field>Объект.ДатаДокументовВвода</Field>
<Field>Объект.ДатаОстатков</Field> <Field>Объект.ДатаОстатков</Field>
<Field>Объект.ДатаСрокаГодностиПоУмолчанию</Field>
<Field>Объект.Организация</Field> <Field>Объект.Организация</Field>
<Field>Объект.ПодключениеКСтороннейБазе</Field> <Field>Объект.ПодключениеКСтороннейБазе</Field>
<Field>Объект.ПутьКФайламВыгрузкиТаблиц</Field> <Field>Объект.ПутьКФайламВыгрузкиТаблиц</Field>