Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 13

Настройка 1-C в терминальном режиме — увеличение скорости работы

ИнструкцииИТИТ-поддержка

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

  1. Публикация базы через web-сервер и работа с web-интерфейсом 1С
  2. Подключение к базе через маршрутизируемый туннель “точка-сеть” посредством тонкого или толстого клиента 1С
  3. Подключение к серверу удаленных рабочих столов посредством шлюза терминалов с обязательной сертификацией соединения

Подробнее о вариантах удаленного подключения к 1С:

При сетевом (веб) способе публикации базы 1с, клиент, подключается к базе 1С при помощи программы обозревателя (браузера) сети интернет, вводя в строку адреса выданный инженером адрес.

Существует несколько основных браузеров выпускаемых различными поставщиками, все они предоставляют одинаковые основные возможности и различаются оформлением и удобством использования.

Наиболее распространенные браузеры:

browser-1.png

Internet explorer (есть на всех операционных системах Windows)

browser-2.png

Google Chrome

browser-3.png

Mozilla Firefox

browser-4.png

Yandex Browser

Ярлык для запуска браузера находится на рабочем столе, либо в меню «Пуск»

После запуска браузера необходимо ввести в адресную строку браузера адрес веб публикации (выданный инженером) и нажать клавишу ввода (Enter). Адресная строка расположена в верхней части браузера.

borowserTab-1.png

Internet explorer

borowserTab-2.png

Google Chrome

borowserTab-3.png

Mozilla Firefox

borowserTab-4.png

Yandex Browser

После ввода адреса и нажатия клавиши ввода (Enter) появится окно с приглашением ввести имя пользователя и пароля (Учётная запись от 1С).

screen-1.jpg

Для подключения к базе 1С с помощью тонкого или толстого клиента — найдите на рабочем столе ярлык для запуска клиента 1С.

  • Либо зайдите в меню «Пуск»«Все программы» где выберите пункт – «1С:Предприятие» и запустите клиент 1С.

screen-2.jpgПосле запуска клиента 1С отобразится окно со списком доступных баз 1С</li>screen-3.pngЕсли список баз отсутствует, либо нужной базы нет в списке – тогда нажимаем кнопку «Добавить» и выбираем «Добавление новой базы».</li>screen-4.pngВносим параметры, предоставленные службой технической поддержки для подключения базы 1С и завершаем добавление базы.</li>screen-5-1.pngВыберите нужную базу из списка и нажмите кнопку «1С: Предприятие»</li>Появится окно с приглашением ввести имя пользователя и пароль. Имена пользователей доступных для ввода отобразятся после нажатие на кнопку выпадающего списка:</li>

</ul>

Доступ к терминальным серверам вне офисов происходит через шлюз терминалов.

Нужен терминальный сервер 1С?

Мы предлагаем аренду сервера 1С с доступом по RDP.

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

screen-7.pngНажимаем кнопку «Установить сертификат»:</li>screen-8.pngВыбираем «Локальный компьютер», нажимаем далее:</li>Нажимаем «Поместить все сертификаты в следующее хранилище» . Нажимаем «Обзор». Выбираем «Доверенные корневые центры сертификации». Нажимаем Далее:</li>Нажимаем Готово</li></ul>

  • Далее требуется запустить подключение к удаленному рабочему столу (посредством команды Пуск-Выполнить-mstsc либо выбрав соответствующий ярлык в Программах меню Пуск)
  • В графе адрес сервера указываем внешний IP-адрес или доменное имя сервера терминального доступа
  • Имя пользователя вводим в формате <домен><логин>, например contosoivan.ivanov
  • Нажимаем на кнопку Показать параметры.
  • Переходим на вкладку Дополнительно.
  • Нажимаем Параметры.
  • В открывшемся окне выбираем Использовать следующие параметры, в графе «Имя сервера» указываем внешний IP-адрес или доменное имя шлюза терминалов, выбираем галки «Не использовать для локальных узлов» и «Использовать мои учетные данные шлюза»:
  • Нажимаем ОК и Подключить (либо Сохранить для использования ярлыка в будущем)
  • В сеансе удаленного рабочего стола запускаем ярлык с 1С

Нужна настройка удаленного подключения 1С?

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

Риски локального размещения сервера 1С в офисе компании

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

  • В случае выхода из строя аппаратных комплектующих сервера либо краха операционной системы – базы 1С будут недоступны длительное время
  • При сбое электропитания либо канала интернет – доступ извне к базам 1С становится невозможным
  • Локальное хранилище данных может быть уничтожено при техногенном форсмажоре локального характера – пожар, затопление, физические воздействия
  • Сервер может пострадать от влияния температурных и иных воздействий внешней окружающей среды
  • Доступ к ресурсам в локальном офисе обычно контролируется гораздо слабее, чем в специализированных датацентрах, что может содействовать злоумышленникам или инсайдерам
  • Легкое изъятие корпоративной информации и остановка работы бизнеса при рейдерском вторжении

Данные угрозы можно легко устранить, используя сервисы Облака EFSOL, находящиеся на отказоустойчивых кластерных ресурсах в специализированных центрах обработки данных.

Комментарии для сайта Cackle—> —> Комментарии для сайта Cackle—>*nixСерверное администрирование Из песочницы В статье рассматриваются нюансы установки и настройки терминального сервера по протоколу RDP для работы с базами 1с на платформе 8.3 на базе дистрибутива Xubuntu 14.04 с учетом возможностей последней версии сервера xrdp и опыта реальной эксплуатации. Не так давно (в конце декабре 2016 года) вышел в свет очередной релиз сервера xrdp версии 0.9.1. Одновременно с этим была выпущена стабильная версия одного из «бекендов» xrdp — xorgxrdp v 0.2.0. Эти версии мы и будем использовать далее при установке.

Небольшое, но важное отступление

В составе дистрибутивов linux в-основном содержится устаревшая версия сервера xrdp версии 0.6.x, в которой имеются баги, которые мешают нормально работать с 1с (например, не работает нормально буфер обмена с русскими символами). В основном, когда рассматривается установка терминального сервера на базе протокола rdp на linux, рассматриваются варианты установки сервера xrdp со сборкой X11Rdp бекенда с помощью специальных скриптов, например, X11RDP-o-Matic (для ubuntu) — статья на хабре, статья на infostart. Использование бекэнда X11Rdp несет в себе несколько минусов:

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

Использование бекэнда xorgxrdp позволяет указанных проблем избежать. В статье рассматривается установка на Xubuntu версии 14.04 LTS, а не более свежей версии 16.04 LTS, по причине падения производительности при прорисовке удаленного экрана. Есть зарегистрированная проблема по данной ситуации. Кому-то помогало отключение compositor в настройках, но автору статьи не удалось добиться такой же скорости прорисовки, как на версии Xubuntu 14.04.

Рекомендации по установке операционной системы

Для установки используем 32-битную версию ОС Xubuntu 14.04. Ссылка на образ. Система может быть установлена как на хост, на и в виртуальную среду. Я обычно предпочитаю виртуализацию KVM, рабочие сервера ставились на ней. При разбивке дисков использовалась классическая схема (не LVM), файловая система ext4. В виртуальную машину подключено 3 диска фиксированного размера:

  • 22 Гбайта: 18 Гигабайт точка монтирования /, остальное под swap
  • 5 Гбайт: точка монтирования /var
  • 5 Гбайт: точка монтирования /tmp

Данное разбиение — это предпочтение автора с учетом удобства эксплуатации. В любом случае, при планировании дискового пространства необходимо учитывать возможную нагрузку на файловую систему. При использовании файловых баз данных желательно использовать SSD диск(и). Для сервера необходимо установить статический IP-адрес. Для удобства ввода команд для последующей установки необходимо установить OpenSSH-сервер:

sudo apt-get install openssh-server sudo restart ssh

При активированном firewall открываем порт 22:

firewall-cmd --add-port 22/tcp --permanent firewall-cmd --reload

Установка и настройка сервера xrdp with xorgxrdp backend

На сайте разработчиков есть инструкция для установки на debian 8, используем ее за основу. Устанавливаем необходимые зависимости:

sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git

Создаем каталог для загрузки дистрибутивов:

mkdir -p ~/xrdp-xorg cd ~/xrdp-xorg BD=`pwd` cd "${BD}" 

Клонируем из репозитория текущую последнюю сборку xrdp и собираем с кодеком rfxcodec:

git clone git://github.com/neutrinolabs/xrdp cd xrdp git submodule init git submodule update cd librfxcodec ./bootstrap ./configure make cd .. ./bootstrap ./configure --enable-fuse --enable-rfxcodec --disable-ipv6 make

Устанавливаем xrdp в систему:

sudo make install sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin sudo update-rc.d xrdp defaults

Скачиваем дистрибутив xorg-xrdp бекенда:

// Build and install xorgxrdp wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz cd "${BD}" tar xvfz xorgxrdp-0.2.0.tar.gz cd "${BD}"/xorgxrdp-0.2.0

Устанавливаем жесткое правило переключения раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift для решения проблемы переключения раскладок. Корректность проверяется созданием сессии — 1-я проверка, отключаемся, подключаемся еще раз в ту же сессию — заново еще раз проверяем. В терминале присваиваем значения временных переменных:

kb_model="pc105" kb_layout="us,ru" kb_options="grp:ctrl_shift_toggle"

Делаем замену кода в исходном файле:

sed -ri.bak "s/(set.model)[^;]+/1 = "$kb_model"/;s/(set.layout)[^;]+/1 = "$kb_layout"/;s/(set.options)[^;]+/1 = "$kb_options"/" xrdpkeyb/rdpKeyboard.c

Компилируем и устанавливаем в систему xorg-xrdp бекэнд:

./bootstrap ./configure make sudo make install

Желательно в файле /etc/xrdp/xrdp.ini поменять местами блоки [X11rdp] и [Xorg], чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий. При необходимости изменения порта по умолчанию с 3389 на другой, редактируем файл /etc/xrdp/xrdp.ini: в разделе [Globals] меняем значение переменной port=3389 на требуемый. При активированном firewall открываем порт 3389(либо тот, на который стандартный был изменен):

firewall-cmd --add-port 3389/tcp --permanent firewall-cmd --reload

После настроек перезапускаем службу

service xrdp restart

Теперь можете подключиться к серверу через стандартного клиента с windows либо с linux любым клиентом, который поддерживает протокол rdp.Внимание: перед подключением необходимо убедиться, что раскладка клавиатуры на клиентской машине установлена в английский язык, иначе не получится ввести имя пользователя и пароль в окне выбора сессий сервера xrdp. После установки желательно проверить, что нормально работает буфер обмена с кириллическими символами в обе стороны. Также можно убедиться, что работает копирование файлов через буфер обмена с русскими символами (это одни из основных проблем, которые были устранены в последних сборках сервера xrdp и которые раньше мешали нормально использовать в рабочей среде сервер терминалов на базе xrdp).

Установка клиента 1С: Предприятие версии 8.3.9

В связи с тем, что в последних версиях платформы компания 1с довела нативного клиента для ОС на базе linux до состояния, с которым можно более менее комфортно работать, будем использовать именно его, а не пытаться установить wine, а поверх клиента для ОС Windows. Устанавливаем дополнительные компоненты, необходимые для корректной работы:

sudo apt-get install libgsf-1-114 sudo apt-get install ttf-mscorefonts-installer sudo apt-get install imagemagick 

Скачиваем в папку с сайта 1с дистрибутив клиента и сервера:

sudo dpkg -i *.deb sudo apt-get -f install

Так как компонеты сервера 1с нужны были только для удовлетворения зависимостей, отключаем службу:

sudo update-rc.d srv1cv83 disable 

Если используется сетевой hasp-ключ, то пропишем параметры поиска:

sudo mkdir /opt/1C/v8.3/i386/conf sudo su echo [NH_COMMON] >/opt/1C/v8.3/i386/conf/nethasp.ini echo  NH_TCPIP = Enabled>>/opt/1C/v8.3/i386/conf/nethasp.ini echo [NH_TCPIP]>>/opt/1C/v8.3/i386/conf/nethasp.ini echo  NH_SERVER_ADDR = 192.168.0.100>>/opt/1C/v8.3/i386/conf/nethasp.ini echo  NH_TCPIP_METHOD = UDP>>/opt/1C/v8.3/i386/conf/nethasp.ini

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

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

В процессе работы столкнулись с проблемой, когда у одного пользователя внешняя обработка заполнения табличной части работает, а у другого нет — выдается сообщение о нарушении прав доступ. Проблема заключается в том, что платформа 1С создает временные файл /tmp/PrnForm.tmp, т.е. путь до файла одинаковый у разных пользователей. Соответственно, первый пользователь, который воспользовался обработкой, неявно создал во временной папке файл, на который есть доступ на изменение только у него. Другой пользователь уже не может переписать файл. Решение заключается в правильной настройке общесистемной umask, отнесение пользователей к одинаковой группе, а также правильной настройкой прав на временную папку /tmp. Редактируем общесистемную маску. Правим файл:

/etc/login.defs 

в нем меняем значение на:

umask 002

Всех терминальных пользоватлей относим в группу Users (если не были отнесены ранее, можно и в другую группу). Меняем права на папку tmp

chown -R root:Users /tmp chmod g+s /tmp 

Если используется обмен с сайтом Битрикс, то аналогичные настройки нужно сделать для папки /var/log/bitrix. Вариант решения подобной проблемы применительно 1С описан в статье.

Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0

Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1C для linux выгружать декларации из зарплатной базы и бухгалтерии — после выбора файла и попытке выгрузить будет выдаваться сообщение вида «Нет доступа к каталогу [НазваниеКаталога]. Проверьте корректность имени каталога выгрузки! Решение найдено и заключается в необходимости замены кода „Кат = Новый Файл(ПутьДляВыгрузки + “NUL»);» на «Кат = Новый Файл(ПутьДляВыгрузки);» в «Обработка.ОбщиеОбъектыРегламентированнойОтчетности.Форма.НастройкаПараметровСохраненияРегламентированногоОтчета.Форма.Модуль». К сожалению, для таких изменений придется конфигурацию снимать с поддержки.

Рекомендации по организации обмена файлами и печати с удаленных офисов

В случае, если с сервером работа ведется только в рамках локальной сети, проблем никаких нет — samba работает хорошо. В случае, если у предприятия сеть распределенных офисы, то часто встает вопрос об организации удобного обмена файлами и настройки печати. Для обмена файлами удобно использовать выделенный аккаунт dropbox — выделенная папка на сервере синхронизируется с облаком, а на клиентах либо через предоставление общего доступа к папке dropbox либо с тем же самым аккаунтом настраивается клиент. Для печати на удаленные принтеры удобно использовать схему построения виртуальной частной сети, в этом случае решается проблема даже с теми удаленными точками, на которых нет фиксированного IP-адреса. Доступ к принтеру будет доступен по IP-адресу внутри VPN-сети. Как вариант, предлагаю использовать NeoRouter Free. Настройка данного продукта выходит за рамки данной статьи.

Возможные альтернативы

К сожалению, стабильно работающих бесплатных альтернатив на текущий момент я не вижу. Был достаточно успешный опыт использования связки OpenSuse 11.2+FreeNX (от etersoft) + WineEtersoft (купленный) для работы с конфигурациями на базе платформ 8.1, но на текущий момент такая связка для новых установок потеряла актуальность — не все пакеты можно найти для установки, на более свежих версиях ОС Linux и конфигурациях 1С скорость отрисовки ужасная. Было достаточно много времени потрачено на тестирование других продуктов типа x2Go, но там также есть много НО: при подключении со свежих версий ОС типа Windows 8, Windows 10 есть артефакты при отрисовке изображения и т.п. В общем, если для административных функций альтернативные решения еще как-то подходят, то для реальной работы с решениями фирмы 1С не очень.

Заключение

При рассмотрении возможности перехода не рассмотренное решение нужно учесть такой фактор, как наличие торгового оборудования. Не все торговое оборудование поддерживается в linux, а тем более мало, что можно запустить через RDP. В целом же при желании сэкономить на лицензиях Windows можно обойтись и решениями на базе LINUX, тем более в последнее время разработка XRDP идет ударными темпами. В марте этого года планируется выпуск версии 0.9.2 — это следует из опубликованных Release notes.

Дополнение 31.03.2017

Коллеги, обращаю внимание, что вчера разработчики xrdp выпустили новую версию xrdp 0.9.2 и xordxrdp 0.2.1. Исходя из Release notes теперь RemoteFX кодек теперь поддерживается по-умолчанию, поэтому по идее теперь не нужно его собирать отдельно, как я указывал в статье. Также по-умолчанию теперь используется бекенд xorgxrdp. Чуть позже проверю, как теперь происходит установка и сделаю правки в статью.

     Часто в бухгалтерию небольшой фирмы покупают однопользовальские ключи 1С, когда нужно настроить от одного до трех рабочих мест. Покупка четырех однопользовательских ключей не имеет смысла, так как ключ на 5 пользователей стоит дешевле. Быстрый доступ в интернет позволяет многим людям менять традиционный сценарий рабочего дня, то есть работать удаленно. У однопользовательских ключей 1С есть один существенный недостаток: с ними не возможно работать через удаленный рабочий стол RDP. В ключах 1С используются алгоритмы защиты HASP, которые при включении терминальной сессии блокируют ключ. В программе 1С Бухгалтерия предприятия (впрочем любая из семейства 1С 8.1 и 8.2) через удаленный рабочий стол RDP появляется ошибка «Не обнаружен ключ защиты».

_lTagntXMgI.jpg

     Считаю жлобством со стороны 1С блокировать доступ к лицензионной программе для одного пользователя, когда для многопользовательской такого ограничения нет. Чтобы программа 1С (платформа 1С 8.1.16, 8.2.15, 8.2.16) работала через удалённый рабочий стол нужно внести изменения в некоторые dll файлы. Изменить для платформы 1С 8.1 файл backend.dll, а для 1С 8.2 backbas.dll, которые находятся в папке Bin в каталоге программы. Открываете соответствующий файл через HEX-редактор (например, Hex Editor Neo), запускаете поиск в режиме hex значения (шестнадцатеричное представление информации). Вводите для поиска значение: 10 00 00 FF D0 85 C0 0F 82 08 F8 FE FF 0F 84 16. В найденной строке меняете значение 85 на 31 и сохраняете файл. После можно запускать 1С в терминальном режиме с любым ключом.

7Y8nVWMt2a8.jpg

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

Используемые источники:

  • https://efsol.ru/manuals/connect.html
  • https://m.habr.com/ru/post/325132/
  • https://amacumara.ru/2012/10/inuse-17/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации