Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:update:conversion_error_duplicate_key [2020/09/17 09:47]
belkin [Решение проблемы с уникальностью значений ключа в классе База.ПраваПользователя]
ru:update:conversion_error_duplicate_key [2024/02/07 08:17] (текущий)
belkin [Решение проблемы]
Строка 8: Строка 8:
     * "Нарушение уникальности значений ключа 'Владелец,Наименование' класса 'База.ПараметрИмпорта'. Удалите записи, нарушающие уникальность ключа."     * "Нарушение уникальности значений ключа 'Владелец,Наименование' класса 'База.ПараметрИмпорта'. Удалите записи, нарушающие уникальность ключа."
     * "Нарушение уникальности значений ключа 'User,КатегорияПрав' класса 'База.ПраваПользователя'. Удалите записи, нарушающие уникальность ключа."     * "Нарушение уникальности значений ключа 'User,КатегорияПрав' класса 'База.ПраваПользователя'. Удалите записи, нарушающие уникальность ключа."
-  * до версии 5 - выдается сообщение одного из следующих видов (после этого конвертация прерывается):+  * до версии 5 или 5.1 - выдается сообщение одного из следующих видов (после этого конвертация прерывается):
     * "Нарушение уникальности значений ключа 'User,Меню' класса 'База.ПраваНаМеню'. Удалите записи, нарушающие уникальность ключа."     * "Нарушение уникальности значений ключа 'User,Меню' класса 'База.ПраваНаМеню'. Удалите записи, нарушающие уникальность ключа."
 +    * "Нарушение уникальности значений ключа 'Владелец,ТипКонтакта' класса 'БизнесМодель.КонтактыФизЛиц'. Удалите записи, нарушающие уникальность ключа." 
 +    * "Нарушение уникальности значений ключа '**ПереченьПараметровКлюча**' класса '**НазваниеКласса**'. Удалите записи, нарушающие уникальность ключа.", где **ПереченьПараметровКлюча** и **НазваниеКласса** - любые, кроме перечисленных выше. 
 +  * до версии 6.0 - выдается сообщение одного из следующих видов (после этого конвертация прерывается): 
 +    * "Нарушение уникальности значений ключа 'Person' класса 'BizArch.UsersSettings'. Удалите записи, нарушающие уникальность ключа." 
 +    * "Нарушение уникальности значений ключа '**ПереченьПараметровКлюча**' класса '**НазваниеКласса**'. Удалите записи, нарушающие уникальность ключа.", где **ПереченьПараметровКлюча** и **НазваниеКласса** - любые, кроме перечисленных выше.
 ===== Решение проблемы ===== ===== Решение проблемы =====
  
-Вероятно, в исходной базе (в той, что была до конвертирования) имеется дублирование значений тех параметров, для которых ранее не существовало требований уникальности, а теперь эти требования появились.   +Вероятно, в исходной базе (в той, что была до конвертирования) имеется дублирование значений тех параметров, для которых ранее не существовало требований уникальности, а теперь (в новой версии программы) эти требования появились.  
- +
-Для решения проблем 1 и 2 из приведённого выше списка следуйте инструкциям из пункта [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классах_базаколонкаобъекта_и_базапараметримпорта|Решение проблемы с уникальностью значений ключа в классах "База.КолонкаОбъекта" и "База.ПараметрИмпорта"]]. +
- +
-Для решения проблемы 3 из приведённого выше списка следуйте инструкциям из пункта [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_базаправапользователя|Решение проблемы с уникальностью значений ключа в классе "База.ПраваПользователя"]].+
  
-Ссылки на статьи по решения каждой из указанных проблем приведены ниже в тиблице.+Ссылки на статьи по решения каждой из указанных проблем приведены в таблице ниже.
  
 <startTableBox> <startTableBox>
 ^  №  ^  Текст сообщения об ошибке  ^  Рекомендации по решению проблемы  ^ ^  №  ^  Текст сообщения об ошибке  ^  Рекомендации по решению проблемы  ^
-|  1 | Нарушение уникальности значений ключа 'Владелец,РольКолонки' класса 'База.КолонкаОбъекта'. Удалите записи, нарушающие уникальность ключа.  | См. статью [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классах_базаколонкаобъекта_и_базапараметримпорта|Решение проблемы с уникальностью значений ключа в классах "База.КолонкаОбъекта" и "База.ПараметрИмпорта"]] ниже.  |+|  1 | Нарушение уникальности значений ключа 'Владелец,РольКолонки' класса 'База.КолонкаОбъекта'. Удалите записи, нарушающие уникальность ключа.  | См. раздел [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классах_базаколонкаобъекта_и_базапараметримпорта|Решение проблемы с уникальностью значений ключа в классах "База.КолонкаОбъекта" и "База.ПараметрИмпорта"]] ниже.  |
 |  2 | Нарушение уникальности значений ключа 'Владелец,Наименование' класса 'База.ПараметрИмпорта'. Удалите записи, нарушающие уникальность ключа.  | ::: | |  2 | Нарушение уникальности значений ключа 'Владелец,Наименование' класса 'База.ПараметрИмпорта'. Удалите записи, нарушающие уникальность ключа.  | ::: |
-|  3 | Нарушение уникальности значений ключа 'User,КатегорияПрав' класса 'База.ПраваПользователя'. Удалите записи, нарушающие уникальность ключа.  | См. статью [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_базаправапользователя|Решение проблемы с уникальностью значений ключа в классе "База.ПраваПользователя"]] ниже.  | +|  3 | Нарушение уникальности значений ключа 'User,КатегорияПрав' класса 'База.ПраваПользователя'. Удалите записи, нарушающие уникальность ключа.  | См. раздел [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_базаправапользователя|Решение проблемы с уникальностью значений ключа в классе "База.ПраваПользователя"]] ниже.  | 
-|  4 | Нарушение уникальности значений ключа 'User,Меню' класса 'База.ПраваНаМеню'. Удалите записи, нарушающие уникальность ключа.  | См. статью [[]] ниже.  | +|  4 | Нарушение уникальности значений ключа 'User,Меню' класса 'База.ПраваНаМеню'. Удалите записи, нарушающие уникальность ключа.  | См. раздел [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_базаправапользователянаменю|Решение проблемы с уникальностью значений ключа в классе "База.ПраваПользователяНаМеню"]] ниже.  | 
-<endTableBox|Таблица 1Перечень известных ошибоквозникающих при конвертации, и рекомендаций по их решению&gt;+ 5 | Нарушение уникальности значений ключа 'Владелец,ТипКонтакта' класса 'БизнесМодель.КонтактыФизЛиц'. Удалите записи, нарушающие уникальность ключа.  | См. раздел [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_бизнесмодельконтактыфизлиц|Решение проблемы с уникальностью значений ключа в классе "БизнесМодель.КонтактыФизЛиц"]] ниже.  | 
 +|  6 | Нарушение уникальности значений ключа 'Person' класса 'BizArch.UsersSettings'. Удалите записи, нарушающие уникальность ключа.  | См. раздел [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_настройки_пользователей_business_studio_bizarchuserssettings|Решение проблемы с уникальностью значений ключа в классе "Настройки пользователей Business Studio" (BizArch.UsersSettings)]] ниже.  | 
 +| ::: | Нарушение уникальности значений ключа 'Физическое лицо' класса 'Настройки пользователей Business Studio'. Удалите записи, нарушающие уникальность ключа.  | ::: | 
 +|  7 | Текст "Нарушение уникальности значений ключа '**ПереченьПараметровКлюча**' класса '**НазваниеКласса**'. Удалите записи, нарушающие уникальность ключа.", где **ПереченьПараметровКлюча** и **НазваниеКласса** - любые, кроме перечисленных выше.  | Проблему можно решать по аналогии с описанием решения для проблемы [[ru/update/conversion_error_duplicate_key#решение_проблемы_с_уникальностью_значений_ключа_в_классе_базаправапользователянаменю|Решение проблемы с уникальностью значений ключа в классе &quot;База.ПраваПользователяНаМеню"]]. Если при этом возникнут вопросы или сложности, для решения проблемы можно обратиться на техподдержку со страницы Системы интерактивной поддержки [[ru/interactive_support/start_and_install/start_errors/db_operations_errors]].  |
  
 +<endTableBox|Таблица 1. Перечень известных ошибок, возникающих при конвертации, и рекомендаций по их решению>
  
 ==== Решение проблемы с уникальностью значений ключа в классах "База.КолонкаОбъекта" и "База.ПараметрИмпорта" ==== ==== Решение проблемы с уникальностью значений ключа в классах "База.КолонкаОбъекта" и "База.ПараметрИмпорта" ====
  
 == Внимание! == == Внимание! ==
-Описываемый ниже способ исправления проблемы включает в себя удаление записей, что может нарушить логику работы пакетов импорта: ранее для таких ситуаций происходил импорт в одно поле из разных параметров файла (что в целом не совсем верно, но так пакеты ранее настроить было можно), теперь же, начиная с версии 4.2, такую загрузку, если в ней действительно есть необходимость, надо делать через отдельные этапы импорта. Используя приведённую ниже инструкцию, Вы не переделываете пакет импорта под новые требования, а просто исправляете препятствие для конвертации, удаляя дублирующие записи из списков соответствий параметров пакетов импорта. В связи с этим дальнейшем может потребоваться доработка соответствующего пакетов импорта.+Описываемый ниже способ исправления проблемы включает в себя удаление записей, что может нарушить логику работы пакетов импорта: ранее для таких ситуаций происходил импорт в одно поле из разных параметров файла (что в целом не совсем верно, но так пакеты ранее настроить было можно), теперь же, начиная с версии 4.2, такую загрузку, если в ней действительно есть необходимость, надо делать через отдельные этапы импорта. Используя приведённую ниже инструкцию, Вы не переделываете пакет импорта под новые требования, а просто исправляете препятствие для конвертации, удаляя дублирующие записи из списков соответствий параметров пакетов импорта. В связи с этим в дальнейшем может потребоваться доработка соответствующего пакета импорта.
 ===== ===== ===== =====
 \\ \\
Строка 40: Строка 44:
  
   - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).   - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).
-  - Откройте эту базу данных в Business Studio 4.0/4.1 (в зависимости от того, какой версии был бэкап).+  - Откройте эту базу данных в Business Studio той версии, в которой Вы работали до конвертации.
   - Скачайте архив по ссылке под текстом данной статьи, распакуйте его содержимое в отдельную папку. В папке будет 5 файлов, название каждого из них будет содержать версию базы данных.   - Скачайте архив по ссылке под текстом данной статьи, распакуйте его содержимое в отдельную папку. В папке будет 5 файлов, название каждого из них будет содержать версию базы данных.
   - Импортируйте в Вашу базу данных информацию из файла, номер версии в названии которого соответствует номеру версии базы, использующейся в Вашей версии Business Studio (соответствия номеров версий Business Studio можно посмотреть в [[ru/versions/versions|Истории версий]]).   - Импортируйте в Вашу базу данных информацию из файла, номер версии в названии которого соответствует номеру версии базы, использующейся в Вашей версии Business Studio (соответствия номеров версий Business Studio можно посмотреть в [[ru/versions/versions|Истории версий]]).
Строка 69: Строка 73:
 **Для решения проблемы сделайте следующее:** **Для решения проблемы сделайте следующее:**
   - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).   - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).
-  - Откройте эту базу данных в Business Studio 4.0/4.1 (в зависимости от того, какой версии был бэкап)+  - Откройте эту базу данных в Business Studio той версии, в которой Вы работали до конвертации.
   - Откройте справочник "Права пользователя" (см. [[http://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/administration/user_rights#назначение_категории_прав_пользователю|здесь]]).   - Откройте справочник "Права пользователя" (см. [[http://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/administration/user_rights#назначение_категории_прав_пользователю|здесь]]).
   - Отобразите колонки "User" и "Категория прав" (с помощью команды меню "Действия - Настройка колонок" вызовите окно настройки, отметьте эти строки флажками и нажмите кнопку "Применить") и отсортируйте справочник по колонке "User" кликом левой клавиши мыши по заголовку колонки.   - Отобразите колонки "User" и "Категория прав" (с помощью команды меню "Действия - Настройка колонок" вызовите окно настройки, отметьте эти строки флажками и нажмите кнопку "Применить") и отсортируйте справочник по колонке "User" кликом левой клавиши мыши по заголовку колонки.
Строка 76: Строка 80:
   - Сделайте резервную копию базы данных (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/create_backup|Сохранение базы данных в файл]]).   - Сделайте резервную копию базы данных (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/create_backup|Сохранение базы данных в файл]]).
   - Попробуйте провести конвертацию этой базы данных.   - Попробуйте провести конвертацию этой базы данных.
 +
 +==== Решение проблемы с уникальностью значений ключа в классе "База.ПраваПользователяНаМеню" ====
 +
 +**Для решения проблемы сделайте следующее:**
 +  - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).
 +  - Откройте эту базу данных в Business Studio той версии, в которой Вы работали до конвертации.
 +  - Откройте справочник "Права пользователя на меню" (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/administration/user_rights#разрешение_на_доступ_к_меню"|здесь]]) .
 +  - Отобразите колонки "Пользователь" и "Меню" (с помощью команды меню "Действия - Настройка колонок" вызовите окно настройки, отметьте эти строки флажками и нажмите кнопку "Применить") и отсортируйте справочник по колонке "User" кликом левой клавиши мыши по заголовку колонки.
 +  - Найдите записи-дубли с одинаковыми значениями в обеих этих колонках и удалите их, оставляя по 1 строке для каждой такой ситуации.
 +  - Сделайте резервную копию базы данных (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/create_backup|Сохранение базы данных в файл]]).
 +  - Попробуйте провести конвертацию этой базы данных.
 +
 +==== Решение проблемы с уникальностью значений ключа в классе "БизнесМодель.КонтактыФизЛиц" ====
 +
 +**Для решения проблемы сделайте следующее:**
 +  - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).
 +  - Откройте эту базу данных в Business Studio той версии, в которой Вы работали до конвертации.
 +  - Откройте справочник "БизнесМодель.КонтактыФизЛиц" (в Главном меню пункт "Справочники - Все справочники", в открывшемся окне вызовите окно поиска сочетанием клавиш "Ctrl+F", проведите поиск по **БизнесМодель.КонтактыФизЛиц**, откройте найденный справочник).
 +  - Включите возможность редактировать значения полей из окна справочника (с помощью команды меню "Действия - Редактирование значений колонок").
 +  - Отобразите колонки "Владелец" и "Тип контакта" (с помощью команды меню "Действия - Настройка колонок" вызовите окно настройки, отметьте эти строки флажками и нажмите кнопку "Применить") и отсортируйте справочник по колонке "Владелец" кликом левой клавиши мыши по заголовку колонки.
 +  - Найдите записи-дубли с одинаковыми значениями в обеих этих колонках, после этого:
 +    * Для тех из этих записей, у которых также полностью идентичны значения в поле "Контакт" - удалите лишние записи, оставляя по 1 строке для каждой такой ситуации.
 +    * Для тех из этих записей, у которых также значения в поле "Контакт" разные - скорее всего требуется сохранить все такие контакты. Для того, чтобы это сделать, нужно устранить проблему с уникальностью значения ключа. Это делается путем выбора для данной строки другого типа контакта той же категории (например, можно создать для электронной почты типы контакта "Электронная почта 2" и "Электронная почта 3" с категорией "Почта" и назначать их дублирующим контактам электронной почты одного и того же физлица): \\ {{ ru/update/conversion_error_duplicate_key/conversion_error_duplicate_key_01.png?nolink }}   
 +  - Сделайте резервную копию базы данных (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/create_backup|Сохранение базы данных в файл]]).
 +  - Попробуйте провести конвертацию этой базы данных.
 +
 +==== Решение проблемы с уникальностью значений ключа в классе "Настройки пользователей Business Studio" (BizArch.UsersSettings) ====
 +
 +**Для решения проблемы сделайте следующее:**
 +  - Восстановите базу данных из сделанной перед конвертацией резервной копии (см. [[https://www.businessstudio.ru/help/docs/current/doku.php/ru/manual/install/dbcontrol/load_db_from_backup|Загрузка базы данных из файла]]).
 +  - Откройте эту базу данных в Business Studio той версии, в которой Вы работали до конвертации.
 +  - Откройте справочник "Настройки пользователей Business Studio" (Главное меню - Справочники - Все справочники - включить флажок "Показать все", Самостоятельные объекты - Настройки пользователей - Настройки пользователей Business Studio).
 +  - Отобразите колонку "Физическое лицо", если она у вас не выведена на показ (с помощью команды меню "Действия - Настройка колонок" вызовите окно настройки, отметьте эту строку флажком и нажмите кнопку "Применить"), и отсортируйте справочник по колонке "Физическое лицо" кликом левой клавиши мыши по заголовку колонки.
 +  - Найдите записи-дубли с одинаковым значением в этой колонке и решите проблему дублирования одним из следующих способов: 
 +    - Удалите некорректную запись/записи (если такая/такие есть). 
 +    - Смените физлицо для записи/записей на другое/другие, чтобы избежать дублирования.
 +  - Повторите предыдущий пункт для всех дублей.
 +  - Сделайте резервную копию базы данных (см. [[https://www.businessstudio.ru/wiki/docs/current/doku.php/ru/manual/install/dbcontrol/create_backup|Сохранение базы данных в файл]]).
 +  - Попробуйте провести конвертацию этой базы данных.
 +
 +
 +{{tag>"Business Studio 4.2" "Business Studio 5" "Business Studio 6" }}
 +
 +
 +
  
  
-{{tag&gt;&quot;Business Studio 4.2&quot; "Business Studio 5"}}+[&lt;contextnavigator&gt;
 +{(rater&gt;id=ru_update_conversion_error_duplicate_key|name=В процессе конвертации базы выдается сообщение "Нарушение уникальности значений ключа"|type=vote|trace=ip|img=:taggic.png|headline=off)}
Driven by DokuWiki