🪲 Проверка корректности данных в справочнике серий #14

Open
opened 2026-08-17 06:59:13 +00:00 by mk · 3 comments
Owner

В целевой ИБ crm3 (конфигурация crm3-26, в исходном тексте ошибочно crm2-26) в Справочник.СерииНоменклатуры есть ошибки данных: не заполнены номера и/или сроки годности.

Нужна обработка РК_ПроверкаСерий — форма проверки и корректировки серий.

Связанная задача: #15 (объединение дублей, отдельная вкладка).


Реализация (вкладка «Заполнение реквизитов»)

Обработка: РК_ПроверкаСерий. Учитываются настройки вида (ИспользоватьНомерСерии, ИспользоватьСрокГодностиСерии).

Порядок работы:

  1. Найти проблемы — таблица ПроблемныеСерии (№, серия, остаток, проблема, номенклатура, вид, текущие и предложенные реквизиты).
  2. Сформировать предложения — номер и срок из наименования; номенклатура из остатков/движений (без записи в ИБ).
  3. Заполнить по предложениям — перенос Предложенный* в колонки Номер / ГоденДо / Наименование.
  4. Исправить отмеченные — запись в справочник (сначала Режим тест).

Анализ: отбор «Только с остатком», поиск по строке, сортировка по остатку и по текущей колонке. Поле Последняя ошибка — полный текст для копирования.

Остатки: ТоварыНаСкладах.Остатки (ВНаличии). Регистр ДвиженияСерийТоваров оборотный, виртуальной таблицы .Остатки нет.

Номенклатура: у серии нет Владелец; заполняется из ТоварыНаСкладах, иначе из ДвиженияСерийТоваров.


Версии

Версия Коммит Содержание
1.3.1.70 890cf22 форма поиска и исправления
1.3.1.73 498d5e0 убран Сер.Владелец; копируемый текст ошибки
1.3.1.74 666688e не перезаписывать параметр наименования выборки
1.3.1.75 64b026e №, остаток; «Заполнить по предложениям»
1.3.1.76 76f5be2 ПорядковыйНомер вместо зарезервированного НомерСтроки
1.3.1.77 968e73e остатки из ТоварыНаСкладах
1.3.1.78 3e4f913 отбор/сортировка; «Сформировать предложения»; номенклатура; разбор даты

XML-hotfix 1.3.1.72 (cf9f49d) и вкладка дублей 1.3.1.71 — см. #15.


Критерии приёмки

  • «Найти проблемы» заполняет таблицу с учётом настроек вида
  • Видны остаток и номенклатура (если есть в регистрах)
  • «Сформировать предложения» заполняет Предложенный*
  • «Заполнить по предложениям» переносит значения в колонки таблицы без записи в ИБ
  • Режим тест не пишет в справочник; запись — только отмеченные строки
  • Отбор по остатку и сортировка работают
В целевой ИБ `crm3` (конфигурация **crm3-26**, в исходном тексте ошибочно `crm2-26`) в `Справочник.СерииНоменклатуры` есть ошибки данных: не заполнены номера и/или сроки годности. Нужна обработка **`РК_ПроверкаСерий`** — форма проверки и корректировки серий. Связанная задача: **#15** (объединение дублей, отдельная вкладка). --- ## Реализация (вкладка «Заполнение реквизитов») Обработка: `РК_ПроверкаСерий`. Учитываются настройки вида (`ИспользоватьНомерСерии`, `ИспользоватьСрокГодностиСерии`). **Порядок работы:** 1. **Найти проблемы** — таблица `ПроблемныеСерии` (№, серия, остаток, проблема, номенклатура, вид, текущие и предложенные реквизиты). 2. **Сформировать предложения** — номер и срок из наименования; номенклатура из остатков/движений (без записи в ИБ). 3. **Заполнить по предложениям** — перенос `Предложенный*` в колонки `Номер` / `ГоденДо` / `Наименование`. 4. **Исправить отмеченные** — запись в справочник (сначала **Режим тест**). **Анализ:** отбор «Только с остатком», поиск по строке, сортировка по остатку и по текущей колонке. Поле **Последняя ошибка** — полный текст для копирования. **Остатки:** `ТоварыНаСкладах.Остатки` (`ВНаличии`). Регистр `ДвиженияСерийТоваров` оборотный, виртуальной таблицы `.Остатки` нет. **Номенклатура:** у серии нет `Владелец`; заполняется из `ТоварыНаСкладах`, иначе из `ДвиженияСерийТоваров`. --- ## Версии | Версия | Коммит | Содержание | |--------|--------|------------| | 1.3.1.70 | `890cf22` | форма поиска и исправления | | 1.3.1.73 | `498d5e0` | убран `Сер.Владелец`; копируемый текст ошибки | | 1.3.1.74 | `666688e` | не перезаписывать параметр наименования выборки | | 1.3.1.75 | `64b026e` | №, остаток; «Заполнить по предложениям» | | 1.3.1.76 | `76f5be2` | `ПорядковыйНомер` вместо зарезервированного `НомерСтроки` | | 1.3.1.77 | `968e73e` | остатки из `ТоварыНаСкладах` | | 1.3.1.78 | `3e4f913` | отбор/сортировка; «Сформировать предложения»; номенклатура; разбор даты | XML-hotfix 1.3.1.72 (`cf9f49d`) и вкладка дублей 1.3.1.71 — см. #15. --- ## Критерии приёмки - [ ] «Найти проблемы» заполняет таблицу с учётом настроек вида - [ ] Видны остаток и номенклатура (если есть в регистрах) - [ ] «Сформировать предложения» заполняет `Предложенный*` - [ ] «Заполнить по предложениям» переносит значения в колонки таблицы без записи в ИБ - [ ] Режим тест не пишет в справочник; запись — только отмеченные строки - [ ] Отбор по остатку и сортировка работают
Member

Актуализация по тестированию вкладки «Заполнение реквизитов» (текущая версия расширения 1.3.1.78, 3e4f913).

Исправлено при загрузке и поиске:

  • нет поля Владелец у серий crm3-26;
  • ошибка записи в Наименование выборки запроса;
  • имя НомерСтроки зарезервировано — колонка № = ПорядковыйНомер;
  • остатки не из ДвиженияСерийТоваров.Остатки (оборотный регистр), а из ТоварыНаСкладах.

Сейчас на форме:

  • отбор «Только с остатком», поиск, сортировка по остатку / по текущей колонке;
  • номенклатура из остатков (или из движений серий);
  • отдельная кнопка Сформировать предложения (генерация Предложенный*);
  • Заполнить по предложениям — только перенос в колонки таблицы;
  • Исправить отмеченные — запись в справочник.

Описание issue обновлено. Объединение дублей — #15.

Актуализация по тестированию вкладки **«Заполнение реквизитов»** (текущая версия расширения **1.3.1.78**, `3e4f913`). **Исправлено при загрузке и поиске:** - нет поля `Владелец` у серий crm3-26; - ошибка записи в `Наименование` выборки запроса; - имя `НомерСтроки` зарезервировано — колонка **№** = `ПорядковыйНомер`; - остатки не из `ДвиженияСерийТоваров.Остатки` (оборотный регистр), а из `ТоварыНаСкладах`. **Сейчас на форме:** - отбор «Только с остатком», поиск, сортировка по остатку / по текущей колонке; - номенклатура из остатков (или из движений серий); - отдельная кнопка **Сформировать предложения** (генерация `Предложенный*`); - **Заполнить по предложениям** — только перенос в колонки таблицы; - **Исправить отмеченные** — запись в справочник. Описание issue обновлено. Объединение дублей — #15.
Author
Owner

Сейчас при открытии обработки Проверка серий - ошибка:

Ошибка инициализации модуля: crm326RHANA Обработка.РК_ПроверкаСерий.Форма.Форма.Форма
по причине:
{crm326RHANA Обработка.РК_ПроверкаСерий.Форма.Форма.Форма(878,11)}: Процедура или функция с указанным именем не определена (ДеньМесяца)
			День = <<?>>ДеньМесяца(КонецМесяца(Дата(Год, Месяц, 1)));
[ОшибкаКомпиляцииВстроенногоЯзыка]
Сейчас при открытии обработки Проверка серий - ошибка: ``` Ошибка инициализации модуля: crm326RHANA Обработка.РК_ПроверкаСерий.Форма.Форма.Форма по причине: {crm326RHANA Обработка.РК_ПроверкаСерий.Форма.Форма.Форма(878,11)}: Процедура или функция с указанным именем не определена (ДеньМесяца) День = <<?>>ДеньМесяца(КонецМесяца(Дата(Год, Месяц, 1))); [ОшибкаКомпиляцииВстроенногоЯзыка] ```
Member

Исправлено в 1.3.1.79 (5d2d0a2).

Причина: в языке 1С нет ДеньМесяца. Для последнего дня месяца нужен День(КонецМесяца(...)). Локальные переменные День/Месяц/Год переименованы, чтобы не затенять одноимённые функции платформы.

git pull → перезагрузить расширение из файлов.

Исправлено в **1.3.1.79** (`5d2d0a2`). Причина: в языке 1С нет `ДеньМесяца`. Для последнего дня месяца нужен `День(КонецМесяца(...))`. Локальные переменные `День`/`Месяц`/`Год` переименованы, чтобы не затенять одноимённые функции платформы. `git pull` → перезагрузить расширение из файлов.
Sign in to join this conversation.