При администрировании систем на базе 1С:Предприятие специалисты часто сталкиваются с ситуацией, когда в панели управления Windows в списке установленных программ отображается множество записей с абсолютно одинаковыми названиями вида «1С:Предприятие 8...». При этом они могут относиться к одной и той же версии (например, 8.3.12.1469), но иметь разное назначение: одна запись отвечает за 64-битный сервер, другая — за 32-битную технологическую платформу (клиентскую часть). Такая путаница усложняет обслуживание системы, особенно когда требуется точечно настроить окружение для работы конкретной конфигурации — например, 1С:Зарплата и Управление Персоналом (ЗУП).
В этой статье мы подробно разберем, как безопасно идентифицировать установленные компоненты 1С, рассмотрим причины возникновения проблем с печатью налоговых деклараций с двухмерным штрихкодом PDF417 на 64-битных клиентах и изучим технические способы их устранения, включая тонкую настройку операционной системы.
Когда перед нами стоит задача навести порядок на сервере или рабочей станции, простое удаление «лишних» строк через панель управления Windows может привести к неработоспособности ключевых сервисов. Рассмотрим по шагам, как определить назначение конкретной записи в списке установленных программ:
«Сервер 1С:Предприятия» (а также, возможно, «Модули расширения веб-сервера» и «Администрирование сервера»), то данная запись отвечает за серверную часть.«Толстый клиент» или «Тонкий клиент», перед нами клиентское приложение (технологическая платформа).HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
InstallLocation будет четко указан целевой каталог:
C:\Program Files (x86)\1cv8\ однозначно указывает на то, что установлена 32-битная (x86) версия клиента.C:\Program Files\1cv8\ говорит о том, что установлена 64-битная (x64) версия платформы или сервера.Процесс деинсталляции старых релизов платформы таит в себе скрытые угрозы, о которых должен знать каждый администратор. Разберем типичные проблемы, возникавшие в процессе эксплуатации инсталляторов 1С:
C:\ProgramData\1C\1cv8\srvinfo. В этой папке хранятся настройки кластера серверов, списки зарегистрированных баз данных, их уникальные идентификаторы (UID) и журналы регистрации. Очистка этой папки приводит к тому, что сервер «забывает» все информационные базы, и администратору приходится восстанавливать файлы конфигурации из резервных копий или заново вручную прописывать базы данных на сервере.1cestart.exe и его ярлык с рабочего стола пользователей. Из-за этого переставали запускаться даже оставшиеся новые версии платформы.Для минимизации этих рисков, начиная с версии платформы 8.3.24, разработчики фирмы 1С внедрили механизм автоматического фонового удаления неиспользуемых версий. Теперь система самостоятельно отслеживает версии тонких и толстых клиентов, которые не запускались долгое время, и безопасно деинсталлирует их без вмешательства пользователя и без риска повреждения серверных данных. Настроить данное поведение можно в окне запуска 1С (кнопка «Настройка» -> установить флаг «Удалять неиспользуемые версии»).
Выясним причину, почему пользователям ЗУП или Бухгалтерии предприятия иногда жизненно необходимо использовать именно 32-битную платформу 1С. Основная проблема кроется в технологии формирования двухмерного штрихкода PDF417 при печати налоговых деклараций.
Исторически единый модуль печати двухмерных штрихкодов, разработанный ГНИВЦ ФНС РФ (библиотека TAXDOCPrt.dll), создавался исключительно как 32-разрядный COM-компонент. Архитектура операционных систем Windows налагает жесткое ограничение: 64-битное приложение (в нашем случае 64-битный клиент 1С:Предприятия) физически не может напрямую загрузить в свое адресное пространство 32-битную динамическую библиотеку (DLL). По этой причине при попытке напечатать декларацию на 64-битной платформе пользователи сталкивались с системной ошибкой: «Печать бланка поддерживается только в 32-разрядной версии...».
Рассмотрим подробнее три основных способа решения этой проблемы.
Для того чтобы обойти ограничение без сложных технических манипуляций с операционной системой, достаточно установить на рабочую станцию 32-битного клиента той же самой версии, что и основная платформа. Проанализируем алгоритм настройки:
1cestart.exe.В результате при запуске именно этой информационной базы система автоматически вызовет 32-битный исполняемый файл клиента, который успешно загрузит библиотеку TAXDOCPrt.dll и сформирует печатную форму со штрихкодом.
Если мы хотим принципиально использовать только 64-битную платформу 1С и не желаем захламлять систему разными версиями клиентов, можно настроить запуск 32-битной библиотеки печати в режиме Out-of-Process с помощью системного суррогата Windows dllhost.exe.
Разберем по шагам, как зарегистрировать библиотеку через DllSurrogate:
regedit от имени администратора.TAXDOCPrt. Путь в реестре:
HKEY_CLASSES_ROOT\CLSID\{ИДЕНТИФИКАТОР_КЛАССА_КОМПОНЕНТА}AppID и в качестве его значения укажем тот же самый GUID (идентификатор класса) в фигурных скобках.HKEY_CLASSES_ROOT\AppIDDllSurrogate (тип REG_SZ, значение оставляем пустым). Это укажет операционной системе, что для запуска данной библиотеки необходимо использовать стандартный системный суррогат dllhost.exe.HKEY_CLASSES_ROOT\CLSID\{ИДЕНТИФИКАТОР_КЛАССА_КОМПОНЕНТА}\InprocServer32 убедимся, что пути к DLL указаны корректно.После проведения этих манипуляций 64-битный процесс 1С при попытке инициализировать объект печати не будет пытаться загрузить его напрямую. Вместо этого Windows запустит отдельный 32-битный процесс dllhost.exe, загрузит библиотеку туда и организует межпроцессное взаимодействие (IPC) между 1С и суррогатом. Печать выполнится успешно.
Стоит отметить, что в современных конфигурациях (выпущенных начиная со второй половины 2020 года) разработчики фирмы 1С существенно переработали механизм формирования двухмерных штрихкодов. Они внедрили кроссплатформенную альтернативу, использующую запуск JS-скриптов во внешнем изолированном процессе. Это позволило полностью отказаться от жесткой привязки к устаревшему COM-объекту ГНИВЦ на стороне клиента. Поэтому лучшим и самым стабильным решением на сегодняшний день является своевременное обновление конфигураций (ЗУП, Бухгалтерия предприятия) и платформы до актуальных релизов.