ЭСФ не уходит из 1С: находим причину по тексту ошибки
Иван Недомолков · Опубликовано: · Обновлено:
Счёт-фактура выписан, кнопка “Отправить” нажата, а документ висит. Или падает ошибка, из которой непонятно ровно ничего: “Поле объекта не обнаружено”, “не верный логин и пароль”, “убедитесь, что NCALayer запущен”. Срок выписки при этом идёт, а бухгалтерия смотрит на вас.
Хорошая новость: отправка ЭСФ рвётся в пяти разных местах, и текст ошибки почти всегда говорит, в каком именно. Плохая: чинятся эти пять мест по-разному, поэтому универсальный совет “переустановите NCALayer” срабатывает только тогда, когда дело действительно в подписи, а это далеко не каждый случай.
Пять мест такие: портал, сессия, подпись, учётная запись, сам документ. Разбираем в этом порядке - от того, что вообще от вас не зависит, к тому, что лежит внутри вашего счёта-фактуры. Отдельно в конце про версию конфигурации: это не шестое место, а фон, на котором возникают все пять.
Сначала 30 секунд: это вообще ваша проблема?
Прежде чем чинить у себя, проверьте, работает ли портал: это тридцать секунд на странице Работает ли ИС ЭСФ прямо сейчас, где замер идёт с внешнего сервера каждые 5 минут. ИС ЭСФ уходит на технические работы и падает сам по себе, и в эти часы у всех пользователей страны одна и та же картина. Что делать, пока портал лежит, и как не потерять сроки выписки - разобрано отдельно: ИС ЭСФ не работает.
Признаки, что дело не в вас:
- ошибка приходит на этапе входа, до того как система дошла до вашего документа;
- она повторяется у всех пользователей организации, а не у одного;
- портал
esf.gov.kzне открывается и в браузере тоже.
Если так - чинить нечего, надо ждать. Но помните, что срок выписки ЭСФ при этом не останавливается, поэтому важно не потерять накопившееся: после подъёма портала досылать придётся всё, что не ушло, и вручную это делается сверкой журнала строка за строкой.
Слой 1. Сессия с порталом
Самая обидная группа: с документом всё в порядке, подпись на месте, а система просто не пускает.
”Для пользователя уже есть активная сессия, открытие новой сессии невозможно”
Дословный текст ошибки при входе. Означает буквально то, что написано: под этой учётной записью сессия уже открыта, и вторую ИС ЭСФ не даёт.
Откуда берётся: кто-то зашёл на портал в браузере под тем же ключом; предыдущий сеанс из 1С не закрылся штатно (упала связь, закрыли программу крестиком, сервер перезагрузился); в базе работают двое под одной учётной записью ИС ЭСФ.
Что делать: закрыть сессию - из 1С в справочнике пользователей ИС ЭСФ или выйдя из кабинета на портале. Если сессия “подвисла” после обрыва, она отвалится сама по таймауту, но ждать придётся.
Отдельно: это главная причина, по которой два человека не могут отправлять ЭСФ одновременно под одной учёткой. Если у вас так - вопрос не в 1С, а в том, что учётных записей должно быть столько, сколько людей отправляет.
”Поле объекта не обнаружено (createSessionResponse)”
Формулировка выглядит как ошибка в коде 1С, и это сбивает с толку. На самом деле
createSessionResponse - это имя ответа портала на запрос открытия сессии.
Сообщение означает, что ответ не пришёл или пришёл не в том виде, в каком его
ждали: 1С обратилась к серверу ИС ЭСФ, а разобрать ответ не смогла.
Причины три: сервер ИС ЭСФ недоступен (см. проверку выше); запрос не дошёл из-за сети, прокси или закрытого порта; версия конфигурации разошлась с текущим форматом портала - об этом отдельно в конце, потому что это общая причина, а не частная.
Что делать: сначала проверить доступность портала, потом сеть, потом релиз конфигурации.
Тикет и время жизни сессии
Отдельная механика, про которую мало кто знает, пока не столкнётся. Сессия с ИС ЭСФ не бесконечная: она открывается подписью и живёт ограниченное время. В типовых конфигурациях для Казахстана для этого есть отдельный механизм управления тикетами ЭСФ и ВС и форма с данными об активности тикета.
Практическое следствие: обмен может встать не потому, что что-то сломалось, а потому, что тикет истёк. Симптом характерный - вчера работало, сегодня нет, и ничего не меняли.
Слой 2. Подпись: NCALayer и сертификаты
Самая шумная группа в поиске: вокруг NCALayer вопросов больше, чем вокруг всей остальной отправки вместе взятой.
”Убедитесь, что программа NCALayer запущена”
NCALayer это приложение Национального удостоверяющего центра, через которое браузер и 1С работают с ключом ЭЦП. Оно должно быть запущено на той машине, где нажимают кнопку отправки, и слушать локальный порт. Если оно запущено, а 1С его не видит, причин ровно несколько, и они разобраны в статье “NCALayer запущен, а 1С его не видит”.
Проверьте по порядку:
- NCALayer действительно запущен (иконка в трее, а не просто установлен).
- Версия свежая - при смене криптографических требований старая перестаёт работать.
Дистрибутив берут только на
pki.gov.kz. - Порт не занят другим приложением. Ошибка “порт NCALayer уже занят” означает ровно это, и лечится закрытием второго экземпляра.
- В NCALayer включён нужный модуль. Для обмена ЭСФ из 1С используется отдельный модуль, и без него подпись не отдаётся.
Если текст вашей ошибки другой - “соединение прервано”, “порт занят”, “модуль не установлен” - смотрите справочник ошибок NCALayer: там разбор по каждому дословному тексту, с причиной и порядком действий.
Отдельно частый случай: 1С стоит на сервере, а NCALayer на компьютере пользователя. Тогда подпись физически не там, где выполняется код. Для ручной отправки это решается работой в тонком клиенте на машине с ключом, для автоматической - схемой, которую надо продумывать отдельно.
”Не верный логин и пароль”
Формулировка обманчивая: она возникает не только когда пароль реально неверный.
Что проверять:
- сертификат сменили, а в 1С остался старый. Ключи ЭЦП перевыпускаются по истечении срока, и после замены в настройках пользователя ИС ЭСФ нужно заново выбрать сертификат - сам он не подхватится;
- выбран не тот ключ. Ключей два, и они не взаимозаменяемы: один для подписи отправляемых документов, второй для аутентификации при входе. Подставили не тот - получите отказ на входе;
- срок действия ключа истёк. Проверяется в самом сертификате, а не в 1С;
- пароль от ключа менялся - в 1С он хранится отдельно.
”Поле объекта не обнаружено (responseObject)”
Родственник ошибки из первого слоя, только падает на подписи. Код читает поле ответа компоненты подписи, не проверив, успешен ли ответ, поэтому настоящая причина в исключение не попадает. Искать её надо в служебных сообщениях под ним. Если там “Incorrect login or password. Код ВК: 300”, портал интернет-поддержки 1С не принял логин ИТС, сохранённый в базе: компонента берёт с портала свои параметры перед подписью. Ключ ЭЦП и пароль ИС ЭСФ в этом случае ни при чём.
Под этим текстом может сидеть больше одной поломки. В разборе такого случая их нашлось две, и замена логина сначала “не помогла” из-за кеша сеанса.
Слой 3. Учётная запись и профиль
Группа, где всё технически исправно, но ИС ЭСФ считает, что вы не тот, за кого себя выдаёте.
Главный случай: тип профиля пользователя не соответствует тому, от чьего имени выписывается счёт-фактура. В настройках пользователей ИС ЭСФ у каждого указан профиль, и если ЭСФ уходит от индивидуального предпринимателя, а в карточке стоит “руководитель юридического лица”, отправка не пройдёт. Меняется в настройках электронных счетов-фактур, в карточке пользователя. Такие настройки со временем разъезжаются сами - почему обмен перестаёт работать через полгода после наладки, разобрано в статье про настройку обмена ЭСФ.
Сюда же: уполномоченный сотрудник не наделён правом подписи в самой ИС ЭСФ; ИИН в карточке не совпадает с ИИН в сертификате; организация не зарегистрирована в системе.
Слой 4. Сам документ
Здесь портал вас пустил, документ принял и отказал по содержанию. Это единственная группа, где ошибка обычно осмысленная, потому что её формулирует форматно-логический контроль ИС ЭСФ.
Частые отказы:
- категория поставщика не позволяет валюту. Счёт-фактура не в тенге требует, чтобы в поле “Категория поставщика” стояла одна из допускающих это категорий (экспортёр, международный перевозчик, участник СРП). Не стоит - валюту система не примет;
- сведения ЭСФ и СНТ расходятся. Если по отгрузке оформлена сопроводительная накладная, данные должны совпадать. Расхождение по количеству, коду товара или сумме валит ЭСФ;
- не заполнен признак происхождения товара или код ТН ВЭД;
- идентификатор товара не соответствует Национальному каталогу.
Полный перечень проверок лежит в документе “Форматно-логический контроль ЭСФ” на сайте Комитета государственных доходов, и это первоисточник: блоги, включая наш, его пересказывают, а он обновляется.
Фон всех пяти слоёв: версия конфигурации
Это не шестое место поломки, а условие, при котором возникают предыдущие пять. Обмен с ИС ЭСФ живёт релизами: меняются форматы документов, требования к подписи, методы обращения к порталу. Конфигурация, не обновлявшаяся долго, ломается не в день обновления портала, а тогда, когда до неё дойдёт очередь изменений - и выглядит это как что угодно из разобранного выше. Чаще всего как “Поле объекта не обнаружено”: 1С обращается к порталу по старым правилам и не понимает нового ответа.
Отсюда простое правило приоритета: если у вас типовая конфигурация и она давно не обновлялась, начинайте с релиза, а не с разбора конкретной ошибки. Почему релизная дисциплина в казахстанской бухгалтерии стоит дороже, чем в российской, - в обзоре конфигурации. Часть симптомов уйдёт сама.
Если конфигурация нетиповая, всё наоборот: обновления вендора до вас не доезжают вовсе, и совместимость с порталом приходится держать самим. Здесь релиз не поможет, и разбирать придётся именно ту ошибку, которую вы видите.
Что делать с очередью, которая уже накопилась
Отдельная боль, о которой вспоминают после того, как причину нашли. Пока обмен стоял, документы копились. Теперь надо понять, что ушло, а что нет, и досдать разницу, не отправив ничего дважды.
Вручную это делается сверкой: журнал ЭСФ в 1С против списка на портале, строка за строкой. На десятке документов терпимо, на нескольких сотнях после недельного простоя - день работы бухгалтера, и по опыту именно здесь возникают дубли.
Это, кстати, самый весомый аргумент за автоматическую отправку: обработка, которая шлёт ЭСФ по расписанию, держит очередь сама. Не ушло - осталось в очереди и уйдёт следующим запуском, с отметкой о причине отказа. Разгребать руками нечего.
Как узнавать о поломке раньше контрагента
Общая черта всех пяти слоёв: обмен ломается молча. Ошибка падает в журнал регистрации, документ остаётся неотправленным, и пока кто-то не хватится, всё выглядит нормально. Чаще всего хватается контрагент, которому нужен зачёт НДС, и происходит это ближе к сроку.
Минимум, который стоит сделать даже без всякой автоматизации: раз в день смотреть, сколько документов в статусе “не отправлен”, и держать этот отчёт на виду. Дальше - оповещение, когда число перестаёт быть нулевым.
Чего этот разбор не покрывает
Честная граница, чтобы не было ложных ожиданий. Здесь разобраны причины, по которым документ не уходит из 1С. Отдельная и совсем другая история - когда ЭСФ ушёл, принят, а потом оказался неправильным: исправленные и дополнительные счета-фактуры, их подтверждение получателем, сроки и последствия. Это бухгалтерский вопрос, а не технический, и решается он не в настройках обмена. Сюда же относится и случай, когда ушедший документ позже получил статус со словом “заблокирован” - это слово в ИС ЭСФ означает три разных вещи, и мы разобрали их отдельным определителем.
Так же за рамками остались случаи, где ошибка приходит не от ИС ЭСФ, а от самого 1С при заполнении документа. Их разбирают по тексту сообщения платформы, и к обмену они отношения не имеют.
А как у вас устроен контроль отправки: кто-то регулярно смотрит журнал, или о неотправленном ЭСФ узнаёте от покупателя? Второй вариант встречается чаще, чем принято признавать.
Если хотите разобраться, где именно рвётся ваш обмен с ИС ЭСФ, мы смотрим это бесплатно за один день: конфигурация, версия платформы, настройки обмена и то, что реально происходит при отправке. По итогам говорим, чинится ли это настройкой или нужна доработка.