Holkas
GitHub · релизы

Как это работает / 01 из 05

Как устроен перенос доработок КОР Парус 8

КОР — Конструктор отраслевых расширений Парус 8. Разбираем, как Holkas переносит метаданные доработки и связанные объекты базы, а не рабочие документы.

Разберём доработку на части

Одна возможность — два слоя

01 / Логика приложения

Что умеет Парус

Какие действия доступны, как устроены классы и какие отчёты можно получить.

  • Классы
  • Методы
  • Отчёты
  • Домены
02 / Объекты базы данных

На чём это работает

Как устроены таблицы и какой код выполняется внутри базы.

  • Таблицы
  • Функции
  • Представления
  • Индексы

Рабочие данные остаются на месте

При переносе структуры строки не копируются. Пользовательский скрипт может менять данные своим SQL-кодом.

Условная схема состава доработки, а не экран приложения. Какие именно объекты переносить, выбираете вы.

Обычный перенос работает с устройством приложения, а не с рабочими записями. Отдельный случай — пользовательский скрипт, который выполняет заданный вами SQL.

Что такое КОР Парус 8

КОР — «Конструктор отраслевых расширений» системы Парус 8 корпорации «Парус». Это инструмент разработки: с его помощью создают новые разделы и приложения, а также расширяют существующие. Такое назначение описано в материале корпорации «Парус» о КОР.

В КОР-технологии описание разделов и пользовательского интерфейса хранится в базе в виде метаданных. На их основе строится интерфейс — этот подход объяснён во введении к руководству Паруса по КОР-технологии, стр. 4. Это описание устройства приложения, а не документы и проводки пользователей.

Holkas не заменяет КОР. Доработку создают в Парусе, а Holkas помогает сравнить и перенести её поддерживаемые объекты между базами, сохранить их в пакет или Git. Это независимый проект, а не модуль корпорации «Парус».

Перенос доработки КОР из тестовой базы в рабочую

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

Holkas работает с объектами и их составом: у каждого объекта есть тип, имя и содержимое. Вы выбираете нужные объекты, а Holkas читает их из источника и готовит перенос. Источник — откуда берём доработку; приёмник — куда её переносим. Практические шаги — в инструкции переноса доработки КОР Парус 8.

Два слоя одной доработки

Метаданные КОР Паруса описывают приложение: классы, отчёты, домены и другие объекты. Например, класс описывает устройство однотипных сущностей — договоров или заявок. Его методы и вызовы методов — части класса, а не самостоятельные объекты Паруса. Класс переносится вместе со своим составом; в плане это несколько отдельных команд.

Объекты базы данных обеспечивают её работу: таблицы и колонки, функции, представления, индексы и другие структуры. Holkas умеет включать оба слоя в один перенос. Полный перечень — в справочнике объектов.

А договоры и платежи тоже переедут?

Нет. Здесь важно различать устройство таблицы и записи в ней. Holkas переносит структуру и метаданные приложения, но не копирует строки с рабочими данными. Это не средство переноса всей базы или её резервного копирования.

Изменение структуры при этом может повлиять на работу с данными — например, изменение типа колонки или добавление ограничения. Лишние колонки таблиц Holkas не удаляет. План нужно проверить, а перед применением к важной базе — сделать резервную копию.

Отдельный случай — пользовательский скрипт: он выполняет SQL-код, который может менять и удалять рабочие данные. Для него обязательно проверять сам текст.

Если одна база — Oracle, а другая — PostgreSQL

Это две разные системы управления базами данных, или СУБД. Объекты Паруса можно переносить между ними в обе стороны.

Объекты самой базы привязаны к платформе: таблица Oracle не превращается автоматически в таблицу PostgreSQL. Holkas также не переводит программный код с одного диалекта SQL на другой. Если логика Паруса обращается к такой функции, её подходящую реализацию в другой СУБД нужно подготовить отдельно.