Помилки неунікальності записів в 1С

Часто помилки виникають при оновленні конфігурації, - особливо якщо оновлення «перескакує» через кілька релізів. Розглянемо причину появи і як виправити помилку 1С «Записи регістра відомостей стали неунікальні».

відображення помилки

Подібна помилка може мати два ідентичних відображення від системи 1С:

Суть цієї помилки полягає в тому, що після чергового оновлення змінився склад вимірювань для одного з регістрів (або декількох).

Програмні вимоги до регістрів

Ми знаємо, що регістр (register, англ.) Відомостей формується для зберігання у вигляді записів (рядків). Кожна з них характеризується видами вимірювань (профілями) і ресурсів.

Вимірювання характеризують розрізи (типи), в яких зберігаються дані. А ресурси- безпосередньо містять їх значення.

Наприклад, register відомостей «Ціни товарів» має структуру, що складається з двох видів профілів ( «Товар», «Відци») і одного ресурсу ( «Ціна»):

Структура товарів в 1С

Таким чином, рядки регістру в базі даних будуть виглядати так:

Рядки регістра в реєстрі

Крім того, при створенні запису їй присвоюється унікальний ключ. Формування його системою відбувається автоматично.

Однаковими вважаються такі записи, ключі яких ідентичні.

ВАЖЛИВО. Отже - кожен register має один і тільки єдиний набір профілів. Рядки цього регістра повинні відповідати цьому набору.

зміна структури

Розглянемо ще один приклад.

В один час розробником був створений реєстр «ОтветственниеЛіцаПоСкладам» структурно складається з двох вимірювань ( «Склад» і «Приміщення») і одного ресурсу ( «Відповідальний»).

В подальшому кимось було прийнято рішення про те, що така деталізація є зайвою. Це рішення відбилося в черговому релізі.

І тепер оновлений register має тільки єдиний профіль і ресурс:

Новий вид структури товарів

Структура його змінилася. Але рядки залишилися!

І в них зазначено, що для профілю «Приміщення» - є відповідальні (ресурси). Але що з ними робити при переході на новий реліз - сама програма без користувача таке завдання не вирішить.

Тому з'являється помилка 1С: «записи регістру відомостей стали неунікальні». Може бути така - є записи з однаковими вимірами.

ручне виправлення

Сенс цих повідомлень зводиться до того, що нова структура містить кілька рядків із зайвими вимірами і їх потрібно згорнути в одну:

Кілька записів з одним значенням

В цьому випадку потрібно видалити ті, які відповідають тепер уже непотрібним профілів.

Зазвичай при використанні типових конфігурацій таке завдання вирішується розробниками на програмному рівні. І згортання відбувається автоматично при оновленні.

пропущений реліз

Можливим вирішенням проблеми буде, якщо знову встановлену конфігурацію відкотити назад (шляхом відновлення архівної копії), а потім оновитися заново (вже без пропуску пропущених релізів).

метод порівняння

Найважче ситуація складається, коли оновлення відбувається з пропуском кількох релізів. Або попередню конфігурацію була доопрацьованій. Тут також виникає необхідність згортання рядків. Але складність полягає в пошуку загублених вимірювань і реквізитів.

Для вирішення такого завдання потрібно увійти в режим «Конфігурація» і виконати команду «Порівняти конфігурації»:

порівняння конфігурацій

Після цього видалити знайдені за допомогою консолі запитів неунікальні рядки.

При невеликій їх кількості це нескладно зробити вручну.

Автовидалення 1

Для програмного видалення дуже великої кількості неунікальний рядків можна скористатися обробкою, запропонованої Євгенією Карук:

Програмне видалення дублів

  • Спочатку завантажити і відкрити обробку;
  • Відкрити register відомостей з неунікальні рядками;
  • Відзначити ті з вимірювань, які потрібно видалити в результаті поновлення;
  • Дати команду натисканням «Згорнути дублі».

Дублі рядків будуть знайдені обробкою і згорнуті в одну.

Після проведення обробки оновлення конфігурації буде проведено коректно.

Також можна використовувати обробку для перевірки наявність дублів без зміни даних (для тестування або перевірки):

Перевірка на наявність дублів

Автовидалення 2

Інша обробка для тієї ж мети запропонована іншим фахівцем у цій галузі - Павлом Чистовим (для мобільного варіанту не підтримується).

Ми розглянули причини появи і методи виправлення помилок, пов'язаних з порушеннями структури рядків. Тепер ви знаєте, що проявляються вони при накладанні однієї конфігурації на іншу.

Коментуйте наші публікації. Описувати свій досвід у вирішенні проблемних питань.