Многим известно, что наименование всех новых элементов разработки должно начинаться с префикса, определяющего наименование организации. В качестве префикса необходимо использовать понятное сокращенное наименование организации, которое используется для формирования имени базы разработки клиента. Но бывают случаи, когда разработчики забывают ставить префиксы в именах элементов разработки, что в дальнейшем может привести к появлению ошибок неуникальности имен при конвертации системы. Так как при конвертации выполняется обновление только стандартных элементов разработки, а собственная разработка в этом случае остается неизменной, то может возникнуть пересечение собственной разработки и новой стандартной разработки системы. Например, в собственной разработке может присутствовать тип карточки электронного документа с таким же заголовком или именем, как и в новой стандартной разработке, или может существовать реквизит с таким же именем или с именем поля. Таким образом, в данной статье хотела рассмотреть ошибки неуникальности имен разработки, с которыми можно столкнуться при конвертации системы и пути их решения.
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 и изменить имя блока типового маршрута со старого на новый, используя механизм «Заменить»:
Имя блока в ТМ
3) Так как в базе могут быть запущены задачи по типовым маршрутам, где изменились блоки типовых маршрутов, то нужно сделать следующие действия:
- найти данные задачи;
- с помощью sql-запросов получить схему маршрута в виде XML;
- внести корректировки (аналогично как во 2 пункте).
4) Выполнить конвертацию БД.
10. В конвертируемой БД есть блок типового маршрута, заголовок которого совпадает с заголовком блока типового маршрута в новой стандартной разработке.
Для решения данной ситуации нужно:
1) Перед конвертацией открыть компоненту «Блоки типовых маршрутов» и изменить значение поля «Заголовок» у блока типового маршрута;
2) Выполнить конвертацию БД.
11. В конвертируемой БД есть группа блоков типового маршрута, имя которого совпадает с именем группы блоков типового маршрута в новой стандартной разработке.
Для решения данной ситуации нужно:
1) Перед конвертацией открыть компоненту «Группы блоков типовых маршрутов» и изменить значение поля «Имя» у группы блоков типового маршрута;
2) Выполнить конвертацию БД.
12. В конвертируемой БД есть константа или функция, имя которых совпадает с именами константы или функции в новой стандартной разработке.
Для решения данной ситуации нужно:
1) Перед конвертацией зайти в компоненты разработчика в раздел «Константы» («Функции ISBL») и переименовать константу (функцию);
2) С помощью сценария «Поиск в текстах разработки» найти в тексте разработки, где используется данная константа (функция), и изменить ее имя на новое;
3) Выполнить конвертацию БД.
Таким образом, можно сделать вывод: для того, чтобы не появлялись подобные ошибки при конвертации системы, необходимо наименование всех новых элементов разработки начинать с префикса, определяющего наименование организации. Приведу список элементов разработки и их свойств, которые должны начинаться с префикса:
Элементы разработки |
Свойства элемента |
Блоки типовых маршрутов |
Имя |
Группы блоков типовых маршрутов |
Имя |
Константы |
Имя |
Отчеты |
Имя |
Реквизиты справочников |
Имя, Имя поля |
Реквизиты электронных документов |
Имя, Имя поля |
Сценарии |
Имя |
Типы карточек электронных документов |
Имя |
Типы справочников |
Имя |
Функции ISBL |
Имя |
Мастера действий |
Имя |
Авторизуйтесь, чтобы написать комментарий