Генератор представлений для базы данных 1С
Обработка для генерации скриптов создания представлений баз данных 1С. Поддержка SQL Server + некоторые служебные функции.
- Описание
- Подробнее
Описание
Что в коробке
Простейшая обработка для генерац
ии представлений в базах данных 1С. Формирует скрипты для ручного запуска. Подобные инструменты чаще всего используются для создания возможности интеграции с базами данных 1С напрямую, обходя обращение через сервер 1С и стандартные средства интеграции. Чаще всего из соображений оптимизации производительности или интеграции с инструментами, которые не могут использовать штатные механизмы платформы 1С (Power BI, например).
Разработка создавалась пару лет назад и в какой-то мере состыкуется с инструментом "Мастер создания копии информационной базы для отчетности". Не является чем-то уникальным, ссылки на аналогичные инструменты есть в конце публикации. Здесь же просто шаблон обработки с доп. функционалом, который может выступать в качестве основы для решения Вашей конкретной задачи.
Требования и совместимость
Обработка тестировалась на платформе 8.3.16 и старше и с редакциями SQL Server 2014 и старше.
В остальных случаях может потребоваться доработка и адаптация под различные изменения платформы 1С или СУБД.
Основной функционал
Работа с обработкой выполняется в несколько этапов. На первом этапе нужно настроить подключение к базе 1С, находящейся на инстансе SQL Server. На этом этапе указываем сервер, имя базы данных, а также параметры аутентификации.
На втором этапе нужно указать настройки создания представлений. По факту указываем имя базы данных, где нужно создать представления и нажимаем кнопку "Заполнить настройки объектов базы по умолчанию". Имя базы данных для представлений можно указать то же самое, что и имя исходной базы. Настройка сделана для того, чтобы можно было создавать эти объекты в отдельной БД и не вмешиваться в работу основной базы 1С. Тут же есть параметр, позволяющий сгенерировать скрипт для удаления всех существующих представлений.

На последнем этапе мы получим 4 скрипта для создания представлений и некоторых служебных объектов:
- Скрипт создания базы для представлений, если ее нет. Больше используется как шаблон, т.к. в большинстве случаев нужно явно указывать необходимые пути к файлам и т.д.
- Скрипт удаления существующих представлений. Также только в качестве шаблона, т.к. в базе могут быть представления, не связанные с текущей работой. Будьте осторожны при использовании!
- Скрипт создания представлений. То, для чего мы обработку и запускаем. При создании скриптов придерживаемся следующих принципов:
- Данные отображаем как есть для лучшей производительности. То есть никаких смещений к датам или преобразования GUID’ов к привычному виду не выполняется. В большинстве случаев это приведет к серьезной деградации производительности. Преобразование данных к нужному представлению нужно выполнять в финальной части запроса.
- Имена представлений строятся как "v_<ВидОбъекта>_<ТипОбъекта>". Для табличных частей это "v_<ВидОбъекта>_<ТипОбъекта>_ТЧ_<ИмяТабличнойЧасти>". Также в некоторых случаях может быть добавлено назначение объекта.
- Для перечислений добавлено поле "Наименование", позволяющее просматривать строковое значение перечисления, которое в базе явно не хранится.
- Поля представлений и объектов такие же как и в конфигурации, то есть читаемые. Для некоторых таблиц представление определяется специальным способом, т.к. стандартное описание структуры базы данных не дает информации. Таким образом список полей с читаемыми названиями устанавливаются в большинстве случаев.
- Скрипт создания служебных объектов. Это вспомогательные функции:
- [dbo].[fn_ConvertBoolean_From1CToSql] — конвертирует привычное строковое представление GUID’а 1С в формат SQL (binary(16)).
- [dbo].[fn_ConvertBoolean_FromSqlTo1C] — делает обратную операцию по сравнению с [dbo].[fn_ConvertBoolean_From1CToSql].
- [dbo].[fn_ConvertGuid_FromSqlTo1C] — преобазует значение типа булево из binary(1) как хранится в SQL в тип bit.
- [dbo].[fn_ConvertGuid_From1CToSql] — делает обратную операцию по сравнению с [dbo].[fn_ConvertGuid_FromSqlTo1C].
На этом основной функционал закончен.
Несколько примеров
Немного наглядных примеров работы с представлениями.

