"Убедитесь, что NCALayer запущен" - а он запущен
Иван Недомолков · Опубликовано: · Обновлено:
1С просит убедиться, что NCALayer запущен, а значок висит в трее? Значит, 1С не получила ответа от локального порта 13579 на том компьютере, где выполняется подпись. Откройте там в браузере https://127.0.0.1:13579: пустая страница Not Found без предупреждений значит, что NCALayer работает, и дальше проверять надо место, где выполняется код 1С, модуль и ключ.
Как убедиться, что NCALayer запущен
Значок в трее ничего не доказывает, проверяют ответ порта:
- Откройте https://127.0.0.1:13579 в браузере на том компьютере, где работает клиент 1С. При удалённом рабочем столе это удалённая машина. Проверка взята из инструкции НУЦ РК: ожидается страница Not Found без предупреждения о сертификате.
- Появилось предупреждение о сертификате. Исключение не добавляйте, НУЦ РК это прямо запрещает. Сверьте цепочку сертификатов по той же инструкции и проверьте антивирус: НУЦ РК описывает подмену сертификатов при проверке защищённых соединений.
- Страница не открылась. Закройте NCALayer через трей, убедитесь в диспетчере задач, что процесса не осталось, и запустите снова. Если при запуске появляется “порт занят”, смотрите причину 2 ниже.
- Страница открылась, а 1С по-прежнему просит запустить NCALayer. Связь на этом компьютере в порядке, значит 1С стучится в порт не там или ей не хватает модуля. Разбирайте причины ниже по порядку.
Для обращения к специалисту подготовьте версию конфигурации, тип клиента 1С, место выполнения операции и обезличенный скрин ошибки. Пароль от ЭЦП присылать не нужно.
Другой текст ошибки, например “соединение прервано”, разобран в справочнике NCALayer. Если не открывается сам портал, сначала сравните это с внешним статусом ИС ЭСФ.
Что вообще происходит при подписи
Короткая механика, без неё дальше непонятно. NCALayer это программа Национального удостоверяющего центра, которая живёт на компьютере и слушает локальный порт 13579. Когда браузеру или 1С нужна подпись, они открывают соединение на этот порт, передают данные, NCALayer просит пароль от ключа, подписывает и отдаёт результат обратно.
Ключевое здесь два слова: локальный порт. Из них следует всё остальное. Подпись доступна только той программе, которая работает на том же компьютере, где запущен NCALayer. Соседняя машина в сети и сервер 1С до порта не достучатся.
Поэтому сообщение “убедитесь, что NCALayer запущен” и сбивает с толку: 1С не проверяет, запущено ли приложение, она стучится в порт и не получает ответа. Причин, по которым ответа нет, шесть, и буквальное “не запущен” только одна из них. Порядок ниже совпадает с порядком диагностики: сначала то, что проверяется быстрее всего и объясняет самые непонятные случаи.
1. 1С работает на сервере, а NCALayer на вашем компьютере
Первое, что проверяют в организации с серверной 1С. Выглядит как поломка, а на деле так устроена система.
В клиент-серверной 1С код может выполняться в двух местах: на вашем компьютере (клиент) и на сервере приложений (сервер). Если процедура отправки ЭСФ выполняется на сервере, она стучится в порт сервера, а NCALayer стоит у вас. Порт на сервере не отвечает, и вы видите ровно то самое сообщение.
Как понять, что случай ваш:
- 1С клиент-серверная, не файловая;
- у одних пользователей отправка работает, у других нет, при одинаковых настройках;
- на компьютере, где стоит сервер 1С, всё отправляется нормально.
Что делать: подпись должна выполняться на клиенте. В типовых конфигурациях это предусмотрено, но веб-клиент и тонкий клиент ведут себя по-разному, и после обновлений поведение меняется. Если конфигурация нетиповая или дорабатывалась, проверять надо, где именно вызывается подписание.
2. Порт NCALayer занят или закрыт
NCALayer слушает конкретный локальный порт, 13579. Если его занял кто-то другой, приложение стартует, висит в трее и не работает.
Признак прямой: сообщение “порт NCALayer уже занят” или “не удалось подключиться к NCALayer”. Чаще всего порт держит второй экземпляр самого NCALayer - он запустился дважды, потому что первый не завершился корректно.
Проверить просто: закрыть NCALayer через трей, убедиться, что процесса не осталось, запустить заново. Если не помогло, порт занимает другая программа. Найти её можно командой в командной строке Windows:
netstat -ano | findstr :13579
В последней колонке вывода номер процесса (PID). В диспетчере задач на вкладке “Подробности” найдите процесс с этим номером. Перезагрузка компьютера снимает этот случай почти всегда и занимает меньше времени, чем поиск виновника.
Отдельно про антивирусы и корпоративные политики: локальное соединение может резать защитное ПО. Симптом тот же самый, а причина за пределами 1С.
3. Не установлен нужный модуль
NCALayer сам по себе умеет базовые операции, а под конкретные системы ставятся модули. Для обмена ЭСФ из 1С нужен свой, и без него приложение запущено, порт отвечает, а нужной функции нет.
Симптом отличается: ошибка приходит при попытке подписать, подключение проходит нормально. Если у вас работает вход на портал через браузер, но не работает подпись из 1С, подозревать надо именно модуль.
4. Версия NCALayer старая
Криптографические требования госсистем меняются, и вместе с ними меняется NCALayer. Старая версия перестаёт работать в один день: сегодня подписывало, завтра нет, притом что у вас ничего не менялось.
Дистрибутив берут только на официальном сайте НУЦ - pki.gov.kz. Скачивать
NCALayer со сторонних сайтов нельзя: это программа, которая работает с вашими
ключами подписи.
5. Ключ не тот
Формально это уже не про NCALayer, но проявляется похоже, поэтому сюда.
Для работы с ИС ЭСФ используются два разных ключа: один для подписи документов, второй для аутентификации при входе. Они не взаимозаменяемы. Подставили не тот - получите отказ, а сообщение при этом может говорить про подпись, хотя дело в выборе ключа.
Плюс банальное: срок действия ключа истёк, или ключ лежит не в том каталоге, где его ищут, или пароль от ключа изменился.
6. NCALayer действительно не запущен
Та самая причина, ради которой написано сообщение. Бывает после перезагрузки, если приложение не в автозагрузке, и на терминальных серверах, где сеанс пользователя пересоздаётся.
Это единственный случай, когда совет “запустите NCALayer” помогает.
Почему это особенно больно при массовой отправке
Пока вы отправляете счета-фактуры руками по одной, любая из этих причин обнаруживается сразу: нажал, увидел ошибку, пошёл разбираться. Неприятно, но заметно.
При автоматической отправке всё иначе. Подпись - единственное место в схеме, которое требует присутствия человека и его пароля, и именно поэтому её нельзя просто поставить в расписание и забыть. Сессия с ИС ЭСФ открывается подписью и живёт ограниченное время; когда она истекает, обмен встаёт молча.
Отсюда практический вывод для тех, кто автоматизирует отправку: схему подписи проектируют первой. Где физически лежит ключ, на какой машине запущен NCALayer, кто и как часто подтверждает сессию, что происходит, когда она истекает ночью. Всё остальное в автоматизации ЭСФ проще этого.
Быстрая проверка по порядку
Если разбираться некогда, а отправить надо сейчас:
- Открыть портал
esf.gov.kzв браузере. Если страница доступна, проверить вход по ключу. Записать, на каком шаге появляется ошибка: соединение, подпись или ответ портала. - Закрыть NCALayer полностью, убедиться, что процесс завершился, запустить снова.
- Проверить версию на
pki.gov.kz, обновить. - Попробовать с компьютера, где всё работало раньше. Работает - причина в конкретном рабочем месте, база тут ни при чём.
Успешный вход на портал ещё не проверяет подписание из 1С: уточните модуль и место выполнения операции, затем проверьте остальные слои обмена. Их разбор в статье “ЭСФ не уходит из 1С: находим причину по тексту ошибки”.
Здесь разобрано одно сообщение, самое частое. Если у вас на экране другой текст - “соединение прервано”, “порт занят”, “модуль не установлен” - смотрите справочник ошибок NCALayer: там разбор по каждому тексту отдельно, с причиной и порядком действий.
Отдельно любопытно, как часто “переустановите NCALayer” оказывается лечением не той болезни. У вас какой случай был последним: порт, модуль, версия или всё же клиент-сервер?
Если обмен ломается регулярно, начните с бесплатного первичного разбора. По согласованным данным за 1-2 рабочих дня определим направление проверки. Дальнейшее обследование и исправления оцениваются отдельно.