Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Июл 2017, 09:53
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Работа с Active document  (Прочитано 2673 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Подскажите, пожалуйста, как вывести в цикле макет в одном документе Word, для каждого сотрудника с новой страницы. Печатаю форму из документа "Кадровое перемещение организаций", для одного сотрудника все гуд, а вот когда их несколько - выводится только на одного.


Макет = ПолучитьМакет("Макет2");
    MSWord = Макет.Получить();
    MSWord.Content.Copy();
     
    //ВыборкаДляШапки = СформироватьЗапросДляПечати("ПоРеквизитамДокумента").Выбрать();

    ВыборкаРаботники = СформироватьЗапросДляПечати("ПоТабличнойЧастиДокумента").Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаРаботники.Следующий() Цикл
       
        ВложеннаяВыборка = ВыборкаРаботники.Выбрать();
        ВложеннаяВыборка.Следующий();
       
        Попытка
            Документ= MSWord.Range(0,0);
            Документ.Paste();
            Документ = MSWord.Application.Documents(1);
            Документ.Activate();
           
            // Получить объект, который будем использовать для поиска и замены.

            Замена = Документ.Content.Find;

            // Заменить заранее определенные ключевые конструкции на требуемый текст.

            Замена.Execute("#НомерДоговора"        , Ложь, Истина, Ложь, , , Истина, , Ложь, СокрЛП(ВложеннаяВыборка.НомерДоговора), 2);

            //Замена.Execute("#ДатаДоговора"        , Ложь, Истина, Ложь, , , Истина, , Ложь, Формат(СсылкаНаОбъект.Дата, "ДФ='дд ММММ гггг'") + "г.", 2);

          //......


            MSWord.Application.Visible = Истина;                         
            MSWord.Activate();
           

        Исключение
            // Если произойдет ошибка, выводятся данные об ошибке и объект закрывается.

            Сообщить(ОписаниеОшибки());
            MSWord.Application.Quit();
        КонецПопытки;
    КонецЦикла;


Оффлайн freez1301

  • ***
  • Сообщений: 130
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2014-04-25
  • Сайт: 
  • Профессия: Ученик 1С
Re: Работа с Active document
« Ответ #1: 22 Дек 2014, 10:20 »
запишите макрос, в котором сделайте руками разрыв страницы в ворде. Посмотрите что там записалось в макросе и оттуда уже копи паст в вашу процедуру

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Re: Работа с Active document
« Ответ #2: 22 Дек 2014, 12:19 »
запишите макрос, в котором сделайте руками разрыв страницы в ворде. Посмотрите что там записалось в макросе и оттуда уже копи паст в вашу процедуру

Я пробовала сделать нечто подобное:

    Если Счетчик < ВыборкаРаботники.Количество() тогда
         
          MSWord.Application.Selection.Paste();
          MSWord.Application.Selection.InsertBreak(7); // отвечает за разрыв
    КонецЕсли;
    Счетчик = Счетчик + 1;
он разрыв делает, но поля не заполняются, и бесконечно количество страниц формируется....

Оффлайн freez1301

  • ***
  • Сообщений: 130
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2014-04-25
  • Сайт: 
  • Профессия: Ученик 1С
Re: Работа с Active document
« Ответ #3: 22 Дек 2014, 12:59 »
а что если после каждой замены - сохранять документ, затем вставлять разрыв без условий?

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Re: Работа с Active document
« Ответ #4: 22 Дек 2014, 14:18 »
а что если после каждой замены - сохранять документ, затем вставлять разрыв без условий?
Неочень поняла, как его сохранять( не могли бы вы пример привести?

Оффлайн freez1301

  • ***
  • Сообщений: 130
  • РЕПУТАЦИЯ: 8
  • КПД: 6%
  • Регистрация: 2014-04-25
  • Сайт: 
  • Профессия: Ученик 1С
Re: Работа с Active document
« Ответ #5: 22 Дек 2014, 14:58 »
ActiveDocument.save

Оффлайн Liones23

  • **
  • Сообщений: 84
  • РЕПУТАЦИЯ: 1
  • КПД: 1%
  • Регистрация: 2013-12-18
  • Сайт: 
  • Профессия: Программист 1С
Re: Работа с Active document
« Ответ #6: 24 Мар 2016, 06:24 »
А как указать путь сохранения?
ActiveDocuments.Save(<Путь>);?


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
116 Сообщений
alex0402
102 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
AIFrame
50 Сообщений
ilyay ilyay
49 Сообщений
Golickoff Golickoff
49 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений

* Кто онлайн

  • Точка Гостей: 223
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal