Сайт на PHP, учёт на 1С: где граница между двумя технологиями
Содержание
Если нужен сайт, интернет-магазин, личный кабинет или публичный 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 этого нет: двойную запись, остатки и обороты придётся писать самому.
| Критерий | PHP | 1С:Предприятие 8.3 |
|---|---|---|
| Назначение | Веб-приложения, сайты, API | Учётные и управленческие системы |
| Хранение данных | Любая СУБД, схема ваша | Метаданные платформы, СУБД под капотом |
| Интерфейс | HTML/CSS/JS, любой дизайн | Формы платформы, ограниченная кастомизация |
| Готовые решения | CMS и фреймворки | Типовые конфигурации (БП, ЗУП, УТ, ERP) |
| Лицензия | Бесплатно | Платные лицензии платформы и конфигураций |
Скорость разработки и готовые решения
Здесь всё решает предметная область.
Для учёта 1С выигрывает с огромным отрывом. Типовая конфигурация «Бухгалтерия предприятия» уже содержит план счетов , документы, регламентированные отчёты, закрытие месяца и обновления под изменения законодательства. На PHP повторить хотя бы проводки и оборотно-сальдовую ведомость — это месяцы работы команды. А поддерживать формы отчётности в актуальном виде придётся годами.
Для веба быстрее PHP. Интернет-магазин на готовой CMS запускается за недели. Laravel или Symfony дают маршрутизацию, миграции, очереди и шаблонизатор из коробки. В 1С витрину для покупателей так не сделать: веб-клиент 1С предназначен для сотрудников, а не для посетителей сайта.
Что ускоряет каждую сторону:
- В 1С: доработка типовой через расширения конфигурации (появились в 8.3.6). Расширение не снимает конфигурацию с поддержки, и обновления ставятся почти без боли.
- В 1С: типовые механизмы БСП — права, печатные формы, дополнительные обработки, обмены.
- В PHP: пакеты Composer под любую задачу — платежи, PDF, Excel, работа с API маркетплейсов.
- В PHP: готовые админ-панели и генераторы CRUD, которые закрывают «справочники» за день.
Если в ТЗ на PHP-проект появились слова «остатки на дату», «себестоимость», «закрытие периода», «сторно» — это сигнал, что вы начинаете писать свою учётную систему. Почти всегда дешевле взять 1С и интегрироваться с ней.
Стоимость владения и лицензирование
PHP распространяется бесплатно под собственной открытой лицензией. Фреймворки и большинство библиотек тоже бесплатны. Платите вы за людей и хостинг.
В 1С платная почти каждая часть системы. Ориентиры по рынку (цены примерные, уточняйте у партнёра перед покупкой):
| Статья расходов | PHP | 1С |
|---|---|---|
| Платформа / язык | 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-сервис:
- В конфигураторе (лучше в расширении) создайте HTTP-сервис, задайте корневой URL и шаблон, например
/orders/{id}. - Напишите обработчики методов GET и POST на встроенном языке.
- Опубликуйте базу на веб-сервере через
Администрирование → Публикация на веб-серверев конфигураторе. - Заведите в базе отдельного пользователя для интеграции с минимальными правами.
- Со стороны 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 или база растёт.
- 🔒 Управляемые блокировки и короткие транзакции — главный рычаг против «ожидания на блокировке».
- 🧮 Оптимизация запросов: без подзапросов в соединениях, с отбором по индексированным полям.
- 🖧 Дополнительные рабочие серверы в кластере для сотен одновременных пользователей.
Где проходит практическая граница:
| Сценарий | PHP | 1С |
|---|---|---|
| Тысячи анонимных посетителей | штатная задача | не предназначена |
| Сотни сотрудников в одной учётной базе | нужна своя архитектура | штатная задача на клиент-сервере |
| Сложные отчёты по миллионам записей | писать и оптимизировать самим | система компоновки данных из коробки |
| Пиковая нагрузка (распродажа) | добавить серверы | держать 1С за очередью |
Вывод простой: публичный трафик должен приходить на PHP, а в 1С — только бизнес-операции, которые там и должны учитываться.
Безопасность и требования закона
Оба стека можно сделать безопасными или дырявыми. Разница в том, кто за что отвечает.
В PHP вся защита на разработчике и фреймворке:
- 🛡️ SQL-инъекции закрывают подготовленными запросами (PDO, ORM).
- 🛡️ XSS — экранированием в шаблонах.
- 🛡️ CSRF — токенами в формах.
- 🛡️ Своевременное обновление версии PHP и пакетов: устаревшие версии перестают получать исправления.
В 1С значительная часть защиты встроена:
- 🔐 Роли и права на уровне объектов и полей, ограничение доступа на уровне записей (RLS).
- 🔐 Журнал регистрации фиксирует, кто и что менял.
- 🔐 Пароли пользователей, аутентификация ОС, двухфакторная аутентификация в новых версиях платформы.
- ⚠️ Слабое место — публикация базы в интернет. Опубликованная база с пользователем без пароля или с полными правами — открытая дверь.
Никогда не публикуйте базу 1С в интернет без HTTPS и без отдельного пользователя с урезанными правами для интеграции.
По закону обе системы подпадают под одни и те же требования. Если вы храните данные клиентов или сотрудников, действует закон о персональных данных: локализация баз с данными граждан РФ на территории России, модель угроз, согласия на обработку. Это касается и PHP-сайта на зарубежном хостинге, и 1С на сервере в офисе.
Для бухгалтерского учёта важна ещё одна деталь. Закон о бухгалтерском учёте требует вести регистры и хранить документы, а отчётность сдаётся по утверждённым формам. В типовых конфигурациях 1С формы обновляет разработчик. В самописной PHP-системе вы обязаны отслеживать изменения форматов сами.
Ещё один довод для госзаказчиков и компаний с требованиями к импортозамещению: платформа 1С:Предприятие включена в реестр российского ПО. Сам PHP — открытый международный проект, но прикладная система на нём может быть зарегистрирована как российская разработка.
Какой стек выбрать под ваш сценарий
Короткие рецепты из практики:
- Небольшая фирма, нужно вести учёт и сдавать отчёты. Только 1С, типовая конфигурация. PHP не нужен.
- Магазин с сайтом. Сайт на PHP (своя разработка или CMS), учёт и склад в 1С, обмен каталогом, остатками и заказами.
- Производство или дистрибуция. 1С (УТ, КА или ERP) как ядро, PHP для портала дилеров и интеграции с маркетплейсами.
- Стартап-сервис (SaaS, онлайн-платформа). PHP или другой веб-стек. 1С подключается позже как бухгалтерия, куда выгружаются платежи и акты.
- Внутренняя CRM без бухгалтерии. Оба варианта рабочие. 1С быстрее даст формы, права и отчёты; PHP — свободный интерфейс и доступ без установки клиента.
Для разработчика, который выбирает, что учить:
- 👨💻 PHP открывает весь веб-рынок, но конкуренция там выше.
- 👨💻 1С — узкая ниша с устойчивым спросом в России и СНГ, порог входа ниже за счёт готовых конфигураций и учебной версии платформы.
- 👨💻 Самая востребованная комбинация — разработчик 1С, который умеет писать HTTP-сервисы и понимает, как устроен веб на стороне PHP. Именно на стыке этих систем и возникает большинство заказов.
Если не помогло определиться, задайте себе один вопрос: кто будет основным пользователем системы? Посетители и клиенты — PHP. Бухгалтеры, кладовщики и менеджеры внутри компании — 1С.
Частые вопросы
Можно ли сделать интернет-магазин целиком на 1С?
Можно ли вызывать код 1С прямо из PHP?
Можно ли писать из PHP напрямую в таблицы СУБД 1С?
Что дешевле для учёта на 10 пользователей?
Нужен ли PHP-разработчику язык 1С для интеграции?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»
- Федеральный закон от 06.12.2011 № 402-ФЗ «О бухгалтерском учёте»