Конструктор не обнаружен 1с веб клиент

Обновлено: 02.07.2024

Текст ошибки говорит сам за себя. Разделим его на 2 части: первая — « нет прав », вторая связана с « видом клиента », т. е. режимом запуска.

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

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

Закономерный вопрос, даже два:

  1. Где находятся эти разрешения и как их настроить?
  2. Какие типы клиентов бывают? — для проверки входа в другом режиме.

Если конфигурация типовая

  • откройте 1С в режиме «Конфигуратор», войдите в меню « Администрирование — Пользователи », в списке выберите пользователя, у которого возникает ошибка;
  • нажмите « Изменить », на вкладке « Прочее » назначьте необходимые роли и сохраните изменения.

Если конфигурация своя (нетиповая)

Возможно, в созданных ролях не указан тип запуска. Также зайдите в «Конфигуратор» и проверьте созданные роли. В ролях устанавливается разрешенный режим запуска различных приложений.

✅ Как видите, всё дело в правах. Причина в том, что у пользователя нет минимального набора прав для запуска программы.

Поэтому, первым делом проверьте какие полномочия установлены для учётной записи пользователя.

Варианты запуска программы 1С

📝 Всего — четыре, отличаются принципом работы и требовательностью к ресурсам ПК, на котором работаете. Рассмотрим подробнее.

1. Толстый клиент

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

Не зависит от Интернета, не представляет возможности удалённой работы. Для запуска толстого клиента используется файл 1cv8.exe .

2. Тонкий клиент

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

Пользователю предоставлен ограниченный функционал, возможна работа как с удалённым сервером через Интернет, так и на самом компьютере в специальной программной среде. Запуск тонкого клиента выполняется файлом 1cv8c.exe .

3. Веб-клиент

Для работы понадобится веб-браузер и Интернет-соединение. Нет привязки к месту работы. Нагрузка на оборудование минимальная, так как вычисления происходят на удалённом сервере. Веб-клиент системы 1С функционирует под управлением браузера.

4. Конфигуратор

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

Если у вас не получается настроить роли, проверьте каким образом вы открываете приложение 1С. Возможно, вы запускаете не « 1cestart.exe », а открываете напрямую приложение 1cv8.exe (толстый клиент).

Выберите ярлык 1С, нажмите правую кнопку мыши и откройте «Свойства». На вкладке « Ярлык » в поле «Объект» поменяйте название запускаемого приложения на 1cv8c.exe (тонкий клиент), нажмите «ОК».

Если открывается менеджер 1cestart

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

Есть терминальный сервер, есть сервер MSSQL и Сервер 1С. Все подключаются через тонкий клиент к терминалу, а сервер 1С выдает ключи. Но при подключении через браузер - ключей не видно. Ошибка гласит:

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

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

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

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

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

Веб сервер на терминальном стоит.
nethasp.ini лежит в C:\Program Files\1cv82\conf, стандартная конфигурация

лицензии выдает именно сервер приложений, отдельная машинка с MSSQL. Но вот веб клиент не видит ни nethasp, который лежит я уже сказал где, ни менеджера лицензий.

м.б. в апачи где то дело? Прав не хватает?

И разве веб клиент использует какой то свой порт, когда он подключается к скулю? Ведь тонкие клиенты работают.

Проблема с правами доступа возникает насколько мне известно только при использовании веб-сервера поверх файловой базы - явно не ваш вариант.

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

>И разве веб клиент использует какой то свой порт, когда он подключается к скулю? Ведь тонкие клиенты работают.

Вы написали, что все работают на терминальном сервере. Если бы веб-сервер у вас был в стороне, то могла бы быть проблема в правилах фаервола.

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

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

image

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

image

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

image

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

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

Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:

  1. Отображать пользовательский интерфейс
  2. Исполнять клиентский код, написанный на языке 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. Элемент управления ФорматированныйДокумент (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
  3. Элемент управления Планировщик (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
  4. Веб-клиент

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

  • Управляемый интерфейс клиентского приложения
    • Общий интерфейс приложения (системные меню, панели)
    • Интерфейс управляемых форм, включающий, в том числе, около 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.

    image

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

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

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

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

    image


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

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

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

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

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

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

    • для работы с файлами
    • для работы с криптографией
    • работа с внешними компонентами

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

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

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

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

    Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 1С. Особенно при работе с ИБ в файловом варианте. Так безопаснее. Сотрудники подключаются к ИБ 1С через браузер или тонкий клиент , не имея прямого доступа к файлам.

    В статье расскажем, как решали возникающие вопросы по настройкам Internet Information Services. Через призму своего опыта и коллег.

    Сертификат выдается сроком на 90 дней. Для автоматического продления создается периодическое задание в Планировщике. При запуске задачи сайт должен быть доступен (пройти проверку домена) по 80-му порту.

    II. Типовая настройка и публикация информационных баз на IIS

    На что обратить внимание:

    1. Состав компонентов IIS — в Интернете полно инструкций и указаний. Повторяться не будем.

    2. Установка 1С необходимой разрядности . Варианта 2: x86 (32-разрядное приложение) или x64. Обязательно выбираем «Модули расширения веб-сервера».

    3. Права для встроенной группы /пользователю веб-сервера (IUSR) на папки:

    • с установленной платформой — на «чтение и выполнение» (для старта процессов);
    • самих расположений ИБ — на «изменение» (в случае файлового варианта).

    4. Публикация базы через Конфигуратор 1С . Возможно потребуется открыть программу с повышенными правами — «Запуск от имени администратора».

    5. Для 32-разрядного клиента 1С в диспетчере IIS включаем разрешение запуска ( DefaultAppPool — Дополнительные параметры — Разрешены 32-разрядные приложения = True ). Для 1C x64 — значение не меняем.

    6. На странице сопоставления обработчиков для «1С Web-service Extension» потребуется указать путь к исполняемому модулю :

    • x86 — «C:\Program Files (x86)\1cv8\8.3.x.xx\bin\wsisapi.dll»;
    • x64 — «C:\Program Files\1cv8\8.3.x.xx\bin\wsisapi.dll».

    Либо изменяем путь к библиотеке в файлах web.config через Блокнот (располагается, как правило, в c:\inetpub\wwwroot\<имя базы>).

    Если в п. 2 все сделано правильно — по указанному пути должен присутствовать файл wsisapi.dll.

    7. В частных случаях требуется перезапуск служб IIS . Выполните «Перезапустить» в оснастке управления или перезагрузите сервер.

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

    Если публикуем 32-разрядную версию 1С, то ставим разрешение запуска 32-разрядных приложений на IIS и проверяем путь к wsisapi из каталога x86.

    III. Если клиент 1С зависает при подключении к базе по web

    Прежде посмотрите этот материал — там общие рекомендации.

    Другой случай. Файловая ИБ опубликована на IIS. После авторизации зависает на эмблеме 1С. При открытии Конфигуратора — все нормально.

    В журналах Windows ошибка «Процесс, обслуживающий пул приложений "1С", не ответил на команду ping».

    • проверьте права на папку с базой 1С для IUSR/IIS_IUSRS, уровень доступа — на «изменение»;
    • в оснастке IIS «Пулы приложений — <пул_1С> — Дополнительные параметры — Модель процесса» задайте для « Максимальная задержка отклика при проверке связи » значение, превышающее 90 секунд;
    • посмотрите на поведение IIS при «Проверка связи включена» = False.
    📝 Из справки: установка [pingingEnabled] (Проверка связи) в значение false не позволит IIS проверять, выполняется ли рабочий процесс, и таким образом сохранит его активным до остановки процесса отладки.

    ✅ Установка «Максимальное время отклика пинга» в большое значение позволит IIS продолжать наблюдение за рабочим процессом.

    Информационная база 1C опубликована на IIS. При работе через тонкий клиент, при нажатии на «Отчеты» вываливается ошибка.

    Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

    ✅ Откройте настройки пула приложений и проверьте «Режим управляемого конвейера» = «Classic».

    Читайте также: