Настройка и решение проблем с 1С¶
Назначение: ответы на типовые обращения клиентов по настройке и диагностике обмена с 1С Связан с: runbook-1c-connect-auth.md, backend.md
1. Архитектура обмена (коротко для клиента)¶
1С:Предприятие ←→ Веб-сервисы ←→ Первая Форма
↑ ↑
Модуль обмена TC1CService.asmx
(расширение 1С) api/sync1c
Обе стороны общаются через SOAP веб-сервисы:
- 1С → 1Ф: 1С вызывает endpoint
/TC1CService.asmx(илиapi/sync1c/send-1c-event) - 1Ф → 1С: 1Ф вызывает веб-сервис, опубликованный в 1С по адресу
OneCAddress
2. Предварительные требования¶
На стороне 1С¶
- Модуль обмена — расширение конфигурации 1С (поставляется отдельно, не входит в дистрибутив 1Ф)
- Публикация веб-сервиса 1С — через Конфигуратор или утилиту публикации Apache/IIS
- Учётная запись для подключения 1Ф к 1С (логин + пароль, должна иметь права на вызов веб-сервиса)
- Сетевой доступ с сервера 1Ф к серверу 1С по указанному URL (порт, firewall)
На стороне 1Ф¶
- Системный пользователь — учётная запись в 1Ф для операций синхронизации
- Сетевой доступ с сервера 1С к серверу 1Ф по URL вида
https://server/TC1CService.asmx - Лицензия — достаточное количество лицензий 1Ф
3. Настройка подключения (пошагово)¶
3.1 В админке 1Ф: создание конфигурации синхронизации¶
Путь: Администрирование → Синхронизации → 1С → Создать конфигурацию
Ключевые параметры:
| Параметр | Что указывать | Пример |
|---|---|---|
| Имя конфигурации | Уникальное имя (латиница) | ERP_Production |
| Адрес 1С (OneCAddress) | URL опубликованного веб-сервиса 1С | https://1c-server:8080/erp/ws/1CIntegration.1cws |
| Логин 1С (OneCUserName) | Учётная запись для доступа к 1С | sync_user |
| Пароль 1С (OneCPassword) | Пароль (хранится зашифрованным) | *** |
| Тип аутентификации | Basic (по умолчанию), Ntlm, Windows | Basic |
| Адрес 1Ф (TCAddress) | WSDL-адрес веб-сервиса 1Ф | https://1f-server/TC1CService.asmx?WSDL |
| Логин 1Ф | Логин системного пользователя 1Ф | system |
| Пароль 1Ф | Пароль системного пользователя 1Ф | *** |
| ДП для GUID | ExtParamID для хранения GUID записи 1С | 12345 |
3.2 Проверка соединения¶
В админке нажать «Проверить соединение» → вызывается POST api/admin/sync1c/config/test-connection?name=...
Если OK → возвращается 1 (TestConnection successful).
3.3 В 1С: настройка подключения к 1Ф¶
- Открыть модуль обмена в 1С
- Указать URL веб-сервиса 1Ф:
https://server/TC1CService.asmx?WSDL - Указать логин и пароль (те же, что в конфигурации 1Ф)
- Нажать «Тест подключения»
4. Типичные проблемы и решения¶
4.1 «1С не видит 1Ф» (ошибка аутентификации из 1С)¶
Симптом: в 1С при тесте подключения ошибка вида Аутентификация пользователя не выполнена или 401 Unauthorized.
Проверить:
- URL правильный? Открыть в браузере
https://server/TC1CService.asmx?WSDL— должна отобразиться XML-страница с описанием сервиса - Логин/пароль? Проверить что учётная запись существует в 1Ф и активна
- HTTPS/сертификат? Если используется самоподписанный сертификат — 1С может его отвергать. Добавить сертификат в доверенные на сервере 1С
- Порт/firewall? С сервера 1С выполнить
telnet 1f-server 443(или нужный порт) - IIS/Reverse proxy? Проверить что Windows Authentication или Basic Authentication включены на уровне IIS для пути
/TC1CService.asmx
4.2 «1Ф не видит 1С» (тест соединения из админки)¶
Симптом: кнопка «Проверить соединение» падает с ошибкой.
Проверить:
- OneCAddress — URL должен быть полным, включая путь к
.1cwsили.asmx - Тип аутентификации — должен соответствовать настройке на стороне 1С (обычно Basic)
- Сеть — с сервера 1Ф должен быть доступ к серверу 1С по указанному URL
- Веб-сервис опубликован? — после обновления 1С публикация может сброситься, нужно переопубликовать
4.3 События приходят, но данные не применяются¶
Проверить:
- Mapping пользователей (
Sync1CUsersMap) — логин 1С должен быть сопоставлен с UserID в 1Ф - Record (запись синхронизации) — документ/справочник 1С должен быть в настройках конфигурации
- Очередь — события могут застревать в очереди
Sync1CEventQueues(см.RetryCount)
4.4 После обновления 1С обмен перестал работать¶
- Переопубликовать веб-сервис в конфигураторе 1С
- Проверить что URL не изменился
- Проверить что модуль обмена совместим с новой версией конфигурации
5. Диагностические SQL-запросы¶
set transaction isolation level read uncommitted;
-- Последние ошибки синхронизации
select top 50
l.[Date],
l.SettingsName,
l.Origin,
l.[Message],
l.Duration
from dbo.Sync1CLog l with (nolock)
where l.[Message] like '%error%' or
l.[Message] like '%exception%' or
l.[Message] like '%ошибк%'
order by l.[Date] desc;
-- Очередь: застрявшие события
select
q.SettingsName,
q.RetryCount,
count(*) as Cnt
from dbo.Sync1CEventQueues q with (nolock)
where q.RetryCount > 3
group by q.SettingsName, q.RetryCount
order by q.RetryCount desc;
-- Mapping пользователей 1С
select
m.User1CLogin,
m.UserID,
u.FullName
from dbo.Sync1CUsersMap m with (nolock)
join dbo.Users u with (nolock)
on u.UserID = m.UserID
order by m.User1CLogin;
6. Параметры логирования¶
| Параметр | Значение | Описание |
|---|---|---|
TC1C_SyncLog |
0 | Логирование отключено |
TC1C_SyncLog |
1 | Полные логи (по умолчанию) |
TC1C_SyncLog |
2 | Только ошибки |
TC1C_DaysLogKept |
7 | Хранить логи N дней (чистка по воскресеньям) |
7. Режимы аутентификации¶
Тип (OneCCredentialType) |
Когда использовать |
|---|---|
| Basic | По умолчанию. Логин и пароль в HTTP-заголовке. Требует HTTPS |
| Ntlm | Доменная аутентификация Windows (NTLM) |
| Windows | Встроенная Windows-аутентификация (Kerberos/NTLM) |
| Certificate | Клиентский сертификат |
Режим безопасности (OneCSecurityMode) |
Описание |
|---|---|
| TransportCredentialOnly | По умолчанию. Credentials в заголовке, TLS опционально |
| Transport | Только TLS/SSL |
| TransportWithMessageCredential | TLS + WS-Security |
8. Поставочные артефакты модуля¶
Файлы модуля хранятся в категории «Репозиторий версий приложения», задача «Модуль 1С» (ID 1847378).
Префикс YYYYMMDD_ в имени файла — дата сборки версии. Актуальная версия — файл с последней датой в имени.
YYYYMMDD_Расширение_ИнтеграцияСПервойФормой.cfe — основной поставочный артефакт¶
Расширение конфигурации 1С (формат .cfe). Это то, что устанавливается клиенту — не затрагивает типовую конфигурацию 1С, накладывается поверх неё отдельным слоем.
Что делает: добавляет в 1С веб-сервис, через который 1Форма и 1С обмениваются данными по SOAP в обоих направлениях.
Ключевое свойство: расширение загружается общим слоем — устанавливается один раз и автоматически применяется ко всем базам клиента (Бухгалтерия, ЗУП и т.д.) без отдельного переноса на каждую.
Установка клиенту:
1. Открыть 1С Конфигуратор
2. Меню «Конфигурация» → «Расширения конфигурации» → «Добавить из файла» → выбрать .cfe
3. Перезапустить 1С в режиме предприятия
4. Опубликовать веб-сервис через Конфигуратор или утилиту публикации (Apache/IIS)
5. Передать клиенту URL веб-сервиса для указания в админке 1Формы (Администрирование → Синхронизации → 1С → поле «Адрес 1С»)
YYYYMMDD_Конфигурация_ИнтеграцияСПервойФормой.cf — тестовая конфигурация¶
Полная конфигурация 1С (формат .cf). Используется только разработчиками — клиентам не передаётся.
Что делает: позволяет поднять изолированную 1С-базу с модулем интеграции без доступа к клиентской конфигурации. Аналог DB_Test на стороне 1С.
Когда использовать:
- Разработка и отладка изменений в модуле
- Регрессионная проверка перед передачей новой версии .cfe клиентам
- Воспроизведение ошибок без риска затронуть продуктивные данные
Загрузка:
1. Создать новую пустую базу 1С
2. Открыть Конфигуратор → «Конфигурация» → «Загрузить конфигурацию из файла» → выбрать .cf
3. Обновить конфигурацию базы данных
ИнтеграцияСПервойФормой.cfe — предыдущая версия расширения¶
Более ранняя версия расширения (без датированного префикса в имени — исходный формат до введения версионирования).
Назначение: архивная версия для отката, если в новой версии обнаружится регрессия у клиента. Перед заменой на новую версию рекомендуется убедиться, что старый .cfe сохранён в задаче.
Module1C.zip — исторический архив¶
Первоначальная поставка модуля (февраль 2025) в zip-архиве. Содержит ранние версии файлов модуля в едином архиве — формат, использовавшийся до разделения на .cf и .cfe.
Назначение: исторический артефакт, хранится для справки. В текущей работе не используется.
Схема использования¶
┌─ Разработка / тест ─────────────────────────────────────┐
│ .cf → загрузить в чистую 1С-базу │
│ (Конфигуратор → «Загрузить конфигурацию из файла») │
│ → проверить работу модуля, воспроизвести / исправить │
│ ошибку │
└─────────────────────────────────────────────────────────┘
↓ проверено, OK
┌─ Поставка клиенту ──────────────────────────────────────┐
│ .cfe → Конфигуратор → Расширения → Добавить из файла │
│ → опубликовать веб-сервис (Apache/IIS) │
│ → передать URL клиенту для настройки в админке 1Ф │
└─────────────────────────────────────────────────────────┘