По поводу КНП: такой вариант действительно можно рассматривать, но тут всё зависит от того, как именно реализован клиентский скрипт самого Кабинета налогоплательщика.
Если в коде КНП порт или адрес подключения указаны жёстко, то напрямую “заставить” его использовать другую переменную не получится без изменения самого скрипта. Браузерный JavaScript не имеет доступа к переменным окружения Windows, поэтому он не может просто прочитать значение из системы так же, как это делает локальное приложение.
Теоретически похожую схему можно реализовать только через дополнительную прослойку: например, локальный прокси, пользовательский скрипт/расширение браузера или доработку самого клиентского кода КНП, чтобы он обращался к нужному адресу и порту.
То есть идея рабочая как направление, но не “из коробки”. Для КНП это уже не вопрос системной переменной, а вопрос того, можно ли изменить или перехватить логику обращения внутри клиентского скрипта портала.
Вы правы — директорию установки выбрать невозможно (спасибо НУЦ РК), поэтому я действительно вручную перенёс установленную папку NCALayer в Program Files. Иного штатного способа у инсталлятора нет.
По поводу порта и исполнения скриптов:
рекомендую для начала проверить политику выполнения PowerShell-скриптов. На сервере выполните команду:
Set-ExecutionPolicy Bypass
Если политика была жёсткой, она могла блокировать самописные скрипты, из-за чего порт и не менялся.
Далее попробуйте запустить скрипт, который назначает порт вручную, а после в командной строке от имени администратора выполните:
ECHO %NCALAYERPORT%
Команда должна вывести назначенный порт в пределах диапазона.
Что касается нестандартных портов — да, разработчики NCALayer обычно не идут навстречу. Но на сайте pro1c есть материал, где описан механизм работы NCALayer на разных портах:
Если у компании используются только российские механизмы подписи — да, 1С спокойно работает без NCALayer.
Но в казахстанской инфраструктуре NCALayer всё равно нужен: ЭСФ, Госзакупки, НУЦ РК и часть модулей 1С напрямую с ним работают. В терминальной среде он часто конфликтует по портам, поэтому без такой настройки стабильной работы просто не добиться.
То есть вопрос не в «танцах», а в том, что для ряда сервисов NCALayer требуется по-другому никак.
Спасибо большое за тёплые слова поддержки!
По поводу КНП: такой вариант действительно можно рассматривать, но тут всё зависит от того, как именно реализован клиентский скрипт самого Кабинета налогоплательщика.
Если в коде КНП порт или адрес подключения указаны жёстко, то напрямую “заставить” его использовать другую переменную не получится без изменения самого скрипта. Браузерный JavaScript не имеет доступа к переменным окружения Windows, поэтому он не может просто прочитать значение из системы так же, как это делает локальное приложение.
Теоретически похожую схему можно реализовать только через дополнительную прослойку: например, локальный прокси, пользовательский скрипт/расширение браузера или доработку самого клиентского кода КНП, чтобы он обращался к нужному адресу и порту.
То есть идея рабочая как направление, но не “из коробки”. Для КНП это уже не вопрос системной переменной, а вопрос того, можно ли изменить или перехватить логику обращения внутри клиентского скрипта портала.
Спасибо за идею, она действительно интересная.
Спасибо за отзыв. Рад, что статья оказалась полезной и помогла сэкономить время.
В статье речь идёт про NCALayer.exe, а не про папку установки. На скриншоте видно, что все пути находятся именно там, как и указано в тексте.
Приятно видеть, что у вас всё удалось, благодарю за ценную информацию.
Вы правы — директорию установки выбрать невозможно (спасибо НУЦ РК), поэтому я действительно вручную перенёс установленную папку NCALayer в Program Files. Иного штатного способа у инсталлятора нет.
По поводу порта и исполнения скриптов:
рекомендую для начала проверить политику выполнения PowerShell-скриптов. На сервере выполните команду:
Set-ExecutionPolicy BypassЕсли политика была жёсткой, она могла блокировать самописные скрипты, из-за чего порт и не менялся.
Далее попробуйте запустить скрипт, который назначает порт вручную, а после в командной строке от имени администратора выполните:
ECHO %NCALAYERPORT%Команда должна вывести назначенный порт в пределах диапазона.
Что касается нестандартных портов — да, разработчики NCALayer обычно не идут навстречу. Но на сайте pro1c есть материал, где описан механизм работы NCALayer на разных портах:
https://pro1c.kz/articles/prochee/kak-nastroit-zapusk-ncalayer-na-raznykh-portakh-pri-rabote-s-1s-v-rezhime-rdp/
Если у компании используются только российские механизмы подписи — да, 1С спокойно работает без NCALayer.
Но в казахстанской инфраструктуре NCALayer всё равно нужен: ЭСФ, Госзакупки, НУЦ РК и часть модулей 1С напрямую с ним работают. В терминальной среде он часто конфликтует по портам, поэтому без такой настройки стабильной работы просто не добиться.
То есть вопрос не в «танцах», а в том, что для ряда сервисов NCALayer требуется по-другому никак.