Меню

Настройка msi пакета через orca 1c

Бетке Сергей: iT блог

1С-Предприятие 8.2: разворачиваем через GPO+MSI, русский интерфейс на англоязычной ОС Windows

Ранее уже писал о собственном опыте создания MSI пакетов для 1С предприятия 7.7. И никак не ожидал проблем с развёртыванием платформы 1С 8.2 через GPO, благо разработчики уже создали msi пакет для нас. Но, как выяснилось, при развёртывании на станции с MS Windows XP english возникают проблемы локализации – интерфейс на английском. О том, как победили, здесь и напишу.

Сразу оговорюсь, описываю в этой статье не свой опыт, а опыт коллеги (за что ему отдельное спасибо).

Решений для публикации 1С предприятия 8.2, как всегда, много. Опишу решение, которое выбрали мы для себя – через GPO+MSI+GPP.

Публикация платформы и трансформация

Итак, создаём объект GPO. Публиковать платформу мы будем на компьютеры, а не на пользователей. Право на применение политики даём специально созданной для этой цели группе (в моём случае группы безопасности для политик создаётся скриптом).

Теперь запускам редактор политики. Перед сохранением сценария установки (до того, как нажмём “Применить” либо “Ok” в диалоговом окне при публикации msi файла в GPO) не забываем добавить трансформацию 1049.mst (иначе русского интерфейса точно не будет).

В дополнительных параметрах развёртывания (страница “Развёртывание”, кнопка “Дополнительно”) опция “Не использовать языковые установки при развёртывании” важна!

Ресурсы на месте, где же локализация?

Можно было ожидать, что на этом проблемы закончатся, но не тут то было! Если бы ОС была русскоязычной – интерфейс уже был бы локализованным. В моём случае – локализация ОС за счёт MUI. Поиск по форумам вывел на одно решение – создание файла ru.res в каталоге конфигурации платформы.

Вариантов для создания файла файла несколько. Править msi через mst – дело не сложное,и можно получить несовместимость с последующими редакциями msi платформы. Поэтому выбрали вариант с GPP.

И на этом всё – при запуске платформы получаем русскоязычный интерфейс, что и требовалось.

Публикуем информационные базы

Всё, да не всё. Хочется ведь и базы зарегистрировать у пользователей, причём так, чтобы каждый пользователь видел только те базы, которые ему видеть положено. И опять для этих целей используем GPO.

Итак, создаём ещё один объект GPO и группы безопасности для него, в которые включаем уже пользователей, которым необходимо предоставить доступ к конкретной информационной базе. И редактируем групповую политику.

Дам несколько пояснений. То, что мы пропишем в наименовании секции ini файла ( section ), и будет видеть пользователь в окне выбора информационной базы. К сожалению, API Windows работает с ini файлами как с не unicode файлами (а GPP использует указанное API для нашей задачи). В результате, файл %appdata%\1C\1CEStart\ibases.v8i сохраняется как не unicode файл. А платформа 1С ожидает unicode файла. В общем, я не нашёл способа использовать в этом файле кириллицу (только через GPP, руками можно писать всё, что угодно), поэтому и пришлось писать транслитерацией.

Параметр Folder позволяет нам определить “папку”, в которую будет включена наша информационная база, если пользователь выберет режим отображения списка в виде дерева.

Читайте также:  Настройка клапанов под газ

В таком варианте публикации информационных баз есть свои плюсы – сведения в профиле пользователя будут изменены даже без перезагрузки, при очередном применении политик. И если пользователь что-либо “исправит” – достаточно выполнить gpupdate /force – и всё вернётся на место.

Решений всегда много

Вот такая вот автоматизация.

Пишем плагин к wordpress по шагам

Отзывы » (37)

Добрый день, Сергей. Спасибо за статью. Я, вот, тоже посматриваю в сторону автоматизации установки 1С, в связи с этим у меня возник вопрос, на который я пока не могу найти ответ. Вопрос такой: каким образом можно в назначенном при помощи GPO пакете MSI можно указать компоненты, которые подлежат установке на клиентскую машину? Документация 1с на этот счет очень скупа (в ней просто декларируется возможность установки через GPO), однако подробно расписан способ установки при помощи Logon-скрипта и приведен сам скрипт (его можно посмотреть здесь). Из скрипта становится понятно, что компоненты, которые требуется установить на клиентскую машину, задаются при помощи параметров командной строки msiexec вида proerty=propertyvalue (например: THICKCLIENT=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0). правильно лия понимаю, что вместо того, чтобы указывать эти параметры в командной строке msiexec, я могу добавить эти параметры и их значения в секцию Property пакета msi (например при помощи mst) и тем самым добиться желаемого результата?

В общем и целом — абсолютно правильно. Да, Вы не правите исходный msi, Вы создаёте трансформацию с помощью Orca, прописываете нужные Вам свойства в таблицу Proeprty (регистр важен, не забывайте об этом). И при публикации msi в GPO указываете созданную Вами трансформацию. Результат будет.
P.S. Кстати, буду Вам благодарен, если сообщите, какой путь выбрали для публикации «ярлыков» к базам 1С.

Определился с ярлыками. Вернее, не столько с ярлыками, сколько с добавлением баз в список общих информационных баз, который видит пользователь при запуске 1c. Описал кратенько у себя в бложике: http://shserg.ru/posts/deployment_1c_v82_group_policy/

Огромное спасибо за предложенное решение! Действительно, куда более красивое решение, лишённое описанных недостатков и менее трудоёмкое в администрировании. Попробую применить, поправлю статью, с обязательной ссылкой на Ваше решение, безусловно! Ещё раз спасибо за красивое решение.

Однако, с файлом %APPDATA%\1C\1CEStart\1CEStart.cfg своя беда — это не ini файл (хотя что мешало сделать его ini файлом?). Посему внести в него необходимые записи через GPP не выйдет. Хотя — попробую создать «фантомную» секцию в этом файле и внести изменения через GPP в неё, после чего посмотрю на реакцию 1С. Результаты сообщу.

Ещё одна беда с этим файлом:

Как видно, мало того, что секций нет, так ещё и имеем несколько записей для одного и того же параметра, что недопустимо для ini файла. Применение GPP ещё больше осложняется. Буду дальше разбираться. По-прежнему, склоняюсь к созданию скрипта генерации msi пакетов под каждую базу с автоматической генерацией политик распространения этих пакетов на пользователей… а в msi — сценарием при установке создавать запись в указанном Вами файле и ярлык в меню (можно и на рабочем столе опционально).

Читайте также:  Нет сигнала при настройке антенны триколор

Провёл серию экспериментов, могу сказать следующее. Вполне работает такой вариант файла %APPDATA%\1C\1CEStart\1CEStart.cfg:

> Кстати, буду Вам благодарен, если сообщите, какой путь выбрали для публикации «ярлыков» к базам 1С.Пока еще не думал над этим. Да, еще забыл спросить, а перед добавлением msi пакета 1с в политику, выполняли ли вы предварительно административную установку или добавляли пакет непосредственно из дистрибутива?

Я всегда предварительно готовлю административную точку установки, взял за правило. Поясню смысл сего действа. Если в msi пакет запакован cab, тогда при публикации в GPO этого пакета при установки любого набора компонентов продукта (даже при публикации без установки как таковой) на рабочую станцию будет загружен весь пакет, развёрнут, и с него будет сделана установка. Естественно, после установки загруженный пакет удалён не будет. Итого — лишний трафик по сети (при существенном количестве рабочих станций утро может стать недобрым), лишнее место на накопителях на рабочих станциях.
Если же предварительно подготовлена административная точка установки, копируется на рабочую станцию только msi, который, как правило, на порядки «легчает». И устанавливаются непосредственно с сетевого ресурса только необходимые компоненты. И для сети легче, и для рабочих станций. Посему мой Вам совет — всегдя готовьте административные точки установки перед публикацией в GPO.

Спасибо за проделанную работу! Почерпнул много полезного для себя. Для ярлыков лучше всего использовать перемещаемый рабочий стол. Права пользователям поставить только для чтения, чтобы не захламляли чем попало а хранили все в «Мои документы».

Огромное спасибо за xml. Как то вообще не догадался об этом, хотели просто подменять клиентский файл, но вопрос возникал с «личными» базами. А теперь получается полностью управляемый вариант, и для пользователей пройдет незаметно любая миграция и изменения.

Да, именно эту цель и преследовал. Одна проблема — кириллицу использовать нельзя.

Источник

Тихая установка 1С:Предприятия 8.2

Озадачился на днях быстрой установкой на 200 компьютеров очередного релиза платформы 1С:Предприятие. Порыскал в интернете и как обычно, нашел много информации. И как обычно, принял к сведению, но поступил по-своему.

Основной принцип везде – использование групповых политик и создание файла трансформации с помощью редактора Orca. Попробовал я этот способ и мне не понравилось. Геморно это как-то и глючно, явно должен был быть способ попроще.

Второй вариант – жуткий скрипт на VBScript (типа из ИТС), с деинсталляцией предыдущей версии и т.п. Этот способ я тоже отверг – не люблю я Visual Basic, и потом все время возникали какие-то косяки с его удаленным запуском на моих 200 компах.

Сплавом обоих способов я и занялся, в результате оказалось все достаточно просто: для того, чтобы тихо поставить на компьютере необходимые компоненты 1С:Предприятия вообще ничего особенного не нужно. Достаточно просто в папке дистрибутива платформы запустить файл 1CEnterprise 8.2.msi с параметрами. Остальное Windows Installer сделает сам. В результате родился такой bat-файл из одной строчки:
«\\Server1S\install\1C\1CEnterprise 8.2.msi» /qr TRANSFORMS=adminstallrelogon.mst;1049.mst DESIGNERALLCLIENTS=1 THICKCLIENT=1 THINCLIENTFILE=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU
Все очень просто:

Читайте также:  Настройка буфера на магнитоле пионер

/qr – Сокращенный интерфейс. По сути, при установке пользователь увидит только бегущую полосу прогресса. Можно указать /qn и юзер вообще ничего при установке не увидит.

TRANSFORMS=adminstallrelogon.mst;1049.mst – Здесь мы подключаем рекомендованную фирмой 1С трансформацию adminstallrelogon.mst и пакет русского языка 1049.mst

DESIGNERALLCLIENTS=1 – Важный момент! Это основные компоненты 1С:Предприятия, включая компоненты для администрирования, конфигуратор и толстый клиент. Без этого параметра ставится всегда только тонкий клиент, независимо от следующего параметра

THICKCLIENT=1 – Толстый клиент

THINCLIENTFILE=1 — Тонкий клиент, файловый вариант

THINCLIENT=1 – Тонкий клиент

WEBSERVEREXT=0 – Модули расширения WEB-сервера

SERVER=0 – Сервер 1С:Предприятия

CONFREPOSSERVER=0 – Сервер хранилища конфигураций

CONVERTER77=0 – Конвертер баз 1С:Предприятия 7.7

SERVERCLIENT=0 – Администрирование сервера

LANGUAGES=RU – Язык установки – русский.

Вот и все, и никаких плясок с бубном и редакторами msi-пакетов.

Осталось только запустить эту команду на всех компьютерах конторы. Групповые политики я трогать не стал – с этой задачей прекрасно справился сервер администрирования антивируса Касперского — Kaspersky Security Center.

Источник

Тихая установка 1С:Предприятия 8.x

На больших предприятиях перед системным администратором часто встаёт задача массовой установки программ на множество компьютеров.

В случае с 1С:Предприятие это делается не просто, а очень просто. 🙂

Задача решается в несколько ходов.

Шаг 1.

Размещаем в общей папке на сервере дистрибутив программы:

Шаг 2.

Готовим скрипт (bat-файл) запускающий пакет установщика 1С:Предприятие под именем 1CEnterprise 8.msi с некоторыми ключами, которые помогут сконфигурировать и автоматизировать процесс установки.

net use t: \\FileServer\SharedFolder\8.3.9.2033 /persistent:no
t:
Start /wait “1CEnterprise 8.msi” /qn TRANSFORMS=adminstallrelogon.mst;1049.mst DESIGNERALLCLIENTS=1 THICKCLIENT=1 THINCLIENTFILE=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU
net use t: /delete

Шаг 3.

Вашим любимым способом запускаем данный bat-файл на каждом компьютере предприятия.

Некоторые пояснения к bat-файлу

net use t: \\FileServer\SharedFolder\8.3.9.2033 /persistent:no

Тут мы подключаем сетевую папку \\FileServer\SharedFolder\8.3.9.2033 к компьютеру в качестве сетевого диска с именем t:.

Параметр /persistent:no указан для того, чтобы подключение к диску не восстанавливалось после перезагрузки компьютера.

Если подключение к сетевой папке требует указания имени пользователя и пароля, то команду нужно будет немного видоизменить. Например, так:

net use t: \\FileServer\SharedFolder\8.3.9.2033 /user:domainname\username UserPassword /persistent:no

Это мы просто перешли в корень подключенного сетевого диска t:

Теперь можно установить 1С:Предприятие командой

Start /wait “1CEnterprise 8.msi” /qn TRANSFORMS=adminstallrelogon.mst;1049.mst DESIGNERALLCLIENTS=1 THICKCLIENT=1 THINCLIENTFILE=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU

Команда Start запускает установочный файл. Параметр /wait приостанавливает дальнейшее выполнение bat-файла до тех пор, пока установка не завершится.

Имя установщика “1CEnterprise 8.msi” заключаем в двойные кавычки, т.к. в нём присутствует пробел. После имени файла установщика 1С указываем нужные нам параметры:

И наконец командой

отключаем теперь уже ставший ненужным сетевой диск t:

Вот и все, и никаких плясок с бубном и редакторами msi-пакетов.

Источник