1c толстый клиент. Публикации

  • 03.02.2024

Многие пользователи новых версий 1С жалуются на медленную работу управляемых форм.

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

Выход есть! Он называется “Тонкий клиент на веб-сервере”. И даже не придется обновлять железо, 1C будет гораздо быстрее работать на ваших нынешних компьютерах.

Однако не во всех случаях тонким клиентом можно воспользоваться.

Тонкий клиент вам не поможет, если

  • У вас старая конфигурация 1С, которая и так быстро работает, например УТ 10.3, Розница 1.0. Здесь поможет только серверная 1С и SQL сервер или RDP-сервер.
  • У вас всего один компьютер. Если 1С на нём безбожно тормозит, единственный вариант - менять его на более мощный или апгрейдить.

Тонкий клиент ускорит работу, если

  • У вас несколько компьютеров, которые работают в 1С по сети, при этом у вас конфигурация на управляемых формах: Управление Торговлей 11, Розница 2, Комплексная Автоматизация 2.

Примечание

  • Если у вас работает более 10-ти пользователей, то ещё большей производительности можно добиться, поставив в дополнение к тонкому клиенту на веб-сервере серверную версию 1С и SQL-сервер.

Преимущества работы в режиме тонкого клиента в сравнении с работой по сети

  1. Скорость. 1С в режиме тонкого клиента работает в 2 раза быстрее. Т.к. основной массив данных обрабатывается на сервере (компьютере с базой), а ваш компьютер получает только те данные, которые необходимо вывести на экран.
  2. Безопасность. У клиентского компьютера нет прямого доступа к базе. Поэтому умыкнуть базу не получиться. Даже конфигуратор открыть нельзя.
  3. Доступ через веб-браузер. В базу можно через Chrome / Mozilla.
    1. Чтобы заходить отовсюду, а не только из под вашей локальной сети, нужен белый IP адрес.

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

Перевод на работу в режиме тонкого клиента производится в три приёма.

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

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

Что есть «тонкий клиент»?

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

«Тонкий клиент» приложения имеет более урезанный набор видов встроенного языка, который предназначается исключительно для передачи данных и их изменения. Всё, что касается работы с базой данных, в этом случае исполняется на сервере. С помощью данной версии приложения происходит разработка управляемого интерфейса 1С, которая позволяет оптимизировать работу компании.

«Тонкие клиенты» 1С способны получать готовые данные через веб-подключение, которые уже заранее были подготовлены со стороны сервера.

Кроме того, использование данного вида приложения возможно при использовании одной из трех технологий:

  • Через веб (с помощью интернет-подключения);
  • Через протокол TCP/IP (по типу «клиент-сервер»);
  • Напрямую с базой данных.

Подключение через интернет

«Тонкий клиент» имеет возможность взаимодействовать с программой «1С: Предприятие» с помощью веб-подключения к интернету. В этом случае работа происходит со специально настроенным веб сервером, путем использования протокола передачи данных http. Тем не менее, сам веб сервер работает с программой «1С: Предприятие» через протокол TCP/IP либо напрямую.

Важно: в качестве веб серверов нужно использовать одну из следующих систем:

  • Apache;

Клиент-серверное подключение

В этом случае «тонкие клиенты» соединяются с серверами напрямую, путем использования протокола передачи данных TCP/IP.

Прямое подключение к базе данных

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

  • Загрузить нужные серверные файлы на компьютер;
  • Загрузить прикладную конфигурацию.

Преимущества тонкого клиента

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

  • Мобильность;
  • Уменьшение нагрузки на канал связи;
  • Минимальные системные требования;
  • Снижение расходов компании.

Мобильность

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

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

Безусловно, такие манипуляции отнимают время и доставляют неудобства. «Тонкие клиенты» как раз и используются для упрощения подобных задач. При наличии веб подключения вы без труда можете передать данные в общую базу данных 1С прямо со склада.

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

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

Низкие системные требования

Аналогично ситуация обстоит и системными требованиями программы. Для работы полноценной версии необходимы более мощные компьютеры, так как приложение задействует процессор и оперативную память системы. «Тонкие клиенты» 1С гораздо менее требовательна к ресурсам персонального компьютера. Именно это позволяет использовать его даже на слабых системах.

Уменьшение расходов компании

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

Недостатки «тонкого клиента»

Безусловно, у любой медали есть и обратная сторона. «Тонкий клиент» также имеет некоторые неудобства и ограничения, чего нельзя не учитывать. К ним относится:

  • Требование наличия мощного сервера;
  • Ограниченная функциональность;
  • Непривычный интерфейс.

Требуется мощный сервер

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

Ограниченный функционал

Как уже было сказано выше, легкая версия приложения имеет весьма ограниченный функционал. Так, например, отсутствует возможность работы в режиме “Конфигуратор”.

Интерфейс

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

для платформы 8.2:

для платформы 8.3:

Замечание. Автоматическое обновление тонкого клиента под Windows XP и Windows Vista через 1С:Линк может не работать. Это не очень удобно и мы рекомендуем вам рассмотреть возможность перехода на более современную операционную систему.

Настройка Тонкого Клиента 1С для работы с платформой "1С: Предприятие 8" версии 8.3.4.437 и выше

Установите корневой сертификат сервиса "1С: Линк" в хранилище сертификатов Windows согласно инструкции для браузера Internet Explorer .

https://<ваш-сайт>.link.1c.ru/xxx

В качестве способа проверки сертификата сервера выберите пункт "Сертификаты Windows"

Нажмите кнопку "Готово"

Настройка автоматической авторизации на веб-сервере

  • Выберите в Тонком клиенте 1С нужную ИБ и нажмите кнопку "изменить"
  • Нажмите на ссылку "Дополнительно" (расположена под полем с адресом информационной базы)
  • В разделе "Выберите способ аутентификации пользователя веб-сервера" выберите пункт "Выбирать автоматически" и нажмите "Далее".
  • В окне настроек сертификата нажмите "Далее".
  • В разделе "Дополнительные параметры запуска" укажите строку: где login - логин пользователя веб сервера, а password - его пароль.

Нажмите кнопку "Готово" и проверьте подключение к информационной базе.

Подробнее о настройках Тонкого клиента на сайте ИТС .

Настройка Тонкого Клиента 1С для работы с платформой "1С: Предприятие 8" версии 8.2.19.121 и выше

Для работы в тонком клиенте загрузите . Сохраните вместо <1C>\bin\cacert.pem , где <1C> - директория установки Тонкого клиента 1С. Это предотвратит появление ошибки SSL "Peer certificate cannot be authenticated with known CA certificates".


Введите название информационной базы, выберите пункт "Веб-сервер" и нажмите кнопку "Далее"

Введите адрес вашей информационной базы: https://<ваш-сайт>.link.1c.ru/xxx ,где xxx - ваш путь веб приложения.

Нажмите кнопку "Готово"

Настройка Тонкого Клиента 1С для работы с платформой "1С: Предприятие 8" версий, не входящих в список рекомендованных

Если для работы в сервисе "1С: Линк" вы хотите использовать версию тонкого клиента, отличную от рекомендованных выше, может потребоваться настройка работы по HTTP или установка STunnel .

Настройка Тонкого Клиента для работы через HTTP

В Линк-агенте есть возможность работать в тонком клиенте по протоколу HTTP. Однако, предпочтительным протоколом для работы в тонком клиенте через 1С:Линк является HTTPS. Не рекомендуется использовать протокол http, так как при его использовании данные передаются в незашифрованном виде и могут быть перехвачены злоумышленником.

Если вы уверены в необходимости использования данного протокола для работы в тонком клиенте через сервис 1С:Линк, можно воспользоваться инструкциями, которые представлены ниже:

    Откройте панель управления линк-агентом и разрешите работу по HTTP (раздел 4.4 руководства пользователя 1С:Линк).

    Настройте тонкий клиент:

Запустите тонкий клиент и нажмите кнопку добавить.


Введите название информационной базы, выберите пункт "Веб-сервер" и нажмите кнопку "Далее"

Введите адрес вашей информационной базы: http://<ваш-сайт>.link.1c.ru/xxx ,где xxx - ваш путь веб приложения.

Нажмите кнопку "Готово"

Установка и настройка Stunnel

На компьютер с Тонким Клиентом 1С установите программу Stunnel . После установки программы запустите её.

В открывшемся окне выберите пунк "Configuration"

В выпавшем меню укажите пункт "Edit stunnel.conf"

Откроется блокнот с конфигурационным файлом. Замените текст в файле на следующие строки.

31.07.2015

Как установить и настроить тонкий клиент 1С:Предприятия 8 для работы с программами 1С через интернет в режиме онлайн на сайте сервиса 1С Фреш.

Похожие статьи на тему:

  • Как установить и настроить тонкий клиент 1С:Предприятия 8 на компьютеры Mac с OS X для работы с программами 1С через интернет в облачном сервисе 1С:Фреш
  • Как подключить 1С Бухгалтерию Онлайн для работы через интернет в облачном режиме по модели SaaS? Первые 15 дней бесплатно!
  • Как загрузить базу данных 1С Бухгалтерии с локального компьютера в облачный сервис 1С для работы через интернет в режиме онлайн
  • Как установить и настроить мобильную версию "1С:Бухгалтерии 8" для работы в облачном сервисе 1С Фреш
  • Как добавить новых пользователей облачного сервиса "1cfresh.com" для работы с программами системы 1С:Предприятие 8 через Интернет

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

В некоторых случаях работа с помощью тонкого клиента может оказаться более стабильным и удобным вариантом. Тонкий клиент 1С:Предприятия может работать в операционных системах MS Windows и Linux, но в данной статье мы рассмотрим только вариант установки под ОС Windows, как самый простой и не требующий особых навыков.

1. Скачайте актуальный дистрибутив тонкого клиента 1С с сайта 1С по ссылке

Файл сохраняется в той папке, которая у вас указана в настройках браузера по умолчанию. Как правило, это папка называется "Загрузки" или "Downloads".

2. Из загруженного архива все файлы извлеките в любую папку на диске.

3. Запустите файл setup.exe из папки, в которую извлекли файлы архива (рис.2). Начнется подготовка к установке программы, которая может занять 1-2 минуты.

4. Запустится мастер установки тонкого клиента 1С:Предприятия (рис.3). Нажмите кнопку "Далее" и следуйте рекомендациям мастера (советуем принять установки, предлагаемые по умолчанию). Последовательно нажимайте кнопку "Далее" до окончания процесса установки и на последнем шаге мастера нажмите кнопку "Готово".

5. На рабочем столе появится ярлык для запуска тонкого клиента (рис.4).

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

Поздравляю, вы установили тонкий клиент 1С на вашем компьютере, теперь необходимо задать адрес расположения вашей базы данных на сервере 1С и установить настройки запуска.

6. Откройте в браузере вашу базу данных, к которой вы хотите настроить доступ через тонкого клиента 1С (как вы обычно работаете в сервисе).

7. Скопируйте URL-адрес из адресной строки браузера в буфер обмена. Он вам понадобится при настройке подключения к приложению из "тонкого клиента" (рис.5).

Внимание! Использовать надо часть адреса без окончания /ru_RU.
Например, для случая, приведенного на рисунке, следует скопировать в буфер следующий фрагмент адреса: https://1cfresh.com/a/ea/123456.

8. Запустите программу 1С:Предприятие с ярлыка на рабочем столе.

9. В открывшемся окне "Запуск 1С:Предприятия " нажмите кнопку "Добавить" (рис.6).

10. Выберите пункт "Добавление в список существующей информационной базы " (рис.7).

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

12. В поле строки адреса информационной базы вставьте из буфера обмена строку URL-адреса информационной базы, которую вы скопировали из адресной строки браузера (рис.9) , без окончания /ru.

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

13. На следующем шаге параметры установок проверки сертификатов оставьте "по умолчанию" (рис.10).

14. Вариант аутентификации пользователя можете указать "Выбирать автоматически" (рис.11), а основной режим запуска укажите "Тонкий клиент".

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

15. Запустите программу, для этого в окне "Запуск 1С:Предприятия" выделите в списке добавленную информационную базу и нажмите кнопку "1С:Предприятие" (рис.12).


16. В появившемся диалоговом окне аутентификации введите логин и пароль, которые вы используете для доступа к своим приложениям в сервисе (рис.13).

После этого ваша база данных загрузится в тонком клиенте 1С:Предприятия и в ней будут открыты ваши данные, с которыми вы до этого работали в сервисе через браузер (рис.14).

Вы можете продолжить работать в программе точно также, как и ранее. Внешний вид и функционирование программы идентичны.

Возможные проблемы

Если при установке тонкого клиента 1С возникает сообщение
"Ошибка OpenID аутентификации пользователя (Тонкий клиент)"

То для решения данного вопроса нужно в начальном окне выбора баз данных нажать кнопку "Изменить" и в дополнительных параметрах запуска установить команду "/oida-"

Приложение

Дистрибутивы тонкого клиента 1С для Windows для работы с информационными базами в облачном сервисе 1CFresh.com (32 бит для версий кроме XP и Vista):

Наименование Релиз
Тонкий клиент 1С:Предприятия 8.3.13.1453
Тонкий клиент 1С:Предприятия 8.3.13.1437
Тонкий клиент 1С:Предприятия 8.3.10.2820
Тонкий клиент 1С:Предприятия 8.3.10.2796
Тонкий клиент 1С:Предприятия 8.3.10.2795
Тонкий клиент 1С:Предприятия 8.3.10.2789
Тонкий клиент 1С:Предприятия 8.3.10.2779
Тонкий клиент 1С:Предприятия 8.3.10.2770
Тонкий клиент 1С:Предприятия 8.3.10.2759
Тонкий клиент 1С:Предприятия 8.3.10.2744
Тонкий клиент 1С:Предприятия 8.3.10.2712
Тонкий клиент 1С:Предприятия 8.3.10.2698
Тонкий клиент 1С:Предприятия 8.3.10.2679
Тонкий клиент 1С:Предприятия 8.3.10.2637
Тонкий клиент 1С:Предприятия 8.3.10.2624
Тонкий клиент 1С:Предприятия 8.3.10.2609
Тонкий клиент 1С:Предприятия 8.3.10.2417
Тонкий клиент 1С:Предприятия 8.3.10.2374

Как скачать установить и настроить тонкий клиент 1С для рабоы с базами данных в облачном режиме на сервере 1С, клиент 1cfresh, 1С 8.3 Тонкий клиент, Тонкий клиент 1С для облачного сервиса 1С Фреш, Как скачать тонкий клиент 1С, 1С Предприятие 8 Тонкий клиент, Тонкий клиент 1С для работы в режиме онлайн, Как установить тонкий клиент 1С Предприятие 8.3, 1С 8.2 тонкий клиент, тонкий клиент 1С Онлайн, Как скачать тонкий клиент 1С Предприятие 8.3, Что такое тонкий клиент 1С, тонкий клиент 1с что это, тонкий клиент 1с скачать, Как настроить тонкий клиент 1С Предприятие 8.3, 1С Предприятие Тонкий клиент, Как настроить тонкий клиент 1С 8.3, Как скачать тонкий клиент 1С 8.3 бесплатно, Тонкий клиент 1С скачать бесплатно, установка тонкого клиента 1С, 1с настройка тонкого клиента, Как настроить тонкий клиент 1с для работы с базой данных 1С через интернет, 1с 8 тонкий клиент, 1с тонкий клиент установка, Тонкий клиент 1с 8.3 скачать, 1С Обновление тонкого клиента, запуск 1с тонкий клиент, 1с чем отличается тонкий клиент от толстого, Как установить 1с тонкий клиент для работы с бухгалтерией онлайн, 1С Бухгалтерия тонкий клиент, Настройка тонкого клиента 1с 8.3, 1С Предприятие 8.2 тонкий клент, Установка тонкого клиента 1с 8.3, 1с автоматическое обновление тонкого клиента, приложение тонкий клиент 1с, 1с режим тонкого клиента, работа в 1С Бухгалтерии в режиме тонкого клиента, обновление тонкого клиента 1с 8.3, 1С Предприятие 8.3 тонкий клиент, 1С Тонкий клиент для работы в облаке 1С, тонкий клиент 1с 8.2 скачать, Как настроить 1С Тонкий клиент для работы в облачном режиме, 1С Предприятие тонкий клиент скачать, 1С Предприятие 8 тонкий клиент, Установить 1С тонкий клиент файловый вариант, Скачать бесплатно тонкий клиент 1С, автоматическое обновление тонкого клиента 1с 8.3, 1с тонкий клиент через интернет, тонкий клиент 1с для работы с 1С через интернет, Настроить работу тонкого клиента 1с 8.3 для работы с облачной бухгалтерией, обновить тонкий клиент 1с, разница между толстым и тонким клиентом 1с, 1с 8.2 тонкий клиент настройка, Настроить путь к базе данных 1С тонкий клиент 1с 8.2, Где скачать Тонкий клиент 1С для работы в облаке 1С, 1с тонкий клиент 8.3 скачать торрент, Скачать бесплатно тонкий клиент 1С Предприятие 8.3, 1С Предприятие 8.2 тонкий клиент скачать, как установить и настроить 1с тонкий клиент для работы в сервисе 1С Фреш, 1с 8.2 тонкий клиент настройка URL, Как настроить тонкий клиент 1с 8, Что значит тонкий клиент 1С, тонкий клиент 8, как установить тонкий клиент 8.3, тонкий клиент 8.3, тонкий и толстый клиент, Как настроить 1с 8.3 тонкий клиент для работой с базой данных в облаке на сервере 1С, настройка тонкого клиента, тонкий клиент купить, отличия 1с толстый и тонкий клиент, тонкий клиент скачать, тонкий клиент 1С для windows, Скачать тонкий клиент 1С для linux, Как настроить базу данных 1с 8.2 в режиме тонкий клиент, подключение тонкого клиента 1С, тонкий клиент 1С rdp, тонкий клиент цена, тонкий клиент 1С Предприятия что это? Установить на компьютер тонкий клиент 1С, установка тонкого клиента 1С на локальный компьютер, тонкий клиент 1С 8.3 скачать бесплатно, Настроить тонкий клиент 1С Предприятие 8 для работы с базами данный в сервисе 1cfresh, 1с предприятие тонкий клиент 8.3, 1c тонкий клиент установить бесплатно, Инструкция настройка тонкого клиента 1С, тонкий клиент 1С настройка печати, система 1С тонкий клиент, тонкий терминальный клиент 1С, запуск тонкого клиента 1с, сервер 1С для работы с базой данных в режиме тонких клиентов, проверка тонкий клиент 1С, Настройка адреса 1с 8 тонкий клиент, приложение тонкий клиент 1С, настроить режим тонкий клиент 1С, установить тонкий клиент 1С Предприятие 8, 1с тонкий клиент установка и настройка, выбор режима тонкого клиента 1С, Настроить тонкий клиент 1С для работы с онлайн-бухгалтерией, тонкий клиент 1С для windows 7, дистрибутив 1С тонкий клиент, Как установить тонкий 1С для работы в режиме сервиса, тонкий клиет 1С для работы с web 1С, режим тонкого клиента 1С Предприятие, Как настроить тонкий клиент 1С для работой с облачной бухгалтерией, Инструкция по настройке режима тонкий клиент 1С для работы с облаком 1С, 1 с тонкий клиент, тонкий клиент 1с 8.3 скачать бесплатно, 1с обновление тонкого клиента, выбрать тонкий клиент 1С, Как установить тонкий клиент 1С для работы в облаке, клиент 1с фреш, облачный клиент 1С, клиент 1С для облачного сервиса, клиент для облачного сервиса 1С Бухгалтерия, облачный клиент 1С для работы в режиме онлайн через интернет, облачные программа 1С для ведения бухгалтерии

Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):

Окно тонкого клиента на Linux:

То же окно в веб клиенте (в браузере Chrome):

Зачем мы сделали веб-клиент? Говоря несколько пафосно, такую задачу перед нами поставило время. Уже давно работа через Интернет стала необходимым условием для бизнес-приложений. Вначале мы добавили возможность работы через Интернет для нашего тонкого клиента (некоторые наши конкуренты, кстати, на этом и остановились; другие, напротив, отказались от тонкого клиента и ограничились реализацией веб-клиента). Мы же решили дать нашим пользователям возможность выбрать тот вариант клиента, который им подходит больше.

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

Постановка задачи

Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:
  1. Отображать пользовательский интерфейс
  2. Исполнять клиентский код, написанный на языке 1С
Пользовательский интерфейс в 1С описывается в визуальном редакторе, но декларативно, без попиксельной расстановки элементов; используется около трех десятков типов элементов интерфейса - кнопки, поля ввода (текстовые, цифровые, дата/время), списки, таблицы, графики и т.д.

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

И тонкий клиент (при работе через веб), и веб-клиент пользуются одним и тем же набором веб-сервисов для общения с сервером приложений 1С. Реализация у клиентов, конечно, разная – тонкий клиент написан на С++, веб-клиент – на JavaScript.

Немного истории

Проект создания веб-клиента стартовал в 2006 году, в нем (в среднем) участвовала команда из 5 человек. На отдельных этапах проекта привлекались разработчики для реализации специфической функциональности (табличного документа, диаграмм и т.д.); как правило, это были те же разработчики, что делали эту функциональность в тонком клиенте. Т.е. разработчики заново писали на JavaScript компоненты, ранее созданные ими на C++.

С самого начала мы отвергли идею какой-либо автоматической (хотя бы частичной) конверсии C++ кода тонкого клиента в JavaScript веб-клиента ввиду сильных концептуальных различий этих двух языков; веб-клиент писался на JavaScript с чистого листа.

В первых итерациях проекта веб-клиент конвертировал клиентский код на встроенном языке 1С непосредственно в JavaScript. Тонкий клиент поступает иначе - код на встроенном языке 1С компилируется в байт-код, и затем этот байт-код интерпретируется на клиенте. Впоследствии так же стал делать и веб-клиент – во-первых, это дало выигрыш в производительности, во-вторых – позволило унифицировать архитектуру тонкого и веб-клиентов.

Первая версия платформы 1С:Предприятие с поддержкой веб-клиента вышла в 2009 году. Веб-клиент на тот момент поддерживал 2 браузера – Internet Explorer и Firefox. В первоначальных планах была поддержка Opera, но из-за непреодолимых на тот момент проблем с обработчиками закрытия приложения в Opera (не удавалось со 100%-ной уверенностью отследить, что приложение закрывается, и в этот момент произвести процедуру отключения от сервера приложений 1С) от этих планов пришлось отказаться.

Структура проекта

Всего в платформе 1С:Предприятие есть 4 проекта, написанных на JavaScript:
  1. WebTools – общие библиотеки, используемые остальными проектами (сюда же мы включаем Google Closure Library).
  2. Элемент управления ФорматированныйДокумент
  3. Элемент управления Планировщик (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
  4. Веб-клиент
Структура каждого проекта напоминает структуру Java-проектов (или.NET проектов – кому что ближе); у нас есть неймспейсы, и каждый неймспейс лежит в отдельной папке. Внутри папки лежат файлы и классы неймспейса. В проекте веб-клиента около 1000 файлов.

Структурно веб-клиент по-крупному разделяется на следующие подсистемы:

  • Управляемый интерфейс клиентского приложения
    • Общий интерфейс приложения (системные меню, панели)
    • Интерфейс управляемых форм, включающий, в том числе, около 30 элементов управления (кнопки, различные типы полей ввода – текстовые, цифровые, дата/время и пр., таблицы, списки, графики и т.д.)
  • Объектная модель, доступная разработчикам на клиенте (всего более 400 типов: объектная модель управляемого интерфейса, настройки компоновки данных, условного оформления и пр.)
  • Интерпретатор встроенного языка 1С
  • Расширения браузеров (используются для функциональности, не поддерживаемой в JavaScript)
    • Работа с криптографией
    • Работа с файлами
    • Технология внешних компонент, позволяющая их использовать как в тонком, так и веб-клиенте

Особенности разработки

Реализация всего вышеописанного на JavaScript – дело непростое. Возможно, веб-клиент 1С – одно из самых больших client-side приложений, написанных на JavaScript – около 450.000 строк. Мы активно используем в коде веб-клиента объектно-ориентированный подход, упрощающий работу с таким большим проектом.

Для минимизации размера клиентского кода мы вначале использовали свой собственный обфускатор, а начиная с версии платформы 8.3.6 (октябрь 2014) стали использовать Google Closure Compiler . Эффект использования в цифрах – размер фреймворка веб-клиента после обфускации:

  • Собственный обфускатор – 1556 кб
  • Google Closure Compiler – 1073 кб
Использование Google Closure Compiler помогло нам повысить быстродействие веб-клиента на 30% по сравнению с нашим собственным обфускатором. Кроме того, на 15-25% (в зависимости от браузера) снизился объем памяти, потребляемой приложением.

Google Closure Compiler очень хорошо работает с объектно-ориентированным кодом, поэтому его эффективность именно для веб-клиента максимально высокая. Closure Compiler делает для нас несколько хороших вещей:

  • Статическая проверка типов на этапе сборки проекта (обеспечивается тем, что мы покрываем код аннотациями JSDoc). В итоге получается статическая типизация, очень близкая по уровню к типизации в С++. Это помогает отловить достаточно большой процент ошибок на стадии компиляции проекта.
  • Уменьшение размера кода через обфускацию
  • Ряд оптимизаций выполняемого кода, например, такие как:
    • inline-подстановки функций. Вызов функции в JavaScript – достаточно дорогая операция, и inline-подстановки часто используемых небольших методов существенно ускоряют работу кода.
    • Подсчет констант на этапе компиляции. Если выражение зависит от константы, в него будет подставлено фактическое значение константы
В качестве среды разработки веб-клиента мы используем WebStorm.

Для анализа кода мы используем SonarQube , куда интегрируем статические анализаторы кода. С помощью анализаторов мы отслеживаем деградацию качества исходного кода на JavaScript и стараемся ее не допускать.

Какие задачи решали/решаем

В ходе реализации проекта мы столкнулись с рядом интересных задач, которые нам пришлось решать.

Обмен данными с сервером и между окнами

Существуют ситуации, когда обфускирование исходного кода может помешать работе системы. Код, внешний по отношению к исполняемому коду веб-клиента, вследствие обфускации может иметь имена функций и параметров, отличающиеся от тех, которые наш исполняемый код ожидает. Внешним кодом для нас является:
  • Код, приходящий с сервера в виде структур данных
  • Код другого окна приложения
Чтобы избежать обфускации при взаимодействии с сервером мы используем тэг @expose:

/** * @constructor * @extends {Base.SrvObject} */ Srv.Core.GenericException = function () { /** * @type {string} * @expose */ this.descr; /** * @type {Srv.Core.GenericException} * @expose */ this.inner; /** * @type {string} * @expose */ this.clsid; /** * @type {boolean} * @expose */ this.encoded; }
А чтобы избежать обфускации при взаимодействии с другими окнами мы используем так называемые экспортируемые интерфейсы (интерфейсы, у которых все методы являются экспортируемыми).

/** * Экспортируемый интерфейс контрола DropDownWindow * * @interface * @struct */ WebUI.IDropDownWindowExp = function(){} /** * Перемещает выделение на 1 вперед или назад * * @param {boolean} isForward * @param {boolean} checkOnly * @return {boolean} * @expose */ WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){} /** * Перемещает выделение в начало или конец * * @param {boolean} isFirst * @param {boolean} checkOnly * @return {boolean} * @expose */ WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){} /** * @return {boolean} * @expose */ WebUI.IDropDownWindowExp.prototype.selectValue = function (){}

We used Virtual DOM before it became mainstream)

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

Оптимизация работы веб-клиента

Чтобы наш веб-клиент работал быстрее, мы по максимуму стараемся задействовать штатные возможности браузера (CSS и т.п.). Так, командная панель формы (расположенная практически на каждой форме приложения) отрисовывается исключительно средствами браузера, динамической версткой на базе CSS.

Тестирование

Для функционального тестирования и тестирования производительности мы используем инструмент собственного производства (написанный на Java и C++), а также набор тестов, построенных на базе Selenium .

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

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


Наш инструмент тестирования и тестируемое приложение

Наш инструмент и Selenium дополняют друг друга; например, если какая-то кнопка на одном из экранов поменяла свое местоположение – Selenium это может не отследить, но наш инструмент заметит, т.к. делает попиксельное сравнение скриншота с эталоном. Также инструмент в состоянии отследить проблемы с обработкой ввода с клавиатуры или мыши, так как именно их он и воспроизводит.

Тесты на обоих инструментах (нашем и Selenium) запускают типовые сценарии работы из наших прикладных решений. Тесты автоматически запускаются после ежедневной сборки платформы «1С:Предприятие». В случае замедления работы сценариев (по сравнению с предыдущей сборкой) мы проводим расследование и устраняем причину замедления. Критерий у нас простой – новая сборка должна работать не медленнее предыдущей.

Для расследования инцидентов замедления работы разработчики используют разные инструменты; в основном используется Dynatrace AJAX Edition производства компании DynaTrace . Проводится запись логов выполнения проблемной операции на предыдущей и на новой сборке, затем логи анализируются. При этом время выполнения единичных операций (в миллисекундах) может не быть решающим фактором – в браузере периодически запускаются служебные процессы типа уборки мусора, они могут наложиться на время выполнения функций и исказить картину. Более релевантными параметрами в этом случае будет количество выполненных инструкций JavaScript, количество атомарных операций над DOM и т.п. Если количество инструкций/операций в одном и том же сценарии в новой версии увеличилось – это почти всегда означает падение быстродействия, которое нужно исправлять.

Также одной из причин падения производительности может быть то, что Google Closure Compiler по какой-то причине не смог сделать inline-подстановку функции (например, потому что функция рекурсивная или виртуальная). В этом случае мы стараемся исправить ситуацию, переписав исходный код.

Расширения браузеров

В случае, когда прикладному решению нужна функциональность, которой нет в JavaScript, мы используем расширения браузеров:
  • для работы с файлами
  • для работы с криптографией
  • работа с внешними компонентами
Наши расширения состоят из двух частей. Первая часть – то, что называется расширением браузера (как правило, написанные на JavaScript расширения для Chrome и Firefox), которые взаимодействуют со второй частью - бинарным расширением, реализующим нужную нам функциональность. Надо упомянуть, что мы пишем 3 версии бинарных расширений – под Windows, Linux и MacOS. Бинарное расширение поставляется в составе платформы 1С:Предприятие и находится на сервере приложений 1С. При первом вызове с веб-клиента оно загружается на клиентский компьютер и устанавливается в браузере.

При работе в Safari наши расширения используют NPAPI, при работе в Internet Explorer - технологию ActiveX. Microsoft Edge пока не поддерживает расширения, поэтому веб-клиент в нем работает с ограничениями.

Дальнейшее развитие

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

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

Теги: Добавить метки