Ошибки неуникальности имен при конвертации. Возможные проблемы и пути их решения

22 3

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

1. В конвертируемой БД есть реквизит с таким же именем, как в новой стандартной разработке.

Для решения данной ситуации нужно:

1) Открыть компоненту «Реквизиты справочников» или «Реквизиты электронных документов»;

2) Создать новый реквизит так, чтобы новые имя и имя поля начинались с префикса, определяющего наименование организации, и сгенерировать его;

3) С помощью sql-запроса перенести информацию из старого реквизита в новый;

4) Найти все справочники (ТКЭД), где используется данный реквизит. Для поиска можно воспользоваться контекстным меню реквизита «Типы справочников» («Типы карточек электронных документов»). Заменить старый реквизит на новый, не забыв изменить его и на форме карточки. Сохранить справочник или ТКЭД;

5) Найти, где в текстах вычислений разработки используется данный реквизит и поменять код на новый. Такой поиск можно выполнить с помощью сценария «Поиск в текстах разработки». Поиск нужно осуществлять как по старому имени реквизита, так и по старому имени поля реквизита;

6) Удалить старый реквизит;

7) Выполнить конвертацию БД.

Примечание: разгенерация реквизита приведет к удалению всех его значений, поэтому нужно создавать новый реквизит.

2. В конвертируемой БД есть реквизит с таким же именем поля как в новой стандартной разработке.

Для решения данной ситуации нужно:

1) С помощью sql-запроса изменить имя поля у реквизита;

2) С помощью sql-запроса добавить новое поле в MBAnalit;

3) Перенести информацию из старого поля в новое;

4) Удалить старое поле в MBAnalit с помощью sql-запроса;

5) Найти все справочники (ТКЭД), где используется данный реквизит. Для поиска можно воспользоваться контекстным меню реквизита «Типы справочников» («Типы карточек электронных документов»). В них перевыбрать реквизит (т.к. было удалено поле в MBAnalit) и сохранить справочник (ТКЭД);

6) Найти, где в текстах вычислений в разработке используется данный реквизит (в sql-запросах), и поменять код на новый. Такой поиск можно выполнить с помощью сценария «Поиск в текстах разработки», указав старое имя поля реквизита;

7) Выполнить конвертацию БД.

3. В конвертируемой БД есть справочник, имя которого совпадает с именем справочника в новой стандартной разработке.

Для решения данной ситуации нужно:

1) До конвертации открыть компоненту «Типы справочников», изменить имя у собственного справочника и сохранить его;

2) Найти, где в текстах вычислений разработки используется данный справочник и поменять код на новое имя;

3) Найти блоки типовых маршрутов, где в качестве свойства указан данный справочник (запись или коллекция записей), и изменить найденное свойство;

4) Пройтись по всем типовым маршрутам и:

- поменять тип справочника у свойств параметров, где указан данный справочник;

- поменять свойства блоков типовых маршрутов (параметров типа запись справочника или коллекция записей), где указывается данный справочник.

Примечание: перегенерация реквизитов, ссылающихся на данный справочник, не нужна, так как в поле «VidAn» хранится ИД типа справочника, а не имя.

Обновление данных в запущенных задачах

Так как в базе могут быть запущены задачи по типовым маршрутам, где изменились параметры или свойства блоков, то нужно сделать следующие действия:

1. Найти данные задачи;

2. С помощью sql-запросов получить схему маршрута в виде XML;

3. Внести корректировки в свойства параметров:

4. Внести корректировки по свойствам блоков типовых маршрутов, где указан данный справочник.

 - где указано имя справочника:

  

 - где указана запись справочника:



5. Выполнить конвертацию БД.

4. В конвертируемой БД есть ТКЭД, имя которого совпадает с именем ТКЭД в новой стандартной разработке.

Для решения данной ситуации нужно:

1) До конвертации открыть компоненту «Типы карточек электронных документов» и изменить имя у собственного ТКЭД;

2) Найти, где в текстах вычислений разработки используется данный ТКЭД и поменять код на новое имя;

3) Пройтись по всем типовым маршрутам и поменять свойства блоков типовых маршрутов, где указывается данный ТКЭД;

4) Так как в базе могут быть запущены задачи по типовым маршрутам, где изменились свойства блоков, то нужно сделать следующие действия:

- найти данные задачи;

- с помощью sql-запросов получить схему маршрута в виде XML;

- внести корректировки в свойства блоков:


5) Выполнить конвертацию БД.

5. При импорте элемента разработки <Имя> (Типы справочников) произошла ошибка. Заголовок типа справочника должен быть уникальным. 

В системе есть собственная разработка. В новой стандартной разработке появился справочник с таким же названием.

Для решения данной ситуации нужно:

1) До конвертации открыть компоненту «Типы справочников» и изменить заголовок у собственного справочника;

2) Выполнить конвертацию БД.

Примечание: После конвертации наименование можно вернуть обратно, изменив перед этим наименование стандартного справочника. Единственное, потом при конвертации на следующие версии в будущем нужно будет выполнять аналогичные действия, чтобы не было конфликтов при конвертации.

6. В конвертируемой БД есть тип карточки, у которого наименование совпадает с наименованием типа карточки из стандартной разработки. (Ошибка: Заголовок типа карточки электронного документа должен быть уникальным).

Для решения данной ситуации нужно:

1) Открыть компоненту «Типы карточек электронных документов» и изменить наименование существующего типа карточки;

2) После этого выполнить конвертацию БД;

3) На одном из шагов задания параметров конвертации будет выдано сообщение, что предыдущий процесс конвертации не был завершен и предложены варианты действий. Надо выбрать продолжить конвертацию без восстановления из бэкапа.

7. В конвертируемой БД есть сценарий (отчет), имя которого совпадает с именем сценария (отчета) в новой стандартной разработке. 

Для решения данной ситуации нужно:

1) Перед конвертацией открыть компоненту «Сценарии» (для аналитических отчетов открыть компоненту «Разработка отчетов», для интегрированных - компоненту «Типы справочников», выбрать запись справочника для которого настраивается интегрированный отчет и открыть карточку искомого отчета) и изменить значение поля «Имя» у сценария или отчета;

2) Так как вызов сценария (отчета) выполняется по имени, то с помощью сценария «Поиск в текстах разработки» найти в тексте разработки, где вызывается данный сценарий или отчет, и изменить имя на новое;

3) Выполнить конвертацию БД.

8. В конвертируемой БД есть сценарий (отчет), заголовок которого совпадает с заголовком сценария (отчета) в новой стандартной разработке. Ошибка: «Нельзя вставлять запись, ключ которой не уникален».

Для решения данной ситуации нужно:

1) Перед конвертацией открыть компоненту «Сценарии» (для аналитических отчетов открыть компоненту «Разработка отчетов», для интегрированных - компоненту «Типы справочников», выбрать запись справочника для которого настраивается интегрированный отчет и открыть карточку искомого отчета) и изменить значение поля «Заголовок» у сценария или отчета;

2) Выполнить конвертацию БД.

Примечание: Вызов сценария (отчета) выполняется по имени, а не по заголовку, таким образом, изменение заголовка сценария не приведет к тому, что после конвертации будет выполняться стандартный сценарий, а не новый. Можно после конвертации вернуть вашему сценарию обратно тот же самый заголовок, который был до изменений, а у стандартного перед этим изменить заголовок на другой. Единственное потом при конвертации на следующие версии в будущем нужно будет выполнять аналогичные действия, чтобы не было конфликтов при конвертации.

9. В конвертируемой БД есть блок типового маршрута, имя которого совпадает с именем блока типового маршрута в новой стандартной разработке.

Для решения данной ситуации нужно:

1) Перед конвертацией открыть компоненту «Блоки типовых маршрутов» и изменить значение поля «Имя» у блока типового маршрута;

2) Пройтись по всем типовым маршрутам, открыть схему маршрута в виде XML и изменить имя блока типового маршрута со старого на новый, используя механизм «Заменить»:

Имя блока в ТМ Имя блока"  IsPropertiesFixed="false" InputsJoinType="0" SystemType="3" ID="3" Y="156" X="156">

3) Так как в базе могут быть запущены задачи по типовым маршрутам, где изменились блоки типовых маршрутов, то нужно сделать следующие действия:

- найти данные задачи;

- с помощью sql-запросов получить схему маршрута в виде XML;

- внести корректировки (аналогично как во 2 пункте).

4) Выполнить конвертацию БД.

10. В конвертируемой БД есть блок типового маршрута, заголовок которого совпадает с заголовком блока типового маршрута в новой стандартной разработке.

Для решения данной ситуации нужно:

1) Перед конвертацией открыть компоненту «Блоки типовых маршрутов» и изменить значение поля «Заголовок» у блока типового маршрута;

2) Выполнить конвертацию БД.

11. В конвертируемой БД есть группа блоков типового маршрута, имя которого совпадает с именем группы блоков типового маршрута в новой стандартной разработке. 

Для решения данной ситуации нужно:

1) Перед конвертацией открыть компоненту «Группы блоков типовых маршрутов» и изменить значение поля «Имя» у группы блоков типового маршрута;

2) Выполнить конвертацию БД.

12. В конвертируемой БД есть константа или функция, имя которых совпадает с именами константы или функции в новой стандартной разработке. 

Для решения данной ситуации нужно:

1) Перед конвертацией зайти в компоненты разработчика в раздел «Константы» («Функции ISBL») и переименовать константу (функцию);

2) С помощью сценария «Поиск в текстах разработки» найти в тексте разработки, где используется данная константа (функция), и изменить ее имя на новое;

3) Выполнить конвертацию БД.

 

Таким образом, можно сделать вывод: для того, чтобы не появлялись подобные ошибки при конвертации системы, необходимо наименование всех новых элементов разработки начинать с префикса, определяющего наименование организации. Приведу список элементов разработки и их свойств, которые должны начинаться с префикса:

Элементы разработки

Свойства элемента

Блоки типовых маршрутов

Имя

Группы блоков типовых маршрутов

Имя

Константы

Имя

Отчеты

Имя

Реквизиты справочников

Имя, Имя поля

Реквизиты электронных документов

Имя, Имя поля

Сценарии

Имя

Типы карточек электронных документов

Имя

Типы справочников

Имя

Функции ISBL

Имя

Мастера действий

Имя

 

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий