При совместном использовании различных конфигураций 1С:Предприятие системным администраторам и разработчикам нередко приходится держать на одном рабочем компьютере несколько версий платформы. И если установка более новой версии (например, 8.3) поверх старой (8.2) обычно проходит гладко, то обратный процесс часто вызывает серьезные трудности.
При попытке установить платформу 8.2 на компьютер, где уже развернута и активно используется 8.3, программа установки аварийно завершает свою работу в самом начале процесса. При этом операционная система Windows (особенно часто это происходит на современных ОС, таких как Windows 10 и 11) выдает крайне неинформативное сообщение: «Windows error: Ошибка исполнения функции» (в логах MSI-установщика данная ошибка фиксируется под кодом 1013).
В этой статье мы подробно проанализируем, почему возникает данный конфликт инсталляторов, рассмотрим несколько эффективных способов решения проблемы и разберем нюансы совместного сосуществования двух платформ на одном ПК.
Выясним причину этой ошибки, а затем пошагово разберем методы ее обхода.
Проблема кроется в поведении общего файла конфигурации запуска 1С — 1CEStart.cfg, который обычно располагается по пути C:\ProgramData\1C\1CEStart\1CEStart.cfg. Данный файл отвечает за параметры запуска программных продуктов 1С и общие настройки для всех установленных версий.
Когда на компьютере устанавливается платформа 8.3, в конфигурационный файл 1CEStart.cfg автоматически прописывается параметр ADMINISTRATIONFUNC=0 (или его аналогичные вариации запуска административных функций). Этот параметр является относительно новым и был внедрен разработчиками фирмы «1С» только в ветке платформы 8.3.
Старый установщик версии 8.2, запускаясь, считывает файл конфигурации 1CEStart.cfg. Натыкаясь на неизвестный и непонятный ему параметр ADMINISTRATIONFUNC, инсталлятор версии 8.2 не может корректно обработать структуру данных и падает с критической ошибкой исполнения функции. Данный сбой официально зафиксирован в баг-трекере фирмы «1С» под номером 000023729.
Ниже детально рассмотрим три основных способа обхода этой системной ошибки.
Вместо радикального удаления или полного переноса настроек мы можем точечно скорректировать файл конфигурации. Это наиболее предпочтительный вариант, так как мы не теряем уже прописанные пути к базам и другие важные параметры.
Разберем этот способ по шагам:
ProgramData защищена от записи обычными пользователями).C:\ProgramData\1C\1CEStart\.1CEStart.cfg.ADMINISTRATIONFUNC=0 (или похожую строку, содержащую ключевое слово ADMINISTRATIONFUNC).После удаления этого параметра программа установки платформы 8.2 запустится в штатном режиме и без проблем завершит инсталляцию.
Если вы не хотите редактировать текстовые параметры вручную, можно воспользоваться методом временной изоляции конфигурационного файла. Этот метод часто упоминается на форумах как самый быстрый, но у него есть подводные камни, которые мы обязательно разберем.
Алгоритм действий следующий:
C:\ProgramData\1C\1CEStart\.1CEStart.cfg и временно переименуйте его (например, в 1CEStart.cfg.BAK) или просто перенесите на Рабочий стол.C:\ProgramData\1C\1CEStart\.Внимание! Скрытая проблема данного метода:
Если вы просто удалите вновь созданный установщиком файл 1CEStart.cfg и вернете на место старый (переименованный из .BAK), то вы сотрете информацию о путях к только что установленной платформе 8.2. В результате общая программа запуска 1cestart.exe от версии 8.3 не сможет физически обнаружить установленную 8.2 на вашем компьютере. При попытке войти в информационную базу под управлением 8.2 вы получите системную ошибку: «Не обнаружена установленная версия предприятия».
Чтобы избежать этой коллизии, при возврате старого конфигурационного файла на место обязательно откройте его и вручную пропишите строку с указанием пути к каталогу установки платформы 8.2. Пример корректного содержимого файла после ручной правки:
InstalledLocation=C:\Program Files (x86)\1cv82
InstalledLocation=C:\Program Files\1cv8
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=0 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU
Обратите внимание, что параметр InstalledLocation должен указывать на папки обеих версий платформ (для 32-разрядных и 64-разрядных версий соответственно).
Если на компьютере планируется масштабное обновление ПО или переустановка операционной системы, самым надежным решением станет соблюдение правильной хронологической последовательности установки программных продуктов 1С. Поскольку новые инсталляторы проектируются с учетом совместимости со старыми версиями, они умеют корректно объединять конфигурационные данные.
Рекомендуемый порядок действий выглядит так:
C:\ProgramData\1C\1CEStart\.Современный инсталлятор версии 8.3 без проблем распознает присутствие на диске платформы 8.2, запишет корректные пути в конфигурационные файлы и настроит систему на бесперебойную совместную работу.
Рассмотрим ситуацию, когда перед системным администратором стоит более сложная задача: запустить на одном физическом сервере под управлением Windows одновременно и серверную службу 1С 8.2, и серверную службу 1С 8.3.
По умолчанию обе службы серверов регистрируются в операционной системе с одинаковыми сетевыми портами для работы (порты по умолчанию: 1540 — порт агента сервера, 1541 — порт главного менеджера кластера, диапазон 1560-1591 — порты рабочих процессов). Из-за этого при одновременном запуске возникнет конфликт сетевых адресов, и одна из служб откажется запускаться.
Чтобы развести службы по разным портам, проанализируем по шагам процесс перенастройки портов (на примере изменения портов для службы сервера 8.3):
regedit через меню «Выполнить» (Win + R).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.1C:Enterprise 8.3 Server Agent (или 1C:Enterprise 8.3 x64 Server Agent).ImagePath, который содержит команду запуска службы.Стандартный путь запуска выглядит примерно так:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Нам необходимо изменить порты, сместив их, к примеру, на две сотни вверх (на диапазон 17xx):
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent -regport 1741 -port 1740 -range 1760:1791 -d "C:\Program Files\1cv8\srvinfo"
После изменения параметров реестра закройте редактор и перезапустите службу сервера 1С 8.3. Теперь серверная часть платформы 8.2 продолжит свою работу на стандартных сетевых портах (1540, 1541), а серверная служба платформы 8.3 будет успешно функционировать параллельно на альтернативных портах (1740, 1741, 1760-1791). При подключении к базам на сервере 8.3 пользователям потребуется указывать адрес сервера с новым портом подключения (например, ИмяСервера:1740).
Используя предложенные методики, вы сможете легко решить проблему совместимости установщиков 1С и обеспечить стабильную параллельную работу конфигураций различных поколений.