Регистры сведений перед обновлением: какие записи станут дублями
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обновление конфигурации падает с "Записи регистра сведений стали неуникальными: <Регистр>" или "<Регистр>. Имеются записи с одинаковыми измерениями". Платформа называет только первый такой регистр. Почистили его, запустили снова, упало на следующем. Обработка заранее, до обновления, проверяет все регистры сведений с изменённым ключом и показывает, где записи совпадут по измерениям и какие именно.
Что делает
- Снимает слепок регистров сведений в базе с новой конфигурацией: измерения, их типы с длиной и точностью, периодичность, режим записи. Это JSON-файл без данных.
- В рабочей базе сравнивает текущую структуру со слепком и находит регистры, у которых меняется ключ.
- По каждому изменению пересчитывает, во что превратятся старые значения, и ищет записи, которые совпадут по полному новому ключу: все измерения и период.
- Показывает все такие регистры сразу, с группами записей, а не первый, на котором остановится обновление.
- Только читает данные методами платформы, ничего не записывает и не чистит.
Как пользоваться
- В любой базе, где уже стоит новая конфигурация, открыть обработку и нажать "Снять слепок". Подойдёт пустая база, созданная из файла поставки новой версии, или база разработчика. Копию рабочей базы для этого шага обновлять не нужно.
- В рабочей базе со старой конфигурацией нажать "Проверить" и выбрать этот файл.
На форме задаётся бюджет в минутах (0 - без лимита) и сколько примеров групп показывать на регистр. Примеры ограничивают только показ, подсчёт групп и строк идёт полностью.
Что видно в результате
Крупно над таблицей: сколько групп записей станут дублями, сколько исходных строк в них попало, в скольких регистрах, сколько регистров проверено частично и сколько проверить не удалось. По каждому регистру:
- что поменялось в ключе, например "периодичность: День -> Месяц" или "Строка(200) -> Строка(7)";
- итог: "будут дубли", "дублей не найдено", "не проверено" с причиной или, для регистров с разделением данных, "в общей области дублей нет; другие области не проверены";
- число групп и строк и примеры групп: какие записи совпадут и какое значение у них станет общим.
Исходные строки - это все записи, попавшие в группы. Если из каждой группы оставить одну запись, лишних будет строки минус группы. Какую оставить, решает человек.
На вкладке "Не проверено" каждый регистр с причиной: измерение удалено или переименовано, режим записи сменился, тип сменился так, что пересчитать значения нельзя, нет права чтения. Такой регистр никогда не попадает в "дублей не найдено". Если кончился бюджет времени, регистр получает "не проверено: неполный подсчёт".
Результат копируется в Markdown для переписки или нейросети, числа и причины там те же, что на форме.
Какие изменения пересчитывает
| Изменение измерения | Во что превращается старое значение |
|---|---|
| из составного типа убран тип, тип остался составным | значения убранного типа становятся Неопределено и совпадают с уже записанными Неопределено |
| составной тип стал одним ссылочным типом | значения других типов становятся пустой ссылкой оставшегося типа |
| строка укорочена | обрезается, хвостовые пробелы не различаются: "ABCD " и "ABCD" одно значение |
| меньше знаков после запятой | обычное округление, половина уходит от нуля: 1,4 и 0,6 оба становятся 1, -1,5 становится -2 |
| меньше целых разрядов | положительное значение, которое не влезает, становится максимумом: 12345,678 при Число(5,3) даёт 99,999 |
| периодичность укрупнена | период сдвигается к началу нового интервала: 05.01 и 20.01 при "по месяцам" оба 01.01 |
| строка стала числом | "012" становится 12, "abc" становится 0 |
| регистр подчинён регистратору, непериодический | регистратор в ключ не входит, дубли ищутся по измерениям во всех документах |
Добавление типа в составной и удлинение строки переменной длины значения не меняют, такие регистры не читаются. Отрицательные числа при уменьшении разрядности и всё, чего нет в таблице, уходят в "не проверено" с причиной.
Ограничения
- Измерения сопоставляются по имени. Если измерение удалили и создали заново с тем же именем, платформа перенесёт данные иначе, и прогноз по этому регистру будет неверным.
- Разделение данных. Если разделение по областям выключено константой
ИспользоватьРазделениеПоОбластямДанных, обработка проверяет общую область данных. Записи других областей, если база когда-то работала в режиме сервиса, запросом не видны, поэтому такой регистр проверен частично и не получает "дублей не найдено". Если разделение включено, регистр получает "не проверено". - Только совпадения ключа. Другие причины, по которым обновление может не пройти, обработка не ищет.
- Среда. Правила преобразования подтверждены для платформы 8.3.27, MS SQL и обновления конфигуратором. Для PostgreSQL, обновления через ibcmd, динамического обновления и регистров расширений они не подтверждены, об этом сказано в шапке результата.
Права
Нужно право чтения регистров. Если права чтения нет или у пользователя есть ограничение доступа к записям регистра, регистр получает "не проверено".
Управляемые формы, тонкий и веб-клиент, без модальных окон. Режим совместимости конфигурации 8.3.10 и новее. Внутри обработки есть "Частые вопросы" с теми же правилами и ограничениями.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.22.67
Вступайте в нашу телеграмм-группу Инфостарт