Как просмотреть структуру таблиц информационной базы?
Для этого используется функция ПолучитьСтруктуруХраненияБазыДанных(). Она возвращает информацию о структуре таблиц базы данных всех объектов конфигурации (в виде таблицы значений).
Если нужно получить структуру хранения не для всей базы, а только для некоторых объектов, то в качестве параметра в этот метод можно передать либо сами объекты конфигурации, либо их имена (в виде массива).
ВНИМАНИЕ
Полученная информация предназначается для административных задач обслуживания базы данных и анализа записей технологического журнала.
Не рекомендуется использовать её для реализации какой-либо части прикладной функциональности.
Как просмотреть структуру базы данных 1С Предприятие 1Cv8.1CD
В этой статье будет накапливаться экспертиза по работе с файловой базой данных системы 1С Предприятие 8.
Первое на что я наткнулся – это утилита “Tool 1CD.exe”. Ниже будет приведена ссылка на скачивание.
Команда для массового экспорта таблиц из файла 1Cv8.1CD в XML:
Программа “Tool_1CD” для распаковки базы данных 1С Предприятие 8 из 1Cv8.1CD в XML (Заархивировано сначала в RAR, потом в zip): Tool_1CD.zip.
Проверял на вирусы на касперском, вроде не было. Но в любом случае Вы используете этот файл на свой страх и риск. Всегда лучше работайте в “песочнице” или на скопированном файле, который не жалко потерять. Скачивая этот файл Вы соглашаетесь с тем, что Вы снимаете ответственность с владельца этого сайта. Вся ответственность за использование этого файла лежит на Вас.
НА БОЕВОЙ СРЕДЕ НИКОГДА НЕ ТЕСТИРУЙТЕ РАБОТУ ПОСТОРОННИХ УТИЛИТ.
Интерфейс программы “Tool 1CD”
Структура файла базы данных 1CD
Техническое описание внутреннего устройства опубликовано мной в статье Краткое описание формата файлов *.1CD (файловых баз 1Сv8). Однако она достаточно сумбурна, плоха для восприятия, поэтому здесь я попытаюсь описать формат немного более популярно. Чтобы не было путаницы с термином «файл», сразу замечу, что когда я буду иметь в виду файл базы *.1CD, я буду говорить «файл базы», когда же я буду говорить про внутренние файлы, содержащиеся внутри базы, я буду употреблять просто термин «файл».
Страницы
На самом нижнем уровне файл базы данных 1CD состоит из страниц размером 4 килобайт (0x1000).
По сути, весь файл базы состоит из массива четырехкилобайтных страниц. Каждая страница имеет свой номер (индекс). Здесь и далее каждый прямоугольник с красной рамкой обозначает одну страницу.
Файлы
На более высоком уровне находятся файлы. Файл состоит из одной или более страниц. У каждого файла есть ровно одна заголовочная страница, в которой размещается массив номеров страниц размещения. В каждой странице размещения, в свою очередь, находится массив номеров страниц данных. Заголовочная страница и страницы размещения – это служебные страницы, которые нужны только для хранения служебных данных (сигнатура, длина файла, версия) и для нахождения страниц данных. Собственно содержимое файла хранится в страницах данных. 
Структура таблиц
Каждая таблица состоит из нескольких файлов:
- файла описания таблицы DESCR;
- файла записей DATA;
- файла индексов INDEX;
- файла данных неограниченной длины BLOB.


Файл описания таблицы DESCR содержит текстовое описание таблицы – имя таблицы, состав полей и индексов. А также файл DESCR содержит номера файлов DATA, INDEX и BLOB. Таблица адресуется с помощью файла описания таблицы. Структуру файлов таблиц мы в данной статье рассматривать не будем, подробности можно узнать из моей статьи, ссылку на которую я приводил выше. Файл индексов может отсутствовать, если в таблице нет ни одного индекса. Файл данных неограниченной длины тоже может отсутствовать, если в таблице нет ни одного поля с данными неограниченной длины.
Адресация
База состоит из таблиц. Таблицы, в свою очередь, состоят из файлов. И наконец, файлы состоят из страниц. Адресом страницы является ее порядковый номер (индекс) в файле базы. Адресом файла является номер его заголовочной страницы. Адресом таблицы является адрес ее файла описания, а значит, номер заголовочной страницы файла описания. Т.е. о каком бы объекте мы бы не говорили – странице, файле или таблице, адресом объекта всегда является просто номер страницы.
Получаем структуру базы данных (название таблиц и полей, т.е. метаданные) из 1С Предприятие 8.3
Одним из способов получения подробного описания таблиц, полей (соответствие нормального наименования таблиц и технического) – использование “Внешней обработки .EPF”.
Файл .epf программируется через конфигуратор 1С Предприятия. В интернете много статей, я покажу лишь как его использовать.
Я нашел несколько файлов EPF (в архиве их три штуки):
epf файлы для получения метаданных из 1С Предприятия 8.3.zip
Как запустить epf файл для выгрузки из 1С метаданных
Приведу 2 примера подключения epf файла. Заходим в 1С Предприятие 8.3. Выбираем Файл – Открыть:
Далее выбираем файл внешней обработки 1С Предприятие для версии 8.3 СтруктураИБ_УФ.epf:
Нажимаем “Вывести список”:
Формат:
Расскрываем список
Получаем описание таблиц с полями:
И еще один пример:
Выводим структуру таблиц 1С Предприятие в текстовом формате
Таблица и “человеческие” названия: 
Загружаем из xml файлов название полей и таблицы
После небольшой корректировки получаем отчет, можете скачать (но там ничего не понятно, нужна расшифровка метаданных): Таблицы и поля из 1С Предприятия 8.3 после обработки Tool 1CD.exe и выгрузкой в XML.xlsx
Скачать epf-файл для просмотра структуры базы данных 1С Предприятие 8.3 и LOAD Script для QlikView
Скачать epf-файл для просмотра структуры базы данных 1С Предприятие 8.3 и LOAD Script для QlikView:
DB Structure LOAD Script For QLIKVIEW.epf
1С Script Builder реализован в виде внешней 1С-обработки и предназначен для автоматизированного проектирования скрипта загрузки данных из БД 1С версии 8.x в аналитическое приложение QlikView. Использование 1С Script Builder позволяет получить максимальную скорость загрузки данных и максимальную гибкость при формировании самых сложных запросов.
Генерация Загрузочного скрипта для QlikView из метаданных конфигураций 8.3 (управляемые формы), тестировалась на конфигурации “Управление небольшой фирмой, ред. 1.6”.
Обработка получает таблицу метаданных конфигурации с помощью функции ПолучитьСтруктуруХраненияБазыДанных() и генерирует код QlikView SCRIPT с запросом SQL для объекта метаданных текущей строки. Работает в тонком и толстом клиентах управляемого приложения. Поля, индексы и состав индексов элемента метаданных отображается в отдельных таблицах.
Ниже скриншоты как зайти в управляемое приложение через конфигуратор.
ВНИМАНИЕ! В коде последнюю запятую перед SQL надо удалить. Не знаю, как программными средствами убрать.

Заходим в конфигуратор 1С Предприятие 8.3 Управление небольшой фирмой (Демо версия):









На вкладке LOAD Script For QlikView приведен загрузочный скрипт. Не забывайте про запятую, которую нужно убрать.

Пример модуля для получения структуры данных из 1С и SQL запроса к Базе данных 1С Предприятие 8
Как в 1с посмотреть базу данных
Казалось бы, зачем изобретать очередной «велосипед», когда можно найти среди готовых решений что-то более менее подходящее. Но, как говорится, дьявол в деталях. В моем случае среди найденных вариантов не было ни одного под управляемые формы с иерархическим просмотром структуры метаданных. Стоит отметить, что мой первоначальный вариант заполнял таблицы полей и индексов на сервере для выделенной строки. Но при просмотре структуры конфигураций 1С: ERP задержка при передаче контекста формы с клиента на сервер и обратно составила около 2 секунд. Поэтому для обеспечения комфорта просмотра заполнение таблиц полей и индексов было перенесено на клиент, данные для заполнения формировались в неконтекстных серверных процедурах.
2.7 Работа с конфигурацией базы данных
Для просмотра структуры конфигурации базы данных, свойств, форм, макетов и другой информации об объектах можно открыть окно конфигурации базы данных. Для этого нужно выбрать пункт Конфигурация – Конфигурация базы данных – Открыть окно конфигурации БД. По виду оно не отличается от окна Конфигурация.

Приемы работы с объектам и конфигурации базы данных совпадают с приемами работы в окне Конфигурация с тем лишь отличием, что все объекты доступны только для чтения (просмотра).
Обновление конфигурации базы данных
В процессе редактирования конфигурации могут быть созданы новые, изменены существующие или удалены имеющиеся объекты.
Текущая структура базы данных может быть отлична от структуры конфигурации. Отличие конфигураций показывается в заголовке окна Конфигурация символами <!>.
ПРИМЕЧАНИЕ. Знак отличия <!> конфигураций появляется только после сохранения изменений в основной конфигурации. Однако после сохранения основной конфигурации можно продолжить внесение изменений, и в этом случае в заголовке окна Конфигурация
будут присутствовать признаки изменения для обеих конфигураций.
Чтобы выполнить приведение в соответствие конфигурации и конфигурации базы данных, необходимо произвести обновление конфигурации базы данных. Для этого нужно выбрать пункт Конфигурация – Обновить конфигурацию базы данных. Если основная конфигурация еще не была сохранена, то сначала конфигуратор выполнит ее сохранение, а потом произведет обновление конфигурации базы данных.
Если при обновлении конфигурации базы данных было открыто окно сообщений, то оно очищается.
ВНИМАНИЕ! Обновление конфигурации базы данных может потребовать прекращения работы всех пользователей.
Перед обновлением можно сравнить конфигурации, а также провести их объединение.
Если на момент выполнения обновления конфигурации базы данных выполнялась отладка, то после сохранения текущей конфигурации на экран выводится вопрос: Для обновления конфигурации базы данных необходимо прекратить отладку. Продолжить? При ответе Да отладка прекращается, и конфигурация базы данных обновляется. При ответе Нет не производится обновление, и отладка не прекращается.
Обновление конфигурации базы данных требует монопольного доступа конфигуратора к информационной базе. В зависимости от наличия пользователей, работающих с базой данных, и их режимов работы, возможно несколько вариантов поведения системы:
1. конфигуратор выдает сообщение об ошибке исключительной блокировки в том случае, если:
● используется файловый вариант базы данных;
● есть сеансы, подключенные к информационной базе без использования веб-сервера;
● нет сеансов, работающих через веб-сервер;
● обновление конфигурации требует реструктуризации базы данных.
2. конфигуратор предлагает завершить все сеансы и повторить обновление, если:
● обновление конфигурации требует реструктуризации базы данных;
● с файловым вариантом информационной базы работают веб-клиенты или тонкие клиенты, подключенные через веб-сервер;
3. в остальных случаях конфигуратор предлагает выполнить динамическое обновление.
Примечание 1. При выдаче диагностических сообщений указываются характеристики сеансов, которые мешают выполнению действия. Если количество сеансов меньше или равно 5, то выводится подробный список сеансов (с указанием имени компьютера, типа
приложения и т. д.), в противном случае выводится общее число сеансов.
Примечание 2. Работа информационной базы в монопольном режиме не переводит базу данных Microsoft SQL Server в однопользовательский (single user) режим.
Примечание 3. Для ускорения процесса реструктуризации информационной базы, при использовании СУБД Microsoft SQL Server, рекомендуется режим восстановления для базы данных устанавливать в значение Простой или С неполным протоколированием. Смену
режима можно выполнять или перед выполнением реструктуризации или на постоянной основе, если не требуется выполнять восстановление базы данных на произвольный момент времени. Перед сменой режима восстановления базы данных необходимо
выполнить резервное копирование базы данных!
Ошибка монопольного доступа
Если система не может получить монопольный доступ, то имеется возможность только дождаться, пока пользователи будут отключены от информационной базы, и повторить операцию обновления.
Завершение сеансов и попытка обновления
Если для обновления конфигурации базы данных необходимо завершить все сеансы, то пользователю выдается сообщение .
Если выбрана команда Завершить сеансы и повторить, то у пользователя запрашивается подтверждение выбранного действия (Завершение сеансов приведет к аварийному завершению работы пользователей! Выполнить завершение сеансов?) и в случае
утвердительного ответа происходит попытка завершения работы всех сеансов информационной базы. Затем выполняется попытка повторного сохранения конфигурации базы данных.
Завершение всех сеансов приведет к аварийному завершению работы всех клиентских приложений.
Возможны ситуации, когда завершение работы сеанса невозможно. Например, файловый вариант информационной базы опубликован
на веб-сервере, доступ к которому требует клиентского сертификата или на веб-сервере настроена аутентификация и для доступа требуется ввод имени пользователя и пароля. При этом к информационной базе подключения выполняются только с использованием
веб-сервера. Конфигуратор не поддерживает аутентифицированный доступ к веб-серверу и поэтому не может выполнить попытку завершения сеансов. В том случае, если Конфигуратор не смог завершить сеансы доступа к информационной базе, попытку обновления конфигурации базы данных можно либо выполнить позже, либо завершить работу сеансов другими способами.
Динамическое обновление
Если есть возможность выполнить динамическое обновление, пользователю выдается специальное сообщение (см. рис.28).
Динамическое обновление
Если выбрана команда Обновить динамически, то выполняется обновление без завершения работы пользователей. Предполагается, что выполненные изменения будут записаны динамически в виде версии изменений конфигурации (конфигурация базы данных при этом не изменяется). Допускается выполнение повторных изменений основной конфигурации. Если при очередной попытке обновления конфигурации базы данных может быть установлен монопольный режим работы, конфигуратор осуществляет обновление конфигурации базы данных с учетом всех изменений (как текущих, так и предыдущих).
Если было выполнено динамическое обновление, то работающие в этот момент пользователи продолжают работать со старой конфигурацией. Для того чтобы начать работать с обновленной конфигурацией, пользователю необходимо перезапустить систему «1С:Предприятие». Для контроля и оповещения пользователей о произведенных динамических изменениях следует использовать метод глобального контекста КонфигурацияБазыДанныхИзмененаДинамически().
ПРИМЕЧАНИЕ. После выполнения обновления конфигурации базы данных все версии, созданные динамическим обновлением, будут удалены.
Если были обнаружены изменения, требующие реструктуризации базы данных, то на экран выводится диалог со списком таких изменений для подтверждения обновления.
Для подтверждения сохранения нужно нажать кнопку Принять, для отказа – кнопку Отмена.
Фоновое обновление конфигурации базы данных
Общее описание
ПРИМЕЧАНИЕ. Доступно только для лицензии КОРП
Обновление конфигурации базы данных, которое связано с реструктуризацией базы данных, выполняемое для информационных баз большого объема, может занимать длительное время. Во время выполнения обновления, работать с информационной базой невозможно.
Для того чтобы свести потери времени на эту операцию к минимуму, существует специальный режим, выполняющий обновление конфигурации базы данных в фоновом режиме. Фоновое обновление конфигурации базы данных характеризуется следующими
особенностями:
● Доступно только в клиент-серверном варианте информационной базы;
● Может выполняться при закрытом конфигураторе.
● Большая часть фонового обновления конфигурации базы данных выполняется без монопольного доступа к базе данных (включая выполнение операции реструктуризации базы данных).
● Во время фонового обновления недоступны следующие операции:
● Редактирование конфигурации.
● Отладка прикладного решения.
● Выполнение операции обновления конфигурации базы данных.
● Не допускается использование методов УстановитьРежимАгрегатов(), УстановитьИспользованиеАгрегатов(), ПерестроитьИспользованиеАгрегатов().
● Изменение содержимого плана счетов или плана видов расчета, если связанный с ним регистр бухгалтерии или регистр расчета
участвует в операции фонового обновления. Попытка изменить содержимое таких планов счетов или планов вида расчета вызывает ошибку.
● Фоновое обновление конфигурации можно поставить «на паузу» длительностью не более 48 часов. Если «пауза» продлится более 48 часов – фоновое обновление будет отменено.
● Не поддерживается работа фонового обновления для конфигураций, находящихся в режиме совместимости с версией 8.1
● Не поддерживается работа фонового обновления конфигурации базы данных при работе на СУБД IBM DB2 9.1.
Процесс фонового обновления конфигурации состоит из нескольких этапов:
● Фаза обработки:
● Выполняется длительное время.
● Запуск данной фазы может быть выполнен любым способом:
● Интерактивно, из конфигуратора;
● Из встроенного языка (с помощью соответствующих методов);
● С помощью режима пакетного запуска конфигуратора.
● Во время выполнения фазы пользователи могут работать с информационной базой.
● Выполняется реструктуризация основного объема данных для следующих объектов конфигурации:
● Справочники,
● Документы,
● Журналы документов,
● Регистры сведений,
● Регистры накоплений,
● Регистры бухгалтерии,
● Регистры расчета,
● Последовательности,
● Планы счетов,
● Бизнес-процессы,
● Задачи.
● Во время выполнения фазы обработки, система фиксирует все измененные данные для вышеперечисленных объектов, по аналогии с механизмами обмена данными.
● Фаза актуализации:
● Запускается автоматически, после окончания фазы обработки, с интервалом 1 минута.
● Во время выполнения фазы пользователи могут работать с информационной базой.
● Фаза состоит из автоматически повторяющихся итераций. Каждая итерация анализирует изменения, накопленные с момента выполнения предыдущей итерации (или завершения фазы обработки) и выполняет реструктуризацию накопленных изменений.
● Итерации завершаются в момент перехода к следующей фазе.
● Фаза принятия изменений:
● Требует монопольный доступ к информационной базе.
● Во время выполнения фазы пользователи не могут работать с информационной базой.
● Первым шагом этой фазы выполняется актуализация данных, накопленных с момента проведения последней, перед текущей
фазой, итерации фазы актуализации.
● Затем выполняется реструктуризация данных, не участвующих в фазах обработки и актуализации. В этих данных не
предполагается большого объема изменений, и их реструктуризация выполняется быстро.
● Следующим шагом выполняется принятие всех изменений, выполненных в базе данных.
● После этого обновление конфигурации базы данных завершается.
Если фоновое обновление запущено так, что не требуется выполнения реструктуризации базы данных, то в этом случае все обновление выполняется в фазе принятия изменений, переход к которой возможен сразу после начала фонового обновления.
Во время фонового обновления имеется возможность остановить работу сервера или поставить процесс фонового обновления «на паузу».
После остановки сервера или после аварийного завершения рабочего процесса, обслуживающего системное фоновое задание, выполняющее обновление, создание первого сеанса будет происходить несколько большее время, нежели обычно. Это связано с восстановления фонового обновления. Однако сам процесс фонового обновления находится в приостановленном состоянии. Для продолжения работы необходимо возобновить работу фонового обновления. Такое поведение реализовано для того, чтобы не произошло зацикливание системы в том случае, если причиной аварийного завершения рабочего процесса, обслуживающего фоновое обновление, является собственно фоновое обновление.
После восстановления работоспособности сервера, фоновое обновление конфигурации базы данных продолжает работу следующим
образом:
● Если работа была прервана в фазе обработки, то процесс продолжается с последнего объекта конфигурации, обработка которого
не была завершена.
● Если работа была прервана в фазе актуализации – незаконченная итерация начинается заново.
СОВЕТ. Рекомендуется отменять запущенный процесс фонового обновления конфигурации базы данных в тех случаях, когда не планируется завершение фонового обновления конфигурации базы данных (например, процесс поставлен на бесконечную «паузу»). Выполнение данной рекомендации положительно скажется на характеристиках системы, т. к. не будет происходить регистрация изменений для выполнения фазы актуализации.
При выполнении операции фоновой реструктуризации следует учитывать некоторые особенности работы системы:
● Если регистр бухгалтерии или накопления добавлен в состав разделителя, то данный регистр обрабатывается во время фазы
принятия изменений.
● Если изменен тип независимого разделителя (см. здесь), то все объекты, входящие в состав этого разделителя, обрабатываются во время фазы принятия изменений.
● Если изменяется тип измерения, входящего в основной отбор независимого регистра сведений, то такой регистр обрабатывается во время фазы принятия изменений.
Диалог фонового обновления конфигурации базы данных
Для вызова операции фонового обновления конфигурации базы данных нужно выбрать пункт меню Конфигурация – Конфигурация базы данных – Фоновое обновление конфигурации базы данных. Нажатие кнопки Запустить запускает фазу обработки. При этом в окне служебных сообщений отображается текст:
Старт фонового обновления конфигурации БД прошел успешно
Конфигурация недоступна для редактирования. Выполняется фоновое обновление конфигурации базы данных.
После запуска фонового обновления конфигурация блокируется от изменения. Во время выполнения любой фазы, работу фонового обновления можно приостановить с помощью кнопки Приостановить. Для того, чтобы продолжить выполнение фонового обновления
служит кнопка Продолжить.
После окончания фазы обработки начинается фаза актуализации, во время выполнения которой можно перевести систему к выполнению фазы принятия изменений с помощью кнопки Завершить или отказаться от обновления с помощью кнопки Отменить.
СОВЕТ. Рекомендуется отменять запущенный процесс фонового обновления конфигурации базы данных в тех случаях, когда не планируется завершение фонового обновления конфигурации базы данных (например, процесс поставлен на бесконечную
«паузу»). Выполнение данной рекомендации положительно скажется на характеристиках системы, т. к. не будет происходить регистрация изменений для выполнения фазы актуализации.
Флажок Разрешить динамическое обновление служит для того, чтобы определить, нужно ли при нажатии на кнопку Запустить попытаться выполнить динамическое обновление вместо запуска процесса фонового обновления конфигурации базы данных. Если этот флажок установлен, то сразу же после нажатия на кнопку Запустить будет производиться проверка на возможность выполнить динамическое обновление конфигурации. В случае, когда конфигурация допускает такую возможность, вместо фонового обновления конфигурации базы данных будет производиться динамическое обновление.
Флажок Выполнять на сервере служит для того, чтобы определить, где будет выполняться запуск, завершение и отмена. Если этот флажок сброшен, то данные действия будут выполняться на стороне клиентского приложения, а если установлен – то на стороне сервера «1С:Предприятия». Кроме того, если установлен данный флажок, то можно выполнять обновление конфигурации только при наличии права ОбновлениеКонфигурацииБазыДанных, без установленного права Администрирование.
Сохранение конфигурации базы данных в файл
Для сохранения конфигурации базы данных в файл на диск нужно выбрать пункт Конфигурация – Конфигурация базы данных –
Сохранить конфигурацию БД в файл. На экран выводится стандартный диалог выбора файла. Необходимо выбрать каталог и указать
имя файла, в который будет записана конфигурация базы данных.
Сохраненный файл конфигурации базы данных необходим для операции сравнения и объединения конфигураций
Сравнение конфигурации и конфигурации базы данных
Если в процессе внесения изменений в конфигурацию требуется получить отчет об отличиях от конфигурации базы данных, то следует
выбрать пункт Конфигурация – Конфигурация базы данных – Сравнить, объединить с конфигурацией БД.
В случае необходимости можно восстановить измененные объекты.
Отказ от изменений в конфигурации
Для отказа от изменений в конфигурации достаточно выбрать пункт Конфигурация – Конфигурация базы данных – Вернуться к конфигурации БД.
Примечание. Пункты меню Сохранить конфигурацию БД в файл… и Вернуться к конфигурации БД доступны даже в случае закрытой редактируемой конфигурации. Команда Вернуться к конфигурации БД по-прежнему недоступна, когда информационная база подключена к хранилищу конфигурации.