Сайт на PHP, учёт на 1С: где граница между двумя технологиями

· 10 мин

Содержание

Если нужен сайт, интернет-магазин, личный кабинет или публичный API под большую нагрузку — берите PHP. Если нужно автоматизировать учёт, склад, зарплату и сдавать отчётность — берите 1С:Предприятие. В большинстве реальных проектов выбор звучит не «PHP или 1С», а «что делать на PHP, а что в 1С и как их связать».

Это разные классы инструментов. PHP — язык общего назначения для веба. 1С — платформа для учётных систем со своим языком, СУБД-прослойкой и готовыми конфигурациями. Сравнивать их стоит по задаче, а не по «какой язык лучше».

Чем PHP и платформа 1С отличаются по устройству

PHP — интерпретируемый язык. Код выполняется на веб-сервере (обычно nginx + PHP-FPM или Apache), отвечает на HTTP-запросы и отдаёт HTML или JSON. Всё остальное разработчик собирает сам: базу данных, авторизацию, очереди, кеш.

1С:Предприятие 8.3 — платформа с готовым каркасом. Разработчик описывает объекты метаданных, а платформа сама строит таблицы в СУБД, формы, права и отчёты.

Ключевые различия:

  • 🧱 Модель данных. В PHP вы проектируете таблицы и пишете SQL или используете ORM (Eloquent, Doctrine). В 1С вы создаёте справочник, документ или регистр накопления в конфигураторе — таблицы появляются сами.
  • 🖥️ Клиент. PHP отдаёт страницы в браузер. У 1С есть тонкий клиент, веб-клиент и мобильный клиент, и все они работают с одной и той же конфигурацией.
  • 🗄️ СУБД. PHP работает с любой базой: MySQL, PostgreSQL, SQLite, Redis. 1С хранит данные в файловой базе или в клиент-серверном варианте на MS SQL Server, PostgreSQL, Oracle или IBM Db2. Прямая запись в таблицы 1С в обход платформы недопустима — это ломает целостность.
  • 🔤 Язык. Встроенный язык 1С похож на Visual Basic, допускает русский и английский синтаксис и заточен под учёт. PHP — универсальный язык с огромной экосистемой пакетов через Composer.
  • 🧩 Готовый предметный слой. В 1С есть проводки, регистры, периоды, закрытие месяца . В PHP этого нет: двойную запись, остатки и обороты придётся писать самому.
КритерийPHP1С:Предприятие 8.3
НазначениеВеб-приложения, сайты, APIУчётные и управленческие системы
Хранение данныхЛюбая СУБД, схема вашаМетаданные платформы, СУБД под капотом
ИнтерфейсHTML/CSS/JS, любой дизайнФормы платформы, ограниченная кастомизация
Готовые решенияCMS и фреймворкиТиповые конфигурации (БП, ЗУП, УТ, ERP)
ЛицензияБесплатноПлатные лицензии платформы и конфигураций

Скорость разработки и готовые решения

Здесь всё решает предметная область.

Для учёта 1С выигрывает с огромным отрывом. Типовая конфигурация «Бухгалтерия предприятия» уже содержит план счетов , документы, регламентированные отчёты, закрытие месяца и обновления под изменения законодательства. На PHP повторить хотя бы проводки и оборотно-сальдовую ведомость — это месяцы работы команды. А поддерживать формы отчётности в актуальном виде придётся годами.

Для веба быстрее PHP. Интернет-магазин на готовой CMS запускается за недели. Laravel или Symfony дают маршрутизацию, миграции, очереди и шаблонизатор из коробки. В 1С витрину для покупателей так не сделать: веб-клиент 1С предназначен для сотрудников, а не для посетителей сайта.

Что ускоряет каждую сторону:

  1. В 1С: доработка типовой через расширения конфигурации (появились в 8.3.6). Расширение не снимает конфигурацию с поддержки, и обновления ставятся почти без боли.
  2. В 1С: типовые механизмы БСП — права, печатные формы, дополнительные обработки, обмены.
  3. В PHP: пакеты Composer под любую задачу — платежи, PDF, Excel, работа с API маркетплейсов.
  4. В PHP: готовые админ-панели и генераторы CRUD, которые закрывают «справочники» за день.

Если в ТЗ на PHP-проект появились слова «остатки на дату», «себестоимость», «закрытие периода», «сторно» — это сигнал, что вы начинаете писать свою учётную систему. Почти всегда дешевле взять 1С и интегрироваться с ней.

Стоимость владения и лицензирование

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

В 1С платная почти каждая часть системы. Ориентиры по рынку (цены примерные, уточняйте у партнёра перед покупкой):

Статья расходовPHP1С
Платформа / язык0 ₽входит в коробку конфигурации
Прикладное решениеразработка с нуля или CMS (платная или бесплатная)коробка «Бухгалтерия ПРОФ» — порядка нескольких десятков тысяч рублей
Рабочие местане лицензируютсяклиентские лицензии, примерно от нескольких тысяч рублей за место
СерверVPS от нескольких сотен рублей в месяцлицензия сервера 1С — ориентировочно от нескольких десятков до сотен тысяч рублей в зависимости от редакции, плюс СУБД
Обновления и поддержкасвоими силамидоговор ИТС, ориентировочно десятки тысяч рублей в год
Разработчикрынок PHP-разработчиков широкийставки программистов 1С сопоставимы, но рынок уже

Как считать полную стоимость:

  • 💰 Разовые затраты: лицензии, внедрение, перенос данных.
  • 🔁 Регулярные: поддержка, ИТС, хостинг или сервер, зарплата разработчиков.
  • 📑 Скрытые: в самописной PHP-системе за изменения законодательства платите вы. В типовой 1С новые формы отчётов и изменения ставок приходят с обновлением.

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

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

Как PHP-приложение обменивается данными с 1С

Это самый частый практический вопрос: сайт на PHP, учёт в 1С, нужно связать.

Способы интеграции со стороны 1С:

  • 🌐 HTTP-сервисы. Вы описываете в конфигурации REST-подобный сервис, публикуете базу на веб-сервере (Apache или IIS), и PHP шлёт обычные запросы через cURL или Guzzle. Самый гибкий вариант.
  • 📡 OData. Стандартный интерфейс OData отдаёт объекты конфигурации без программирования на стороне 1С. Нужно только включить состав объектов и опубликовать базу. Удобно для чтения справочников и остатков.
  • 🧾 Веб-сервисы (SOAP). Классика для старых интеграций. В PHP работает через встроенный SoapClient.
  • 📦 Обмен файлами. Выгрузка XML или JSON по расписанию, обмен в формате CommerceML для интернет-магазинов. Медленно, но надёжно и без постоянной связи.
  • 🔌 COM-соединение. Только Windows, только для внутренних задач. Для веба не годится.

Порядок подключения через HTTP-сервис:

  1. В конфигураторе (лучше в расширении) создайте HTTP-сервис, задайте корневой URL и шаблон, например /orders/{id}.
  2. Напишите обработчики методов GET и POST на встроенном языке.
  3. Опубликуйте базу на веб-сервере через Администрирование → Публикация на веб-сервере в конфигураторе.
  4. Заведите в базе отдельного пользователя для интеграции с минимальными правами.
  5. Со стороны PHP отправляйте запросы с Basic-авторизацией по HTTPS.

Минимальный пример запроса из PHP:

<?php
$ch = curl_init('https://1c.example.ru/base/hs/orders/123');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'site_api:' . getenv('ONEC_PASSWORD'),
    CURLOPT_HTTPHEADER     => ['Accept: application/json'],
    CURLOPT_TIMEOUT        => 15,
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($code === 200) {
    $order = json_decode($body, true);
}

Здесь base — имя публикации, hs — стандартный префикс HTTP-сервисов 1С, orders — корневой URL вашего сервиса.

Не делайте сайт зависимым от 1С на каждый клик. Держите копию каталога и остатков в базе сайта и синхронизируйте её по расписанию или по событию. Тогда перезапуск сервера 1С не уронит витрину.

Где делать вашу задачу?

Производительность и масштабирование под нагрузку

PHP масштабируется горизонтально и просто. Код без состояния, сессии в Redis — и вы ставите за балансировщик столько серверов, сколько нужно. С PHP 8 и OPcache типовой запрос обрабатывается за десятки миллисекунд. Узкое место обычно в базе, и его решают репликами и кешем.

1С масштабируется иначе. Сервер 1С — это кластер: агент принимает подключение, менеджер кластера распределяет сеансы, рабочие процессы выполняют код. Под ними СУБД. Рост нагрузки решают так:

  • ⚙️ Клиент-серверный режим вместо файлового, как только пользователей больше 5–10 или база растёт.
  • 🔒 Управляемые блокировки и короткие транзакции — главный рычаг против «ожидания на блокировке».
  • 🧮 Оптимизация запросов: без подзапросов в соединениях, с отбором по индексированным полям.
  • 🖧 Дополнительные рабочие серверы в кластере для сотен одновременных пользователей.

Где проходит практическая граница:

СценарийPHP1С
Тысячи анонимных посетителейштатная задачане предназначена
Сотни сотрудников в одной учётной базенужна своя архитектураштатная задача на клиент-сервере
Сложные отчёты по миллионам записейписать и оптимизировать самимсистема компоновки данных из коробки
Пиковая нагрузка (распродажа)добавить серверыдержать 1С за очередью

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

Безопасность и требования закона

Оба стека можно сделать безопасными или дырявыми. Разница в том, кто за что отвечает.

В PHP вся защита на разработчике и фреймворке:

  • 🛡️ SQL-инъекции закрывают подготовленными запросами (PDO, ORM).
  • 🛡️ XSS — экранированием в шаблонах.
  • 🛡️ CSRF — токенами в формах.
  • 🛡️ Своевременное обновление версии PHP и пакетов: устаревшие версии перестают получать исправления.

В 1С значительная часть защиты встроена:

  • 🔐 Роли и права на уровне объектов и полей, ограничение доступа на уровне записей (RLS).
  • 🔐 Журнал регистрации фиксирует, кто и что менял.
  • 🔐 Пароли пользователей, аутентификация ОС, двухфакторная аутентификация в новых версиях платформы.
  • ⚠️ Слабое место — публикация базы в интернет. Опубликованная база с пользователем без пароля или с полными правами — открытая дверь.

Никогда не публикуйте базу 1С в интернет без HTTPS и без отдельного пользователя с урезанными правами для интеграции.

По закону обе системы подпадают под одни и те же требования. Если вы храните данные клиентов или сотрудников, действует закон о персональных данных: локализация баз с данными граждан РФ на территории России, модель угроз, согласия на обработку. Это касается и PHP-сайта на зарубежном хостинге, и 1С на сервере в офисе.

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

Ещё один довод для госзаказчиков и компаний с требованиями к импортозамещению: платформа 1С:Предприятие включена в реестр российского ПО. Сам PHP — открытый международный проект, но прикладная система на нём может быть зарегистрирована как российская разработка.

Какой стек выбрать под ваш сценарий

Короткие рецепты из практики:

  1. Небольшая фирма, нужно вести учёт и сдавать отчёты. Только 1С, типовая конфигурация. PHP не нужен.
  2. Магазин с сайтом. Сайт на PHP (своя разработка или CMS), учёт и склад в 1С, обмен каталогом, остатками и заказами.
  3. Производство или дистрибуция. 1С (УТ, КА или ERP) как ядро, PHP для портала дилеров и интеграции с маркетплейсами.
  4. Стартап-сервис (SaaS, онлайн-платформа). PHP или другой веб-стек. 1С подключается позже как бухгалтерия, куда выгружаются платежи и акты.
  5. Внутренняя CRM без бухгалтерии. Оба варианта рабочие. 1С быстрее даст формы, права и отчёты; PHP — свободный интерфейс и доступ без установки клиента.

Для разработчика, который выбирает, что учить:

  • 👨‍💻 PHP открывает весь веб-рынок, но конкуренция там выше.
  • 👨‍💻 1С — узкая ниша с устойчивым спросом в России и СНГ, порог входа ниже за счёт готовых конфигураций и учебной версии платформы.
  • 👨‍💻 Самая востребованная комбинация — разработчик 1С, который умеет писать HTTP-сервисы и понимает, как устроен веб на стороне PHP. Именно на стыке этих систем и возникает большинство заказов.

Если не помогло определиться, задайте себе один вопрос: кто будет основным пользователем системы? Посетители и клиенты — PHP. Бухгалтеры, кладовщики и менеджеры внутри компании — 1С.

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

Можно ли сделать интернет-магазин целиком на 1С?
Технически есть веб-клиент и HTTP-сервисы, но витрину для посетителей на 1С не делают: лицензии на подключения, нагрузка и ограниченный дизайн. Магазин делают на веб-стеке и связывают с 1С обменом.
Можно ли вызывать код 1С прямо из PHP?
Да, через HTTP-сервисы, OData или SOAP-веб-сервисы опубликованной базы. COM-соединение работает только под Windows и для веба не подходит.
Можно ли писать из PHP напрямую в таблицы СУБД 1С?
Нельзя. Структура таблиц служебная, запись в обход платформы ломает итоги регистров и ссылочную целостность. Используйте HTTP-сервисы или OData.
Что дешевле для учёта на 10 пользователей?
Почти всегда типовая 1С: коробка, клиентские лицензии и сопровождение обходятся дешевле, чем разработка и поддержка самописного учёта на PHP с актуальной отчётностью.
Нужен ли PHP-разработчику язык 1С для интеграции?
Не обязательно. Достаточно описания API, которое подготовит программист 1С. Но понимание объектов 1С — документ, справочник, регистр — сильно сокращает число ошибок при обмене.

Источники

  • Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»
  • Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте»