Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 10:02

Формирование документа WORD из 1С

Автор Pavel779, 31 окт 2012, 16:03

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

Pavel779

Народ помогите.
Заполняю документ WORD реквизитами из документа РТиУ программа БП 2.0
И здесь как раз стопарюсь. У меня в ворде заполняется только какой нибуть один реквизит а другие не заполняются. Если первый реквизит коментирую то заполняется следующий реквизит а другие нет. Пытался обойти в цикле не помогло, если кто знает помогите!!!!
Вот код
// Получим объект Microsoft Word из макета
    Макет = ПолучитьМакет("ДоговорКонтрагент").Получить();
    
    // Получим документ из объекта и активируем его
    Документ = Макет.Application.Documents(1);
    Документ.Activate();
    
    // Делаем выборку нужных реквизитов
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Номер,
    |    РеализацияТоваровУслуг.Дата,
    |    РеализацияТоваровУслуг.Контрагент.Наименование
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Выборка.Следующий();        
    
    
    
    НомерДок      = Выборка.Номер;
    ДатаДок       = Выборка.Дата;
    КонтрагентДок = Выборка.КонтрагентНаименование;
    
    // Поиск и замена маркеров
    
    Замена = Документ.Content.Find;    
    
    Замена.Execute("[НомерНакладной]",Ложь,Истина,Ложь,,,Истина,,Ложь, НомерДок);
    Замена.Execute("[ДатаНакладной]",Ложь,Истина,Ложь,,,Истина,,Ложь,ДатаДок);
    Замена.Execute("[Заказчик]",Ложь,Истина,Ложь,,,Истина,,Ложь,КонтрагентДок);
    
    // Вывод документа
    Макет.Application.Visible = Истина;
    Макет.Activate();
    
    Возврат Макет;


mixqn

я сам подобных операций не делал никогда (замену чего-то в ворде имею ввиду). в качестве предположения (основываясь на описании проблемы и коде): может быть, не стоит пытаться создавать переменную "Замена", а писать каждый раз весь код так примерно:
Документ.Content.Find.Execute("[НомерНакладной]",Ложь,Истина,Ложь,,,Истина,,Ложь, НомерДок);
Документ.Content.Find.Execute("[ДатаНакладной]",Ложь,Истина,Ложь,,,Истина,,Ложь,ДатаДок);
Документ.Content.Find.Execute("[Заказчик]",Ложь,Истина,Ложь,,,Истина,,Ложь,КонтрагентДок);

Pavel779

Решил, надо в конце строчки добовлять цифру 2
Код: [Выделить]Документ.Content.Find.Execute("[НомерНакладной]",Ложь,Истина,Ложь,,,Истина,,Ложь, НомерДок,2);

Добавлено: 31 окт 2012, 20:00


Теперь другая проблема.
Кто знает как вывести табличную часть документа в WORD.
Надо вывести:
Номенклатуру, кол-во, цену, сумму.

Добавлено: 01 ноя 2012, 11:02


НУ ХОТЬ КТО НИБУДЬ ПОМОГИТЕ МНЕ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Добавлено: 01 ноя 2012, 15:20


Всё Решил тему можно закрывать!!!

Lex161

Цитата: Pavel779 от 31 окт 2012, 19:17
Решил, надо в конце строчки добовлять цифру 2
Код: [Выделить]Документ.Content.Find.Execute("[НомерНакладной]",Ложь,Истина,Ложь,,,Истина,,Ложь, НомерДок,2);

Добавлено: 31 окт 2012, 20:00


Теперь другая проблема.
Кто знает как вывести табличную часть документа в WORD.
Надо вывести:
Номенклатуру, кол-во, цену, сумму.

Добавлено: 01 ноя 2012, 11:02


НУ ХОТЬ КТО НИБУДЬ ПОМОГИТЕ МНЕ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Добавлено: 01 ноя 2012, 15:20


Всё Решил тему можно закрывать!!!

Как решили проблему, поделитесь опытом с подрастающим поколением)))

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск