Тип не определен comobject 1с 8 web
Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 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».
Всегда можно обратиться к автору, если писали не вы, за помощью и консультацией.
Как правило, именно для этого, автор где-то в документации, или в самом компоненте, указывает свои контактные данные.
Система придумана задолго до вас, и именно в таком виде и работает, по всему миру.
"Подготовка внешних компонент к работе с Веб-клиентом"
в "Технологии создания внешних компонент"
(выше в обсуждении уже ставил прямую ссылку)
А я правильно понимаю, что сам СОМ-объект создается в контексте 1С-сервера?Что хоть за компонента у Вас? Что она делает? А я правильно понимаю, что сам СОМ-объект создается в контексте 1С-сервера?
Что хоть за компонента у Вас? Что она делает?
Да все верно. Тянет данные из базы FireBird.
Я своими вопросами именно к этому и веду.
Мне тоже кажется странным, что работающая на сервере компонента, внезапно начала зависеть от типа клиента.
Возможно, что она с сервера на клиент какие-то данные пытается передавать, которые не могут быть отображены в Веб-клиенте.
В-общем, нужно в код смотреть, что конкретно там происходит.
Возможно, у учетной записи операционной системы, из-под которой запущен апач, не хватает каких-нибудь прав на COM ? Имею в виду права уровня ОС, если есть там какие-то настройки разрешений. По крайней мере с COM-Excel с чем-то подобным вроде сталкивался. Возможно, у учетной записи операционной системы, из-под которой запущен апач, не хватает каких-нибудь прав на COM ?
Такое, конечно, возможно (пути исполнения кода в 1С - неисповедимы), но мне кажется, что если COM-объект создается в серверном коде, то применяться должны права пользователя, под которым сервер 1С крутится. А они должны быть одинаковыми не зависимо от типа клиента.
Хотя, на всякий случай, права веб-сервера проверить тоже можно.
Хотя, на всякий случай, права веб-сервера проверить тоже можно.
Я на этот момент внимания не обратил.
Да. Тогда однозначно нужно с правами пользователя веб-сервера разбираться.
Если Тонкий клиент запускается на машине, которая в локальной сети с базой находится, то его можно на базу и по прямому пути натравить (см. вложенный скрин). И тогда веб-сервер будет не при делах.
Вставляет в пустую открытую форму документа, создает новые элементы справочников.
Если Тонкий клиент запускается на машине, которая в локальной сети базой находится, то его можно на базу и по прямому пути натравить (см. вложенный скрин).Все поверялось на локальном компе где сама лежит база, там же стоит Apache.
Все поверялось на локальном компе где сама лежит база, там же стоит Apache.А можете приложить скрин с настройками подключения к базе из Тонкого клиента?
Я запускаю отладку из конфигуратора именно тонкий клиент
Я запускаю отладку из конфигуратора именно тонкий клиентС вопросом "с чего Вы взяли, что у Вас запускается именно Тонкий клиент" - понятно.
Но это уже не имеет значения, т.к. наиболее вероятная причина проблемы уже ясна.
Можно для начала апач запустить под тем пользователем, под которым тонкий клиент срабатывает с COM. Если через браузер такой вариант начнет работать - тогда с правами разбираться, под кем апач запускается в обычных условиях. Тонкий клиент и Apache стоят на одном и том же компе и крутятся на одном и то же юзере в Win10, не знаю может есть какие приколы так как Apache крутится как служба Apache крутиться на пользователе СИСТЕМА, а тонкий клиент на учетке с правами админа. Тонкий клиент и Apache стоят на одном и том же компе и крутятся на одном и то же юзере в Win10
Т.е. служба Апача запускается от имени локального пользователя, под которым Вы работаете?
Это не очень хорошо с точки зрения безопасности, т.к. у него, кроме доступа к СОМ, появляется еще множество излишних прав.
Добрый день, дорогие друзья, я в своей работе часто сталкивался с рядом ошибок связанных с com объектами. Когда я только начинал работать в сфере ИТ, то подобные ошибки о которых пойдет речь ниже, вызывали у меня недоумение и я отправлял пользователей к программистам, но потом шло время и опыт мой рос, такие проблемы начал решать самостоятельно, теперь хочу поделиться решениями с вами.
Рассмотрим первый пример - ошибка связана с внешней обработкой EDI
Данная ошибка устраняется очень просто, вам нужно зарегистрировать excon.dll. Для этого открываем cmd от имени администратора и прописываем следующие команды
Решается не сложно, но для решения есть несколько методов и в разных ситуациях спасает тот или иной метод решения. Ниже рассмотрим примеры данной ошибки и решения.
Первое что нужно попробовать сделать на машине пользователя - это зарегистрировать comcntr.dll
Для этого открываем cmd от имени администратора и прописываем следующие команды
regsvr32 "C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
cd c:\Windows\SysWOW64 regsvr32 "C:\Program Files\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
Если данное решение не помогает, то нужно проверить на сервере 1С возникает такая же ошибка или нет, если возникает при тех же действиях, то сделать следующие действия в cmd от имени администратора
"C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver - Все что выделено жирным шрифтом, в вашем случае может отличаться
"C:\Program Files\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver " - Все что выделено жирным шрифтом, в вашем случае может отличаться
Можно создать данное com соединение с помощью "Службы Компонентов Windows" , об этом рассказывать не буду в данной статье, если вам нужна информация, пишите комменты, я свяжусь с вами и все расскажу. Если будет много пожеланий, сделаю отдельную статью на эту тему.
Третья ошибка связана с компонентой MSScript
Данные ошибки возникают обычно при печати из 1С. Две разные базы часто бывают связаны между собой средствами различных компонент. В моем случае это торговля и сертификация. И при печати комплектов документов иногда возникает данная ошибка.
Решение не сложное и данное решение можно автоматизировать если проблема массовая (массовая может быть из-за обновления релиза 1С)
Давайте начнем по порядку и зайдем в "Службы Компонентов Windows" от имени администратора на пользовательской машине где возникает данная ошибка и найдем там " Приложения COM+ "
Теперь нужно нажать правой клавишей мыши по " Приложения COM+ " и выбрать " Создать-->Приложение "
Откроется мастер установки в котором нужно проделать все что показано на скринах ниже
У вас в основном окне появится только что созданное приложение и его нужно настроить, для этого щелкаем по нему правой кнопкой мыши и выбираем " Свойства " и переходим во вкладку " Безопасность " в которой настраиваем все один в один как на скрине ниже
Теперь необходимо для него создать компоненту и запустить ее в работу, снова предлагаю наглядно посмотреть на скрины ниже.
Осталось только запустить компоненту и ошибку в 1С вы устранили. Для запуска вам нужно перейти в " Приложения COM+ ", в центральном окне найти Msscript и нажать правой кнопкой мыши, затем нажать " Пуск " и ваша компонента начнет работать.
Теперь пару слов об автоматизации данного процесса т.к. бывают массовые случаи когда слетает данная компонента. Наша задача сделать msi файл и затем его разлить с помощью групповых политик или с помощью kaspersky security center (если конечно вы им пользуетесь - в моем случае удобнее было воспользоваться именно касперским)
Для создания файла msi необходимо выполнить все рекомендации со скринов ниже
Первое что нужно сделать, это запустить командную строку от имени администратора.
В командной строке Windows набираете cmd , в писке выбора появится программа с таким названием, устанавливаете курсор на эту программу и выбираете из контекстного меню «Запуск под администратором» (см. картинку ниже).
Затем ввести команду (можно двумя способами):
1. regsvr32 "C:\Program Files (x86)\1cv8[ версия платформы ]\bin\comcntr.dll"
2. C:\Program Files (x86)\1cv8[ версия платформы ]\bin>regsvr32 comcntr.dll
Прежде чем ввести эти команды нужно переместиться по каталогам. Допустим, при запуске командной строки появляется совсем другой каталог, пример можно увидеть на картинке ниже.
Для смены каталога нужно написать cd , после которого установить пробел, а затем указать тот путь, который нам нужен, например C :\ Program Files ( x 86)\1 cv 8[версия платформы]\ bin , затем после указания пути к каталогу нажимаете Enter . Смотрите пример смены каталога на картинке ниже.
Вот теперь рядом с каталогом можно ввести regsvr 32 comcntr . dll , нажать Enter и зарегистрировать компоненту (смотрите пример на картинке ниже).
Если компоненту не удалось зарегистрировать, проверьте как вы запустили командную строку, возможно, что забыли запустить от имени администратора. Если все в порядке, то нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL.
Читайте также: