Профессия — 1С

Рукопашный бой Карташ

Категории

Как узнать имена таблиц 1С в SQL

рубрики: SQL | Дата: 12 Январь, 2016

Как известно базы 1С могут существовать в двух вариантах: файловом и серверном. И для серверного варианта они в большинстве своем разворачиваются на MS-SQL сервере (поэтому далее для простоты буду везде подразумевать MS-SQL сервер под словом SQL).




Таким образом каждому объекту метаданных 1С (документ, справочник, регистр) соответствует одна или несколько таблиц на SQL сервере. Но имена таблиц в 1С и на SQL сервере различаются. При решении ряда задач может возникнуть необходимость сопоставить имена таблиц 1С, а также их полей с именами таблиц и полей SQL сервера.

В базах версии 7.7 такое соответствие хранилось в файле 1Cv7.DDS, который распологался в каталоге с файловой частью базы. В принципе его можно было просматривать как обычный текстовый файл, но для удобства использовались специальные программы, например, DDView.

Что касается серверного варианта баз 1С версии 8, то там файловой части базы нет в принципе. Но тем не менее сопоставить имена таблиц и полей 1С с именами таблиц и полей на SQL сервере можно. И эта возможность реализована в самой платформе 1С 8. Делается это при помощи функции ПолучитьСтруктуруХраненияБазыДанных().




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

Рассмотрим небольшой пример.



МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить("Справочник.СотрудникиОрганизаций");
	
ТаблицаСтруктуры = ПолучитьСтруктуруХраненияБазыДанных(МассивОбъектов, Истина);

В результате выполнения этого кода в переменной ТаблицаСтруктуры мы получим таблицу значений в которой содержатся описания таблиц и их полей в базе SQL.




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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С