Как хранятся данные 1с в sql

Обновлено: 06.07.2024

Данные, которые определяют логику функционирования системы на базе 1С:Предприятия, относятся к информационной базе. Хранение информационной базы осуществляется в базе данных с виде набора таблиц, для чего 1С:Предприятие 8.1 может использовать одну из четырех систем управления базами данных (СУБД):
* Встроенную в 1С:Предприятие 8.1 (файловый вариант информационной базы). В этом случае все данные информационной базы хранятся в файле с именем 1Cv8.1CD. Этот файл имеет двоичный формат и по сути является базой данных для встроенной в 1С:Предприятие 8.1 СУБД.
* Microsoft SQL Server (клиент-серверный вариант информационной базы). Все данные информационной базы хранятся в базе данных Microsoft SQL Server.
* PostgreSQL (клиент-серверный вариант информационной базы). Все данные информационной базы хранятся в базе данных PostgreSQL.
* IBM DB2 (клиент-серверный вариант информационной базы). Все данные информационной базы хранятся в базе данных IBM DB2.

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

Вся информационная база представляется в базе данных в виде набора таблиц. Среди них есть несколько таблиц, которые обязательно присутствуют в представлении любой информационной базы:

* Config - основная конфигурация информационной базы. Эта конфигурация соответствует реальной структуре данных и используется 1С:Предприятием 8.0 в режиме Предприятия.
* ConfigSave - конфигурация, редактируемая Конфигуратором. Конфигурация из ConfigSave переписывается в Config при выполнении "Обновления конфигурации базы данных" в Конфигураторе, а наоборот - при выполнении в Конфигураторе операции "Конфигурация - Конфигурация базы данных - Вернуться к конфигурации БД".
* Files содержит служебную информацию, например, о работе с хранилищем конфигурации.
* Params содержит параметры информационной базы. Среди них:
=> Список пользователей информационной базы.
=> Национальные настройки информационной базы.
=> Таблица соответствия объектов метаданных и объектов базы данных (таблиц, полей, индексов).
=> Некоторая другая информация.
* _YearOffset - смещение дат в базе данных. Эта таблица создается только при использовании Microsoft SQL Server.
* DBSchema содержит информацию о структуре базы данных 1С:Предприятия и определяет другие объекты базы данных, используемые данной информационной базой.

Перечень и структура других таблиц базы данных определяется конкретной конфигурацией, а именно, определенными в ней объектами метаданных. Имя каждой таблицы состоит из буквенного префикса и следующего за ним номера. Префикс определяет назначение таблицы, а номер позволяет различать таблицы одинакового назначения, относящиеся к разным объектам метаданных. Если в качестве СУБД используется IBM DB2, то описанную структуру имеют не имена таблиц, а их псевдонимы.

Если в конфигурации определен хотя бы один план обмена с установленным флагом "Распределенная информационная база", то будут созданы следующие таблицы:

* _ConfigChangeRec - таблица регистрации изменений объектов конфигурации.
* _ConfigChangeRec_ExtProps - таблица имен файлов измененных внешних свойств объектов конфигурации.

Ниже перечислены различные объекты метаданных, которым могут соответствовать те или иные таблицы.

* Константы
=> _Consts содержит текущие значения всех констант, определенных в конфигурации.
=> _ConstsChangeRec - таблица регистрации изменений констант. Создается, если хотя бы одна константа участвует хотя бы в одном плане обмена.
* Планы обмена
=> _Node<n> - таблица плана обмена.
=> _Node<n>_VT<k> - табличная часть плана обмена, создается для каждой табличной части.
* Справочники
=> _Reference<n> - таблица справочника.
=> _Reference<n>_VT<k> - табличная часть справочника - для каждой табличной части.
=> _ReferenceChangeRec<n> - таблица регистрации изменений справочника. Создается, если справочник участвует хотя бы в одном плане обмена.
* Документы
=> _Document<n> - таблица документов для каждого объекта метаданных "документ".
=> _Document<n>_VT<k> - табличная часть документа - для каждой табличной части каждого документа.
=> _DocumentChangeRec<n> - таблица регистрации изменений объекта метаданных типа "документ". Создается для каждого объекта метаданных типа "документ", если он участвует хотя бы в одном плане обмена.
* Последовательности документов
=> _Sequence<n> - таблица регистрации документов - для каждой последовательности.
=> _SequenceBoundary<n> - таблица границ последовательности - для каждой последовательности.
=> _SequenceChangeRec<n> - таблица регистрации изменений последовательности. Создается для каждой последовательности, которая участвует хотя бы в одном плане обмена.
* Журналы документов.
=> _DocumentJournal<n> - таблица журнала документов, создается для каждого журнала документов.
* Перечисления
=> _Enum<n> - таблица перечисления - по одной для каждого перечисления.
* Планы видов характеристик
=> _Chrc<n> - основная таблица плана видов характеристик.
=> _Chrc<n>_VT<k> - табличная часть плана видов характеристик - для каждой табличной части.
=> _ChrcChangeRec<n> - таблица регистрации изменений плана видов характеристик. Создается, если план видов характеристик участвует хотя бы в одном плане обмена.
* Планы счетов
=> _Acc<n> - основная таблица плана счетов.
=> _Acc<n>_ExtDim<k> - таблица видов субконто плана счетов, создается для плана счетов в том случае, если максимальное количество субконто больше нуля.
=> _Acc<n>_VT<k> - табличная часть плана счетов, создается для каждой табличной части плана счетов.
=> _AccChangeRec<n> - таблица регистрации изменений плана счетов. Создается, если план счетов участвует хотя бы в одном плане обмена.
* Планы видов расчета
=> _CalcKind<n> - основная таблица плана видов расчета.
=> _CalcKind<n>_BaseCK - таблица базовых видов расчета, создается для плана видов расчета в случае, если его свойство "Зависимость от базы" имеет значение, отличное от "Не зависит".
=> _CalcKind<n>_DisplacedCK - таблица вытесняемых видов расчета, создается для плана видов расчета в случае, если у него установлен флаг "Использует период действия".
=> _CalcKind<n>_LeadingCK - таблица ведущих видов расчета - для каждого плана видов расчета.
=> _CalcKindDN<n> - вспомогательная таблица для порядка вытеснения, создается, если у плана видов расчета установлен флаг "Использует период действия".
=> _CalcKind<n>_VT<k> - табличная часть плана видов расчета, создается для каждой табличной части.
=> _CalcKindChangeRec<n> - таблица регистрации изменений плана видов расчета. Создается, если план видов расчета участвует хотя бы в одном плане обмена.
* Регистры сведений
=> _InfoReg<n> - таблица движений регистра сведений.
=> _InfoRegChangeRec<n> - таблица регистрации изменений регистра сведений. Создается, если регистр сведений участвует хотя бы в одном плане обмена.
* Регистры накопления
=> _AccumReg<n> - таблица движений регистра накопления.
=> _AccumRegTotals<n> - таблица итогов регистра накопления, если регистр поддерживает остатки.
=> _AccumRegTurnovers<n> - таблица оборотов регистра накопления, если регистр поддерживает обороты.
=> _AccumRegChangeRec<n> - таблица регистрации изменений регистра накопления. Создается, если регистр накопления участвует хотя бы в одном плане обмена.
=> _AccumRegOptions - таблица настроек хранения итогов регистров накопления одна на все регистры накопления.
* Регистры бухгалтерии
=> _AccntReg<n> - таблица движений регистра бухгалтерии.
=> _AccntRegED<n> - таблица значений субконто регистра бухгалтерии, создается в том случае, если он ссылается на план счетов, у которого максимальное количество субконто больше нуля.
=> _AccTtl0<n> - таблица итогов по счету.
=> _AccTtl<i><n> - где i от 1 до максимального количества субконто. Таблица итогов по счету с количеством видов субконто равным i.
=> _AccTtlC<n> - таблица итогов оборотов между счетами, только для регистра бухгалтерии поддерживающего корреспонденцию.
=> _AccntRegChangeRec<n> - таблица регистрации изменений регистра бухгалтерии. Создается, если регистр бухгалтерии участвует хотя бы в одном плане обмена.
=> _AccntRegOptions - таблица настроек хранения итогов одна на все регистры бухгалтерии.
* Регистры расчета
=> _CalcReg<n> - таблица движений регистра расчета.
=> _CalcRegActPer<n> - таблица фактических периодов действия для регистра расчета, создается, если у регистра расчета установлен флаг "Период действия".
=> _CalcRegChangeRec<n> - таблица регистрации изменений регистра расчета. Создается для каждого регистра расчета, участвующего хотя бы в одном плане обмена.
=> _CalcRegRecalc<n> - таблица перерасчета регистра расчета, создается для каждого перерасчета.
=> _CalcRegRecalcChangeRec<n> - таблица регистрации изменений перерасчета. Создается, если перерасчет участвует хотя бы в одном плане обмена.
* Бизнес-процессы
=> _BPRoutePoint<n> - таблица точек маршрута бизнес-процесса для каждого бизнес-процесса.
=> _BusinessProcess<n> - основная таблица бизнес-процесса.
=> _BusinessProcess<n>_VT<k> - табличная часть бизнес-процесса для каждой табличной части.
=> _BusinessProcessChangeRec<n> - таблица регистрации изменений бизнес-процесса. Создается для каждого бизнес-процесса, участвующего хотя бы в одном плане обмена.
* Задачи
=> _Task<n> - основная таблица задачи.
=> _Task<n>_VT<k> - табличная часть задачи для каждой табличной части.
=> _TaskChangeRec<n> - таблица регистрации изменений в задачах. Создается для каждого объекта метаданных типа "задача", который участвует хотя бы в одном плане обмена.

При использовании IBM DB2 префиксы псевдонимов таблиц начинаются не с символа подчеркивания, а сразу с буквенной части.

Количество этих таблиц зависит от функциональности конфигурации и может быть достаточно большим. В штатном режиме 1С:Предприятие не выполняет проверку их наличия, а также целостности и непротиворечивости содержащихся в них данных. Поэтому важно, чтобы база данных, в которой размещена информационная база 1С:Предприятия 8.1, была защищена от несанкционированного доступа и ее модификация выполнялась только средствами 1С:Предприятия. Для проверки необходимо использовать функцию "Администрирование - Тестирование и исправление", встроенную в конфигуратор.

Важно также, чтобы резервное копирование и восстановление базы данных, хранящей информационную базу, выполнялось только целиком. С этой целью рекомендуется использование средств резервного копирования баз данных, встроенных в в используемую СУБД. Резервное сохранение файлового варианта информационной базы может быть выполнено копированием файла 1Cv8.1CD.

В конфигураторе есть специальная функция: Администрирование - Выгрузить информационную базу. С ее помощью можно выгрузить в указанный файл (файл выгрузки) все данные, относящиеся к информационной базе, и больше никакие. Обратная ей функция "Загрузить информационную базу" позволяет в текущую информационную базу вместо существующих загрузить все данные из файла выгрузки. Эти функции также можно использовать для резервного копирования данных информационной базы как в файловом так и в клиент-серверном варианте.

Как просмотреть структуру таблиц информационной базы?

Проверялось на версиях платформы 1С:Предприятие от 8.3.10 до 8.3.18.

Файл DBNames располагается в таблице Params. Его содержание можно получить следующим запросом SQL:

Файл сжат по алгоритму deflate. Начинается с указания количества содержащихся в нём элементов. Содержит список структур DBNameEntry , которые описывают объекты хранения данных в СУБД: основные и вспомогательные таблицы, таблицы настроек, поля этих таблиц и т.п.

Список полей структуры DBNameEntry :

Указатель на файл объекта метаданных в таблице Config основной конфигурации прикладного решения 1С или указатель на сам объект метаданных, если объект метаданных не имеет собственного файла

Тип объекта метаданных, см. приложение № 1

Идентификатор объекта метаданных

Нулевой UUID является системным объектом метаданных, а не нулевой - объектом метаданных, созданным пользователем. Системные объекты метаданных описывают структуры хранения таких данных как, например, настройки регистров накопления и т.п. Пользовательские объекты метаданных описывают структуры хранения пользовательских данных прикладного решения.

Значения UUID в списке объектов метаданных могут повторяться. В таких случаях такие объекты метаданных являются связанными между собой отношениями главный-подчинённый.

Примерами таких объектов могут быть:

- таблица регистра накопления и его таблица итогов;

- таблица справочника и его таблица изменений;

- табличная часть и её поле "НомерСтроки" ( LineNo );

Типы объектов метаданных могут быть следующими:

- Fld ( реквизит объекта);

- Node ( план обмена );

- ReferenceChngR (таблица изменений справочника);

Идентификатор объекта метаданных это целочисленное, которое генерируется платформой 1С по порядку по мере формирования файла DBNames. Этот идентификатор уникален в пределах этого списка, а, следовательно, и в пределах каждой отдельно взятой конфигурации 1С. В случае выгрузки и загрузки конфигурации при помощи файла dt значения этих идентификаторов могут быть пересчитаны и изменены.

В редких случаях файл DBNames может содержать уже не существующие объекты конфигурации. В таких случаях файл объекта метаданных в таблице Config отсутствует.

Наименование соответствующего объекта СУБД обычно формируется из конкатенации значения второго и третьего полей структуры DBNameEntry с добавлением, в случае SQL Server, знака нижнего подчёркивания перед названием . Например, так: "_Reference22".

Фрагмент файла DBNames (начало и конец):

Файл объекта метаданных располагается в таблице C onfig. Его содержание можно получить следующим запросом SQL:

Как видно из запроса, файл объекта метаданных теоретически может состоять из нескольких частей, но на практике я такого не встречал. Файл сжат по алгоритму deflate. Файл содержит описание объекта метаданных. Описание его наименования, реквизитов, табличных частей и многого другого.

Идентификатор объекта метаданных используется для того, чтобы ссылаться на него, например, при определении типов данных реквизитов других объектов метаданных. Кроме этого он используется при сравнении и объединении конфигураций и везде, где нужно сослаться именно на объект метаданных.

Значение идентификатора расположено во второй строке файла вторым по счёту слева, если в качестве разделителя значений считать запятую и если это тип объекта "Перечисление". Для справочников, документов и большинства других объектов это четвёртое по счёту слева значение. В ниже приведённом фрагменте файла идентификатор перечисления выделен жирным шрифтом и подчёркнут.


2. Указатель на файл объекта метаданных в таблице Config .

5-ая строка файла, позиция 3. Для планов обмена: 4-ая строка файла, позиция 3.


Данное значение можно найти в файле DBNames таблицы Params. Подробнее смотри описание файла DBNames.


5-ая строка файла, позиция 4. Для планов обмена: 4-ая строка файла, позиция 4.


6-ая строка файла, позиция 3. Для планов обмена: 5-ая строка файла, позиция 3.


5. Блок свойства "Владелец" объекта метаданных "Справочник".


Далее следуют указатели на файлы объектов метаданных, которые являются владельцами для данного справочника, таблицы Config .

Каждая ссылка на файл объекта метаданных имеет следующий вид (значение указателя выделено жирным шрифтом и подчёркнуто):


Эти же значения можно найти в файле DBNames таблицы Params. Подробнее смотри описание файла DBNames.


Начало блока описания табличных частей объекта метаданных выглядит следующим образом:

Данный блок содержит идентификатор типа коллекции табличных частей (см. приложение № 1) и количество табличных частей объекта метаданных. Обратите внимание, что д ля каждого типа объектов метаданных свой идентификатор коллекции табличных частей.

Ниже этого блока содержится описание табличных частей. Начало блока описания конкретной табличной части выглядит следующим образом:

Этот блок содержит уникальный идентификатор объекта метаданных типа "ТабличнаяЧасть", его имя и синоним.

7. Блок реквизитов, измерений или ресурсов объекта метаданных.

Блок описания реквизитов табличной части объекта метаданных следует после блока описания конкретной табличной части. Выглядит он следующим образом:

Данный блок содержит идентификатор коллекции реквизитов табличной части (см. приложение № 1) и количество реквизитов, которые содержит данная табличная часть. Ниже этого блока расположено описание каждого реквизита по отдельности:

Этот блок содержит уникальный идентификатор объекта метаданных типа "Реквизит", его имя и синоним.

Блоки коллекций реквизитов, измерений и ресурсов соответствующих объектов метаданных описываются в файле объекта метаданных аналогичным табличным частям образом. Разница заключается только в используемых для этих целей идентификаторах соответствующих коллекций (реквизитов, измерений и ресурсов). См. приложение № 1.

8. Блок типов данных реквизитов, измерений или ресурсов.

Блок описания реквизита, измерения или ресурса объекта метаданных выглядит следующим образом:

Этот блок в первых двух своих строках содержит уникальный идентификатор объекта метаданных типа "Реквизит", "Измерение" или "Ресурс", его имя и синоним. При этом идентификатор можно найти в файле DBNames таблицы Params (см. описание файла DBNames ):

Далее следует блок описания типов данных реквизита, измерения или ресурса. Начинается он со строки:

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

Первое значение такой строки является идентификатором типа данных (см. приложение № 2), а все последующие — квалификаторами типа.

При этом для ссылочных типов данных этот квалификатор является идентификатором объекта метаданных (см. пункт № 1), который расположен во второй строке файла, а не указателем на файл в таблице Config (см. пункт № 2) .

Приложение № 1. Идентификаторы вспомогательных объектов метаданных.

Идентификатор

Объект метаданных

Коллекция реквизитов справочника

Коллекция табличных частей справочника

Коллекция реквизитов табличной части любого объекта метаданных

Коллекция реквизитов документа

Коллекция табличных частей документа

Коллекция реквизитов плана вида характеристик

Коллекция табличных частей плана видов характеристик

Коллекция реквизитов плана обмена

Коллекция табличных частей плана обмена

Коллекция измерений регистра сведений

Коллекция ресурсов регистра сведений

Коллекция реквизитов регистра сведений

Коллекция измерений регистра накопления

Коллекция ресурсов регистра накопления

Коллекция реквизитов регистра накопления

Коллекция реквизитов плана счетов

Коллекция признаков учёта плана счетов

Коллекция измерений регистра бухгалтерского учёта

Коллекция ресурсов регистра бухгалтерского учёта

Коллекция реквизитов регистра бухгалтерского учёта

Идентификатор

Объект метаданных


Алгоритм чтения метаданных (см. исходный код на GitHub):

1. Читаем файл DBNames из таблицы Params.

2. Используя файл DBNames, читаем файлы объектов метаданных из таблицы Config.

3. Дополняем объекты метаданных недостающими стандартными реквизитами (их нет в файлах объектов метаданных). Это можно сделать, например, выполняя чтение полей таблиц SQL Server (INFORMATION_SCHEMA.COLUMNS). Эти поля имеют стандартные и достаточно понятные имена. Как они называются в 1С мы тоже знаем. Например, "_Description" это "Наименование" справочника.

Начал работу над проектом генерации JSON Schema для конфигураций на платформе 1С:Предприятие 8.

Полезно для интеграции с внешними не-1С системами.

Обновление от 08.07.2021 : Алгоритм загрузки конфигурации.

Класс Configurator, метод OpenInfoBase.

См. также диаграмму в заголовке публикации.

1. Создаётся новый объект класса InfoBase.

2. Загружается файл DBNames из таблицы Params. Файл DBNames содержит следующую информацию:

- TypeToken ( Reference, VT, Fld и т.д.)

3. Из файла DBNames заполняются словари Properties, TableParts и AllTypes объекта InfoBase. Ключом словаря является FileName, а значением, в зависимости от Type Token, является объект классов ApplicationObject или MetadataProperty.

4. Загружается файл root из таблицы Config. Файл root содержит ссылку ( uuid ) на файл описания состава конфигурации (дерева конфигурации). Условно назовём этот файл config.

5. Из файла config в объект InfoBase загружаются основные свойства конфигурации, например, наименование, версия, режимы работы различных аспектов конфигурации.

6. Из файла config в объект InfoBase загружаются следующие объекты метаданных из ветки "Общие" дерева конфигурации:

Заполняются словари SharedProperties и NamedDataTypeSets. Ключом словарей являются uuid этих объектов, а значениями объекты классов SharedProperty и NamedDataTypeSet.

Объект SharedProperty содержит правила применения общего реквизита для различных прикладных объектов метаданных. Правила применения ссылаются на соответствующие объекты метаданных при помощи FileName.

Объект NamedDataTypeSet идентифицируется по uuid и содержит именованный набор типов данных, применяемый к свойствам различных прикладных объектов метаданных. Ссылка на объект NamedDataTypeSet ( uuid ) содержится в свойстве PropertyType объекта MetadataProperty.

7. Выполняется загрузка прикладных объектов метаданных в циклах по соответствующим коллекциям объекта InfoBase. Поиск соответствующих файлов в таблице Config осуществляется по FileName.

Свойства (реквизиты, измерения и ресурсы) объектов метаданных, а также их табличных частей, как и сами табличные части, идентифицируются по uuid и сопоставляются с файлом DBNames по FileName, который был ранее загружен в словари Properties и TableParts объекта InfoBase.

Ссылочные типы данных свойств, которые указываются в свойстве PropertyType объекта MetadataProperty, сопоставляются по их uuid, которые были получены в ходе загрузки соответствующих файлов таблицы Config по FileName. В данном случае FileName и идентификатор типа объекта метаданных (uuid) это разные значения. Скорее всего это идентификатор типа, например, "СправочникСсылка.Номенклатура". В отличие от, например, идентификатора типа "СправочникОбъект.Номенклатура".

При указании типом данных свойства "Харакетристика" выполняется поиск соответствующего объекта типа "План видов харакетристик", однако в данном случае uuid и typeUuid (DataTypeSetUuid) для плана видов характеристик это разные значения. Оба эти значения загружаются из соответствующего файла таблицы Config по FileName.

Скорее всего uuid – это тип данных "ПланВидовХаракетристикСсылка", а uuidType – "ОписаниеХарактеристик".

При указании типом данных свойства "Определяемый тип" выполняется поиск соответствующего определяемого типа по его идентификатору uuid (см. описание NamedDataTypeSet выше).

Кроме этого существуют специальные идентификаторы uuid для конкретных типов данных:

А также для обобщённых типов данных:

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

8. Идентификаторы F ileName владельцев справочников содержатся в файле подчинённого объекта метаданных (справочника), который загружается из таблицы Config по FileName.

9. Идентификаторы FileName регистров, по которым выполняются движения, хранятся в файлах соответствующих объектов метаданных (документов). Таким образом конфигурация свойства "Регистратор" регистров накопления и регистров сведений, подчинённых регистратору, выполняется по мере загрузки файлов документов.

Анна Викулина

Повышение скорости работы 1С, отказоустойчивости системы.

Программные продукты фирмы 1С имеют два основных формата хранения базы данных: файловая база данных и база данных, размещенная на SQL Server средствами СУБД

В список поддерживаемых СУБД входят:

  • Microsoft SQL Server
  • PostgreSQL
  • Oracle Database
  • IBM Db2.

Файловые базы данных, как правило, используют небольшие компании с 1-5 пользователями, где нет большого объема документооборота, а также не произойдет быстрого роста объема базы данных.

Когда нужно переходить с файловой базы 1С на СУБД MS SQL?

Если конфигурация долго открывается и также долго открываются и проводятся документы, если периодически выскакивают ошибки «Нарушена целостность базы данных» или «Файл базы данных поврежден», файл ИБД *.1СD имеет объем более 5ГБ, планируется рост пользователей или в результате внедрения еще одной конфигурации 1С планируется достаточно быстрый рост объема данных, пора задуматься о вопросе, как перенести файловую базу 1С на SQL поскорее и узнать, что такое сервер 1С.

Преимущества SQL

Если переход все же вызывает некоторые колебания, стоит учесть, что преимуществ у клиент-серверного варианта значительно больше, чем недостатков, а у файлового – наоборот.

При высокой отказоустойчивости и поддержке бесконечно большой базы данных SQL-сервер дает возможность одновременной работы большому числу пользователей. Конечно, наиболее мощные СУБД – MS SQL Server/Oracle стоят недешево, но бесплатный вариант PostgreSQL также широко используется в среде 1С. Да, SQL требует настройки сервера 1С и администрирования, но подобные услуги оказывает широкий круг компаний-франчайзи 1С, и конечно же – наша.

Работа с файловой базой плохо защищена, потому что доступ к копированию файла БД открыт любому пользователю, плохо масштабируется и начинает «тормозить», когда пользователей становится больше пяти из-за высокого уровня изоляции транзакций, а также имеет ограничения по размеру в 5-10 Гб. При этом отдельные функции конфигурации при таком варианте просто не работают (к примеру, регламентные задания).

Да, быстрая настройка, отсутствие дополнительного ПО и низкая цена – весьма привлекательные «черты» файловых БД, но выбор в их пользу может иметь место только при построении самой простой информационной системы.

Рис.2 Пример частой ошибки при работе с файловой базой объемом более 5Гб

Рис.2 Пример частой ошибки при работе с файловой базой объемом более 5Гб

Этапы перехода на внешнюю СУБД

Для переноса файловой базы 1С 8.3 на сервер SQL проделаем следующие шаги:

Шаг №1 Выгрузка ИБ

Откроем конфигуратор файловой версии базы 1С.

В конфигураторе выбираем пункт меню «Администрирование» и «Выгрузить информационную базу».

Итогом процесса выгрузки будет файл *.dt.

Шаг №2 Создание кластера

Для данного пункта запустим консоль управление сервером 1С.

Важно: Для работы сервера 1С обязательно требуется установка лицензии на сервер 1С.

Лицензия бывает 32х-разрядная и 64х-разрядная. Разрядность определяет количество ОЗУ доступное серверу 1С: у 32х до 4ГБ, а 64х более 4ГБ.

Для уточнения цен, подбора сервера для 1С с учетом плановых нагрузок и форматов обслуживания таких систем обратитесь к нашим специалистам. Мы с радостью подберем для вас подходящее решение.

В открывшемся приложении выберите «Кластер-Создать кластер», а если кластер уже создан, выберите существующий.

Шаг №3 Создание базы данных в кластере

Следующим шагом в процессе миграции базы 1С будет создание новой конфигурации в кластере. Существует два возможных варианта создания базы 1С на сервере 1С:

  • Через консоль администрирования кластера 1С;
  • Через окно запуска 1С:Предприятие.

Создание информационной базы в кластере через консоль администрирования кластера 1С

Чтобы создать базу 1С в СУБД SQL, выбираем «Создание новой информационной базы» и заполнить обязательные поля:

  • Имя – название вашей базы 1С;
  • Сервер баз данных – указываем имя кластера 1С;
  • База данных – название базы данных в вашей СУБД SQL;
  • Пользователь сервера БД – логин от администратора СУБД SQL;
  • Пароль сервера БД – пароль от администратора СУБД SQL.

Далее добавляем эту ИБД в список 1С для последующего запуска конфигуратора 1С и загрузки ранее подготовленного файла выгрузки базы. После того как база в кластере создана, добавляем ее в список баз 1С. Для этого запускаем 1С:Предприятие и «Добавить…» базу 1С.

Далее выбираем «Добавление в список существующей информационной базы» и переходим «Далее».

После появления формы добавления базы 1С, заполняем последние строки в списке и переключаем режим работы на «На сервере 1С:Предприятие».

Рис. 11 Окно заполнения данных для подключения базы 1С

Рис. 11 Окно заполнения данных для подключения базы 1С

Запуск 1С:Предприятие и добавление конфигурации

Этот способ быстрее предыдущего и бывает полезен, когда, например, вы не установили у себя компоненту консоли управления при установке платформы. Чтобы им воспользоваться, запускаем 1С:Предприятие и в открывшемся окне приложения жмем кнопку «Добавить».

Далее выбираем «Создание информационной базы».

После перехода в следующий пункт меню выбираем « Создание информационной базы без конфигурации для разработки новой конфигурации» или «Загрузки выгруженной ранее информационной базы».

Следующим шагом будет выбор пункта «На сервере 1С:Предприятие».

Мы попадем в искомое нами окно заполнения полей для создания базы на сервере 1С.

Шаг №4 Завершение переноса

Сервер

Перенос базы 1С на SQL-сервер

Поможем определить необходимость переноса базы 1С на SQL и подготовить инфраструктуру

Перенос данных

Перенос данных 1С

Переходите на новую программу 1С? Проведем бесплатный анализ и перенесем только необходимые данные

После запуска конфигуратора переходим в раздел «Администрирование» и выбираем пункт «Загрузить информационную базу».

Далее выбираем ранее сохраненный файл выгрузки и начинаем непосредственно процесс загрузки базы на СУБД SQL.

Готово! Ваша конфигурация успешно переведена из файлового режима на SQL-сервер.

Если повторная работа в конфигураторе не требуется, выбираем вариант «Нет» и запускаем базу в режиме «Предприятия» для проверки ее работоспособности.

Мы рассмотрели процесс миграции файловой базы на сервер 1С. Если в будущем вам потребуется перенос базы 1С SQL на другой сервер или у вас остались вопросы по этому переводу, обратитесь к нашим специалистам за консультацией, мы с радостью вам поможем.

Анна Викулина

Время выполнения отчетов – один из ключевых показателей успешности внедрения 1С. Учитывая, что все отчеты строятся на основе выполнения запросов к базе данных, длительность работы запросов – ключевой показатель. Далеко не всегда время работы устраивает пользователей со стороны заказчика, поэтому администраторам приходится оптимизировать проблемные участки. Чтобы их найти в коде, можно использовать такой инструмент, как SQL Profiler.

Что такое MS SQL Profiler и где его найти?

В 1С запросы пишут на встроенном языке, который очень похож на SQL. В процессе работы текст запроса конвертируется в стандартный SQL-запрос и выполняется на стороне СУБД. И иногда, чтобы понять, в чем проблема, разработчику 1С нужно смотреть именно на SQL-версию своего запроса. Многие разработчики используют для этого такой инструмент, как MS SQL Profiler.

С его помощью программист сможет оценить схему SQL-запроса и его длительность, и найти проблемные места. Также есть возможность отфильтровать нужные вам данные – по чрезмерной длительности выполнения, имени таблицы и другим критериям. Информацию можно представить не только в виде текста и таблиц, но и с помощью наглядной графики. Найти этот инструмент можно в MS SQL Server – как одну из многочисленных опций программного обеспечения по управлению базами данных.

Естественно, использовать эту возможность смогут только владельцы клиент-серверных баз. Если же у вас используется файловая, то в качестве замены можно посоветовать технологический журнал от 1С. Конечно, он не настолько удобен и вариативен, но при должных навыках и из него можно узнать всю нужную информацию. Для этого понадобится достаточная квалификация, знания и мощное оборудование, так как запуск технологического журнала потребует приличных ресурсов.

Чтобы открыть MS SQL Profiler и начать работу с базами данных, надо запустить MS SQL, в открывшемся окне, в меню «Сервис» найти нужное приложение и открыть его. По щелчку откроется еще одно окно с просьбой указать сервер, где находятся наши клиент-серверные базы данных. Вы можете подключаться к нескольким серверам и разбираться в структуре их запросов к SQL.

В терминологии SQL-процесс записи и последующего просмотра событий называется «трассировкой». Именно поэтому после указания данных сервера БД и логина с паролем откроется окно со свойствами трассировки. Наиболее интересной и значимой для нас является закладка «Выбор событий», поскольку там настраивается, что мы хотим видеть в трассировке.

Как настроить MS SQL Profiler для 1С

Чтобы не перегружать сервер и не занимать лишнее пространство на диске, нужно грамотно отфильтровать необходимые события. Несмотря на текстовую подсказку, разъясняющую суть столбца и строки, для оптимального результата нужны определенные знания. Также можно воспользоваться опытом других людей, чем мы и воспользуемся, проставив галки напротив следующих событий:

  • Showplan Statistics Profile – отвечает за отражение подробных сведений плана запросов в текстовом виде;
  • Showplan XML Statistics Profile – отразит графическое представление выполнения запроса;
  • PRC: Completed – будут отражаться тексты запросов, выполняющихся в виде процедур с параметрами;
  • SQL: Batch Completed – трассировка запросов без параметров.
  • DatabaseName – воспользуемся в настройках механизмом «Похоже на» и занесем туда наименование нашей БД. После установки подобного фильтра в нашей трассировке будут отражены только запросы, обрабатываемые в конкретной базе. Возможен множественный выбор, чтобы отобрать 2, 3 и более баз;
  • DatabaseID – отбор по идентификатору конкретной базы. Узнать этот параметр можно, создав и выполнив запрос “SELECT db_id()” в SQL Server Management Studio. Выбрав в дереве конкретную базу, вы сможете узнать все ее параметры, в том числе и идентификатор;

Читайте также: