1.3.1.135: серия по UUID со сроком 01.01.2001 берёт номер и срок из источника.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
### Ввод остатков: серия строки в таблице товаров
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Role.РК_ОсновнаяРоль</xr:Item>
|
||||
</DefaultRoles>
|
||||
<Vendor/>
|
||||
<Version>1.3.1.134</Version>
|
||||
<Version>1.3.1.135</Version>
|
||||
<DefaultStyle/>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
<BriefInformation/>
|
||||
|
||||
@@ -2234,6 +2234,53 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура АктуализироватьСериюСПустымСроком(Сер, ИмяСерии, ГоденДо, РежимТест)
|
||||
|
||||
Если РежимТест Или Не ЗначениеЗаполнено(Сер) Или Не ЗначениеЗаполнено(ГоденДо) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Если НачалоДня(ГоденДо) <= Дата(2001, 1, 1) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Рекв = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Сер, "Номер, ГоденДо, ВидНоменклатуры");
|
||||
Если ЗначениеЗаполнено(Рекв.ГоденДо) И НачалоДня(Рекв.ГоденДо) > Дата(2001, 1, 1) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Объект = Сер.ПолучитьОбъект();
|
||||
Объект.ГоденДо = ГоденДо;
|
||||
НомерИсточник = СокрЛП(ИмяСерии);
|
||||
Если ЗначениеЗаполнено(НомерИсточник) И НомерСерииТолькоЦифры(СокрЛП(Рекв.Номер)) Тогда
|
||||
Занятый = Справочники.СерииНоменклатуры.НайтиПоРеквизиту(
|
||||
"Номер", НомерИсточник, , Рекв.ВидНоменклатуры);
|
||||
Если Не ЗначениеЗаполнено(Занятый) Или Занятый = Сер Тогда
|
||||
Объект.Номер = НомерИсточник;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Объект.Записать();
|
||||
Исключение
|
||||
// Срок карточки не обновлён. Строка остатка всё равно ссылается на найденную серию.
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НомерСерииТолькоЦифры(Номер)
|
||||
|
||||
Если Не ЗначениеЗаполнено(Номер) Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
Для Индекс = 1 По СтрДлина(Номер) Цикл
|
||||
Символ = Сред(Номер, Индекс, 1);
|
||||
Если Символ < "0" Или Символ > "9" Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НайтиИлиСоздатьСерию(СтрТ, Ном, СкладЦель, СуффиксДатыСер, РежимТест,
|
||||
КэшТребуетсяСерия, КэшСерий, Результат)
|
||||
|
||||
@@ -2295,6 +2342,9 @@
|
||||
|
||||
СсылкаПоГуид = СсылкаПоUUID(Справочники.СерииНоменклатуры, СтрТ.СерияИдентификатор);
|
||||
Если ЗначениеЗаполнено(СсылкаПоГуид) И ОбщегоНазначения.СсылкаСуществует(СсылкаПоГуид) Тогда
|
||||
Если Не ЭтоЗаглушка Тогда
|
||||
АктуализироватьСериюСПустымСроком(СсылкаПоГуид, ИмяСерии, ГоденДо, РежимТест);
|
||||
КонецЕсли;
|
||||
Если ЭтоЗаглушка Тогда
|
||||
КэшСерий.Вставить(КлючКэшаСерииЗаглушки(ВидСер, Ном, ГоденДо), СсылкаПоГуид);
|
||||
КонецЕсли;
|
||||
|
||||
Reference in New Issue
Block a user