diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bb424e..ee909b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ --- +## 1.3.1.87 (2026-08-19) + +### РК_ПроверкаСерий — группы строк серии и синхронизация значений (#17 / #14) + +- В таблицу `ПроблемныеСерии` добавлены колонки `НГ` и `КГ`: номер группы уникальной серии и количество строк этой серии в таблице. +- После применения предложенных значений и после исправления строки значения серии (`Номер`, `ГоденДо`, `Наименование`, предложенные поля, признак исправления) синхронизируются во всех строках той же серии. + ## 1.3.1.86 (2026-08-19) ### РК_ПроверкаСерий — приоритет автономера из срока (#17) diff --git a/VERSION b/VERSION index aa1e57d..bd8e420 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.1.86 +1.3.1.87 diff --git a/src/ConfigDumpInfo.xml b/src/ConfigDumpInfo.xml index 48752fb..baeb54b 100644 --- a/src/ConfigDumpInfo.xml +++ b/src/ConfigDumpInfo.xml @@ -237,6 +237,8 @@ + + diff --git a/src/Configuration.xml b/src/Configuration.xml index f62cd83..12a116d 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -62,7 +62,7 @@ Role.РК_ОсновнаяРоль - 1.3.1.86 + 1.3.1.87 Language.Русский diff --git a/src/DataProcessors/РК_ПроверкаСерий.xml b/src/DataProcessors/РК_ПроверкаСерий.xml index d2b101a..30f3d5c 100644 --- a/src/DataProcessors/РК_ПроверкаСерий.xml +++ b/src/DataProcessors/РК_ПроверкаСерий.xml @@ -759,6 +759,88 @@ Auto + + + НомерГруппы + + + ru + НГ + + + + + xs:decimal + + 10 + 0 + Nonnegative + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + + + + + КоличествоВГруппе + + + ru + КГ + + + + + xs:decimal + + 10 + 0 + Nonnegative + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + + diff --git a/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form.xml b/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form.xml index e843485..1105996 100644 --- a/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form.xml +++ b/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form.xml @@ -198,6 +198,22 @@ + + Объект.ПроблемныеСерии.НомерГруппы + true + EnterOnInput + 4 + + + + + Объект.ПроблемныеСерии.КоличествоВГруппе + true + EnterOnInput + 4 + + + Объект.ПроблемныеСерии.Серия true diff --git a/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form/Module.bsl b/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form/Module.bsl index fbd7f80..5b45a25 100644 --- a/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form/Module.bsl +++ b/src/DataProcessors/РК_ПроверкаСерий/Forms/Форма/Ext/Form/Module.bsl @@ -302,6 +302,8 @@ СоответствиеИмен = Новый Соответствие; СоответствиеИмен.Вставить("ПроблемныеСерииОтметка", "Отметка"); СоответствиеИмен.Вставить("ПроблемныеСерииПорядковыйНомер", "ПорядковыйНомер"); + СоответствиеИмен.Вставить("ПроблемныеСерииНомерГруппы", "НомерГруппы"); + СоответствиеИмен.Вставить("ПроблемныеСерииКоличествоВГруппе", "КоличествоВГруппе"); СоответствиеИмен.Вставить("ПроблемныеСерииСерия", "Серия"); СоответствиеИмен.Вставить("ПроблемныеСерииОстаток", "Остаток"); СоответствиеИмен.Вставить("ПроблемныеСерииПроблема", "Проблема"); @@ -414,6 +416,7 @@ КонецЦикла; Объект.ПроблемныеСерии.Сортировать("Остаток Убыв, ПорядковыйНомер"); + ОбновитьГруппыСтрокПоСериям(); Возврат Объект.ПроблемныеСерии.Количество(); КонецФункции @@ -478,6 +481,8 @@ НовСтр = Объект.ПроблемныеСерии.Добавить(); НовСтр.Отметка = Истина; НовСтр.ПорядковыйНомер = НомерСтроки; + НовСтр.НомерГруппы = 0; + НовСтр.КоличествоВГруппе = 0; НовСтр.Серия = ДанныеСтроки.Серия; НовСтр.Номенклатура = НоменклатураСерииИзСоответствия( ОстаткиИНоменклатура.Номенклатура, ДанныеСтроки.Серия); @@ -546,6 +551,7 @@ Если ИзмененийВСтроке > 0 Тогда Заполнено = Заполнено + 1; + СинхронизироватьСтрокиСерии(Стр.Серия, Стр); КонецЕсли; КонецЦикла; @@ -703,6 +709,7 @@ Если Объект.РежимТест Тогда Стр.Исправлено = Истина; Результат.Исправлено = Результат.Исправлено + 1; + СинхронизироватьСтрокиСерии(Стр.Серия, Стр); Иначе ОбСерии = Стр.Серия.ПолучитьОбъект(); Если Не ЗначениеЗаполнено(СокрЛП(Стр.Номер)) @@ -723,6 +730,7 @@ Стр.ГоденДо = ОбСерии.ГоденДо; Стр.Наименование = ОбСерии.Наименование; Результат.Исправлено = Результат.Исправлено + 1; + СинхронизироватьСтрокиСерии(Стр.Серия, Стр); КонецЕсли; Исключение Стр.Комментарий = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); @@ -767,6 +775,61 @@ КонецФункции +&НаСервере +Процедура СинхронизироватьСтрокиСерии(Серия, ИсточникСтрока) + + Если Не ЗначениеЗаполнено(Серия) Тогда + Возврат; + КонецЕсли; + + Для Каждого СтрСерии Из Объект.ПроблемныеСерии Цикл + Если СтрСерии.Серия <> Серия Тогда + Продолжить; + КонецЕсли; + Если СтрСерии = ИсточникСтрока Тогда + Продолжить; + КонецЕсли; + + СтрСерии.Номер = ИсточникСтрока.Номер; + СтрСерии.ГоденДо = ИсточникСтрока.ГоденДо; + СтрСерии.Наименование = ИсточникСтрока.Наименование; + СтрСерии.ПредложенныйНомер = ИсточникСтрока.ПредложенныйНомер; + СтрСерии.ПредложенныйГоденДо = ИсточникСтрока.ПредложенныйГоденДо; + СтрСерии.ПредложенноеНаименование = ИсточникСтрока.ПредложенноеНаименование; + СтрСерии.Исправлено = ИсточникСтрока.Исправлено; + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьГруппыСтрокПоСериям() + + СчетчикиСтрок = Новый Соответствие; + НомераГрупп = Новый Соответствие; + СледующийНомерГруппы = 0; + + Для Каждого Стр Из Объект.ПроблемныеСерии Цикл + КлючСерии = Строка(Стр.Серия); + Количество = СчетчикиСтрок.Получить(КлючСерии); + Если Количество = Неопределено Тогда + Количество = 0; + КонецЕсли; + СчетчикиСтрок.Вставить(КлючСерии, Количество + 1); + + Если НомераГрупп.Получить(КлючСерии) = Неопределено Тогда + СледующийНомерГруппы = СледующийНомерГруппы + 1; + НомераГрупп.Вставить(КлючСерии, СледующийНомерГруппы); + КонецЕсли; + КонецЦикла; + + Для Каждого Стр Из Объект.ПроблемныеСерии Цикл + КлючСерии = Строка(Стр.Серия); + Стр.НомерГруппы = НомераГрупп.Получить(КлючСерии); + Стр.КоличествоВГруппе = СчетчикиСтрок.Получить(КлючСерии); + КонецЦикла; + +КонецПроцедуры + &НаСервере Функция НастройкиСерийВида(ВидНоменклатуры, КэшНастроек)