Имя: Пароль:
1C
1С v8
Microsoft Office 32х и сервер 1С 64х. Как подружить ?
0 dark70
 
14.12.21
17:18
Стоял Microsoft Office 32х и были файловые базы.
Установили Сервер 1С х86-64.
Получается, что пользователю USR1CV82 на запуск DCOM Microsoft Application я дать не могу.
Теперь обработки, использующие, например, COMОбъект("Word.Application") не работают.
Как-то можно обойти это переписав модули или же только покупать Office х64 ?
1 Kassern
 
14.12.21
17:21
(0) Все же есть в поисковике https://infostart.ru/1c/articles/325873/
2 dark70
 
14.12.21
17:28
(1) Спасибо. А то я искал, наткнулся на вот это
https://efsol.ru/manuals/com-object.html
"(здесь нужно обратить внимание на важный момент- если сервер 64-х разрядный, то и выпуск Office так же должен быть х64, иначе объекта Microsoft Excel Application не будет в списке и права для него не удастся настроить)."
3 Kassern
 
14.12.21
17:30
(2) если нет в списке, то лезем в регистр и правим, делов то
4 dark70
 
14.12.21
18:10
Может что-то есть, чтобы в реестр не лазить т.к. у меня права урезаны ?
Или может что из бесплатного, нормально работающего с сервером 1С ?
У меня там макеты с двоичными данными (вордовский шаблон) которые заполняются программно и на выходе вордовский документ.
Ну и загрузка из екселевских файлов.
5 vovastar
 
14.12.21
18:12
(4) требуем восстановления урезанных прав 1Сника!
6 timurhv
 
14.12.21
18:12
7 timurhv
 
14.12.21
18:16
(4) а вот загрузка из Excel без Office:

&НаКлиенте
Процедура Загрузить(Команда)
    
    Оповещение = Новый ОписаниеОповещения("ЗагрузитьExcelВыбораФайла", ЭтотОбъект);
    ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
    ПараметрыЗагрузки.ИдентификаторФормы = ЭтаФорма.УникальныйИдентификатор;
    ПараметрыЗагрузки.Диалог.Заголовок = НСтр("ru = 'Выберите Excel для загрузки'");
    ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Файлы Excel (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm|Все файлы(*.*)|*.*'");
    ФайловаяСистемаКлиент.ЗагрузитьФайл(Оповещение, ПараметрыЗагрузки);
    
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьExcelВыбораФайла(Результат, ДополнительныеПараметры) Экспорт
    
    Если Результат = Неопределено Тогда
        Возврат
    КонецЕсли;
    
    ЗагрузитьExcelНаСервере(Результат);
    
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьВозвратнуюНакладнуюИзExcelНаСервере(ДанныеФайла)
    ДвоичныеДанные = ПолучитьИЗВременногоХранилища(ДанныеФайла.Хранение);
    Расширение = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(ОбщегоНазначенияКлиентСервер.ПолучитьРасширениеИмениФайла(ДанныеФайла.Имя));
    
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение);
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
    УдалитьФайлы(ИмяВременногоФайла);
    
    Построитель = Новый ПостроительОтчета;

    НомерСтроки = 1;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область(НомерСтроки, 1, ТабличныйДокумент.ВысотаТаблицы, ТабличныйДокумент.ШиринаТаблицы));
    Построитель.Выполнить();
    
    РезультатЧтения = Построитель.Результат.Выгрузить();
КонецПроцедуры
8 dark70
 
14.12.21
22:35
(6) Понравилось последнее решение за исключением того, что файл шаблона хранится вне базы.
9 dark70
 
15.12.21
00:46
Я его победил :)
Перенес работу с комом на клиента. Тормозит правда теперь сильно. Но работает.