Не отображаются в браузере 1с
Есть 2 машины на 1 клиенты 1с 8.3, лицензии, iis(apache).
На второй сервер 1с.
При публикации базы на веб сервер, и переходе в неё через браузер появляется форма логина. После удачного ввода логина переходит на пустую вкладку.
При этом тонкий клиент работает стабильно.
У вас загрузилась в браузере веб-версия 1С и показало окошко авторизации с выпадающим списком пользователей базы? Если ДА и после авторизации вас бросает на пустую страницу - изучайте логи журнала регистрации (может у вас нет права на запуск веб-клиента). Если НЕТ и вам веб-сервер показывали стандартное окошко Basic access authentication - значит публикация выполнена неправильно (изучайте логи веб-сервера).
Ошибка аутентификации регистрируется в журнали при открытии окна с запросом логина пароля.
Дальше идут 3 записи
Начало
Аутентификация
завершение
Пользователь при этом видит пустую вкладку в браузере.
aglgl, смотрите права - у вашего пользователя или нет права на веб-клиент или нет доступа к подсистемам и выводимой на "рабочий стол" информации.
aglgl, судя по вашей информации веб-сервер настроен правильно и пользователь успешно авторизируется. Но после попытки зайти происходит автоматическое завершение сеанса. Вам нужно рыть в этом направлении.
Все ли могут заходить в эту базу (точно эту?) или может вы установили блокировку начала сеансов? Может в вашей базе для безопасности есть дополнительные проверки при старте и у этого пользователя не проходит контроль.
Т.е. вы какую-то конфигурацию опубликовали на каком-то веб-сервере и при входе каким-то веб-браузером на какой-то из машин у вас отображается пустой интерфейс?
"iis(apache)" - это что значило?!
iis и apache - это два разных веб-сервера,
"iis(apache)" - это значит, что вы пробовали оба и ситуация в обоих случаях аналогичная?
или это значит, что вы пробовали один из них, но точно не знаете какой именно?
"Есть 2 машины" - проблемы наблюдаются на обоих машинах? или только на клиентской машине? или только на сервере, а до клиентской машины руки не дошли?
"лицензии" - где именно и какие установлены лицензии? лицензии программные или аппаратные? две однопользовательские программные лицензии установлены локально на каждой машине? две однопользовательские программные лицензии на сервере? одна многопользовательская на сервере?
Укажите точную информацию по конфигурации, платформе, используемому веб-серверу, лицензиям + в каких именно браузерах наблюдается проблема + приложите скрины, т.к. не ясно, что в вашем понимании "пустая вкладка", может это 1С с пустым интерфейсом
Конфигурации пробовали разные эффект 1 и тот же.
Ставили и iis и apache. Не влияет
Проблема в подключении по веб.
На на сервере клиента стоят лицензии на клиента, программные.
На сервере кластера кластер.
Браузер не имеет значения(пробовал все).
Подключение идет внутри сети на localhost или из вне через интернет?
Что с лицензиями, где установлены, кто и как их раздает?
Платформа 1С для отображения Web содержимого в “Поле HTML документа “, использует компонент Web Browser, входящий в состав этой операционной системы. По умолчанию этот компонент работает в режиме совместимости c IE7. Данный режим безнадежно устарел и большинство современных сайтов не смогут правильно работать.
Примеры ошибок
Ваш браузер не поддерживается Google Maps JavaScript API. Выберите другой.
На этой странице произошла ошибка сценария.
Настройка эмуляции режима совместимости
Для того чтобы “встроенный” браузер заработал в нужном режиме и веб страницы внутри 1С открывались без ошибок, необходимо добавить параметр в реестр операционной системы Windows.
Имя параметра (DWORD): 1Cv8c.exe
Значение (десятичное): 11000
Ветка реестра зависит от разрядности ОС Windows и Платформы 1С.
Для 64 разрядной Windows с установленной 32 разрядной 1С:
Для 64 разрядной Windows с установленной 64 разрядной 1С:
Для 32 разрядной Windows с установленной 32 разрядной 1С:
Пример настройки для 64 разрядной Windows с установленной 32 разрядной 1С
Откройте редактор Реестра
Правым кликом мыши добавьте параметр (DWORD)
Укажите имя 1Cv8c.exe
Откройте параметр и присвойте ему десятичное значение 11000
В результате в реестре появится параметр 1Cv8c.exe со значением
На этом настройка завершена. Браузер 1С будет работать в режиме эмуляции IE11.
Пользователи могут работать с приложениями сервиса с помощью веб-браузера. В этой статье будет описана настройка браузера для работы в сервисе «1С:Фреш».
Браузеры, которые можно использовать для работы в сервисе 1С:Фреш:
· Google Chrome для Windows (32- и 64-разрядные версии);
· Mozilla Firefox версии от 38 для Windows и Linux;
· Microsoft Internet Explorer версий 8, 9 (x86), 10 (x86), 11;
· Microsoft Edge для Windows;
· Apple Safari версий от 4.0.5, для Mac OS X.
Сервис не поддерживает другие браузеры (Опера, Яндекс браузер, UC Browser и др.) и устаревшие версий браузеров (например, Microsoft Internet Explorer 6).
С приложениями сервиса можно работать не только через браузер, но и с помощью тонкого клиента 1С:Предприятия 8.
Подробнее о том, как установить и настроить «тонкий клиент», читайте здесь.
Настройка Google chrome
6. Закройте панель "Настройки содержания страницы" (Content settings) нажатием кнопки "Готово" (Done).
7. Под надписью "Скачанные файлы" (Downloads) рекомендуется включить флажок "Всегда указывать место для скачивания" (Ask where to save each file before downloading).
Готово! Google chrome готов для работы с сервисом 1С:Фреш.
Настройка Mozilla Firefox
1. Запустите с помощью браузера Mozilla Firefox любое приложение «1С:Предприятия».
2. Появится информационное окно, рекомендующее установить расширение браузера. Нажмите в нем кнопку "Установить расширение (рекомендуется)".
4. В запросе подтверждения установки расширения нажмите кнопку "Установить" (Install now).
5. Дождитесь окончания установки расширения и затем нажмите кнопку "Перезапустить сейчас" (Restart now).
Установленные сторонние расширения браузера могут помешать установке расширения «1С:Предприятия» и корректной работе браузера. В этих случаях рекомендуется отключить сторонние дополнения (расширения) браузера.
Настройка Internet Explorer
11. Перейдите на вкладку "Конфиденциальность" (Privacy). На этой вкладке:
- Проверьте, что уровень настроек безопасности выбран "Средний" (Medium) или "Умеренно высокий" (Medium High). Это необходимо для приема cookie.
- Если желательно использовать блокирование всплывающих окон, то флажок "Включить блокирование всплывающих окон" (Turn on Pop-up Blocker) должен быть включен. В этом случае следует нажать кнопку "Параметры" (Settings), добавить сайт //1cfresh.comк списку "Разрешенные веб-сайты" (Allowed sites), и нажать кнопку "Закрыть" (Close).
12. Закройте диалоговое окно "Свойства браузера" (Свойства обозревателя, Internet Options) нажатием кнопки "ОК".
13. Закройте все окна браузера Internet Explorer, а потом запустите браузер снова, чтобы все настройки начали действовать.
Готово! Internet Explorer готов для работы с сервисом 1С Фреш.
Настройка Microsoft Edge
1. Запустите браузер.
3. В выведенном меню выберите пункт "Параметры" (Settings).
4. В выведенной панели параметров нажмите кнопку "Просмотреть дополнительные параметры" (View advanced settings) под надписью "Дополнительные параметры" (Advanced settings).
5. В выведенной панели дополнительных параметров:
Готово! Microsoft Edge готов для работы с сервисом 1С Фреш.
Настройка Safari
1. Откройте браузер Apple Safari.
2. Вызовите окно настроек Apple Safari выбрав команду меню: "Safari|Настройки" (Safari | Settings).
3. В появившемся окне выберите вкладку "Безопасность" (Security).
4. На этой вкладке:
- флажок "Блокировать всплывающие окна" (Block pop-up windows) дожен быть выключен;
- флажок "Включить JavaScript" (Enable JavaScript) должен быть включен.
5. Перейдите на вкладку "Конфиденциальность" (Privacy). На этой вкладке значение переключателя "Файлы сookie и данные веб-сайтов" (Cookies and website data) должно быть:
Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):
Окно тонкого клиента на Linux:
То же окно в веб клиенте (в браузере Chrome):
Зачем мы сделали веб-клиент? Говоря несколько пафосно, такую задачу перед нами поставило время. Уже давно работа через Интернет стала необходимым условием для бизнес-приложений. Вначале мы добавили возможность работы через Интернет для нашего тонкого клиента (некоторые наши конкуренты, кстати, на этом и остановились; другие, напротив, отказались от тонкого клиента и ограничились реализацией веб-клиента). Мы же решили дать нашим пользователям возможность выбрать тот вариант клиента, который им подходит больше.
Добавление возможности работы через Интернет для тонкого клиента было большим проектом с полной сменой архитектуры клиент-серверного взаимодействия. Создание же веб-клиента — и вовсе новый проект, начинавшийся с нуля.
Постановка задачи
Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:
- Отображать пользовательский интерфейс
- Исполнять клиентский код, написанный на языке 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:
- WebTools – общие библиотеки, используемые остальными проектами (сюда же мы включаем Google Closure Library).
- Элемент управления ФорматированныйДокумент (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
- Элемент управления Планировщик (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
- Веб-клиент
Структурно веб-клиент по-крупному разделяется на следующие подсистемы:
- Управляемый интерфейс клиентского приложения
- Общий интерфейс приложения (системные меню, панели)
- Интерфейс управляемых форм, включающий, в том числе, около 30 элементов управления (кнопки, различные типы полей ввода – текстовые, цифровые, дата/время и пр., таблицы, списки, графики и т.д.)
- Работа с криптографией
- Работа с файлами
- Технология внешних компонент, позволяющая их использовать как в тонком, так и веб-клиенте
Особенности разработки
Реализация всего вышеописанного на JavaScript – дело непростое. Возможно, веб-клиент 1С – одно из самых больших client-side приложений, написанных на JavaScript – около 450.000 строк. Мы активно используем в коде веб-клиента объектно-ориентированный подход, упрощающий работу с таким большим проектом.
Для минимизации размера клиентского кода мы вначале использовали свой собственный обфускатор, а начиная с версии платформы 8.3.6 (октябрь 2014) стали использовать Google Closure Compiler. Эффект использования в цифрах – размер фреймворка веб-клиента после обфускации:
- Собственный обфускатор – 1556 кб
- Google Closure Compiler – 1073 кб
Google Closure Compiler очень хорошо работает с объектно-ориентированным кодом, поэтому его эффективность именно для веб-клиента максимально высокая. Closure Compiler делает для нас несколько хороших вещей:
- Статическая проверка типов на этапе сборки проекта (обеспечивается тем, что мы покрываем код аннотациями JSDoc). В итоге получается статическая типизация, очень близкая по уровню к типизации в С++. Это помогает отловить достаточно большой процент ошибок на стадии компиляции проекта.
- Уменьшение размера кода через обфускацию
- Ряд оптимизаций выполняемого кода, например, такие как:
- inline-подстановки функций. Вызов функции в JavaScript – достаточно дорогая операция, и inline-подстановки часто используемых небольших методов существенно ускоряют работу кода.
- Подсчет констант на этапе компиляции. Если выражение зависит от константы, в него будет подставлено фактическое значение константы
Для анализа кода мы используем SonarQube, куда интегрируем статические анализаторы кода. С помощью анализаторов мы отслеживаем деградацию качества исходного кода на JavaScript и стараемся ее не допускать.
Какие задачи решали/решаем
В ходе реализации проекта мы столкнулись с рядом интересных задач, которые нам пришлось решать.
Обмен данными с сервером и между окнами
Существуют ситуации, когда обфускирование исходного кода может помешать работе системы. Код, внешний по отношению к исполняемому коду веб-клиента, вследствие обфускации может иметь имена функций и параметров, отличающиеся от тех, которые наш исполняемый код ожидает. Внешним кодом для нас является:
- Код, приходящий с сервера в виде структур данных
- Код другого окна приложения
А чтобы избежать обфускации при взаимодействии с другими окнами мы используем так называемые экспортируемые интерфейсы (интерфейсы, у которых все методы являются экспортируемыми).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 и т.п. Если количество инструкций/операций в одном и том же сценарии в новой версии увеличилось – это почти всегда означает падение быстродействия, которое нужно исправлять.
Расширения браузеров
В случае, когда прикладному решению нужна функциональность, которой нет в JavaScript, мы используем расширения браузеров:
- для работы с файлами
- для работы с криптографией
- работа с внешними компонентами
При работе в Safari наши расширения используют NPAPI, при работе в Internet Explorer — технологию ActiveX. Microsoft Edge пока не поддерживает расширения, поэтому веб-клиент в нем работает с ограничениями.
Дальнейшее развитие
Одна из групп задач для команды разработки веб-клиента – это дальнейшее развитие функциональности. Функциональность веб-клиента должна быть идентична функциональности тонкого клиента, вся новая функциональность реализуется одновременно и в тонком, и в веб-клиенте.
Другие задачи — развитие архитектуры, рефакторинг, повышение производительности и надежности. Например, одно из направлений – дальнейшее движение в сторону асинхронной модели работы. Часть функциональности веб-клиента на настоящий момент построена на синхронной модели взаимодействия с сервером. Асинхронная модель сейчас становится в браузерах (и не только в браузерах) более актуальной, и это заставляет нас модифицировать веб-клиент путем замены синхронных вызовов на асинхронные (и соответствующего рефакторинга кода). Постепенный переход к асинхронной модели объясняется необходимостью поддержки выпущенных решений и постепенной их адаптации.
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.Планируется в версии 8.3.21
В версии 8.3.21 мы сделали ряд доработок, призванных сделать взаимодействие системы с пользователем более удобным для пользователя.
Помощь пользователю при ошибке при входе в систему
Если ошибка произошла при входе в систему, пользователю можно будет показать дополнительную информацию, которая сможет помочь ему решить возникшую проблему:
Ссылка на ресурс с информацией (например, на сайт, где описаны способы решения возникшей проблемы)
Ошибки, возникающие при входе в систему – одни из самых непростых в обработке. Такие ошибки, в частности, могут возникать из-за недоступности сервера 1С, и, значит, в этот момент с сервера нельзя получить данные о том, какую информацию показать пользователю. Поэтому описанную выше информацию можно записать для каждой базы в файл списка баз *.v8i – при неудачном входе в систему информация будет считана из этого файла (при доступности файла) и показана пользователю.
Есть варианты работы, когда файлы *.v8i недоступны – работа в облаке, удалённая работа и т.п. Поэтому эту информацию также можно настроить через стандартную обработку «Управление настройками отображения ошибок» (параметры «Текст помощи» и «Навигационная ссылка помощи») и сохранить в инфобазе. Если с клиента уже был ранее осуществлен успешный вход в систему – эти параметры считываются с сервера и кэшируется на клиенте.
Если клиент успешно связался с сервером и считал актуальные значения параметров «Текст помощи» и «Навигационная ссылка помощи», но далее при работе системы возникли проблемы при соединении с сервером – в диалоге попытки повторного подключения будут использованы последние считанные значения параметров.
Обратите внимание! Информация, записанная в файле *.v8i, и настройки параметров «Текст помощи» и «Навигационная ссылка помощи» - независимы друг от друга. В случае, если доступен файл *.v8i, но недоступен сервер 1С и на клиенте нет закэшированных значений параметров «Текст помощи» и «Навигационная ссылка помощи» – пользователю будет показана информация из файла *.v8i, в противном случае – информация из параметров «Текст помощи» и «Навигационная ссылка помощи».
Настройки подключения к базе
В файл списка баз (*.v8i) в свойства базы добавляется параметры:
StartupErrorHelpText (строка) – текст, отображаемый в диалоге ошибки до начала сеанса или диалоге попытки повторного подключения
StartupErrorHelpURL (строка) – ссылка на ресурс с информацией
Тонкий клиент
Проверьте сетевое соединение
Проверьте, что параметры подключения указаны верно
Если проблема возникла уже после начала работы с системой - на форме повтора попытки соединения с сервером отображаемый текст будет таким же, как и на таблице вверху, а полный текст можно посмотреть, нажав на ссылку «Показать подробности…».
Веб-клиент
При невозможности связаться с веб-сервером в браузере будет отображена страница с информацией об ошибке подключения, текстом, заданный в настройках, и текстом, полученным из запроса на адрес сервиса информации (т.е. фактически с той же информацией, что и в тонком клиенте):
Это будет работать при соблюдении нескольких условий:
На веб-сервер уже был осуществлен удачный вход из браузера (для кэширования на клиенте страницы, показывающей информацию об ошибке)
Браузер должен поддерживать технологию service-workers
Про сервер обработки ошибок при запуске
Выше мы упомянули параметр «Адрес сервиса обработки ошибок при запуске».
Если этот параметр задан, то при ошибках запуска по этому адресу клиент 1С сделает запрос дополнительной информации. А по этому адресу можно настроить веб-сервер, который будет отдавать более подробную информацию о текущей ситуации - информировать пользователей при возникновении неожиданных аварийных ситуаций и / или недоступности сервера и т.п. Например, можно отобразить пользователю текст “Мы уже работаем над проблемой. Работа сервера возобновится после 14:00”.
Для поддержки это сценария можно реализовывать совсем простой вариант: просто положить JSON-файл в папку и настроить веб-сервер (Apache, nginx, IIS) на отдачу этого файла. При возникновении проблем на сервере можно вписать в этот файл необходимый текст (userMessage) и настроить время, до которого этот текст будет отображаться на форме (в нашем примере – до 14:00).
Можно реализовывать и более сложные сценарии – например, отправлять информацию об ошибках при входе в систему на внутренний сервис техподдержки организации.
Отчет об ошибке
При формировании отчета об аварийном завершении добавляется возможность показа окна “О программе”.
Читайте также: