Разработка и Конфигурация · 11 мин
Backend 1С: что это и как устроена серверная часть платформы
Backend 1С простыми словами: серверная часть платформы, СУБД, кластер серверов, роли backend-разработчика, задачи, инструменты и отличия от frontend.
Под backend в контексте 1С понимают серверную часть системы: всё то, что работает «за кулисами» пользовательского интерфейса — обработку данных, выполнение бизнес-логики, хранение информации и обмен с другими системами. Когда бухгалтер нажимает кнопку «Провести документ», он видит только результат, а вся работа — проверка заполнения, расчёт проводок, запись в базу — выполняется на стороне backend.
В отличие от классической веб-разработки, где backend пишут на Python, Java или PHP, в экосистеме 1С серверная логика создаётся на встроенном языке платформы и исполняется в специальной инфраструктуре: кластере серверов 1С:Предприятия и системе управления базами данных. Поэтому термин «backend 1С» означает одновременно и слой архитектуры, и специализацию разработчика, который занимается именно серверным кодом.
Понимание устройства backend полезно не только программистам. Внедренцы, администраторы и руководители проектов, которые понимают, где выполняется код и где хранятся данные, точнее ставят задачи, быстрее находят причины медленной работы и не путают проблемы клиентской части с проблемами сервера.
Из чего состоит backend 1С: архитектура системы
Платформа 1С:Предприятие построена по трёхзвенной архитектуре. Первое звено — клиентское приложение (тонкий, толстый или веб-клиент), которое пользователь видит на экране. Второе звено — кластер серверов 1С:Предприятия, который исполняет серверный код, управляет сеансами и блокировками. Третье звено — СУБД, где физически хранятся данные: чаще всего это Microsoft SQL Server, PostgreSQL, Oracle или IBM Db2.
В файловом варианте работы кластер отсутствует: база хранится в файле 1Cv8.1CD, а серверная логика выполняется внутри клиентского процесса. Такой вариант подходит для небольших баз с несколькими пользователями, но он не даёт полноценного разделения на frontend и backend, ограничен по производительности и хуже защищён от повреждений при сбоях.
Именно связка «кластер + СУБД» и есть технический backend системы. Клиент никогда не обращается к базе данных напрямую: все запросы проходят через сервер 1С, который формирует SQL-запросы, контролирует права доступа и управляет транзакциями.
Что выполняется на сервере: роль серверного кода
Во встроенном языке 1С код явно разделяется по месту исполнения. Директивы компиляции определяют, где будет работать процедура: &НаКлиенте — на компьютере пользователя, &НаСервере — в кластере серверов. Общие модули с признаком «Сервер» исполняются только на сервере и недоступны клиенту напрямую.
На сервере выполняются операции, которым нужны данные и вычислительные ресурсы: проведение документов с формированием движений по регистрам, расчёт себестоимости и зарплаты, заполнение отчётов, обмены с другими системами, запросы к большим таблицам. На клиенте остаются только интерактивные действия: открытие форм, диалоги с пользователем, работа с файлами на локальном диске.
Признак правильно спроектированной логики: клиент вызывает серверную процедуру один раз и получает готовый результат, а не «гоняет» десятки мелких серверных вызовов в цикле. Каждый вызов сервера — это сетевое обращение, и их избыток заметно замедляет работу, особенно у пользователей на удалённых подключениях.
&НаСервере
Процедура РассчитатьИтогиНаСервере(ДокументСсылка)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ СУММА(Товары.Сумма) КАК Итог ИЗ Документ.Реализация.Товары КАК Товары ГДЕ Товары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Итог = Запрос.Выполнить().Выгрузить()[0].Итог;
КонецПроцедурыЧем занимается backend-разработчик 1С
Backend-разработчик 1С проектирует и реализует серверную бизнес-логику: объекты метаданных (документы, регистры, справочники), алгоритмы проведения, регламентные задания, сложные отчёты. Его основной инструмент — конфигуратор, а рабочий язык — встроенный язык 1С вместе с языком запросов, похожим на SQL.
Существенная часть работы — производительность. Разработчик анализирует планы запросов, избавляется от запросов в циклах, правильно использует индексы и временные таблицы, выбирает между последовательным чтением и пакетной обработкой. Ошибка в серверном коде на большой базе способна «подвесить» работу сотен пользователей, поэтому требования к качеству здесь выше, чем к клиентским доработкам.
Ещё одно направление — интеграции: обмены через HTTP-сервисы, веб-сервисы SOAP, очереди сообщений, файловые обмены, работа с REST API внешних систем. Backend-специалист проектирует формат обмена, обработку ошибок, повторные попытки и журналирование, чтобы сбой внешней системы не разрушал учётные данные.
Движения по регистрам всегда формируются на сервере
Смотреть план запроса и индексы, а не форму
HTTP-сервисы, очереди, журналирование ошибок
Выполняется на сервере без участия пользователя
Backend и frontend в 1С: в чём разница на практике
Frontend в 1С — это управляемые формы, клиентские обработчики событий, внешний вид и интерактивность. Frontend-задачи решаются в модулях форм с директивой &НаКлиенте и в основном касаются удобства пользователя: подсказки, проверки до отправки данных, динамическое обновление элементов формы.
Граница между слоями проходит по вызовам сервера. Простой пример: пользователь меняет цену в строке документа. Пересчёт суммы строки можно сделать на клиенте — это быстро и не требует обращения к базе. А вот проверка остатков на складе требует данных из регистров, поэтому выполняется на сервере. Грамотное распределение логики между слоями — ключевой навык разработчика.
Где размещать логику
Простые пересчёты, диалоги, работа с файлами пользователя. Ограничение: нет доступа к данным базы напрямую
Запросы, проведение, расчёты, интеграции. Ограничение: каждый вызов — сетевое обращение, их нужно минимизировать
Фоновые расчёты и обмены по расписанию. Ограничение: нет интерактива, ошибки видны только в журнале
Как проверить, что серверная часть работает правильно
Базовая проверка начинается с журнала регистрации: там фиксируются ошибки серверных процедур, фоновых заданий и обменов. Если пользователь жалуется на ошибку, а в журнале чисто — проблема, скорее всего, на клиенте или в сети. Ошибки с текстом запроса и транзакциями указывают на backend или СУБД.
Для диагностики производительности используют технологический журнал кластера и замеры производительности в конфигураторе. Технологический журнал показывает длительные запросы, блокировки и взаимоблокировки; замер производительности — какие строки кода занимают больше всего времени. Менять код вслепую, без замеров, — распространённая и дорогая ошибка.
Контрольные точки backend
Нет повторяющихся ошибок фоновых заданий и обменов
Регулярные ошибки транзакций, таймауты, взаимоблокировки
Проведение документа занимает секунды и стабильно
Время растёт с ростом базы или числа пользователей
Выполняются по расписанию и завершаются
Задания «висят» или падают с ошибкой
Нет запросов, сканирующих большие таблицы целиком
Длительные запросы без использования индексов
Любую доработку серверной логики следует сначала проверять на копии рабочей базы. Особенно опасны изменения проведения документов и структуры регистров: ошибка может исказить учётные данные массово, и восстановление потребует перепроведения документов или восстановления из резервной копии.
Типичные ошибки при работе с backend 1С
Самая распространённая ошибка — запросы в цикле: код обходит табличную часть и для каждой строки выполняет запрос к базе. На тестовой базе это незаметно, на рабочей приводит к тысячам обращений к СУБД. Правильный подход — собрать данные одним запросом с временными таблицами или пакетным запросом.
Вторая группа ошибок — пренебрежение транзакциями и блокировками. Запись связанных объектов без явной транзакции оставляет базу в несогласованном состоянии при сбое, а чтение данных, которые затем изменяются, без управляемых блокировок приводит к взаимоблокировкам при параллельной работе пользователей.
Как развиваться в сторону backend-разработки 1С
Начальная точка — уверенное знание встроенного языка, объектов метаданных и языка запросов. Дальше стоит освоить темы, которые отличают backend-специалиста от разработчика форм: управляемые блокировки, транзакции, оптимизация запросов, фоновые и регламентные задания, механизмы интеграции.
Полезно параллельно изучать основы выбранной СУБД: понимание индексов, планов запросов и уровней изоляции транзакций напрямую влияет на качество серверного кода 1С. Практику лучше строить на реальных сценариях: написать HTTP-сервис приёма заказов, оптимизировать медленный отчёт, спроектировать обмен с очередью сообщений.
- 1Освоить встроенный язык, запросы и основные объекты метаданных
- 2Разобраться с разделением кода: клиент, сервер, общие модули
- 3Изучить транзакции, блокировки и типовые причины взаимоблокировок
- 4Научиться читать технологический журнал и планы запросов
- 5Реализовать интеграцию через HTTP-сервис с обработкой ошибок
- 6Проверить навыки на задаче оптимизации реального медленного отчёта
Частые вопросы
Backend 1С — это отдельная программа?
Нет. Это не отдельный продукт, а серверный слой платформы 1С:Предприятие: кластер серверов, СУБД и код, исполняемый на сервере. В файловом варианте работы выделенного сервера нет, и вся логика выполняется в процессе клиентского приложения.
Нужно ли backend-разработчику 1С знать SQL?
Да, хотя бы на базовом уровне. Запросы в 1С пишутся на собственном языке, но платформа транслирует их в SQL, и понимание индексов, соединений и планов выполнения помогает писать быстрый серверный код и разбирать проблемы производительности.
Чем backend-разработчик 1С отличается от администратора 1С?
Разработчик пишет и оптимизирует серверный код, проектирует структуру данных и интеграции. Администратор отвечает за инфраструктуру: установку и настройку кластера, СУБД, резервное копирование, обновления платформы и мониторинг. В небольших компаниях эти роли часто совмещает один человек.
Можно ли писать backend для 1С на других языках?
Основная бизнес-логика пишется на встроенном языке, но внешние сервисы интеграции можно создавать на любом стеке: 1С обменивается с ними через HTTP, веб-сервисы или очереди сообщений. Также существуют внешние компоненты по технологии Native API на C++ для специфических задач.
Почему отчёт работает быстро на тестовой базе, но медленно на рабочей?
На малом объёме данных почти любой запрос выполняется быстро. На рабочей базе проявляются проблемы: отсутствие подходящих индексов, сканирование больших таблиц, запросы в циклах, конкуренция за блокировки. Оптимизацию нужно проверять на копии базы, приближенной по объёму к рабочей.
Что такое регламентные задания и почему они относятся к backend?
Это механизм выполнения серверного кода по расписанию без участия пользователя: обмены, расчёты, очистка данных. Они исполняются рабочими процессами кластера, поэтому относятся к backend. Ошибки заданий видны только в журнале регистрации, за ними нужен регулярный контроль.
Что важно запомнить
Backend 1С — это кластер серверов, СУБД и серверный код на встроенном языке, выполняющий бизнес-логику, расчёты и интеграции. Ключ к качественной работе — правильное разделение клиентского и серверного кода, внимание к запросам, транзакциям и блокировкам, а также обязательное тестирование доработок на копии базы.