Платформа: 1С:Предприятие 8.3 (8.3.6.2100)
Конфигурация:Риэлтор. Управление продажами недвижимости для «1С:Управление торговлей 8», редакция 11.1 (11.1.10.145/2.7.3.42)
Проблема:Файловая база размещена на сервере, опубликована на веб-сервере. Пользователи подключаются через тонкого клиента к веб-серверу. При печати шаблона WORD база выдает ошибку -2147467262(0х80004002) Интерфейс не поддерживается.
Сложности в процессе решения:
Согласно инструкции разработчиков, по словам ошибки «интерфейс не поддерживается» проделали следующее:
1. Пользователю USR1CV82, от имени которого запускается сервер 1С, дать права на запуск DCOM MicrosoftWord и DCOM Microsoft Excel (при необходимости).
Для этого нужно:
1.1. Запустить службу компонентов. Из командной строки набрать
mmccomexp.msc
и найти компоненту Word или Excel. Пример для Word представлен на рисунке ниже:
При запуске службы компонентов на 64-х разрядной машине, 32-х разрядные компоненты могут не отображаться, тогда запуск нужно осуществить через команду:
C:WINDOWSSysWOW64>mmc comexp.msc /32
1.2. Открыть свойства компоненты и перейти на закладку Безопасность.
1.3. В разделе Разрешения на запуск выбрать пункт Настроить и нажать кнопку Изменить. Добавить пользователя USR1CV82.
Не помогло, база выдавала ошибку: Данная команда недоступна, так как не открыт ни один документ.
В ходе работ закончилась лицензия на MS Office, и в конфигурации после создания COM-объекта «Word.Application» на каждом шаге в отладке ОС запускает процесс завершения установки и активации MS Office. Клиент купил лицензию для сервера на MS Office.
После установки лицензий вернулась ошибка -2147467262(0х80004002) Интерфейс не поддерживается.
По словам разработчиков, перевод обработки Word на клиента не решит проблему. Судя по предоставленным нами логам — ошибка возникает в режиме веб-клиента. В этом режиме программная обработка Word на клиенте не возможна, только серверная обработка.
Но для работы базы необходимо было решить данную проблему. Мы вернули все изменения, которые сделали по инструкции разработчика. Долго прорабатывали доступы к папкам временного хранилища для пользователей извне. Создали еще одного администратора без пользовательских настроек, для него заново настраивали IIS.
Решение:
Настроили работу сервера через Apache. Создали папку, в которой находятся редактируемые шаблоны Word, дали общий доступ к этой папке, для пользователя IUSR и группы пользователей IIS_users.
На Windows Server 2012 (64 разрядности) установлен Word 2013 (32 разрядности), а у пользователей установлен Adobe Reader. Шаблон договора заполняется в 1С на сервере и конвертируется в PDF, сохраняется во временную папку на сервере.
Мы переписали обработку, чтобы документ сохранился в формат PDF (по требованию клиента для запрета редактирования, изменения документа) и сохранялся во временное хранилище 1С. Из хранилища документ/файл передается на указанный нами путь (во временные папки у клиента), как для тонкого клиента, так и для веб-клиента. Открывается файл именно из этой временной папки. Ниже пример кода, который мы дописали для передачи файла с сервера на клиент.
&НаКлиенте
Попытка
ЗапуститьПриложение(ПолноеИмяФайлаНаКлиенте);
Исключение
Адрес = УПН_ОбщиеПроцедуры.ПолучитьФайл(ПолноеИмяФайлаНаКлиенте);
Описание = Новый ОписаниеПередаваемогоФайла(«C:doc» + ДанныеФайла.ИмяФайла,Адрес);
МассивОписаний=Новый Массив;
МассивОписаний.Добавить(Описание);
ПолучитьФайлы(МассивОписаний,,,Ложь);
ЗапуститьПриложение(«C:doc» + ДанныеФайла.ИмяФайла);
КонецПопытки;
&НаСервере
Функция ПолучитьФайл(ПолноеИмяФайлаНаКлиенте) Экспорт
Двоичное = Новый ДвоичныеДанные(ПолноеИмяФайлаНаКлиенте);
Адрес = ПоместитьВоВременноеХранилище(Двоичное);
Возврат Адрес
КонецФункции
В настроках Панель управления, далее путь: Администрирование->Управление групповой политикой->Домены – выбираем наш сервер и во вкладке «Делегирование» добавляем группу IIS_users и пользователя IUSR (через которого подключаются внешние пользователи).
В веб-клиенте после отправки документа на печать браузе попросит установить расширение. Нужно установить, и все заработает:
Предпочтительнее использовать Internet Explorer (IE) не ниже 8 версии. При использовании Google Chrome (гугл хром) возникает ошибка: Использование модальных окон в данном режиме запрещено.
Если Internet Explorer не запускает документ на печать, можно принудительно запустить браузер от имени администратора:
В тонком клиенте сразу открывается заполненный шаблон (на примере ниже стерты данные клиента). Форма открывается в формате PDF по требованию клиента, чтобы пользователь не мог редактировать документ перед печатью.
Есть веб-сервис. При вызове одного из его методов нужно сформировать вордовский файл и записать его на диск. Проблема в том, что в контексте WS-соединения не получается создать ком-объект ворда. Например, следующая строчка
Ворд = новый COMОбъект(«Word.Basic»);
дает ошибку
Error calling constructor (COMОбъект) reason: No such interface supported reason: No such interface supported
При этом com-соединение «V82.COMConnector» создается, инициализируется и функционирует нормально.
Пытались извратиться в попытке уйти от контекста ws-соединения: вынесли создание объекта ворда в процедуру модуля внешнего соединения, создавали сначала соединение с 1С, а у этого соединения уже вызывали процедуру по работе с вордом, но получили ту же самую ошибку.
Странная ситуация, т.к. судя по справке доступность у COMОбъекта Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
При этом в обычном толстом клиенте код вполне рабочий.
Что можно еще предпринять?
Автор Истребитель, 22 июл 2015, 17:48
0 Пользователей и 1 гость просматривают эту тему.
При попытке создать COM объект Excel.Application вылезает стандартная ошибка:
Ошибка получения объекта COM: -2147467262(0x80004002): No such interface support
Однако, если открыть диспетчер задач, то приложение excel.exe запускается!
Приложение excel x32, 1Cка тоже x32.
В списках классов (HKLMSoftwareClasses) класс Excel.Application присутствует.
Права на Distributed COM дал своему юзеру, перелогинился, не помогло, дал всем (Everyone), не помогло.
База файловая.
Попробуйте так
Попытка
ОбъектЭксель = ПолучитьCOMОбъект(СокрЛП(ФайлЗагрузки));//ФайлЗагрузки - путь к файлу. строка
Исключение
Сообщить("Неудачная попытка открытия файла:"+СокрЛП(ФайлЗагрузки));
Возврат;
КонецПопытки;
КомОбъектЗагрузки = ОбъектЭксель.WorkSheets(1);
Очень забавно. Если перед вызовом функции с параметрами (Путь,Excel.Application) вызвать её без указания Excel.Application то повторный вызов уже с указанием Excel.Application работает!
Т.е. так работает:
ПолучитьCOMОбъект(ИмяФайла,)
ПолучитьCOMОбъект(ИмяФайла,"Excel.Application")
Так не работает:
ПолучитьCOMОбъект(ИмяФайла,"Excel.Application")
В любом случае, в дальнейшем вылезает вообще непонятная ошибка:
{Форма.Форма.Форма(47)}: Ошибка при вызове метода контекста (ПрочитатьЛистExcel)
ПрочитатьЛистExcel(,ПолучитьCOMОбъект(ИмяФайла));
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'COMОбъект'
Поздравляю, походу вы открыли для себя впервые особенности управляемого приложения.
Ок, где мне почитать про эти «особенности» чтобы разобраться как выполнить такое простое задание, как чтение excel файла?
Путем проб и ошибок
Пробуйте «&НаСервере» всё это делать
Помогли — Скажи спасибо! Решил сам — поделись решением!
Не сочтите за издевательство: http://v8.1c.ru/metod/faq2/
&НаКлиенте — это только форма, видимость,доступность, условное офомление и т.д.
&НаСервере — это работа с объектами. Добавить строки, заполнить объект и т.д.
С клиента можно вызывать сервер, наоборот — нельзя.
Все прочие особенности = интернет большой, уверен справитесь
Дааа. Простейшие вещи теперь хрен сделаешь. Почитал я это. Замечательно! Погуглил даже. Простейшая задача, неясно как решать.
Я хочу создать программно документ, заполнить его на основании данных из экселя, и открыть.
На клиенте я это сделать не могу, на клиенте «Документы» неопределена (нельзя создать документ). На сервере тоже не могу, нельзя открыть форму. На клиент нельзя передать ссылку на документ (когда пытаюсь сделать «Возврат Док», где Док это новый документ, вылезает ошибка передачи данных). Гугл «1с 8.3 передача документа с сервера на клиент» ничего не дал.
Что делать?
Остается сесть в углу и плакать.
На клиенте формируете структуры с простыми данными (строки, даты и т.д.) передаете на сервер. Создаете/ищите документ на сервере и возвращаете ссылку на документ.
После обновления платформы 1С Предприятие 8.2 на сервере приложений я стал получать в логах служебной базы ошибку
{Обработка.СборДанных.МодульОбъекта(7)}: Ошибка при вызове конструктора (COMObject)
по причине:
No such interface supported
по причине:
No such interface supported
Где в строке 7 строяла следующая инструкция :
Excel = Новый COMObject(«Excel.Application»);
Соответственно, обработка вследствие этой ошибки не работала как положено.
Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.2, в группу Distributed COM Users и в группу локальных администраторов. Этого было достаточно, чтобы ошибка исчезла.
Запись опубликована в рубрике Программное обеспечение с метками 1С, com-соединение, ЗУП. Добавьте в закладки постоянную ссылку.
1
2
Показывать по
10
20
40
сообщений
Новая тема
Ответить
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Необходимо сравнить данные в трех базах: УТ 10.3, БП 2.0 и Бух 7.7
Хочу использовать для этого COM-подключение к базам 7.7 и 2.0 из УТ.
Если базы поставить на Win XP, то COM-подключение работает.
Начинается лето и некоторое время я хотел поработать на даче. Перенес базы на ноутбук с Win 8.1. Отдельно все базы доступны и с ними можно делать что угодно. Но COM-подключение не работает
Выдается ошибка:
Ошибка при вызове конструктора (COMОбъект)
БазаОлеТек= Новый COMОбъект(«V77.Application»);
по причине:
-2147467262(0x80004002): Интерфейс не поддерживается
Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ?
Платформа 7.7 устанавливалась копированием.
Для УТ и БП использовалась платформа 8.2 и 8.3
Консультант 1С
Дата регистрации: 06.09.2008
Сообщений: 300
pentanom пишет:
Цитата |
---|
Платформа 7.7 устанавливалась копированием |
Я впервые слышу об установке копированием.
Почему бы не установить штатно?
Рисовод
Дата регистрации: 26.12.2007
Сообщений: 25776
Геннадий Новосибрск пишет:
Цитата | ||
---|---|---|
pentanom пишет:
Я впервые слышу об установке копированием. |
но бесплатно …
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Геннадий Новосибрск, На Win 8 (а также и на Win 7) штатно не устанавливается
Почитайте об этом в интернете
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Рисовод, Про «бесплатно» не понятно. Из установочного комплекта 7.7 в Win 8 не устанавливается
Рекомендуют установить платформу на XP, а потом скопировать каталог, в который установлена 7.7, скопировать на компьютер с Win 8.
Так и было сделано. Отдельно все базы доступны работают, а COM-подключение не работает.
И причем здесь «бесплатно» ?
Консультант 1С
Дата регистрации: 06.09.2008
Сообщений: 300
pentanom пишет:
Цитата |
---|
Геннадий Новосибирск , На Win 8 (а также и на Win 7) штатно не устанавливается Почитайте об этом в интернете |
Как-то странноватенько — задавать один вопрос, под которым закамуфлирован на самом деле — другой, для разгадывания которого отсылать в интернет без конкретных ссылок
Там же в интернете и пишут — что делать… надо было очень постараться, чтобы понять это так, чтобы не работало и не устанавливалось…
Первые 2 самых очевидных способа, среди множества других без установок копированием, которые находятся сразу поиском в интернете:
- поднять виртуальную машину с Windows XP из под Windows 8.1 и там всё устанавливать без копирования
- в свойствах файла запуска в разделе Совместимость отметить:
— запустить программу в режиме совместимости c:
Windows XP (Пакет Обновления 3)
— Выполнять эту программу от имени администратора
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Геннадий Новосибирск, Вопрос был: «Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ? «
И хотелось бы получить ответ на этот вопрос.
А если вы что-то советуете по поводу установки 7.7 на Вин 8, то сначала попробуйте сделать это.
А если нечего ответить на мой вопрос, то и не надо отвечать вообще.
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Копировать нужно в каталог Program Files (x86). Тогда COM-подключение работает. В XP можно копировать в любое место (хотя можно и установить из установочного комплекта).
Денис (САМАРА)
Дата регистрации: 09.04.2008
Сообщений: 8351
Цитата |
---|
В XP можно копировать в любое место |
Это от того, что теперь есть разница между х86 и х64 приложениями. К какой категории относится 7.7 думаю сами догадаетесь…
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Денис (САМАРА), теперь -то все умные. А что бы вначале об этом не сказать ?
Лучше подскажите как эту тему закрыть.