Перейти к содержанию

Настройка и решение проблем с 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Ф)
  2. Публикация веб-сервиса 1С — через Конфигуратор или утилиту публикации Apache/IIS
  3. Учётная запись для подключения 1Ф к 1С (логин + пароль, должна иметь права на вызов веб-сервиса)
  4. Сетевой доступ с сервера 1Ф к серверу 1С по указанному URL (порт, firewall)

На стороне 1Ф

  1. Системный пользователь — учётная запись в 1Ф для операций синхронизации
  2. Сетевой доступ с сервера 1С к серверу 1Ф по URL вида https://server/TC1CService.asmx
  3. Лицензия — достаточное количество лицензий 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. Открыть модуль обмена в 1С
  2. Указать URL веб-сервиса 1Ф: https://server/TC1CService.asmx?WSDL
  3. Указать логин и пароль (те же, что в конфигурации 1Ф)
  4. Нажать «Тест подключения»

4. Типичные проблемы и решения

4.1 «1С не видит 1Ф» (ошибка аутентификации из 1С)

Симптом: в 1С при тесте подключения ошибка вида Аутентификация пользователя не выполнена или 401 Unauthorized.

Проверить:

  1. URL правильный? Открыть в браузере https://server/TC1CService.asmx?WSDL — должна отобразиться XML-страница с описанием сервиса
  2. Логин/пароль? Проверить что учётная запись существует в 1Ф и активна
  3. HTTPS/сертификат? Если используется самоподписанный сертификат — 1С может его отвергать. Добавить сертификат в доверенные на сервере 1С
  4. Порт/firewall? С сервера 1С выполнить telnet 1f-server 443 (или нужный порт)
  5. IIS/Reverse proxy? Проверить что Windows Authentication или Basic Authentication включены на уровне IIS для пути /TC1CService.asmx

4.2 «1Ф не видит 1С» (тест соединения из админки)

Симптом: кнопка «Проверить соединение» падает с ошибкой.

Проверить:

  1. OneCAddress — URL должен быть полным, включая путь к .1cws или .asmx
  2. Тип аутентификации — должен соответствовать настройке на стороне 1С (обычно Basic)
  3. Сеть — с сервера 1Ф должен быть доступ к серверу 1С по указанному URL
  4. Веб-сервис опубликован? — после обновления 1С публикация может сброситься, нужно переопубликовать

4.3 События приходят, но данные не применяются

Проверить:

  1. Mapping пользователей (Sync1CUsersMap) — логин 1С должен быть сопоставлен с UserID в 1Ф
  2. Record (запись синхронизации) — документ/справочник 1С должен быть в настройках конфигурации
  3. Очередь — события могут застревать в очереди Sync1CEventQueues (см. RetryCount)

4.4 После обновления 1С обмен перестал работать

  1. Переопубликовать веб-сервис в конфигураторе 1С
  2. Проверить что URL не изменился
  3. Проверить что модуль обмена совместим с новой версией конфигурации

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Ф      │
└─────────────────────────────────────────────────────────┘