From c30dac7f2a6291d2318b1b33ea744bb547b95380 Mon Sep 17 00:00:00 2001 From: mihailkudravcev Date: Wed, 14 Oct 2026 15:08:17 +0300 Subject: [PATCH] =?UTF-8?q?1.3.1.135:=20=D1=81=D0=B5=D1=80=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=20UUID=20=D1=81=D0=BE=20=D1=81=D1=80=D0=BE=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=2001.01.2001=20=D0=B1=D0=B5=D1=80=D1=91=D1=82=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=20=D0=B8=20=D1=81=D1=80=D0=BE?= =?UTF-8?q?=D0=BA=20=D0=B8=D0=B7=20=D0=B8=D1=81=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0.?= 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/Configuration.xml | 2 +- .../РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl | 50 +++++++++++++++++++ 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ece9573..e9b4521 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ --- +## 1.3.1.135 (2026-10-14) + +### Ввод остатков: серия по UUID со сроком 01.01.2001 + +- Если карточка серии уже есть по идентификатору источника, новая не создаётся. +- У карточки со сроком 01.01.2001 и цифровым номером срок и номер берутся из имени серии источника. Занятый номер другого элемента не перезаписывается. + ## 1.3.1.134 (2026-10-13) ### Ввод остатков: серия строки в таблице товаров diff --git a/VERSION b/VERSION index 26e8383..8abbfef 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1.134 +1.3.1.135 diff --git a/src/Configuration.xml b/src/Configuration.xml index 3f69b21..835111e 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.1.134 + 1.3.1.135 Language.Русский diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl index ab738e3..a4ec674 100644 --- a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl +++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl @@ -2234,6 +2234,53 @@ КонецПроцедуры +Процедура АктуализироватьСериюСПустымСроком(Сер, ИмяСерии, ГоденДо, РежимТест) + + Если РежимТест Или Не ЗначениеЗаполнено(Сер) Или Не ЗначениеЗаполнено(ГоденДо) Тогда + Возврат; + КонецЕсли; + Если НачалоДня(ГоденДо) <= Дата(2001, 1, 1) Тогда + Возврат; + КонецЕсли; + + Рекв = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Сер, "Номер, ГоденДо, ВидНоменклатуры"); + Если ЗначениеЗаполнено(Рекв.ГоденДо) И НачалоДня(Рекв.ГоденДо) > Дата(2001, 1, 1) Тогда + Возврат; + КонецЕсли; + + Попытка + Объект = Сер.ПолучитьОбъект(); + Объект.ГоденДо = ГоденДо; + НомерИсточник = СокрЛП(ИмяСерии); + Если ЗначениеЗаполнено(НомерИсточник) И НомерСерииТолькоЦифры(СокрЛП(Рекв.Номер)) Тогда + Занятый = Справочники.СерииНоменклатуры.НайтиПоРеквизиту( + "Номер", НомерИсточник, , Рекв.ВидНоменклатуры); + Если Не ЗначениеЗаполнено(Занятый) Или Занятый = Сер Тогда + Объект.Номер = НомерИсточник; + КонецЕсли; + КонецЕсли; + Объект.Записать(); + Исключение + // Срок карточки не обновлён. Строка остатка всё равно ссылается на найденную серию. + КонецПопытки; + +КонецПроцедуры + +Функция НомерСерииТолькоЦифры(Номер) + + Если Не ЗначениеЗаполнено(Номер) Тогда + Возврат Ложь; + КонецЕсли; + Для Индекс = 1 По СтрДлина(Номер) Цикл + Символ = Сред(Номер, Индекс, 1); + Если Символ < "0" Или Символ > "9" Тогда + Возврат Ложь; + КонецЕсли; + КонецЦикла; + Возврат Истина; + +КонецФункции + Функция НайтиИлиСоздатьСерию(СтрТ, Ном, СкладЦель, СуффиксДатыСер, РежимТест, КэшТребуетсяСерия, КэшСерий, Результат) @@ -2295,6 +2342,9 @@ СсылкаПоГуид = СсылкаПоUUID(Справочники.СерииНоменклатуры, СтрТ.СерияИдентификатор); Если ЗначениеЗаполнено(СсылкаПоГуид) И ОбщегоНазначения.СсылкаСуществует(СсылкаПоГуид) Тогда + Если Не ЭтоЗаглушка Тогда + АктуализироватьСериюСПустымСроком(СсылкаПоГуид, ИмяСерии, ГоденДо, РежимТест); + КонецЕсли; Если ЭтоЗаглушка Тогда КэшСерий.Вставить(КлючКэшаСерииЗаглушки(ВидСер, Ном, ГоденДо), СсылкаПоГуид); КонецЕсли;