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

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

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
135 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
79 Сообщений
alex0402
79 Сообщений
BuhRust
26 Сообщений
AIFrame
24 Сообщений
Golickoff Golickoff
22 Сообщений
ilyay ilyay
21 Сообщений
Варвар
20 Сообщений
Kironten
19 Сообщений
Римма
18 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal