Администрирование · 10 мин
С помощью чего система 1С:Предприятие 8 работает с данными информационной базы
Разбираем, с помощью чего платформа 1С:Предприятие 8 работает с данными информационной базы: объекты метаданных, запросы, СУБД, файловый и клиент-серверный режимы.
Платформа 1С:Предприятие 8 не обращается к данным напрямую «в обход» своих механизмов: между прикладным кодом и физическим хранилищем всегда стоят несколько слоёв. Разработчик и пользователь работают с прикладными объектами (справочниками, документами, регистрами), платформа транслирует эти обращения в команды к хранилищу, а физическое хранение обеспечивает либо собственный файловый формат, либо внешняя СУБД.
Понимание этой цепочки важно практически: от неё зависит, как писать эффективные запросы, почему нельзя править данные напрямую в базе SQL, как выбирать между файловым и клиент-серверным вариантом и где искать причину медленной работы отчёта.
Объектная модель: основной способ работы с данными
Главный инструмент работы с данными в 1С — прикладные объекты метаданных: справочники, документы, регистры сведений, регистры накопления, регистры бухгалтерии, планы счетов, планы видов характеристик и другие. Каждый такой объект платформа автоматически отображает на одну или несколько таблиц в хранилище, но разработчик оперирует не таблицами, а сущностями предметной области: «Номенклатура», «РеализацияТоваровУслуг», «ОстаткиТоваров».
Обращение к объектам выполняется на встроенном языке 1С через менеджеры объектов и ссылки. Например, Справочники.Номенклатура.НайтиПоКоду("000123") вернёт ссылку, а вызов ПолучитьОбъект() загрузит объект целиком для изменения. После правки реквизитов вызывается метод Записать(), и платформа сама формирует нужные команды INSERT или UPDATE, контролирует уникальность, ссылочную целостность и права доступа.
Объектная модель удобна для построчной работы — создания и изменения отдельных документов и элементов справочников. Но для выборки больших массивов данных она неэффективна: каждое обращение к объекту — это отдельное чтение из базы. Для массовых выборок предназначен другой механизм — запросы.
Язык запросов 1С: чтение больших объёмов данных
Второй ключевой механизм — встроенный язык запросов, синтаксически похожий на SQL, но работающий в терминах конфигурации: вместо физических имён таблиц используются имена объектов метаданных (Справочник.Номенклатура, РегистрНакопления.Продажи.Обороты). Платформа сама преобразует такой запрос в SQL-диалект конкретной СУБД или в команды файлового движка.
Запрос выполняется через объект Запрос: задаётся текст, устанавливаются параметры, вызывается Выполнить(), а результат читается выборкой или выгружается в таблицу значений. Важная особенность — виртуальные таблицы регистров (остатки, обороты, срез первых и последних), которые платформа вычисляет на лету по данным физических таблиц итогов.
Для сложных выборок с промежуточными расчётами применяются пакетные запросы и временные таблицы, а для компоновки отчётов без программирования — система компоновки данных (СКД), которая строится поверх того же языка запросов и добавляет настройки группировок, отборов и оформления.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| СУММА(Товары.Количество) КАК Количество
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары
|ГДЕ
| Товары.Ссылка.Дата МЕЖДУ &Начало И &Конец
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура";
Запрос.УстановитьПараметр("Начало", НачалоМесяца(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("Конец", КонецМесяца(ТекущаяДатаСеанса()));
Результат = Запрос.Выполнить().Выгрузить();Файловый и клиент-серверный режимы хранения
Физически данные информационной базы хранятся одним из двух способов. В файловом варианте вся база размещается в одном файле 1Cv8.1CD собственного формата платформы. С ним работает встроенный в платформу движок СУБД: клиентское приложение читает и пишет файл напрямую (при локальном размещении) или через общий сетевой ресурс / веб-сервер. Этот вариант прост в развёртывании, но ограничен по числу одновременно работающих пользователей и размеру базы.
В клиент-серверном варианте между клиентом и хранилищем добавляется сервер 1С:Предприятия, а данные хранит внешняя СУБД: Microsoft SQL Server, PostgreSQL (включая адаптированные сборки), Oracle Database или IBM Db2. Кластер серверов 1С принимает обращения клиентов, выполняет код, формирует SQL-запросы к СУБД и управляет транзакциями и блокировками.
Сравнение вариантов хранения
Подходит для небольших баз и ограниченного числа пользователей; не требует отдельной СУБД, но чувствителен к сбоям сети при размещении на общей папке и ограничен по масштабу.
Подходит для многопользовательской работы и больших объёмов; даёт управляемые блокировки, резервное копирование средствами СУБД, но требует лицензий на сервер 1С и СУБД и квалифицированного администрирования.
Как платформа обращается к СУБД
В клиент-серверном режиме платформа выступает посредником: прикладной код на встроенном языке и запросы транслируются в SQL, а СУБД возвращает наборы данных, которые платформа преобразует в объекты, выборки и таблицы значений. Разработчик не пишет «чистый» SQL для штатной работы — схема таблиц, индексы и связи создаются и обновляются платформой автоматически при реструктуризации конфигурации.
Важный элемент — механизм управляемых блокировок. При записи данных платформа устанавливает блокировки на уровне прикладных объектов (диапазоны регистров, ссылки), что позволяет параллельно работать десяткам пользователей без взаимных ожиданий. В файловом режиме блокировки грубее — на уровне таблиц целиком, что одна из причин ограничения масштабируемости.
Транзакционность обеспечивается платформой: проведение документа, записывающее движения по нескольким регистрам, выполняется в одной транзакции. При ошибке все изменения откатываются, и база остаётся в согласованном состоянии.
Дополнительные механизмы доступа к данным
Помимо объектной модели и запросов, платформа предоставляет ряд вспомогательных механизмов. Таблицы значений и деревья значений — оперативные структуры в памяти для промежуточной обработки данных, полученных запросом. Схемы компоновки данных позволяют строить отчёты декларативно, без ручного обхода выборок.
Для обмена с внешними системами используются: механизмы сериализации XDTO и работа с XML/JSON, планы обмена для распределённых баз и синхронизации, HTTP-сервисы и веб-сервисы, публикуемые средствами платформы, а также стандартный интерфейс OData, который позволяет читать данные информационной базы из внешних приложений по HTTP без программирования на стороне 1С.
Отдельно стоит механизм внешних источников данных — он позволяет подключать таблицы сторонних баз (через ODBC) и работать с ними в запросах и отчётах почти как с объектами конфигурации, при этом данные физически остаются во внешней системе.
Размер файла и его расположение — локальный диск или сетевая папка
Имя сервера 1С и имя базы в кластере; СУБД уточняется в консоли кластера
Проверить, не используется ли обход объектов в цикле вместо запроса
Выбор механизма под задачу и типичные ошибки
Правило выбора простое: для чтения и анализа массивов данных — запрос или СКД; для создания и изменения отдельных объектов с бизнес-логикой — объектная модель; для отчётов пользователям — СКД; для интеграций — HTTP/OData/планы обмена. Нарушение этого правила — главный источник проблем с производительностью.
Перед оптимизацией полезно включить технологический журнал или воспользоваться замером производительности в конфигураторе: они покажут, какие именно запросы к СУБД генерирует платформа и сколько времени занимает каждый. Это надёжнее, чем догадки о «медленной базе».
Как проверить результат оптимизации
Одно-два обращения на операцию выборки
Тысячи одинаковых запросов в цикле
Запрос с отборами и параметрами
Обход объектов через ПолучитьОбъект()
Управляемый в клиент-серверной базе
Автоматический при высокой конкуренции пользователей
Частые вопросы
Можно ли подключиться к базе 1С напрямую из Excel или Power BI?
Да, для клиент-серверных баз — через публикацию интерфейса OData на веб-сервере: данные читаются по HTTP в режиме «только чтение» без риска повредить базу. Прямое подключение к таблицам СУБД технически возможно, но не рекомендуется: структура таблиц не документирована и меняется при обновлении конфигурации.
Чем файловая база хуже клиент-серверной?
Файловая база использует блокировки на уровне целых таблиц, хуже переносит одновременную работу пользователей и уязвимее при сбоях сети или питания. Для небольшого коллектива и умеренных объёмов она полностью работоспособна и значительно дешевле в развёртывании.
Что такое виртуальные таблицы в запросах 1С?
Это вычисляемые платформой представления регистров: остатки на дату, обороты за период, срез первых или последних значений. Физически таких таблиц нет — платформа строит их по таблицам движений и итогов в момент выполнения запроса.
Почему запрос с параметрами предпочтительнее подстановки значений в текст?
Параметры исключают ошибки форматирования дат и строк, защищают от некорректной интерпретации данных и позволяют СУБД повторно использовать план выполнения запроса, что снижает нагрузку.
Как узнать, какая СУБД обслуживает клиент-серверную базу?
В консоли кластера серверов 1С откройте свойства информационной базы: там указаны тип СУБД, сервер баз данных и имя базы. Эти параметры задаются при создании базы и могут быть изменены администратором.
Можно ли перенести базу из файлового режима в клиент-серверный?
Да, штатно: сделайте выгрузку базы в файл .dt через конфигуратор, создайте пустую базу на сервере 1С с нужной СУБД и загрузите выгрузку в неё. Перед операцией убедитесь, что версии платформы совместимы, и сохраните резервную копию исходной базы.
Что важно запомнить
1С:Предприятие 8 работает с данными через объектную модель и язык запросов, а хранение обеспечивает файл 1Cv8.1CD или внешняя СУБД через сервер 1С. Для чтения массивов используйте запросы и СКД, для изменения отдельных объектов — объектную модель, и никогда не правьте данные напрямую в СУБД.