[РЕШЕНО] Внешняя печатная форма, тонкий клиент печать в Word

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем deman_ru, 15 апр 2015.

  1. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    УТ 11, управляемое приложение. Есть внешняя печатная форма для справочника "Договора контрагентов". В качестве макета выступает документ MSWord, добавлен в Active Document. Заполнение данными осуществляется через поиск и замену. Потом документ открывается. В толстом клиенте работает все отлично. Пробую подключаться к базе через линк в браузере, естественно документ не открывается. Отсюда вопрос, как открыть сформированный документ на клиенте?
  2. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Так это уже получается веб-клиент. расширение работы с файлами установлено? И еще можно на этом компьютере установить тонкий клиент и при добавлении базы указать, что она живет на веб-сервере. Тогда по идее документы будут открываться.
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    В тонком клиенте? или в веб-клиенте ?
  4. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    Да, вы правы в веб-клиенте!
    а что за расширение работы с файлами?
  5. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Ну веб-клиент нужно устанавливать расширение для работы с файлами (на гугл хром точно нужно, на огнелиса не помню, остальные не смотрел). Кажется они даже в базе есть где-то. У Вас есть доступ на ИТС. Там про это написано: http://its.1c.ru/db/v83doc#bookmark:adm:TI000000250
  6. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    Расширение установил, настроил браузер в соответствии со статьей на ИТС. Сформированный документ word не открывает все равно.
    Не у кого случайно нет подобного примера? Чтобы была ВПФ, которая бы работала в веб клиенте, открывала сформированные документы word?
  7. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    А вариант с тонким клиентом совсем не подходит?
  8. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    Да он то подходит, но хотелось бы разобраться с этим именно в веб-клиенте.
  9. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    И так, после продолжительных поисков истины, дошел вот до такой ошибки:

    Думал может прав нет на временной каталог, но если попробовать любой диск, ошибка та же самая, ну только путь соответственно меняется. У кого какие мысли?

    Вложения:

  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Чем-то еще открыт файл.
  11. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Вы проверьте, 1С com-соединение закрывает перед открытием?
  12. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    Не могу разобраться как его закрыть... использую вот такой код:
    Код:
    ИмяМакета = "ДоговорОСФизЛицо";
            Word = Новый COMОбъект("Word.Application");
            Макет = ПолучитьМакетСервер(ИмяМакета);
            ВременныйПуть = КаталогВременныхФайлов();
            ИмяВременногоФайла = ВременныйПуть + "Договор.doc";
            Макет.Записать(ИмяВременногоФайла);
            ТекДок = Word.Documents.ADD(ИмяВременногоФайла);
    
    //Тут код по поиску ключевых слов в документе ворд и замена на нужные данные
    
    
    Word.Visible=Истина;
    Word = неопределено;
    
    Последнее редактирование: 16 апр 2015
  13. TopicStarter Overlay
    deman_ru
    Offline

    deman_ru Опытный в 1С

    Регистрация:
    27 дек 2011
    Сообщения:
    165
    Симпатии:
    1
    Баллы:
    29
    Задачу решил следующим образом:

    Код:
    &НаКлиенте
    Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
       
        ОткрытьДокумент(МассивОбъектов[0]);   
    
    КонецПроцедуры
    
    Код:
    &НаСервере
    Функция ФормированиеДоговораПоШаблону(МассивОбъектов)
        ИмяМакета = "ДоговорОСФизЛицо";
        ВремФайл = ПолучитьИмяВременногоФайла("doc");
        АктивныйДокумент = ПолучитьМакетСервер(ИмяМакета);
        АктивныйДокумент.Записать(ВремФайл);
        ИмяВременногоФайла = КаталогВременныхФайлов()+"Договор.doc";   
       
        Попытка
            КомОбъект = ПолучитьCOMОбъект(ВремФайл);
        Исключение
            Сообщить(" Ошибка создания шаблона договора");
            Возврат Неопределено;
        КонецПопытки;
           
        Документ = КомОбъект.Application.Documents(1);
    
    //Заполнение данными документа (поиск и замена)
    
           
            Документ.SaveAs(ВремФайл);
            Документ.SaveAs(ИмяВременногоФайла);
            КомОбъект.Application.Quit();
            КомОбъект = Неопределено;
       
            Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВремФайл));
            УдалитьФайлы(ВремФайл);
       
            Возврат Адрес;
    
    КонецФункции
    Код:
    &НаКлиенте
    Процедура ОткрытьДокумент(МассивОбъектов)
       
        Адрес = ФормированиеДоговораПоШаблону(МассивОбъектов);
        Если Адрес = Неопределено Тогда
            Возврат;
        КонецЕсли;
       
        ВремФайл = КаталогВременныхФайлов() + "Договор.doc";
    
        Если ПолучитьТекущуюСредуВыполнения() = "Толстый клиент"
                ИЛИ ПолучитьТекущуюСредуВыполнения() = "Сервер"
                ИЛИ ПолучитьТекущуюСредуВыполнения() = "Внешнее соединение"
                ИЛИ ПолучитьТекущуюСредуВыполнения() = "Тонкий клиент"
        Тогда
           
            ЗапуститьПриложение(КаталогВременныхФайлов()+"Договор.doc");
                   
            Иначе Если  ПолучитьТекущуюСредуВыполнения() = "Веб-клиент" Тогда
                       
                УстановитьРасширениеРаботыСФайлами();
                ПодключитьРасширениеРаботыСФайлами();  
                ПолучитьФайл(Адрес, ВремФайл);
                   
            КонецЕсли
        КонецЕсли
    
    КонецПроцедуры
    
    Таким образом документы открываются как в толстом клиенте, так и в веб-клиенте. Если у кого есть какие замечания по коду, может его как то можно оптимизировать, пожалуйста пишите.
    Fiocix нравится это.

Поделиться этой страницей