Automation и внешнее соединение 1С
Три способа "вызвать 1С снаружи"
| Способ | Объект | Когда |
|---|---|---|
| Automation Server | V83.Application / V83c.Application | Полноценное приложение, UI, Excel-макрос |
| Внешнее соединение | V83.COMConnector | Быстрый доступ к данным без UI |
| HTTP/OData | REST | Кросс-платформа, не Windows |
Automation и COM — Windows, разработка и эксплуатация на Linux-сервере не применимы. Для серверной интеграции — HTTP-сервисы 1С–OData в 1С.
V83 и V83c — это обозначения версий платформы «1С:Предприятие 8», отражающие конкретную редакцию ядра и набор функциональных возможностей среды исполнения; литера «c» в V83c может указывать на специализированную сборку или конфигурацию поставки, ориентированную на определённые сценарии развёртывания либо требования к совместимости. Application в контексте 1С — это абстракция прикладного решения, объединяющая метаданные, бизнес‑логику и пользовательский интерфейс; под этим термином нередко понимают экземпляр запущенного прикладного решения в рамках среды выполнения, который обслуживает сессии пользователей и координирует взаимодействие компонентов системы.
COM (Component Object Model) — это технология корпорации Microsoft, задающая унифицированный механизм создания, использования и управления программными компонентами в операционной среде Windows; она позволяет разным приложениям и библиотекам обмениваться функциональностью через стандартизированные интерфейсы. COM‑объект в экосистеме 1С — это программный экземпляр, реализующий COM‑интерфейс и предоставляющий доступ к возможностям платформы извне: например, из скриптов, сторонних приложений или интеграционных шлюзов; такие объекты инкапсулируют логику работы с прикладными данными и системными сервисами 1С.
Automation — это подмножество COM, ориентированное на скриптовые языки и автоматизацию задач; оно упрощает вызов методов и обращение к свойствам объектов из сред вроде VBScript, PowerShell или макросов офисных приложений. Automation Server в связке с 1С — это сама платформа (или её компонент), которая регистрируется в системе как сервер автоматизации и предоставляет внешний доступ к своим объектам и методам; по сути, она выступает поставщиком сервисов для внешних клиентов. Automation Client — это внешнее приложение либо скрипт, который инициирует соединение с Automation Server, создаёт объекты, вызывает их методы и обрабатывает возвращаемые результаты; в интеграционных сценариях именно клиент управляет последовательностью операций, делегируя исполнение серверной части.
HTTP (HyperText Transfer Protocol) — это сетевой протокол прикладного уровня, лежащий в основе обмена данными в веб‑среде; в 1С он служит фундаментом для публикации прикладных сервисов, взаимодействия с внешними системами и работы веб‑клиента. Через HTTP платформа передаёт запросы и ответы, сериализуя данные в форматах вроде JSON или XML, и поддерживает стандартные методы (GET, POST и др.), заголовки и коды состояния, что позволяет встраивать прикладные решения в корпоративные ИТ‑ландшафты.
OData (Open Data Protocol) — это стандартизированный протокол для построения REST‑подобных API, ориентированный на унифицированный доступ к данным; в 1С он реализуется как механизм публикации прикладных данных в виде наборов сущностей с поддержкой фильтрации, сортировки, пагинации и связей. OData‑сервис в 1С позволяет внешним потребителям запрашивать справочники, документы, регистры и другие объекты конфигурации по URL‑адресам, абстрагируясь от внутренней структуры метаданных и получая данные в машиночитаемых форматах.
Automation Server
Внешняя программа создаёт COM-объект и управляет 1С как пользователь.
Set app = CreateObject("V83.Application")
app.Connect "File=""c:\base\trade"";Usr="""";Pwd="""";"
Set doc = app.Документы.РасходнаяНакладная.СоздатьДокумент()
' ...
| ProgID | Режим |
|---|---|
V83.Application | Толстый клиент — полный доступ к менеджерам |
V83c.Application | Тонкий клиент — ограничения (формы через ПолучитьФорму) |
Доступны менеджеры справочников, документов, регистров, экспортные процедуры модулей, методы Connect() и NewObject().
Automation Client (1С вызывает Excel и др.)
Из BSL на клиенте:
Excel = ПолучитьCOMОбъект("C:\temp\report.xls");
Значение = Excel.Sheets(1).Cells(1, 2).Value;
Или Новый COMОбъект("Excel.Application"). Только Windows, код в &НаКлиенте. Для серверной генерации файлов — табличный документ, XML и XDTO в интеграции 1С или HTTP API.
Внешнее соединение (COMConnector)
COMConnector — это специализированный COM‑компонент платформы 1С, предназначенный для организации соединений с информационными базами и выполнения операций в их контексте; он обеспечивает аутентификацию, выбор базы, запуск сеансов и вызов прикладного кода, выступая связующим звеном между внешними приложениями и средой исполнения 1С. Через COMConnector внешние системы могут инициировать проведение документов, формировать отчёты, обновлять справочники и выполнять иные операции, предусмотренные конфигурацией.
V83.COMConnector — лёгкий in-process COM-сервер без полного UI. Быстрее Automation Server, меньше ресурсов ОС.
Set connector = CreateObject("V83.COMConnector")
Set trade = connector.Connect("File=""c:\base\trade"";Usr=Director;")
Set doc = trade.Документы.РасходнаяНакладная.СоздатьДокумент()
Отличия от Automation Server:
- не запускается отдельный процесс толстого клиента;
- нет UI и не выполняется модуль приложения — роль играет модуль внешнего соединения конфигурации;
- быстрее установка соединения и вызовы свойств.
Подходит для массовой загрузки из Excel, Python, C# на Windows.
Встраивание веб-клиента на сайт
Веб‑клиент 1С — это вариант клиентского приложения, который работает в браузере и взаимодействует с сервером 1С по HTTP/HTTPS; он отображает формы, обрабатывает пользовательские действия и передаёт команды на сервер, где исполняется основная бизнес‑логика. Веб‑клиент обеспечивает кроссплатформенный доступ к прикладным решениям без установки локального клиента, поддерживает современные браузеры, адаптивный интерфейс и интеграцию с веб‑сервисами, сохраняя при этом совместимость с правами доступа, ролями и функционалом классической клиент‑серверной архитектуры.
Платформа позволяет встроить веб-клиент 1С в сторонний сайт через iframe (публикация веб-клиента + HTML-страница хоста). Это UI-интеграция, не замена API. Для машинного обмена — HTTP-сервисы или OData.