Как запустить 1с в 32 разрядном режиме
Как быстро и без проблем установить новую версию платформы 1С и при этом минимизировать прерывание работы пользователей? Как запустить несколько экземпляров сервера 1С на одной машине? Данные вопросы являются распространенным предметом для обсуждения среди администраторов серверов 1С. В общем, ответы на них вы можете найти на сайте ИТС по этой ссылке, а также по этой.
В нашей статье мы хотим выделить самое главное, добавить что-то от себя, а также поделиться опытом, и, что достаточно важно, показать, что данные задачи не являются чем-то сложным и решаются буквально в два счета и даже без танцев с бубном, как многие думают.
Обновление платформы
Так как установка службы 1С на сервер, где ее еще не было, не представляет никаких сложностей и не отличается какими-то особенностями, рассмотрим другую задачу, когда у нас уже есть продуктивный сервер с запущенным сервером приложений, в котором работают пользователи, и нам необходимо обновить на нем версию платформы 1С. Эту задачу можно разбить на два условных этапа: подготовительный этап и этап обновления.
Подготовительный этап
Когда мы убедились, что все в порядке, можем запускать установку платформы 1С на сервере приложений. Если при его установке снять галочку «установить как сервис», можно не останавливать службу 1С, обслуживающую текущую версию платформы 1С и, что очень важно, можно не прерывать работу пользователей.
После этого все компоненты сервера будут установлены, но не будут использоваться.
Этап обновления
После того, как подготовительный этап закончен, необходимо согласовать с пользователями время, когда можно будет прервать их работу на несколько минут. Когда это время настанет, нужно остановить службу 1С и изменить строку запуска службы 1С, а именно путь к исполняемому файлу ragent.exe. Это можно сделать несколькими способами:
- при помощи заранее подготовленного файла реестра:
В нужный момент кликаем правой кнопкой мыши на экспортированный файл реестра с измененной строкой запуска службы 1С и нажимаем «Слияние». Преимущество данного метода в том, что данный файл мы можем подготовить заранее и выполнить изменение параметров службы 1С в два клика без необходимости «копаться» в реестре.
- или с помощью скрипта, с применением утилиты sc (выполняется из командной строки с правами администратора):
sc config [имя службы 1С в которой меняем версию платформы 1С] binPath= [строка запуска службы 1С новой версии платформы]
Строку запуска службы 1С новой версии платформы можно получить из строки запуска службы 1С текущей версии платформы, заменив в ней путь до исполняемого файла ragent.exe:
Например, если мы хотим обновить версию платформы с текущей (например, 8.3.7.1873) до 8.3.7.1917, тогда строка запуска текущей версии может выглядеть так:
"C:\Program Files\1cv8\8.3.7.1873\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\Program Files\1cv8\srvinfo"
из неё получим строку запуска службы 1С новой версии платформы:
"C:\Program Files\1cv8\8.3.7.1917\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\Program Files\1cv8\srvinfo"
имя службы 1С, например, следующее:
1C:Enterprise 8.3 Server Agent (x86-64)
тогда скрипт будет выглядеть так:
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "/"C:\Program Files\1cv8\8.3.7.1917\bin\ragent.exe/" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d /"C:\Program Files\1cv8\srvinfo/""
Установка дополнительной службы 1С
Итак, для того, чтобы использовать несколько экземпляров сервера 1С на одной машине, для обеих версий серверов 1С(если они отличаются) сначала выполняем «Подготовительный этап» из предыдущего пункта.
Далее нам понадобится следующий скрипт:
@echo off
rem %1 — полный номер версии 1С:Предприятия
rem %2 — первые цифры номеров портов
rem %3 — цифра сотого разряда номеров портов
rem %4 — каталог с данными службы 1С
set SrvUserName=<имя пользователя>
set SrvUserPwd=<пароль пользователя>
set RangePort=%2%301:%2%399
set BasePort=%2%300
set CtrlPort=%2000
set SrvcName="1C:Enterprise 8.3 Server Agent %CtrlPort%"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ragent.exe\" /srvc /agent /regport %BasePort% /port %CtrlPort% /range %RangePort% /d \"%
4\" /debug"
set Desctiption="Агент сервера 1С:Предприятия 8.3. Параметры: %1, %CtrlPort%"
if not exist "%
4"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Dnscache/Tcpip/Tcpip6/lanmanworkstation/lanmanserver
Процесс | Порты |
---|---|
ragent | 1540 |
rmngr | 1541 |
rphost | 1560:1591 |
К сожалению, такая структура портов не всегда является удобной. Например, если мы захотим использовать несколько кластеров в рамках одной службы 1С, а служб мы при этом используем несколько на одной машине. В этом случае может возникнуть путаница с диапазоном используемых процессами rphost портов. Если, например, процесс ragent одной службы 1С занимает порт 1540, а другой — 1640, для первой создан кластер 1С диапазон портов которого 1560:1591 и мы хотим создать еще один кластер, то диапазон портов для него, по логике, должен быть 1660:1691, но этот диапазон может быть занят (и, скорее всего так и будет) рабочими процессами кластера ragent’а занимающего порт 1640.
Итак, приведенный выше скрипт следует сохранить в командный файл, который назовем register-service.bat. Перед его применением необходимо указать в нем данные реального пользователя (имя и пароль) от имени которого будет работать служба кластера серверов (строки set SrvUserName= и set SrvUserPwd=). Примечание: если в скрипте используются символы кириллицы, командный файл следует сохранять в кодировке OEM 866.
Для регистрации службы выполните из командной строки следующую команду:
register-service [номер версии платформы] [первые цифры номеров портов] [цифра сотого разряда номеров портов] [каталог службы 1С]
Например, если нам необходимо зарегистрировать две службы для двух серверов 1С одинаковой версии 8.3.6.2332, то в командной строке напишем следующее:
register-service 8.3.6.2332 2 1 "C:\Program Files\1cv8\srvinfo_2000
register-service 8.3.6.2332 3 1 "C:\Program Files\1cv8\srvinfo_3000
Типичные ошибки и возможные проблемы
Помимо этого, необходимо помнить, что по умолчанию 1С регистрирует порт 1541 для менеджера кластера, то есть в параметрах запуска службы 1С можно увидеть:
Это значит, что после установки новой версии платформы при запуске службы по умолчанию всегда будет создан новый кластер и запущен процесс rmngr.exe, даже если он в принципе на сервере нам не нужен, и мы не хотим использовать этот рабочий сервер, как центральный. Также в строке запуска указан диапазон портов rphost для нового кластера:
К сожалению, на данный момент нет возможности управлять созданием локального кластера при первоначальном запуске службы 1С с помощью параметров командной строки службы. Но эту задачу можно решить следующими двумя способами.
Первый и, пожалуй, самый простой — это удалить созданный локальный кластер из консоли кластера 1С:
Второй вариант: для того, чтобы при первоначальном запуске службы 1С новый кластер не создавался, перед её запуском в каталоге служебных файлов данной службы, который указан в строке её запуска после ключа –d, необходимо создать файл с именем 1cv8wsrv.lst следующего содержания:
Мы получим такой же файл при удалении локального кластера, как это описано в первом варианте.
Еще один параметр строки запуска службы 1С, который стоит рассмотреть, это:
Он отвечает за каталог, в котором будут расположены (или располагаются) служебные файлы службы сервера 1С (в том числе список кластеров). По умолчанию каталог устанавливается следующий:
Также многие забывают указывать ключ в строке запуска, отвечающий за возможность использования приложения в режиме отладки, если он необходим:
Помимо этого, одной из частых ошибок является то, что администратор 1С забывает удалить служебные файлы информационных баз (а именно: индексы полнотекстового поиска и журналы регистрации) из каталога реестра кластера 1С после того, как базы удалены из списка информационных баз кластера 1С. Данная ошибка приводит к тому, что дисковое пространство сервера приложений используется неэффективно.
Каталог реестра кластера выглядит следующим образом:
«C:\Program Files\1cv8\srvinfo\reg_[номер порта менеджера кластера]»
Каталог служебных файлов информационной базы:
Например, если номер порта менеджера кластера 1541, то каталог служебных файлов некоторой информационной базы с уникальным идентификатором «0c1bd57c-4a1b-47df-a229-ade9833de359» будет:
Список неиспользуемых баз можно получить, сравнив по уникальному идентификатору список баз в файле «1CV8Clst.lst» (располагается в каталоге реестра кластера) и список баз, для которых существуют каталоги со служебными файлами. Для быстрого получения идентификаторов баз и их имен из файла реестра кластера можно воспользоваться следующим регулярным выражением: «\<(\w<8>\-.*\w)\,\"(.*?)\"\,.*[\\r]*\n+.*\"\,\d+\>».
Заключение
Мы постарались скомпоновать в статье достаточно полную и подробную информацию о том, как правильно и быстро обновить версию платформы 1С. Такая информация может быть полезна на предприятиях, где длительное прерывание работы пользователей может быть достаточно критичным.
Также достаточно важным было для нас описать, как настроить одновременную работу нескольких служб кластера 1С на одной машине. Эта информация может быть полезна тем, кто хочет изолировать несколько кластеров 1С, например, для целей разработки или тестирования или вы используете в работе информационные базы, управляемые разными версиями 1С:Предприятия.
Надеемся, вы сможете с легкостью выполнить нужную вам задачу и продолжите с удовольствием пользоваться продуктами 1С. Ну а если у вас что-то не получится, или вы столкнетесь с какими-то трудностями, обращайтесь к нам, мы обязательно поможем!
На компьютере стоят обе платформы одной версии: х32, х64.
В нормальном режиме работы бухгалтер запускает 1С через ярлык, выбирает базу, ну и стартер сам как я понимаю выбирает х64-платформу.
Иногда нужно принудительно запустить х32-платформу.
Ну ясное дело - это для печати штрих-кода.
Как это сделать?
Как настроить, чтобы когда надо бухгалтеру она могла открыть базу в х32-платформе?
Создать другой ярлык?
или разный путь к exe Файлу. Тут уже кому на что фантазии хватит
(3)
Вряд ли параметрами запуска это решить, нет таких параметров. Ярлык должен быть напрямую на нужный 1cv8x.exe
(4) А это смотря куда ведет ярлык. Может быть ярлык введет на исполняемый файл (cmd) и вызывая его с параметрами уже запускается та или иная версия 1С
(0) Решили проблему следующим образом.
У разработчиков 64х стоит платформа. У пользователей x86.
Если разработчику нужна x86 то запускает из Programs files(x86).
Ярлыки замучаешься делать при частом обновлении платформы.
(6) не пробовали оставить один каталог и релиз просто потом переписывать поверх ? )))) на сервере по крайней мере
ЗЫ пофиг сколько там новых она создаст, запуск всегда с одного
(8) Ага Особенно когда нужно что б было несколько разных версий платформы одновременно, очень удобно.
(9) ну кому на вкус фломастеры разные . зачем нужно МНОГО разных версий , уж и не знаю ))) как минимум можно на основные конфигурации у которых используется определенная платформа поставить ярлыки, а плодить сущности .
(7)
В том-то и дело, что ярлык с стартеру (1cestart) не помогает. Он всегда ищет последний установленный релиз и запускает из него 1cv8s.exe. Не глядя на архитектуру.
(11) "всегда ищет последний установленный релиз" // Так у автора релиз один и тот же, просто 32б и 64б. Хочешь сказать, что стартер 32б запускает тонкий / толстый клиент 64б?
(12) Да, так и есть.
Если стоят две платформы одной версии, то любой стартер запускает х64-платформу.
(8) У меня есть два ярлыка вечных:
%ProgramFiles% и %CurrentVersion1C% - переменные окружения, там я ставлю версию требующуюся и все переопределяется. Причем, на разных хостах свои версии.
А еще можно апач/iis настроить через environment vars и опубликовать 1 раз все.
Подсистема преобразования под названием Windows-on-Windows 64-bit (WoW64) обеспечивает совместную работу 32-битного ПО в 64-битной операционной системе (см. рис. вверху) . С ее помощью большинство 32-битных программ работает безупречно – но, к сожалению, есть исключения. Трудности обычно возникают с программами следующих категорий.
Резервное копирование. Программы для создания бэкапов напрямую работают с системными папками Windows. Но WoW64 иногда перенаправляет доступ 32-битного ПО в другие папки. Если программа этого не учитывает, резервное копирование может оказаться неполным или даже ошибочным.
Оптимизация Windows. Старые, рассчитанные на 32-битную Windows программы оптимизации нельзя запускать на 64-битной Windows 7. Подчас они способны больше навредить, чем помочь.
Антивирусы. Если требуется надежная защита для ПК, используйте в 64-битной Windows только 64-битные версии антивирусов и аналогичных программ. Устаревшее 32-битное защитное ПО неспособно контролировать все системные папки, а значит, может пропустить вредителей, разработанных специально для атак на 64-битную Windows. Современные антивирусные пакеты известных производителей, например «Лаборатории Касперского» , Norton или Symantec, подходят как для 32-, так и для 64-битной Windows.
Совет. Если программа под 64-битную Windows работает со сбоями, избавиться от них нередко помогает установка новейшей версии и всех обновлений с веб-сайта изготовителя. К тому же в «Центре совместимости Windows 7» можно проверить, совместимы ли ваши устройства и программы с 64-битной системой.
В 64-битной Windows программы работают быстрее
Некоторые 64-битные программы были всего лишь преобразованы («портированы» ) для применения в 64-битной Windows, но по сути остались 32-битными. Например, хотя они и имеют 64-битные структуры данных, однако хранят в них по-прежнему 32 бита данных. Подобные программы, как правило, не в состоянии работать быстрее.
64-битные программы реализуют свои преимущества, лишь если с самого начала разрабатывались и оптимизировались для применения в 64-битных Windows. В тесте ComputerBild такие программы в среднем работали на 13% быстрее 32-битных «собратьев» .
Старое 32-битное ПО в 64-битной Windows работает даже медленнее, чем в 32-битной системе; причина – преобразование подсистемой WoW64.
Найти подобные программы пока не так легко, как хотелось бы. В таблице внизу приведены важнейшие 64-битные программы, многие из них бесплатны и без особого труда скачиваются с сайта разработчика.
Далее в статье приводится таблица 64-битный программ, наиболее популярных.
Восьмерочники, еще вопрос.
Какая принципиальная разница между х32 и х64 и какую лучше брать на Windows 2008 R2 x64?
Есть ли какие-нибудь проблемы с совместимостью?
Проблем с совместимостью нет, если планируется клиент-серверная реализация и установка MSSQL - то только 64-разрядную ОС ставить. Если база файловая - то не имеет значение, только учтите - при формировании больших отчетов в 32-разрядных ОС есть ограничение на количество памяти, выделяемое одному процессу - максимум 2Гб вроде, если превысит - то клиент "вылетит" с ошибкой "Недостаточно памяти".
Проблема в том что в некоторое время 1С просто может нехватить памяти оперативной (ОЗУ), 32-х разрядные системы имеют ограничение на используемую память. Иными словами не могут зачитать больше чем положено.
В 64-х разрядный эта возможность шире поэтому использование 64-разрядный серверных платформ при больших нагрузках более предпочтительнее. Соответственно если вы поставили Виндовс сервер 64-х битный то лучше и сервер 1С Предприятия ставить тоже 64-х разрядный, хотя если у вас он не купленный и вы намерены нарушать закон, то можно использовать на виндовс сервере и 32-х разрядный сервер 1С Предприятия.
(3) SaschaL, сервера 1С Предприятия не бывает 32-разрядного!
. лицензионное соглашение на использование 32-разрядного сервера системы "1С:Предприятие". .
Студенты, заканчивайте ерунду нести.
Есть х32 и х64 сверер 1С, есть х32 и х64 ОС.
Никаким образом вам х64 ОС не поможет, если на ней стоит х32 сервер 1С.
В связи с тем, что сервер 1с стал последнее время жрать неимоверно много памяти, становится актуальным переход на х64 1С. Видимо, так пытаются перевести всех на х64 и срубить побольше денег.
Разницы в программировании между х32 и х64 нет в принципе - все как делалось в Виндовс, так в ней и делается, х64 только расширяет границы используемых ресурсов.
Клиента 1С х64 НЕ СУЩЕСТВУЕТ.
PS.
Да, естественно, х64 1С ставится на х64 ОС.
(6) AlexO, ссылку на скачивание 32-разрядной серверной части можно? Ну и сразу MSSQL 32-разрядный :)
(8) insurgut,
32х-разрядная версия называется "Технологическая платформа 1С:Предприятия для Windows".
64х-разрядная - "Cервер 1С:Предприятия (64-bit) для Windows".
1С, как всегда, слаба в терминологии и дурит и себя, и других.
х64 сервер стоит в два раза дороже х32.
Но на то вы и студент, чтобы верить громким выкрикам при отсутствии опыта :)
(10) AlexO, о чем вы - Технологическая платформа 1С:Предприятия для Windows - это клиент, то, что какой-то франч назвар его сервером, не означает, что 1С так же его называет. Не путайте клиентскую часть и серверную. Серверная - только 64-разрядная существует.
(11) insurgut, Вам же говорят умные люди - сервер 32-х разрядный идет в основной поставке платформы.
А это тогда что?
Тонкий клиент 1С:Предприятия (64-bit) для DEB-based Linux-систем
Тонкий клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
(18) S.V.Y, Да.. тонкий клиент.. а про какого клиента говорил (14) AlexO, ?
(19) Bukaska, тонкий, но не для Windows =)
Набор стандартной поставки:
Технологическая платформа 1С:Предприятия для Windows (32-bit)
Тонкий клиент 1С:Предприятия для Windows (32-bit)
Тонкий клиент 1С:Предприятия для DEB-based Linux-систем
Тонкий клиент 1С:Предприятия для RPM-based Linux-систем
Тонкий клиент 1С:Предприятия (64-bit) для DEB-based Linux-систем
Тонкий клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
Клиент 1С:Предприятия для DEB-based Linux-систем
Клиент 1С:Предприятия для RPM-based Linux-систем
Клиент 1С:Предприятия (64-bit) для DEB-based Linux-систем
Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
Cервер 1С:Предприятия для DEB-based Linux-систем
Cервер 1С:Предприятия для RPM-based Linux-систем
Cервер 1С:Предприятия (64-bit) для Windows
Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем
Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем
Читайте также: