Професія - 1с - як дізнатися імена таблиць 1с в sql

Як відомо бази 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.


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

Схожі статті