Часто помилки виникають при оновленні конфігурації, - особливо якщо оновлення "перескакує" через кілька релізів. Розглянемо причину появи і як виправити помилку 1С "Записи реєстру відомостей стали неунікальні".
зміст
- 1 відображення помилки
- 2 Програмні вимоги до регістрів
- 3 зміна структури
- 4 ручне виправлення
- 5 пропущений реліз
- 6 метод порівняння
- 7 Автовидалення 1
- 8 Автовидалення 2
відображення помилки
Подібна помилка може мати два ідентичних відображення від системи 1С:
Суть цієї помилки полягає в тому, що після чергового оновлення змінився склад вимірювань для одного з регістрів (або декількох).
Програмні вимоги до регістрів
Ми знаємо, що регістр (register, англ.) Відомостей формується для зберігання у вигляді записів (рядків). Кожна з них характеризується видами вимірювань (профілями) і ресурсів.
Вимірювання характеризують розрізи (типи), в яких зберігаються дані. А ресурси- безпосередньо містять їх значення.
Наприклад, register відомостей "Ціни товарів" має структуру, що складається з двох видів профілів ( "Товар", "Відци") і одного ресурсу ( "Ціна"):
Структура товарів в 1С
Таким чином, рядки регістру в базі даних будуть виглядати так:
Рядки регістра в реєстрі
Крім того, при створенні запису їй присвоюється унікальний ключ. Формування його системою відбувається автоматично.
Однаковими вважаються такі записи, ключі яких ідентичні.
ВАЖЛИВО. Отже - кожен register має один і тільки єдиний набір профілів. Рядки цього регістра повинні відповідати цьому набору.зміна структури
Розглянемо ще один приклад.
В один час розробником був створений реєстр "ОтветственниеЛіцаПоСкладам" структурно складається з двох вимірювань ( "Склад" і "Приміщення") і одного ресурсу ( "Відповідальний").
В подальшому кимось було прийнято рішення про те, що така деталізація є зайвою. Це рішення відбилося в черговому релізі.
І тепер оновлений register має тільки єдиний профіль і ресурс:
Новий вид структури товарів
Структура його змінилася. Але рядки залишилися!
І в них зазначено, що для профілю "Приміщення" - є відповідальні (ресурси). Але що з ними робити при переході на новий реліз - сама програма без користувача таке завдання не вирішить.
Тому з'являється помилка 1С: "записи регістру відомостей стали неунікальні". Може бути така - є записи з однаковими вимірами.
ручне виправлення
Сенс цих повідомлень зводиться до того, що нова структура містить кілька рядків із зайвими вимірами і їх потрібно згорнути в одну:
Кілька записів з одним значенням
В цьому випадку потрібно видалити ті, які відповідають тепер уже непотрібним профілів.
Зазвичай при використанні типових конфігурацій таке завдання вирішується розробниками на програмному рівні. І згортання відбувається автоматично при оновленні.
пропущений реліз
Можливим вирішенням проблеми буде, якщо знову встановлену конфігурацію відкотити назад (шляхом відновлення архівної копії), а потім оновитися заново (вже без пропуску пропущених релізів).
метод порівняння
Найважче ситуація складається, коли оновлення відбувається з пропуском кількох релізів. Або попередню конфігурацію була доопрацьованій. Тут також виникає необхідність згортання рядків. Але складність полягає в пошуку загублених вимірювань і реквізитів.
Для вирішення такого завдання потрібно увійти в режим "Конфігурація" і виконати команду "Порівняти конфігурації":
порівняння конфігурацій
Після цього видалити знайдені за допомогою консолі запитів неунікальні рядки.
При невеликій їх кількості це нескладно зробити вручну.
Автовидалення 1
Для програмного видалення дуже великої кількості неунікальний рядків можна скористатися обробкою, запропонованої Євгенією Карук:
Програмне видалення дублів
- Спочатку завантажити і відкрити обробку;
- Відкрити register відомостей з неунікальні рядками;
- Відзначити ті з вимірювань, які потрібно видалити в результаті поновлення;
- Дати команду натисканням "Згорнути дублі".
Дублі рядків будуть знайдені обробкою і згорнуті в одну.
Після проведення обробки оновлення конфігурації буде проведено коректно.
Також можна використовувати обробку для перевірки наявність дублів без зміни даних (для тестування або перевірки):
Перевірка на наявність дублів
Автовидалення 2
Інша обробка для тієї ж мети запропонована іншим фахівцем у цій галузі - Павлом Чистовим (для мобільного варіанту не підтримується).
Ми розглянули причини появи і методи виправлення помилок, пов'язаних з порушеннями структури рядків. Тепер ви знаєте, що проявляються вони при накладанні однієї конфігурації на іншу.
Коментуйте наші публікації.Описувати свій досвід у вирішенні проблемних питань.