Особенности публикации 1с на сервере iis. Настройка веб-серверов для работы с «1С:Предприятием

Имеется windows-сервер c 1С 8.3 (БД - MSSQL).
Задача - настроить публикацию базы на линуксовом web-сервере.
Тонкости - модуль 1С для апача работает только с 2.0 и 2.2, а текущая версия в большинстве дистрибутивов - 2.4+
Пишется больше для себя, чтобы не забыть. Ну и мало ли, вдруг пригодится еще кому - не придется бегать по форумам в поисках нужных команд.

Железо - дал гигабайт оперативки, одно ядро и 20 гигабайт диска. Увеличить никогда не поздно.
ОС: Debian Stable, привык я к нему.

Ставлю минимум, включая ssh-сервер, но не включая web. К этому еще вернемся.

После установки базовая настройка по вкусу, я обычно ставлю локаль utf8, ставлю sudo, mc и vim, остальное по потребностям.
Дальше надо поставить apache 2.2. Причем сделать это правильным способом, а не просто скачав deb-пакет. :)

Сперва добавляем в /etc/apt/sources.list строчки со ссылкой на предыдущую версию дистрибутива.
deb http://mirror.yandex.ru/debian/ wheezy main deb-src http://mirror.yandex.ru/debian/ wheezy main
Можно, конечно, написать oldstable - в настоящий момент тоже будет правильно. Но только в настоящий, потому рано или поздно выйдет новая стабильная версия и в oldstable и тогда вместо apache 2.2 там будет 2.4. Хотя, надеюсь, к тому времени 1С обновится и заработает с более новыми версиями апача. Но кто их знает? :)
Где mirror.yandex.ru - там пишется имя вашего любимого сервера с репозиторием.

Потом обновляем индексы - apt-get update - и смотрим, что у нас тут есть по apache командой apt-cache showpkg apache2
Там много всего выводится, но нас интересует только начало вывода:
Package: apache2 Versions: 2.4.10-10+deb8u3 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages MD5: Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-ru MD5: 2.4.10-10+deb8u1 (/var/lib/apt/lists/security.debian.org_dists_stable_updates_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages MD5: Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-ru MD5: 2.2.22-13+deb7u6 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages MD5: Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-en MD5: Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-ru MD5:

Видим, что кроме 2.4.10 имеется версия 2.2.22-13+deb7u6 - то, что нужно.
Ставим: apt-get install apache2=2.2.22-13+deb7u6
Или, точнее: apt-get install apache2=2.2.22-13+deb7u6 apache2-mpm-worker=2.2.22-13+deb7u6 apache2.2-common=2.2.22-13+deb7u6 apache2.2-bin=2.2.22-13+deb7u6 , а остальные зависимости уже подтянутся автоматом.

После этого ставим апачей на холд, чтобы не обновить случайно.

Apt-mark hold apache2 apache2-mpm-worker apache2.2-common apache2.2-bin apache2 помечен как зафиксированный. apache2-mpm-worker помечен как зафиксированный. apache2.2-common помечен как зафиксированный. apache2.2-bin помечен как зафиксированный.
Можно запустить service apache2 start и стукнуть телнетом на 80 порт для проверки, если лень браузер запускать.

telnet localhost 80
Trying::1... Connected to localhost. Escape character is "^]". 1 501 Method Not Implemented

Method Not Implemented

1 to /index.html not supported.


Apache/2.2.22 (Debian) Server at 1cweb Port 80
Connection closed by foreign host.

Ругается - значит работает.

Теперь ставим 1С.
Нужны только веб-сервисы 1С (пакет 1c-enterprise83-ws ). И 1c-enterprise83-common , который в зависимостях прописан. И 1c-enterprise83-server , который в зависимостях не прописан, но без него утилита публикации пишет «Ошибка сегментирования».
В принципе, необходим только модуль для апача wsap22.so из пакета 1c-enterprise83-ws , а всё остальное можно через текстовый редактор сделать. Но я человек ленивый и лучше потрачу несколько мегабайт на 1С, чем буду руками вбивать строчки в конфиги. :)

Дальше надо создать папку для хранения настроек опубликованных БД 1С. Можно в дереве вебсервера, но я лучше отдельно сделаю, прямо в корне, /1с.
После этого из папки с установленными файлами 1С (/opt/1C/v8.3/i386 ) запускаем утилиту публикации webinst со следующими параметрами (публикую нашу тестовую базу):
./webinst -apache22 -wsdir testlitupp -dir /1c/testlitupp -connstr "Srvr=10.0.0.4;Ref=testlitupp;" -confPath /etc/apache2/apache2.conf Публикация выполнена

Apache22 - наша версия вебсервера
-wsdir testlitupp - папка на вебсервере, в которой будет доступна опубликованная база (http://вашсервер/testlitupp)
-dir /1c/testlitupp - папка, в которой будет храниться файл default.vrd с настройками публикации
-connstr «Srvr=10.0.0.4;Ref=testlitupp;» - ip сервера 1С и имя публикуемой базы данных
-confPath /etc/apache2/apache2.conf - путь к конфигу apache

Если было написано «Публикация выполнена», значит всё прошло удачно. Если пишет «Ошибка сегментирования», то вы, скорее всего, забыли поставить 1c-enterprise83-server .
По результатам имеем файл default.vrd

И несколько новых строк в файле конфигурации веб-сервера:

LoadModule _1cws_module "/opt/1C/v8.3/i386/wsap22.so" # 1c publication Alias "/testlitupp" "/1c/testlitupp/" AllowOverride All Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor "/1c/testlitupp/default.vrd"
Перезапускаем апач (service apache2 restart) и идём смотреть, что там опубликовалось.
Опубликовалось, просит пароль.

И впускает в базу.

Работает. Дополнительные настройки публикации делаются через редактирование vrd-файлов (к примеру, включение отладки), а допиливанием интерфейса веб-клиента должны заниматься ваши программисты 1С.
Если будете дописывать опции, к примеру, с подключением сервисов руками, то не забудьте удалить в файле default.vrd последний слэш в строчке «base="/testlitupp" ib="Srvr=10.0.0.4;Ref=testlitupp;"/ >», я с этим долго возился. Если не удалить и что-то дописать после, то вылетает «ошибка 500» без дополнительной информации.
Какая будет нагрузка на вебсервер - я ещё не знаю, у нас это пока в тестовом режиме работает и хватает выделенных ресурсов. Но добавить памяти или ядер по мере увеличения потребностей проблем не составит.

В целом, в других дистрибутивах linux всё делается аналогично, различия только в способах установки старой версии apache.

Начиная с версии платформы 1С 8.3, появилась возможность опубликовывать информационные базы на веб-серверах. Данное решение очень удобно, ведь перейдя по ссылке в браузере, вы сможете полноценно работать в 1С. Обратите внимание, что работа возможно только в режиме «Предприятие» Использовать конфигуратор можно только на толстом клиенте.

Конечно, фирма 1С огласила свой перечень требований к операционной системе и браузерам, из которых будет осуществлено подключение через веб-сервер к 1С. Но, на практике появляется намного больше возможностей. Например, вы можете работать в 1С через обычный браузер с мобильного телефона.

В данной статье мы пошагово рассмотрим публикацию информационной базы 1C 8.3 на веб-сервере с использованием Apache. Описанные ниже настройки, которые мы будем производить в самой 1С, ничем не отличаются от публикации на веб-сервере IIS.

Единственное отличие — сервер под управлением IIS более «привередливый» к настройкам, поэтому чаще всего выбор падает именно на Apache.

Установка и настройка Apache 2.4

Первым делом нужно скачать сам Apache, например, с официального сайта . Актуальная на данный момент версия 2.4. В процессе установки нет ничего сложного, достаточно следовать помощнику.

Когда при установке перед вами отобразится окно с информацией о сервере, введите в первых двух полях «localhost». Это будет означать, что наш компьютер и будет являться сервером, на котором расположена 1С.

Так же обратите внимание, что у нас будет использоваться порт 80 (переключатель внизу формы). Важно, чтобы он не был занят другими приложениями.

После успешной установки программы в трее появится специальный значок Apache. С его помощью можно как запустить, так и остановить работу веб-сервера.

Публикация информационной базы 1С 8.3

После установки Apache можно приступить непосредственно к публикации информационной базы на веб-сервере. Для этого зайдите в нужную базу в режиме конфигуратор. Все необходимые действия будут производиться именно здесь. При этом, как было сказано выше, вы можете воспользоваться данной инструкции и в случае использования IIS.

Выберите в меню «Администрирование» пункт «Публикация на веб-сервере». В открывшемся окне мы оставим все настройки по умолчанию, изменив лишь малую их часть.

В качестве веб-сервера выберем Apache 2.2, который установили ранее. В качестве имени можно указать произвольное значение. Мы публикуем 1С:Документооборот, поэтому назовем ее просто «doc». В поле каталог выберем так же созданную нами пустую папку, которая может быть расположена в любом месте.

После внесения всех необходимых данных, нажмем на кнопку «Опубликовать» и перезапустим веб-сервер Apache.

Теперь в адресной строке браузера введем «localhost/doc». Перед нами появилось окно авторизации в 1С.

После введения логина с паролем и аутентификации, перед нами откроется привычная нам 1С.

31/05/2016

Настройка веб-сервера Microsoft Internet Information Services (IIS) для работы с платформами 1С:Предприятие

Общие сведения о публикациях

Как известно, публикация баз данных 1С может осуществляться как из конфигуратора, так и с помощью утилиты webinst. Подробнее алгоритм публикации описан на ИТС, например, по данной ссылке .

Стоит обратить внимание, что публикация для 64-разрядного сервера возможна только из конфигуратора в ОС Linux или с помощью утилиты webinst. На некоторых наших нагрузочных тестах 64-разрядные веб-сервера IIS показали чуть лучшую производительность, поэтому, в отсутствие других ограничений, мы рекомендуем использовать именно их.

Если же вы планируете использовать 32-разрядный веб-сервер IIS, тогда не забудьте разрешить запуск 32-битных приложений: в списке «Пулы приложений» («Application Pools») для каждого нужного пула нажать правую кнопку мыши, в контекстном меню выбрать «Дополнительные параметры…» («Advanced Settings»), затем задать параметр «Разрешены 32-разрядные приложения» («Enable 32-bit Applications») в значение «Истина» («True»).

В документации также описано несколько важных пунктов относительно работы с веб-сервером IIS. Процитируем их: при публикации на веб-сервере IIS следует помнить, что:

  • Публикация всегда выполняется для веб-сайта по умолчанию (Default Web Site).
  • Публикация всегда выполняется для пула приложений по умолчанию (DefaultAppPool).
  • Для пула приложений, используемого для работы «1С:Предприятия», должна быть отключена поддержка.NET. Для этого следует установить свойство пула приложений «Версии среды.NET Framework» («.NET Framework Version») в значение «Без управляемого кода» («No Managed Code»).

Информация по первым двум пунктам важна и сама по себе, и особенно в контексте рассматриваемого вопроса, так как пригодится нам в дальнейшем. Третья рекомендация, по нашему опыту, не является обязательной и веб-сервер IIS успешно работает в режиме использования версии, например, .NET Framework v4.

Настройка IIS для разных версий платформы 1С

Для того чтобы использовать несколько модулей расширения веб-сервера, которые различаются только третьей и четвертой цифрами версии, необходимо использовать разные пулы приложений (в рамках одного пула приложений это невозможно). Соответственно, в веб-сервере должно быть создано столько пулов приложений, сколько различных версии модулей расширения планируется использовать, и затем необходимо вручную привязать каждое виртуальное приложение к нужному пулу приложений.

Итак, создадим для примера два дополнительных пула приложений (в общем случае их может быть больше), для удобства укажем в названии пула версию платформы, с которой планируем их использовать (мы указали версию сокращенно — «8.3.6», но вам может быть удобнее использовать полную версию, например, «8.3.6.2237», или вообще разделить пулы приложений по прикладному признаку, например, «пул тестового кластера»). Зададим рекомендованные параметры (версия среды, признак использования 32-битных приложений). В итоге должны увидеть следующий список пулов приложений веб-сервера IIS:

Далее, запускаем конфигуратор (не забываем выполнять это действие от имени администратора) и выполняем публикацию. Как и указано в документации, появляется (или обновляется, если публикация уже выполнялась ранее) запись о новом сайте в группе «Default Web Site». В дополнительных параметрах этой публикации будет указан пул приложений по умолчанию - «DefaultAppPool». Для его изменения можно вызвать диалог «Дополнительные параметры…» или «Основные настройки…». Вызываем основные:

Заменяем пул приложений по умолчанию («DefaultAppPool») на пул приложений, соответствующий версии платформы 1С публикуемой базы («AppPool 1C 8.3.6» или «AppPool 1C 8.3.7»).

Если требуется изменить обработчик модулей расширения веб-сервера (например, после публикации из конфигуратора с 32-битной на 64-битную версию), можем сделать это здесь же:

Поступаем аналогичным образом для другой информационной базы и другой версии платформы 1С.

На этом все необходимые настройки завершены! Проверяем и наслаждаемся одновременной работой с веб-приложениями 1С разных версий в рамках одного веб-сервера:

Заключение

В статье мы описали метод, позволяющий использовать несколько публикаций информационных баз в рамках одного веб-сервера IIS для информационных баз «1С:Предприятие» разных версий. Это необходимо, если вы работаете на сервере с несколькими рабочими или тестовыми базами, для которых используемые версии платформы 1С различаются.

Надеемся, вы сможете с легкостью выполнить нужную вам задачу и продолжите с удовольствием пользоваться продуктами 1С. Ну а если у вас что-то не получится, или вы столкнетесь с какими-то трудностями, мы обязательно поможем!

Как известно, с выходом конфигураций 1С 8.3, написанных полностью на управляемых формах, появилась возможность публикации этих конфигураций на веб-сервере.

Публикация 1С 8.3 на веб-сервере IIS отличается лишь установкой серверной части.

Установка веб-сервера Apache

Сначала нужно скачать дистрибутив сервера. Находится он по адресу http://www.apache.org . Скачиваем последнюю версию дистрибутива для Windows и запускаем установку.

Нажимаем «Next» до тех пор, пока не появится вот такое окно:

В первые два поля впишем «localhost» (или 127.0.0.1). Это означает, что сервер будет работать на локальном компьютере. В третьем поле укажите почтовый адрес, на него будут приходить ответы сервера.

Следует заметить, что программа Skype тоже может использовать 80 порт. Поэтому, если Вы ее используете, отключите в настройках 80 порт.

Нажимаем «Next».

В следующем окне я предлагаю выбрать типовую установку. При этом будут установлены все необходимые для работы компоненты.

Каталог установки тоже оставим по умолчанию. Нажимаем «Install». Начнется процесс установки.

Получите 267 видеоуроков по 1С бесплатно:

После окончания установки сервер должен автоматически запуститься. При этом в системном трее появится значок . Это означает, что сервер успешно запустился. Если кликнуть два раза на этой иконке, откроется следующее окно:

Публикация веб-клиента и веб-сервисов в 1С 8.3 (8.2) на сервере Apache

Сервер запущен. Теперь займемся программой 1С. Запустим Конфигуратор.

В Конфигураторе выбираем меню «Администрирование», далее «Публикация на веб-сервере».

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

Нужно только выбрать каталог, можно любой пустой. «Имя» нужно указать латинскими символами.

Можно выбирать по желанию. Можно отключить совсем. Главное, перейти на закладку HTTP-сервисы. Тут нужно сделать те же настройки, что и на предыдущей закладке:

Хоть 1С и не рекомендует использовать веб сервер в файловом режиме (а только в серверном) - тем не меннее для маленьких предприятий с 2-3 бухгалтерами использование веб сервера на новых конфигурациях с "управляемыми формами" (Бухгалтерия 3.0, Зарплата 3.0 и прочее) - позволяет организовать довольно быстрый доступ к базе сетевых компьютеров, даже если они компьютеры эти по сути уже старый хлам. Важно лишь, что бы основной компьютер с базами и веб сервером был приличный (например Core I3, 8 Гбайт оперативки и SSD диск).

Пошаговое руководство по настройке вебсервера 1С на Apache (включая файловый вариант баз данных)

1. Скачиваем установщик Apache

По каким-то причинам все новые версии (например 2.4.25) Apache перестал выкладывать в виде самораспаковывающегося дистрибутива. Для нас вполне приемлемо использовать не самый последний дистрибутив 2.2.25 - позволяющий получить удобный установщик и избежать дополнительных манипуляций.

Обращаю внимание - нам удобно использовать именно *.msi установщик

По рекомендации пользователя (спасибо, Владимир) выкладываю ссылку на Apache версии 2.4 (www.apachelounge.com) . Также с его слов - если качаете х64, то будьте готовы поставить аналогичную х64 1с платформу и в httpd.conf отредактировать строку LoadModule _1cws_module "C:/Program Files/1cv8/8.3.9.2016/bin/wsap24.dll.
Но сам не рекомендую использовать 64-битную 1С, потому как, с высокой степенью вероятности, возникнут гигантские сложности при подключении торгового оборудования, или каких-то других сторонних библиотек.

Выбираем “no ssl” дистрибутив, если базы будут открыты только внутри нашей локальной сети или “ssl” дистрибутив, если база будет открываться в интернете. Дополнительно про настройку ssl можно почитать в статье инфостарт

В нашем примере будем настраивать сервер без ssl для использования только внутри локальной сети.

2. Запускаем скачанный установщик

Заполняем Network Domain: Localhost, Server name: Localhost

Нажимает NEXT, Setup type: Typical NEXT, NEXT, INSTALL

3. Проверяем запустился ли веб сервер

Для этого открываем любой броузер и указываем адрес страницы http://localhost

Мы должны увидеть страничку с надписью It Works !

Выясним IP адрес нашего компьютера в локальной сети. Для этого в нижнем правом углу (рядом с часами) находим иконку локальной сети, кликаем на ней правой кнопкой и открываем "Центр управления сетями и общим доступом"

Выбираем нашу сеть

И нажимаем кнопку "Сведения"

В моем случае адрес компьютера в локальной сети 192.168.0.189

Теперь возвращаемся в броузер и проверяем доступность страницы It Works по IP адресу http://192.168.0.189 (в вашем случае цифры будут отличаться)

Если снова увидели знакомую страницу It Works - все хорошо,

4. Проверяем доступность страницы с других компьютеров и настраиваем брандмауэр

Снова пробуем открыть знакомую нам страницу http://192.168.0.189 (у вас цифры другие) но уже с любого другого компьютера в локальной сети.

Если вместо знакомой страницы вы увидели "Не удается получить доступ к сайту" или аналогичное сообщение - выполним настроку брандмауэра. Для этого возвращаемся на тот компьютер, где установлен Apache, заходим в "Панель управления" - "Система и безопасность" - "Брандмауэр Windows" и в левой части экрана щелкаем на "Дополнительные параметры

Кликаем на раздел "Правила для входящих подключений", затем в правой части окна "Создать правило"

Ставим все три галочки

Указываем произвольное имя, например "Веб сервер 80 порт для 1С". Готово .

Снова идем на другие компьютеры и убеждаемся, что теперь по IP адресу http://192.168.0.189 броузер показывает знакомую нам страницу It Works

5. Публикуем нашу базу на веб сервере.

Открываем конфигуратор нашей базы (Запуск 1С обязательно от имени администратора)