Кроме сервера 1с под linux, есть еще одна замечательная вещь – веб-клиент к 1с позволяющий работать в программе через обыкновенный веб-браузер, без установки каких либо дополнительных программных компонентов. Отличная вещь для организации работы мобильных сотрудников, небольшого удаленного офиса или склада – не нужно заморачиваться на тему VPN соединения и достаточно быстрого интернет соединения для RDP-сессии.
Операционная система Fedora 12 i386, актуальный на момент написания статьи релиз 1с предприятия 8.2.11.236.
1. Необходимые для установки пакеты.
Для установки веб-клиента работающего с сервером 1с предприятия необходимо установить следующие пакеты:
- 1C_Enterprise82-common-8.2.<X>-<Y>.i386.rpm,
- 1C_Enterprise82-common-nls-8.2.<X>-<Y>.i386.rpm,
- 1C_Enterprise82-ws-8.2.<X>-<Y>.i386.rpm,
- 1C_Enterprise82-ws-nls-8.2.<X>-<Y>.i386.rpm.
Если будет использоваться файловый вариант базы, то дополнительно нужно установить пакеты:
- 1C_Enterprise82-crs-8.2.<X>-<Y>.i386.rpm
- 1C_Enterprise82-crs-nls-8.2.<X>-<Y>.i386.rpm
Все вышеуказанные пакеты поставляются фирмой 1с и обычно устанавливаются без особых затруднений командой
[root@srv] rpm -ihv ...
2. Публикация web-клиента
Переходим в каталог с файлами 1с /opt/1c/v8.2/i386 и запускаем утилиту webinst.
[root@srv i386]# ./webinst -apache22 -wsdir basa1 -dir '/var/www/html/basa1/' -connStr 'Srvr="srv.domain.com";Ref="basa1"' -confPath /etc/httpd/conf/httpd.conf Installation is successfully completed. acp: /etc/httpd/conf/httpd.conf rd: /var/www/html/basa1/ vd: /etc/httpd/conf/httpd.conf
Параметры запуска скрипта:
- -wsdir – имя алиаса для используемого на веб-сервере для соединения с базой, в последствии мы будем обращаться к ней набирая в браузере http://адÑеÑ.ÑеÑвеÑа/basa1
- -dir – директория где будут располагаться файлы web-интерфейса 1с (точнее говоря один файл default.vrd)
- -connStr – строка соединения с базой 1с предприятия, в которой Srvr – адрес сервера 1с предприятия, а Ref – имя базы.
- -confPath – расположение конфигурационного файла web-сервера apache
Скрипт добавит в конфигурационный файл apache следующие строчки
# Загрузка модуля 1с LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so" ......... # 1c publication Alias "/basa1" "/var/www/html/basa1/" <Directory "/var/www/html/basa1/"> AllowOverride None Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor "/var/www/html/basa1/default.vrd" </Directory>
Также необходимо исправить права доступа к файлу default.vrd
[root@srv conf]# chown apache:apache /var/www/html/basa1/default.vrd
Если этого не сделали в окне браузера следующую ошибку
1C:Enterprise 8 application error: Error in virtual resources descriptor distribution by reason: File access error '/var/www/html/basa1/default.vrd'
Все вышеперечисленные процедуры придется выполнить для добавления каждой публикуемой базы.
Теперь добавляем в автозагрузку и запускаем apache:
[root@srv ~] chkconfig httpd on [root@srv ~] service httpd start Starting httpd: [ OK ]
Также не стоит забывать о необходимости открыть 80-ый порт для приема входящих соединений по протоколу HTTP.
3. Дополнительная настройка сервера 1с предприятия
Если у нас установлена конфигруация сервер 1с предприятия + postgresql на линукс-машине, в случае неправильной настройки или отсутсвия необходимых шрифтов будет появляться следующее окошко.
Для работы 1с 8.2 режиме “управляемого приложения”, отказа от совместимости с 1с 8.1 и полноценного функционирвания web-клиента необходимо выполнить следующующие действия.
Устанавливаем дополнительные пакеты
[root@srv utils]# yum install ImageMagick
Устанавливаем шрифты truetype от Microsoft
[root@srv tmp]# yum install fontpackages-devel xorg-x11-font-utils wget cabextract [root@srv tmp]# wget http://kir.sacred.ru/lj/microsoft-core-fonts.spec [root@srv tmp]# rpmbuild -bb microsoft-core-fonts.spec [root@srv noarch]# rpm -ihv microsoft-core-fonts-2.1-1.fc12.noarch.rpm Preparing... ########################################### [100%] 1:microsoft-core-fonts ########################################### [100%]
Заускаем утилиту конфигурации сервера 1 с предприятия из папки /opt/1c/v8.2/i386/utils
[root@srv utils]# ./config_server /usr/share/fonts/microsoft-core No truetype conversion utility found! Please install ttf2afm or ttf2pt1!
Устанавливаем пакет и еще раз запускаем config_server
[root@srv utils]# yum install ttf2pt1 [root@srv utils]# ./config_server /usr/share/fonts/microsoft-core
Перезапускаем сервер 1с предприятия.
[root@srv utils]# service srv1cv82 restart Stopping 1C:Enterprise 8.2 server: OK Starting 1C:Enterprise 8.2 server: OK
4. Запуск web-клиента и настройка hasp
Открываем в web-браузере ссылку http://адÑеÑ.ÑеÑвеÑа/имÑбазÑ, если все прошло успешно появится окно загругрузки, а затем запрос логина и пароля.
Если после ввода пароля появилось окно “Лицензия не найдена” или “Не обнаружен ключ защиты программы”
Необходимо скопировать с компьютера где установлена клиентская часть 1с файл nethasp.ini в директорию /opt/1C/v8.2/i386/conf, в линуксовом варианте 1с этот файл почему-то отсутвует. Можно также создать этот файл самостоятельно:
[NH_COMMON] NH_TCPIP = Enabled ; Метод поиска сервера лицензий [NH_TCPIP] NH_SERVER_ADDR = 192.168.0.232 ; Список IP адресов серверов лицензий NH_PORT_NUMBER = 475 ; Номер слушаемого порта ; По умолчанию 475 NH_TCPIP_METHOD = TCP ; Протокол обмена информацией с сервером лицензий ; Я предпочитаю использовать TCP ; По умолчанию UDP
ВАЖНО: Каждый открытый в браузере веб-клиент требует наличия лицензии 1с на рабочее место, точно-такое же как и предустановлена 1с работающая через обычное соединение.
Обсудить статью на форуме http://forum.alsigned.ru/viewtopic.php?f=4&t=9.
Проблемы при настройке 1с предприятия http://forum.alsigned.ru/viewforum.php?f=5.
102 Коммент. : “Ставим 1с web-клиент на apache”
@bach
По логике – все правильно, да и с пустой базой должна хотя бы оболочка веб-клиента открываться.
Если найдешь решение пиши, может кому пригодится.
@Alsigned , доброго дня!
Так же всем участникам удачной работы!
Действительно все правильно. Ошибки нет. Браузер Google Chromium, настроен на блокировку всплывающих окон без предупреждения. Отключил опцию, прилетело сообщение об отсутствии лицензии ! Банально, но факт.
Перепробовал все мануалы. Рекомендации не помогают.
В браузере пишется вот такое:
1C:Enterprise 8 application error:
Connection error
by reason:
server_addr=tcp://192.168.1.233:1541 descr=Connection refused line=585 file=./src/DataExchangeTcpClientImpl.cpp
@bach
Забавная фишка, рад что все получилось
Привет, @Dmitro
Это стандартная ошибка когда веб-клиент не может соединиться с сервером 1с предприятия.
Чтобы что-то конкретное подсказать маловато информации. Какая ОС? Версия 1с предприятия? Сервер предприятия на той же машине что и веб-клиент? Работает ли толстый клиент?
@Alsigned & @Dmitro
кто владелец default.vrd?
@bach
Владелец default.vrd – пользователь из-под которого выполнялся ./webinst, как правило это root, но для корректной работы нужно что бы httpd мог прочитать этот файл, и как вариант можно сделать пользователя apache владельцем этого файла.
При неправильно заданных правах в браузере появляется ошибка File access error ‘/var/www/html/basa1/default.vrd’
@Alsigned
хм… да другой тип ошибки, ждем ответов на допвопросы для раскрытия проблемы. Хотя разные мысли приходят, доступен ли вообще сервис 1С предприятия? Типа telnet 192.168.1.233 1541 что говорит?
@Alsigned
ОС: Ubuntu 11.04
Версия 1С: 8.2
Сервер предприятия на той же машине что и веб-клиент: Да.
Работает ли толстый клиент: не силен знаниями чтобы проверить
владелец default.vrd: www-data (группа: grp1cv82)
P.S. Доступ к default.vrd у всех на чтение и запись (chmod 777)
@bach
telnet 192.168.1.233 1541 говорит:
telnet: Unable to connect to remote host: Connection refused
@Dmitro Привет!
Вот это:
говорит, что сервис srv1cv82 по сети недоступен!!!
@Dmitro
он сам вообще жив? на том сервере где должен стоять?
Привет, @Dmitro
Какая архитектура ОС x86_64 или i386?
Версия севера 1с предприятия имеет немножко более длинный фомат, например 8.2.14.509 (у каждого релиза есть свои осбенности для разных версий ОС). Поэтому предлагаю посмореть какие пакеты 1с установлены:
sudo dpkg -l 1C*
Раз не подключается telnet проверяем слушает ли сервер 1с какие-нибудь порты
sudo netstat -ltnp
Что касается толстого клинета – это оболочка 1с предприятия которая устанавливается непостредственно на пользовательский компьютер под Windows, она имеет намого больший функционал нежели веб-клиент. Без нее мы не сможем загрузить на сервер 1с предприятия базу данных.
Спасибо автору. Замечательный материал. На CentOS 6 при выполнении ./config_server /usr/share/fonts/microsoft-core выскакивает ls: cannot access /lib/libc-*.so: No such file or directory
Что нужно сделать?
Вах! Какой я тупой!
Версия сервера: 8.2.9-356_i386
Установлены пакеты:
1c-enterprise82-common (8.2.9-356)
1c-enterprise82-common-nls (8.2.9-356)
1c-enterprise82-server (8.2.9-356)
1c-enterprise82-ws (8.2.9-356)
1c-enterprise82-ws-nls (8.2.9-356)
1c-enterprise82-server-nls (8.2.9-356)
1c-enterprise82-crs (8.2.9-356)
1c-enterprise82-crs-nls (8.2.9-356)
$ sudo service srv1cv82 start
Starting 1C:Enterprise 8.2 server: Warning: already started!
OK
Я так понял, что сервер 1С работает.
$ sudo netstat -ltnp
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN 3802/ragent
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1018/mysqld
tcp 0 0 0.0.0.0:749 0.0.0.0:* LISTEN 986/kadmind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1542/apache2
tcp 0 0 0.0.0.0:464 0.0.0.0:* LISTEN 986/kadmind
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 830/cupsd
tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN 3802/ragent
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1086/postmaster
tcp6 0 0 :::139 :::* LISTEN 751/smbd
tcp6 0 0 :::464 :::* LISTEN 986/kadmind
tcp6 0 0 :::631 :::* LISTEN 830/cupsd
tcp6 0 0 :::5432 :::* LISTEN 1086/postmaster
tcp6 0 0 :::445 :::* LISTEN 751/smbd
@Dmitro
Хм… странно.
стоп/старт service srv1cv82 >
netstat -ltnp
строка с тем что слушается 1541 порт не появляется? Что-то типа
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN 23167/rmngr
@Dmitro
На самом-то деле сервер 1с предприятия запустился не полностью, работает только ragent. Проблема скорее всего в том, что перед установкой не были правильно заданы параметры в файле /etc/hosts.
Что говорят следующие команды?
1. cat /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541/1CV8Reg.lst
2. hostname
3. cat /etc/hosts
Привет, @Victor
Какая архитектура ОС x86_64 или i386?
Нужно проверить установлен ли пакет glibc, потому что библиотека libc-*.so принадлежит именно ему.
@Alsigned
$ cat /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541/1CV8Reg.lst
cat: /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541/1CV8Reg.lst: Нет такого файла или каталога
Там действительно его нет, только один файл: srvribrg.lst
******************************
$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 Administrator-desktop localhost6.localdomain6 localhost6
127.0.1.1 Administrator-desktop
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
*********************************
$ hostname
Administrator-desktop
@Dmitro
Вот как я и говорил раньше – не верно заданы параметры в файле hosts перед установкой.
1. Удаляем все пакеты 1с-предприятия, удаляем пользователя usr1cv82 и его папку /home/usr1cv82/. Удаляем папку 1C из каталога /opt.
2. Меняем hostname машины на более короткое, например admpc. Лучше всего в hostname прописать FQDN, например admpc.mydomain.test. Перезапускаем компьютер.
3. Приводим файл /etc/hosts к следующему виду (при этом 192.168.1.233 – ip компьютера):
127.0.0.1 localhost
192.168.1.233 admpc admpc.mydomain.test
4. Устанавливаем сервер 1с предприятия.
@Alsigned
Йех!!! Спасибо за совет. Заработало.
Радость была недолгой
HTTP: Internal server error
Ошибка при выполнении запроса POST к ресурсу /e1cib/login:
по причине:
Информационная база не обнаружена
@Alsigned
x86_64
@Alsigned
Установлен glibc
@Alsigned
может simlink где-то прописать?!
@Victor
Не symlink здесь не поможет, ему нужна 32-битная библиотека.
yum install glibc.i686
@Dmitro Понятное дело. Базы то нет
Что бы создать базу нужно, найти компьютер с Windows XP, поставить туда клиентскую часть и консоль управления серверами 1с предприятия. Через консоль создаешь базу, через конфигуратор ее заполняешь. Потом только цепляешься веб-клиентом.
@Alsigned
Спасибо, мастер)))
@Victor
Я уже сам понял что надо так сделать. Огромное спасибо всем. Статья замечательная.
[root@srv1c utils]# ./config_server /usr/share/fonts/microsoft-core/
ls: cannot access /lib/libc-*.so: No such file or directory
Usage: file [-bchikLNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
[-e testname] [-F separator] [-f namefile] [-m magicfiles] file …
file -C [-m magicfiles]
file [--help]
./config_server: line 146: [: =: unary operator expected
где-то не хватает мягких ссылок или может что-то другое?…
Привет, @Andrey
Парой комментариев выше, была точно такая же проблема.
Если система x86_64 то нужно доставить glibc.i686
@Alsigned
да, точно, проглядел..
спасибо! всё получилось!
Уважаемые, читатели.
Комментариев к статьям стало слишком много и что бы их немножко систематизировать переношу обсуждение в мини-форум.
Обсуждение и дополнение непосредственно статьи http://forum.alsigned.ru/viewtopic.php?f=4&t=9
Если у вас трудности в настройке, установке или эксплуатации 1с предприятия – вам сюда http://forum.alsigned.ru/viewforum.php?f=5, и не стесняйтесь создавать новую тему.
Заранее спасибо за понимание.
С уважением, Alsigned.