Практика ЛДО · Интеграции
Как установить self-hosted n8n и подключить 1С через очередь или HTTP
Свой n8n в Docker, публичная нода LDO 1C и два способа обмена: очередь без публикации базы или прямое подключение к HTTP-сервису 1С.
Self-hosted n8n — это n8n на вашем компьютере, сервере или VPS. Вы управляете workflow, подключениями и хранением данных. С публичной нодой LDO 1C и совместимым расширением ЛДО можно читать разрешённые данные 1С, изменять выбранные реквизиты и передавать печатные формы во внешние системы.
Для связи доступны два самостоятельных варианта. Если база закрыта для входящих соединений, используйте очередь в своём n8n: расширение 1С само забирает команды исходящими запросами. Если HTTP-сервис 1С опубликован и доступен из n8n, выберите Direct HTTP: нода обращается к расширению напрямую. В обоих случаях обмен выполняется на вашей инфраструктуре.
Дальше разберём установку n8n в Docker, установку пакета из npm, подготовку расширения и настройку каждого транспорта. В конце — первый workflow, ожидание ответа очереди, обновления и диагностика.
Выберите транспорт по доступности базы
| Условие | Standalone Queue | Direct HTTP |
|---|---|---|
| Кто начинает соединение с 1С | 1С сама обращается к n8n | n8n обращается к 1С |
| Нужна публикация HTTP-сервиса базы | Нет | Да, сервис расширения ldo_n8n |
| Что должно быть доступно по сети | Шлюз n8n доступен из 1С | Сервис 1С доступен из n8n |
| Где сохраняются команды и результаты | Data Tables вашего n8n | Команда выполняется через HTTP; квитанция сохраняется в 1С |
| От чего зависит задержка | От расписания опроса 1С | От времени выполнения запроса |
| Чем авторизуется нода | API-ключом вашего n8n | Пользователем и паролем 1С |
| Как подключается расширение | Одноразовым кодом сопряжения | Явным включением прямого обмена для локального профиля |
| Подходящий пример | Закрытая офисная база и n8n на VPS | n8n и опубликованная база в одной сети или VPN |
Если публикация базы запрещена политикой организации, выбирайте очередь. Для неё нужен исходящий доступ из 1С к вашему n8n, но открывать входящий порт к базе не требуется. Сам n8n может находиться в интернете, корпоративной сети или VPN — важно, чтобы до его шлюза мог добраться узел, выполняющий обмен 1С.
Для Direct HTTP публикация в открытом интернете необязательна. Достаточно доступности сервиса из n8n в локальной сети или через VPN.
Как выглядит обмен через очередь
Все сетевые соединения между 1С и шлюзом начинает 1С. Команда переживает отключение базы: она остаётся в очереди до обработки, истечения условий её исполнения или явного отказа. Скорость обмена определяется расписанием опроса.
Как выглядит прямой HTTP
Профиль доступа ограничивает объекты, операции, поля и печатные формы. Нода работает через этот интерфейс и не предоставляет произвольное выполнение BSL или SQL.
Что нужно подготовить
Понадобятся Docker и Docker Compose, доступ администратора к своему n8n, совместимое расширение ЛДО и права на его настройку в 1С. Для очереди дополнительно нужны публичный API n8n, Data Tables и работающий опрос команд на стороне 1С.
Устанавливаемый npm-пакет —
n8n-nodes-ldo-1c-relay@0.4.0.
На дату инструкции он опубликован и находится на ручном ревью n8n.
В self-hosted n8n его уже можно установить через Community Nodes. Для n8n Cloud
нужна верификация; инструкция относится к самостоятельному размещению.
Правила установки community nodes.
В примере используется n8n 2.36.9. Версии ноды и общего ядра расширения сопоставляйте по таблице совместимости; изменения опубликованных компонентов собраны в истории обновлений. Ядро 6.9 выпущено для УНФ, БП, КА и ERP. Для рабочего размещения выбирайте поддерживаемую версию n8n и проверяйте обновление на копии своей среды. Версии и установка n8n в Docker.
Расширение выбирают под конкретную конфигурацию и её релиз. Совместимость ЛДО с конфигурацией в целом не означает, что любая её старая поставка поддерживает самостоятельную очередь. Для других конфигураций нужна соответствующая поставка с поддержкой этих транспортов. Возможности Fresh зависят также от разрешений сервиса на расширения, внешние обращения и фоновые задания.
Установите n8n в Docker
Подготовьте файлы
Установите Docker Engine и Docker Compose, затем проверьте команды:
docker --version
docker compose version
Создайте отдельный каталог для n8n. Готовые файлы можно взять из архива настройки Docker:
- compose.yaml — локальный запуск;
- .env.example — параметры;
- compose.https.yaml и Caddyfile — вариант с HTTPS.
Скопируйте .env.example в .env. Сгенерируйте ключ шифрования:
openssl rand -hex 32
Вставьте результат в N8N_ENCRYPTION_KEY. Ключ создаётся один раз для инстанса;
сохраните его вместе с резервной копией. Не публикуйте .env и не заменяйте
ключ при обычном обновлении: он нужен для расшифровки сохранённых credentials.
Пример .env:
N8N_VERSION=2.36.9
TIMEZONE=Asia/Novosibirsk
N8N_ENCRYPTION_KEY=REPLACE_WITH_YOUR_UNIQUE_RANDOM_KEY
N8N_DOMAIN=n8n.example.com
TIMEZONE замените своим часовым поясом. Значение REPLACE_WITH_YOUR_UNIQUE_RANDOM_KEY
обязательно замените сгенерированным ключом. Домен понадобится для HTTPS.
Запустите локальный инстанс
Файл compose.yaml:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:${N8N_VERSION:?Set N8N_VERSION in .env}
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
TZ: ${TIMEZONE:-Asia/Novosibirsk}
GENERIC_TIMEZONE: ${TIMEZONE:-Asia/Novosibirsk}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY:?Generate a unique key in .env}
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
N8N_COMMUNITY_PACKAGES_ENABLED: "true"
N8N_UNVERIFIED_PACKAGES_ENABLED: "true"
N8N_HOST: localhost
N8N_PROTOCOL: http
N8N_PORT: "5678"
N8N_SECURE_COOKIE: "false"
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Этот вариант открывает порт только на самом компьютере. N8N_SECURE_COOKIE=false
используется для локального HTTP; в HTTPS-варианте ниже он заменяется на true.
Volume n8n_data сохраняет настройки, установленный пакет и данные инстанса.
Основой является официальная установка через Docker Compose.
В каталоге с файлами выполните:
docker compose config --quiet
docker compose up -d
docker compose logs --tail=100 n8n
Откройте http://localhost:5678 и создайте учётную запись владельца.
Если n8n установлен на удалённом сервере, localhost в вашем браузере относится
к вашему компьютеру. Используйте настроенный SSH-доступ к локальному порту
или сразу переходите к HTTPS-варианту.
Подключите HTTPS для удалённого доступа
Для очереди база должна обращаться к n8n по адресу, доступному с узла выполнения
1С. Создайте DNS-запись своего домена, например n8n.example.com, направленную
на сервер. Для показанного способа получения публичного сертификата откройте
порты 80 и 443 до Caddy.
Рядом с основным Compose-файлом положите compose.https.yaml и Caddyfile из
примеров. В .env укажите настоящий домен. В Caddyfile достаточно:
{$N8N_DOMAIN} {
reverse_proxy n8n:5678
}
Caddy направляет запросы в контейнер n8n и получает сертификат для публичного домена. Настройка reverse proxy и HTTPS в Caddy.
HTTPS-конфигурация задаёт для n8n внешний адрес редактора и webhook:
N8N_HOST: ${N8N_DOMAIN}
N8N_PROTOCOL: https
N8N_EDITOR_BASE_URL: https://${N8N_DOMAIN}/
N8N_WEBHOOK_URL: https://${N8N_DOMAIN}/
N8N_PROXY_HOPS: "1"
N8N_SECURE_COOKIE: "true"
N8N_PROXY_HOPS=1 соответствует одному reverse proxy в этом примере. При другой
схеме настройте число доверенных прокси под свою инфраструктуру.
N8N_WEBHOOK_URL — актуальное имя параметра; старый WEBHOOK_URL объявлен
устаревшим с n8n 2.35.0.
Адреса webhook за reverse proxy.
Запускайте и обслуживайте этот вариант с обоими файлами:
docker compose -f compose.yaml -f compose.https.yaml config --quiet
docker compose -f compose.yaml -f compose.https.yaml up -d
docker compose -f compose.yaml -f compose.https.yaml logs --tail=100 caddy n8n
Откройте https://n8n.example.com, заменив пример своим доменом. Убедитесь, что
сертификат действителен и браузер не показывает предупреждений. Внутри контейнера
n8n продолжает слушать порт 5678; внешние HTTPS-запросы принимает Caddy.
Для развёртывания только в корпоративной сети или VPN используйте принятую в организации схему DNS, сертификатов и доступа. Публичный интернет не является обязательным условием очереди — нужна связность между 1С и шлюзом.
Установите ноду LDO 1C из npm
Войдите владельцем или администратором n8n:
- Откройте Settings → Community Nodes.
- Нажмите Install или Install a community node.
- Введите
n8n-nodes-ldo-1c-relay@0.4.0. - Подтвердите установку community-пакета, ещё не прошедшего верификацию n8n.
- Нажмите Install и дождитесь установленной версии в списке.
Права на установку и указание конкретной версии описаны в инструкции n8n. Для скачивания этого публичного пакета npm-токен и аккаунт автора ноды не нужны.
В пакете две ноды:
- LDO 1C — операции с документами и справочниками, подключения, события и результаты очереди;
- LDO 1C Queue Gateway Trigger — шлюз входящих запросов от расширения 1С для самостоятельной очереди.
Если раздел Community Nodes отсутствует, проверьте роль пользователя и настройки
инстанса. Для установки непроверенного пакета должны быть включены
N8N_COMMUNITY_PACKAGES_ENABLED и N8N_UNVERIFIED_PACKAGES_ENABLED.
После изменения окружения пересоздайте контейнер командой docker compose up -d
с тем же набором Compose-файлов.
Параметры community nodes.
Название пакета исторически содержит relay, но публичная нода поддерживает
самостоятельную очередь и Direct HTTP. Для них не требуется выбирать
MSRV Service или вводить адрес API MSRV.
Получите и подготовьте расширение 1С
Нода из npm и расширение — две отдельные поставки. Файл .cfe не устанавливается
в базу вместе с нодой.
Перейдите на сайт ЛДО или страницу продукта на Gitsell, получите файл для своей конфигурации и проверьте поддержку самостоятельного обмена. Проверьте версию общего ядра по таблице совместимости. Если доступный вам файл старее требуемого ядра, получите совместимый релиз у поставщика. Не подставляйте файл от другой конфигурации.
На копии базы установите расширение через стандартное управление расширениями
конфигурации. Путь к форме зависит от конфигурации; во многих типовых базах
используется команда Все функции / Функции для технического специалиста →
Управление расширениями конфигурации. Добавьте .cfe, подтвердите применимость
и выполните предложенный платформой перезапуск. Для рабочей базы сначала
сохраните штатную резервную копию.
Проверьте, что расширение активно и его настройки доступны. Не отключайте защитные режимы расширения по универсальному совету: используйте параметры совместимой поставки и правила вашей конфигурации. Для внешних HTTP-обращений должны быть разрешены необходимые адреса в том контексте, где исполняется обмен.
В форме Настройки согласования ЛДО откройте настройки n8n. Выберите документы или справочники, разрешённые поля чтения, поля записи и, если нужны, печатные формы. Начните с одного тестового документа и небольшого набора полей, например номера, даты и комментария.
Профиль доступа — это правила обмена внутри расширения. Пароль 1С подтверждает пользователя, а профиль определяет, какие действия ему разрешены через API. Знание пароля само по себе не включает интеграцию.
Вариант 1: очередь без публикации базы 1С
Создайте API-ключ своего n8n
Откройте Settings → n8n API → Create an API key. Задайте название и срок, скопируйте ключ. Если доступны scopes, разрешите следующие действия:
dataTable:create
dataTable:read
dataTable:list
dataTableRow:create
dataTableRow:read
dataTableRow:update
dataTableRow:delete
workflow:create
workflow:read
workflow:activate
Права на активацию нужны для создания работающего шлюза, а на удаление строк — для очистки завершённого обмена. В версиях с отдельным разрешением на деактивацию выдайте и его для операции Disconnect. Ограничение API-ключа scopes зависит от редакции n8n: в не-Enterprise ключи имеют полный доступ к ресурсам учётной записи. Создание ключей и API scopes.
API-ключ остаётся в n8n. В 1С его не копируют. Когда срок истечёт, создайте замену и обновите credential n8n, сохранив его связь с gateway и рабочими нодами.
Сохраните credential очереди
Создайте подключение типа LDO 1C Standalone Queue API:
| Поле | Пример | Назначение |
|---|---|---|
| n8n URL | https://n8n.example.com |
Корневой адрес вашего n8n, без /api/v1 |
| n8n API Key | Ваш API-ключ | Чтение и запись очереди, создание gateway |
| Minimum Wait Seconds | 900 |
Минимальный timeout ожидания, согласованный с расписанием 1С |
Проверка credential читает доступную Data Table через API. Успешный тест означает доступ к API n8n; соединение с конкретной базой 1С создаётся на следующем шаге.
В одной Docker-сети можно использовать внутренний адрес http://n8n:5678
для API. Тогда при создании связи обязательно укажите внешний адрес в Public
N8n URL. Он попадёт в код сопряжения и должен быть доступен из 1С.
localhost внутри контейнера относится к самому контейнеру, а не к серверу 1С.
Создайте связь и получите код
Соберите небольшой workflow: Manual Trigger → LDO 1C.
В LDO 1C выберите:
- Транспорт Standalone Queue.
- Сохранённый credential очереди.
- Resource: Connection.
- Operation: Create Connection.
- Имя, например
УНФ — основная база. - Public N8n URL, если адрес шлюза отличается от адреса API в credential.
Выполните ноду. Она создаст Data Table, отдельный workflow шлюза
LDO 1C Queue Gateway / … и активирует его production endpoint. В результате
появятся connection_id, gateway_url, pairing_code и срок действия кода.
Шлюз не нужно собирать вручную, подключать к Schedule Trigger или держать в
режиме Listen for test event. Включённый gateway обслуживает постоянный
production URL; тестовый /webhook-test/ для этой связи не подходит.
Подключите расширение по коду
В 1С, под пользователем с правами администратора:
- В разделе ЛДО Интеграции → Доступ к данным разрешите нужные объекты и операции.
- Откройте Подключение → Самостоятельная настройка (self-hosted) и выберите Очередь.
- Вставьте весь
pairing_codeв поле Код подключения своей очереди n8n. - Нажмите Подключить очередь по коду.
- Дождитесь сообщения об успешном подключении.
Код действует 15 минут и привязывает одну базу с её профилем доступа. При истечении срока используйте Connection → Renew Pairing Code и новый код. Для смены уже привязанной базы сначала выполните Disconnect, затем новое сопряжение. Не передавайте код другим пользователям: до использования он разрешает привязку. Вывод workflow с кодом не публикуют и не хранят дольше, чем требуется для настройки.
Расширение создаёт постоянный ключ обмена само. В 1С сохраняются адрес шлюза и этот ключ; API-ключ n8n туда не передаётся. В рабочих нодах больше не нужно вручную вводить идентификаторы базы, профиля и политики — выберите связь из списка.
Настройте опрос команд
Убедитесь, что в 1С работает регламентное задание Опрос команд автоматизации ЛДО. Проверьте расписание, пользователя исполнения и разрешение запуска регламентных заданий. Для файловой базы учитывайте её механизм фонового исполнения: не рассчитывайте на обмен при полностью остановленной среде 1С.
Начальный пример настройки: опрос раз в 60 секунд, Minimum Wait 120 секунд и timeout операции с запасом. Значения выбирает администратор с учётом нагрузки. Если база опрашивает очередь раз в 15 минут, оставьте Minimum Wait не меньше 900 секунд; workflow должен разрешать столь длительное выполнение.
Minimum Wait не ускоряет 1С и не меняет расписание опроса. Низкое значение лишь позволит ноде закончить ожидание раньше, чем база успеет забрать команду.
В рабочем workflow выберите Standalone Queue, тот же credential и вашу связь в поле Connection Name or ID. Выполните Get Capabilities и убедитесь, что пришли доступные операции и поля.
Полное описание связи и пример Create Connection доступны в инструкции самостоятельного обмена.
Что хранится в очереди
Data Tables сохраняют команды, состояния, результаты и события. Это отдельное хранилище n8n, доступное через публичный API, а не переменная внутри одного запуска workflow. Таблицы сохраняются в базе данных инстанса и должны входить в его резервное копирование. Data Tables n8n.
Standalone Queue и queue mode самого n8n — разные вещи. Queue mode n8n распределяет исполнения между workers. Здесь очередь нужна для связи с 1С и хранится в Data Tables; Redis для этого обмена не требуется.
Опрос шлюза и приём результатов от 1С не создают обычные исполнения workflow. Однако если рабочая нода синхронно ждёт ответа, её workflow продолжает занимать ресурс исполнения.
Вариант 2: прямой обмен с опубликованным сервисом 1С
Включите прямой обмен и проверьте пользователя
В разделе ЛДО Интеграции → Доступ к данным выберите разрешённые объекты и действия. Затем откройте Подключение → Самостоятельная настройка (self-hosted), переключите тумблер на Прямой HTTP и нажмите Включить прямой HTTP-обмен. Для этого нужны права администратора.
Профиль создаётся для текущего пользователя 1С, который включает обмен. В credential n8n нужен логин этого пользователя. Нельзя включить профиль под одним пользователем, а затем подставить произвольную другую учётную запись. Если используете отдельного служебного пользователя, подготовьте профиль в его контексте с необходимыми правами настройки. Операции дополнительно ограничиваются выбранным профилем и правами пользователя на объекты 1С.
Опубликуйте HTTP-сервис расширения
Публикацию выполняет администратор 1С штатными средствами веб-публикации для установленной платформы и веб-сервера.
- Проверьте активность совместимого расширения.
- В настройках публикации включите HTTP-сервисы расширений и сервис ЛДО_N8N с корневым URL ldo_n8n.
- Настройте авторизацию пользователей информационной базы.
- Обеспечьте доступ к нужному пути из контейнера n8n через HTTPS или защищённую корпоративную сеть.
- Проверьте, что reverse proxy пропускает запросы и заголовок авторизации.
Точный интерфейс публикации зависит от версии платформы, ОС и веб-сервера. Включение веб-клиента или OData само по себе не публикует нужный сервис расширения. Для интеграции используйте путь HTTP-сервиса:
https://1c.example.com/unf/hs/ldo_n8n
unf здесь — пример имени публикации. Подставьте своё имя. В credential не
добавляйте /connection или /commands: нода добавляет маршруты сама.
Создайте credential прямого доступа
В n8n выберите LDO 1C Direct API:
| Поле | Что ввести |
|---|---|
| 1C Service URL | Адрес сервиса, например https://1c.example.com/unf/hs/ldo_n8n |
| Username | Пользователь 1С, которому соответствует включённый профиль |
| Password | Пароль этого пользователя 1С |
В этой версии Profile Token, Profile ID и Policy Revision вручную не нужны.
Проверка credential делает read-only запрос GET /connection. Расширение
определяет активный профиль пользователя и разрешённые возможности.
В рабочей ноде выберите Direct HTTP и сохранённый credential. Выполните Get Capabilities. Если тест credential успешен, а операция запрещена, проверьте права именно на выбранный объект и действие — успешная авторизация не означает разрешение на любую запись.
Соберите первый workflow чтения и записи
Для первого запуска возьмите тестовый счёт и разрешите чтение его номера и даты,
а для записи — только комментарий. В УНФ тип объекта может отображаться как
document.СчетНаОплату; в другой конфигурации имя будет своим.
Workflow:
Manual Trigger
→ LDO 1C: Get Capabilities
→ LDO 1C: Get Document Fields
→ LDO 1C: Update Document Fields
В каждой ноде выберите один и тот же транспорт и подходящее подключение. Для очереди дополнительно выберите одну и ту же связь.
В Get Document Fields задайте тип документа, UUID существующего тестового
документа и разрешённые поля number, date. UUID — идентификатор объекта,
он отличается от номера счёта. Получите его из вашей базы или предыдущего
сценария; не копируйте UUID из чужой демонстрации.
Если UUID ещё не подготовлен, сначала ограничьтесь Get Capabilities. Технический
специалист 1С может получить UUID выбранного тестового документа стандартным
методом ссылки УникальныйИдентификатор() и передать его строковое представление.
Это подготовка данных на стороне 1С, а не выполнение произвольного кода через ноду.
Запустите чтение и откройте OUTPUT → JSON. Помимо значений полей вы увидите
revision — ревизию прочитанного объекта. Она нужна для безопасного изменения.
В Update Document Fields выберите тот же документ. В поле Expected Document Revision для показанной последовательной цепочки используйте:
{{ $json.revision }}
В Changes JSON:
{"comment":"Комментарий обновлён из моего n8n"}
После выполнения проверьте ответ с прежним и новым значением, затем откройте документ в 1С. Если документ изменился после чтения, перечитайте его и оцените изменения перед новой записью. Не обходите проверку ревизии и не подставляйте постоянное значение из примера.
Как ждать очередь и восстанавливать результат
При включённом Wait for Result нода отправляет команду и ждёт её обработки 1С. Это удобно для короткого опроса. Если база обрабатывает очередь редко, используйте отдельное ожидание:
LDO 1C: операция с Wait for Result = false
→ сохранить Command ID
→ Wait
→ LDO 1C: Queue → Get Result
→ проверить статус
Пока статус pending или leased, повторяйте получение результата после Wait.
На succeeded продолжайте сценарий, на failed или dead переходите к обработке
ошибки. Исходную операцию записи для такого ожидания повторять не нужно.
Для длительных пауз используйте
готовый шаблон Queue with Wait,
в котором выбран Wait на пять минут для сохраняемого ожидания.
Истечение timeout не доказывает, что запись не состоялась. Сначала найдите результат по исходному Command ID. Для восстановления синхронной команды допустим повтор с тем же UUID и тем же исходным payload. Новый UUID означает новую операцию; изменённый запрос со старым UUID отклоняется.
Доставка очереди допускает повторы. Расширение сохраняет квитанцию вместе с записью и защищает от повторного применения той же команды. Это не обещание exactly-once доставки через всю цепочку. Если после 1С вы отправляете письмо или создаёте задачу в CRM, защиту от повторов этих действий настройте отдельно.
События и передача PDF
Для самостоятельной очереди события можно обрабатывать цепочкой
Schedule Trigger → LDO 1C Event → ваше действие → Delivery Acknowledge Event.
Сохраняйте _ldo.event_id и _ldo.lease_token. Подтверждайте событие только
после успешного бизнес-действия, а при ошибке назначайте повторную попытку.
В Direct HTTP события доставляются через отдельно настроенную исходящую webhook-подписку расширения. Ресурсы Event и Delivery очереди в этом режиме не используются; публикация сервиса команд не включает события автоматически.
Для PDF разрешите нужную печатную форму и используйте Prepare Document PDF.
После выполнения файл появляется в binary-свойстве data; его можно передать
в свою почту, CRM или хранилище через соответствующую ноду. Авторизацию этих
сервисов настраивают отдельно.
Standalone PDF ограничен размером 7 MiB. В очереди PDF сохраняется в Data Table в base64 и занимает больше места, чем исходный файл. Планируйте очистку результатов и перенос файлов в своё хранилище. Для старых завершённых записей используйте Queue → Clean Completed Entries; историю исполнений n8n очищайте отдельно.
Где в этой схеме MSRV
Когда вы самостоятельно установили n8n, публичную ноду и совместимое расширение, вы выбираете Standalone Queue или Direct HTTP. В этих режимах не нужны активация платной рабочей среды, Relay-токен или адрес API MSRV. Ошибка самостоятельного подключения не переключает обмен на MSRV.
MSRV Service — отдельный вариант для клиентов, которые явно подключают управляемые сервисы ЛДО. Общие боты ЛДО и другие сервисы MSRV требуют собственной авторизации и условий подключения. Установка публичной ноды не предоставляет доступа к этим ресурсам.
Нода распространяется по MIT. У расширения отдельные условия поставки; самостоятельное размещение также предполагает, что вы обслуживаете свой сервер, резервные копии и подключённые внешние сервисы.
Ошибки при настройке
| Симптом | Что проверить |
|---|---|
| В n8n нет Community Nodes | Роль Owner или Admin; флаги установки community packages; не включено ли управление пакетами только через окружение |
| Пакет установлен, но окно ещё показывает Installing | Проверьте появление пакета в списке; если установка подтверждена, обновите страницу. Не запускайте повторную установку вслепую |
| Queue credential не проходит тест | Корневой n8n URL без /api/v1, API-ключ, срок ключа, доступность Data Tables и API из контейнера |
| Create Connection завершается ошибкой | Права создания Data Tables и workflow, права активации шлюза. Неполную связь не используйте; исправьте причину и создайте новую |
| 1С не принимает код | Код скопирован целиком, не истекли 15 минут, есть права администратора и доступ из 1С к адресу шлюза |
| Код содержит localhost или недоступное имя контейнера | Задайте Public N8n URL, доступный с узла исполнения 1С; получите новый код |
| Очередь подключена, но команда pending | Активен production gateway; работает регламентное задание 1С; разрешены исходящие HTTP-запросы; команда относится к выбранной связи |
| Нода заканчивает ожидание раньше ответа 1С | Согласуйте расписание опроса, Minimum Wait, timeout операции и общий timeout workflow; используйте Wait и Get Result |
| Direct HTTP возвращает 404 | Опубликован сервис расширения ldo_n8n; правильное имя публикации и путь /hs/ldo_n8n; proxy не переписывает маршрут |
| Direct HTTP возвращает отказ в доступе | Пользователь и пароль публикации; включённый профиль этого пользователя; права на HTTP-сервис и объект; нет неоднозначного профиля |
| В списке нет нужного поля или операции | Объект и поле разрешены в 1С; поставка расширения поддерживает действие; для очереди прошёл следующий опрос после изменения профиля |
| Запись отклонена по ревизии | Перечитайте объект и проверьте конфликт; политика тоже могла измениться после создания команды |
| После изменения правил перестала выполняться старая команда | Команда создана под старой политикой. Изучите отказ и текущее разрешение; не воспроизводите старую запись автоматически с новыми правами |
| PDF не проходит или таблица переполнена | Размер PDF, разрешённая форма, квота Data Tables, накопившиеся завершённые результаты и события |
Для сетевой диагностики проверяйте запрос с того узла, который его выполняет. Доступность URL в браузере администратора не доказывает доступность из контейнера n8n или серверного процесса 1С. Журналы gateway, исполнения workflow и журнал обмена в 1С помогают различить сетевую ошибку, ошибку авторизации и отказ конкретной операции.
Резервные копии и обновления
Сохраняйте базу данных n8n, volume /home/node/.n8n и ключ шифрования.
Даже при отдельном PostgreSQL каталог .n8n содержит важные данные инстанса.
Резервная копия должна включать Data Tables, потому что там находятся незавершённые
команды очереди. Для SQLite делайте согласованный снимок остановленного инстанса
или используйте подходящий механизм резервного копирования базы.
Обновление n8n и обновление community-пакета — отдельные операции. Сначала
проверьте новый релиз на тестовом инстансе с копией базы и совместимым расширением.
После изменения N8N_VERSION скачайте образ и пересоздайте контейнер, сохранив
volume. Для HTTPS-варианта:
docker compose -f compose.yaml -f compose.https.yaml pull n8n
docker compose -f compose.yaml -f compose.https.yaml up -d n8n
Не используйте docker compose down -v для обычного обновления: удаление volumes
может уничтожить данные. Перед откатом учитывайте миграции базы самого n8n;
резервная копия должна соответствовать откатываемой версии.
Пакет LDO 1C обновляется через Community Nodes. После обновления проверьте credential, Get Capabilities, чтение и одну контролируемую запись. Для очереди проверьте также сохранённую связь, обработку старой команды и получение результата после перезапуска. Права и секреты храните в credentials, а не в JSON-параметрах публичных workflow.
Проверка перед рабочим запуском
Установка завершена, когда вы можете показать полный путь одного тестового документа: запрос ушёл нужным транспортом, расширение выполнило разрешённую операцию, n8n получил результат, а изменение подтверждено в 1С.
Для очереди дополнительно проверьте задержку по расписанию и восстановление после временной недоступности базы. Для Direct HTTP — авторизацию именно нужного пользователя и доступ из контейнера к опубликованному сервису. После этого подключайте бизнес-сценарии и внешние сервисы с их собственными credentials.
Исходники, описание операций и шаблоны: публичный репозиторий ноды. Совместимая поставка расширения: ЛДО и страница продукта.