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

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

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();
        КонецПопытки;
    КонецЦикла;

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

СМОТРЕТЬ >>


Оффлайн 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 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
158 Сообщений
alex0402
123 Сообщений
MuI_I_Ika MuI_I_Ika
55 Сообщений
Norfolk
52 Сообщений
LexaK
50 Сообщений
alexandr_ll
22 Сообщений
друган
20 Сообщений
AsadRoman
18 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal