Устройство платформы 1С:Предприятие 8.3 изнутри: от запуска клиента до записи в базу

· 11 мин

Содержание

Программа 1С 8 — это три слоя: платформа (исполняемые файлы 1cv8.exe, 1cv8c.exe и сервер), конфигурация (прикладное решение: Бухгалтерия, ЗУП, УТ) и информационная база, где лежат данные. Платформа исполняет код конфигурации и сама общается с хранилищем данных. Работать она может в двух вариантах: файловом, когда база — один файл 1Cv8.1CD в сетевой папке, и клиент-серверном, когда данные хранит СУБД, а код выполняет кластер серверов 1С.

От выбора варианта зависит почти всё: скорость при 20 пользователях, надёжность при сбое сети, способ резервного копирования и даже то, какие лицензии покупать.

Платформа, конфигурация и база: кто за что отвечает

Удобно представить 1С как игровую приставку и картридж. Приставка — платформа, картридж — конфигурация. Одна и та же платформа 8.3 запускает и Бухгалтерию 3.0, и ЗУП 3.1, и самописную базу склада.

СлойЧто этоГде находитсяКто обновляет
ПлатформаИсполняемые программы, интерпретатор встроенного языка, драйверы СУБДC:\Program Files\1cv8\<номер версии>\binАдминистратор, установкой дистрибутива
КонфигурацияМетаданные (справочники, документы, регистры), формы, модулиВнутри информационной базыЧерез Конфигуратор или автообновление
ДанныеЗаписи справочников, документов, движения регистровФайл 1Cv8.1CD или база в СУБДПользователи в работе

Из этого следуют практические вещи:

  • 🔹 обновить платформу и обновить конфигурацию — две разные операции, у них разные дистрибутивы;
  • 🔹 у каждой конфигурации есть минимальный номер платформы: релиз Бухгалтерии требует платформу с номером не ниже указанного в его описании;
  • 🔹 на одном компьютере можно держать несколько версий платформы рядом, каждая в своём каталоге.

Конфигурация внутри базы хранится в двух экземплярах: основная конфигурация (то, что редактирует разработчик в Конфигураторе) и конфигурация базы данных (то, по чему реально работают пользователи). Пока разработчик не выполнит обновление конфигурации базы данных, его правки пользователи не увидят. Отсюда частый вопрос «я всё поменял, а ничего не изменилось».

Файловый и клиент-серверный режим работы 1С 8

Файловый вариант

Вся база — один файл 1Cv8.1CD. Каждый пользователь открывает его напрямую по сети. Отдельного сервера 1С нет: код, помеченный в конфигурации как серверный, выполняется прямо в процессе клиента на компьютере пользователя.

Плюсы: ставится за 10 минут, копия базы — это копия папки. Минусы: при росте числа пользователей растут конфликты блокировок, обрыв сети посреди записи может повредить файл, а тяжёлые отчёты гоняют данные по сети на каждый компьютер.

Клиент-серверный вариант

Данные хранит СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle Database. Между пользователями и СУБД стоит кластер серверов 1С, который выполняет серверный код, держит сеансы и управляет блокировками. Клиент получает только результат — готовую форму или отчёт.

Как клиент находит базу на сервере

Подключение идёт по цепочке, и каждый участник слушает свой порт:

  1. 🖥️ Клиент обращается к агенту сервера (ragent), порт по умолчанию 1540. Через агента же работает и консоль администрирования.
  2. 🗂️ Агент передаёт клиента менеджеру кластера (rmngr), порт 1541. Менеджер знает список баз, сеансов и рабочих процессов.
  3. ⚙️ Менеджер направляет сеанс в рабочий процесс (rphost). Диапазон портов рабочих процессов по умолчанию 1560–1591, он задаётся в свойствах рабочего сервера.
  4. 🗄️ Рабочий процесс выполняет запросы к СУБД и возвращает клиенту данные.

Если между пользователями и сервером стоит межсетевой экран, открыть нужно весь набор: 1540, 1541 и диапазон рабочих процессов. Открыли только 1540 — клиент «видит» сервер, но падает при входе в базу.

Параметры отказоустойчивости и требования назначения функциональности настраиваются тоже в свойствах рабочего сервера, а не в свойствах базы.

Какой вариант работы выбрать?

Границы в 5 и 15 пользователей — практический ориентир, а не правило платформы. Решает не только число людей, но и объём документов в день и тяжесть отчётов.

Типы клиентов и режимы запуска

Пользователь видит 1С через один из клиентов. Они отличаются тем, сколько работы берут на себя.

КлиентФайл / способФормыКак подключается
Толстый клиент1cv8.exeОбычные и управляемыеНапрямую к файлу или к кластеру
Тонкий клиент1cv8c.exeТолько управляемыеК файлу, к кластеру или через веб-сервер по HTTP
Веб-клиентБраузерТолько управляемыеЧерез опубликованную на веб-сервере базу
Мобильный клиентПриложение на телефонеУправляемыеЧерез веб-сервер

Современные конфигурации (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) написаны на управляемых формах с интерфейсом «Такси» и рассчитаны на тонкий клиент. Толстый клиент нужен для старых самописных решений на обычных формах и для Конфигуратора.

Режимы запуска

У 1cv8.exe два основных режима:

  • 👤 ENTERPRISE — режим «1С:Предприятие», обычная работа пользователя;
  • 🛠️ DESIGNER — Конфигуратор: разработка, обновление конфигурации, выгрузка и загрузка .dt, тестирование и исправление.

Запуск из командной строки позволяет не выбирать базу в списке:

rem Файловая база, режим предприятия, с очисткой кэша
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Иванов" /P"пароль" /ClearCache

rem Клиент-серверная база, Конфигуратор
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S"srv1c\buh_main" /N"Администратор"

Номер версии в пути подставьте свой. 1cestart.exe — стартер: он сам выбирает нужную версию платформы по настройкам базы в списке. Сам список баз пользователя хранится в файле %APPDATA%\1C\1CEStart\ibases.v8i.

Где выполняется код

В модулях управляемых форм каждая процедура помечена директивой: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Клиентский код работает на компьютере пользователя, серверный — в рабочем процессе кластера. Каждый вызов сервера — это сетевой запрос, поэтому разработчики стараются делать их пореже. В файловом варианте «сервер» живёт в том же процессе клиента, и разница почти не видна, пока база не переезжает на кластер.

Как 1С хранит данные и проводит транзакции

Конфигуратор описывает объекты на уровне метаданных: справочник «Номенклатура», документ «Реализация», регистр накопления «Товары на складах». Платформа сама превращает их в таблицы СУБД со служебными именами вроде _Reference32 или _AccumRg1520. Напрямую писать в эти таблицы SQL-запросами нельзя: платформа не узнает об изменениях, итоги регистров разойдутся.

Запись данных всегда идёт в транзакции. Когда бухгалтер проводит документ, платформа в одной транзакции:

  1. записывает сам документ;
  2. удаляет старые движения по регистрам;
  3. записывает новые движения;
  4. пересчитывает итоги регистров.

Если на любом шаге возникла ошибка — отрицательный остаток, конфликт блокировок, обрыв связи — откатывается всё. Половины проведённого документа не бывает.

Блокировки

Чтобы два пользователя не списали один и тот же остаток, платформа ставит блокировки. В свойствах конфигурации есть параметр «Режим управления блокировкой данных» с тремя значениями: Автоматический, Управляемый, Автоматический и управляемый.

  • 🔒 Автоматический — блокировки ставит СУБД. На MS SQL это часто приводит к блокировке лишних строк и целых таблиц.
  • 🔐 Управляемый — блокировки ставит менеджер блокировок 1С, точно по нужным записям. Типовые конфигурации работают в этом режиме.

Если пользователь ждёт чужую блокировку дольше заданного таймаута, он получает ошибку со словами Конфликт блокировок при выполнении транзакции и Превышено максимальное время ожидания предоставления блокировки. Это не поломка базы: кто-то держал те же данные долгой транзакцией — массовым перепроведением, закрытием месяца, обменом.

Закрытие месяца и групповое перепроведение запускайте, когда в базе мало людей. Так ошибок блокировок станет заметно меньше без всяких настроек.

Фоновые и регламентные задания, службы сервера

Не всё в 1С делает человек нажатием кнопки. Часть работы платформа выполняет сама.

  • ⏱️ Регламентные задания — действия по расписанию: загрузка курсов валют, обмен с сайтом, получение писем, обновление классификатора банков. Список и расписание задаются в конфигурации, включаются в типовых решениях в разделе Администрирование → Обслуживание.
  • 🔄 Фоновые задания — долгие операции, запущенные из кода, чтобы не «замораживать» форму: формирование тяжёлого отчёта, групповая обработка.

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

В файловом варианте регламентные задания выполняются только пока база открыта: их подхватывает один из запущенных клиентских сеансов. Закрыли все сеансы на ночь — ночной обмен не прошёл.

Какие службы работают на сервере

На Windows при установке сервера 1С как службы появляется служба «Агент сервера 1С:Предприятия 8.3». Она запускает ragent, а он — rmngr и rphost. Для администрирования через утилиту rac дополнительно нужен сервер администрирования ras, по умолчанию на порту 1545.

rem Список кластеров и сеансов (сервер администрирования ras должен быть запущен)
rac cluster list
rac session list --cluster=<id кластера>

Остальные параметры смотрите в справке rac help.

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

Установка платформы: что выбрать в установщике

Дистрибутив платформы для Windows ставит компоненты на выбор. Знать их полезно, чтобы не поставить лишнее и не пропустить нужное.

КомпонентКогда нужен
1С:ПредприятиеТолстый клиент и Конфигуратор — разработчику и администратору
1С:Предприятие — тонкий клиентОбычному пользователю
Сервер 1С:ПредприятияТолько на машине, которая будет сервером кластера
Модули расширения веб-сервераДля публикации базы на Apache или IIS (веб-клиент, тонкий клиент по HTTP)
Администрирование сервераКонсоль кластера
Интерфейсы на разных языкахЕсли пользователи работают не на русском

При установке сервера установщик предлагает поставить его как службу Windows и выбрать пользователя, от имени которого служба работает. Лучше выделить отдельную учётную запись, а не запускать службу от администратора.

Консоль администрирования кластера — оснастка MMC. Если после установки или обновления платформы консоль не открывается, нужно перерегистрировать библиотеку radmin.dll нужной версии, от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

После этого базу добавляют в кластер через консоль или прямо из окна запуска 1С кнопкой «Добавить» с вариантом «На сервере 1С:Предприятия». Для веб-доступа базу публикуют из Конфигуратора: Администрирование → Публикация на веб-сервере.

Лицензии и что ограничивает скорость 1С

Платформа без лицензии не запустит базу. Исключение — учебная версия с её собственными ограничениями. Лицензии делятся на два вида:

  • 🔑 клиентские — на число одновременных подключений пользователей;
  • 🖧 серверные — нужны для работы кластера в клиент-серверном варианте; различаются по редакциям, редакция КОРП даёт дополнительные возможности кластера.

Лицензия бывает программной (активируется пин-кодом и привязывается к параметрам компьютера) или аппаратной (USB-ключ). Программная лицензия «слетает» при заметной смене оборудования — замене диска, материнской платы, сетевой карты, переносе виртуальной машины. Её восстанавливают повторной активацией резервным пин-кодом из комплекта.

Пин-коды и регистрационный номер комплекта храните отдельно от сервера. Без них после поломки сервера восстановить лицензию сложнее и дольше.

Что на самом деле тормозит

Узкое местоКак проявляетсяЧто помогает
Сеть в файловом вариантеВсё медленно у всех, быстрее только на самом сервереПереход на кластер или работа через удалённый рабочий стол
Диск сервера СУБДМедленное проведение и отчёты при низкой загрузке процессораSSD/NVMe под файлы базы и журнал транзакций
Память сервераРабочие процессы rphost перезапускаются, растёт файл подкачкиДобавить ОЗУ, ограничить память СУБД
БлокировкиОшибки ожидания, «висящие» пользователиУправляемый режим, перенос тяжёлых операций на ночь
Код конфигурацииМедленна одна конкретная форма или отчётЗамер производительности, оптимизация запросов

Диагностика: как понять, что происходит внутри 1С

Начинайте с простого и переходите к сложному.

  1. 📜 Журнал регистрации. В типовых конфигурациях: Администрирование → Обслуживание → Журнал регистрации. Там видно, кто и когда записал документ, какие были ошибки, когда шли регламентные задания.
  2. 👥 Консоль кластера. В разделе сеансов видно, кто подключён, сколько времени идёт вызов, какой сеанс держит блокировку. Там же можно завершить зависший сеанс — с предупреждением пользователя.
  3. 📊 Замер производительности. В Конфигураторе в режиме отладки показывает, какие строки кода съели время. Нужен, когда медленна одна операция.
  4. 🔬 Технологический журнал. Включается файлом logcfg.xml в каталоге conf установленной платформы. Пишет события сервера: долгие запросы, исключения, ожидания блокировок, взаимоблокировки. Подходит для поиска причины, которую не видно в журнале регистрации.
  5. 🧹 Кэш клиента. Странные ошибки интерфейса и старые формы после обновления часто лечатся запуском с ключом /ClearCache. Кэш лежит в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.

Технологический журнал быстро растёт. Включайте его с фильтром по событиям, ограничивайте срок хранения в настройке и выключайте после диагностики, иначе он заполнит диск.

Отдельный случай — серверный кэш в каталоге srvinfo. Его очистка лечит часть «необъяснимых» ошибок кластера, но выполняется только при остановленной службе агента, то есть при отключённых пользователях, и только после того, как остальные способы не помогли.

Частые вопросы

Можно ли перевести файловую базу на сервер без потери данных?
Да. Выгрузите базу в файл .dt через Конфигуратор, создайте новую базу в кластере и загрузите в неё этот файл. Данные, пользователи и настройки переедут целиком.
Нужен ли интернет для работы 1С 8?
Для самой работы — нет. Интернет нужен для обновлений, загрузки курсов и классификаторов, сдачи отчётности, ЭДО и активации программной лицензии (её можно активировать и без интернета, по телефону или через файл).
Сколько версий платформы можно держать на одном компьютере?
Сколько угодно клиентских версий: каждая ставится в свой каталог, а стартер выбирает нужную по настройке базы. С сервером строже: одной службе агента соответствует одна версия, разные версии сервера разносят по разным портам.
Почему в файловом режиме 1С работает быстрее, чем на сервере?
На одном-двух пользователях так бывает: нет сетевых вызовов между клиентом, кластером и СУБД. Выигрыш сервера проявляется при множестве одновременных пользователей и тяжёлых отчётах.
Что будет с данными, если отключат свет во время проведения документа?
Незавершённая транзакция откатится, документ останется в состоянии до проведения. В файловом варианте при обрыве записи сильнее риск повреждения файла базы, поэтому там особенно важны резервные копии и ИБП.