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

Проблема вывода печатной формы в ВОРД

Автор margo, 17 июл 2024, 11:12

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

margo

День добрый! На скрине изображена проблема - в связи с чем это возникает и как можно это исправить? <_<

LexaK

margo, Проблема возникает в связи с тем что у Ворда и 1С не совпадают форматы (чего-то там)
исправляется тем что создается Вордовский шаблон/документ и уже он заполняется кодом из 1С.
если помогло нажмите: Спасибо!

margo

Цитата: LexaK от 17 июл 2024, 11:27margo, Проблема возникает в связи с тем что у Ворда и 1С не совпадают форматы (чего-то там)
исправляется тем что создается Вордовский шаблон/документ и уже он заполняется кодом из 1С.

ммм, но я так и делала вроде ж. Создана шаблон, выделала текст замены, в 1С прописала процедуры замены текста. Шаблон загрузила как бинарные данные. Вроде ж все так)) :xfbnsdfb:  :dfbsdfbsdf:

Максим75

margo, когда-то игрался с макетом ворда, может поможет

Процедура ПечатьАктивНаСервере(СсылкаНаДокумент)

Макет = Документы.ПриходнаяНакладная.ПолучитьМакет("МакетАктив");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходнаяНакладная.Номер КАК Номер,
| ПриходнаяНакладная.Дата КАК Дата,
| ПриходнаяНакладная.СуммаДокумента КАК СуммаДокумента,
| ПриходнаяНакладная.Поставщик.Наименование КАК Поставщик
|ИЗ
| Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
|ГДЕ
| ПриходнаяНакладная.Ссылка = &СсылкаНаДокумент
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПриходнаяНакладнаяТМЦ.НомерСтроки КАК НомерСтроки,
| ПриходнаяНакладнаяТМЦ.Товар.Наименование КАК Товар,
| ПриходнаяНакладнаяТМЦ.Колво КАК Колво,
| ПриходнаяНакладнаяТМЦ.Цена КАК Цена,
| ПриходнаяНакладнаяТМЦ.Сумма КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.ТМЦ КАК ПриходнаяНакладнаяТМЦ
|ГДЕ
| ПриходнаяНакладнаяТМЦ.Ссылка = &СсылкаНаДокумент";

Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

МассивРезультатовЗапроса = Запрос.ВыполнитьПакет();//выполняется пакет запросов
//один по шапке документа
//второй по табличной части
//получаем массив результатов выполнения запроса
//обращение к каждому результату как к элементы массива.

ВыборкаШапка = МассивРезультатовЗапроса[0].Выбрать();//выборка по первому элементу массива, т.е. по шапке документа
ВыборкаТовары = МассивРезультатовЗапроса[1].Выбрать();//выборка по второму элементу массива, т.е. по табличной части товары

ВыборкаШапка.Следующий();//в выборке всего 1 строка, поэтому на ней и позиционируемся

Word = Макет.Получить();

Word.Application.Visible = Ложь;

Doc = Word.Application.Documents(1);
Doc.Activate();

Word.Bookmarks("НомерНакладной").Select();
Word.Application.Selection.TypeText(ВыборкаШапка.Номер);
                                                               
Word.Bookmarks("ДатаНакладной").Select();
Word.Application.Selection.TypeText(Формат(ВыборкаШапка.Дата,"ДФ=dd.MM.yyyy"));

Word.Bookmarks("Поставщик").Select();
Word.Application.Selection.TypeText(ВыборкаШапка.Поставщик);

Word.Bookmarks("СуммаОбщая").Select();
Word.Application.Selection.TypeText(Формат(ВыборкаШапка.СуммаДокумента,"ЧДЦ=2"));

Word.Bookmarks("СуммаОбщаяПрописью").Select();
Word.Application.Selection.TypeText(ЧислоПрописью(ВыборкаШапка.СуммаДокумента,"L=uk_UA","гривня, гривні, гривень, ж, копійка, копійки, копійок, ж, 2"));

//ну и так далее по всем закладкам, которые могут быть в шаблоне макета

//самое интересное - вывод табличных частей
Таблица = Word.Tables.Item(1);//получаем первую таблицу в документе
//если несколько, то необходимо каждую получать таким образом
НомерСтроки=0;

Пока ВыборкаТовары.Следующий() цикл
НомерСтроки = НомерСтроки+1;
Row = Таблица.Rows.Add(Таблица.Rows(НомерСтроки+1));//начинаем добавлять со 2 строки, шапку пропускаем в таблице

Row.Cells(1).Range.Text = НомерСтроки; //Cells(i)-i колонка в текущей строке
Row.Cells(2).Range.Text = ВыборкаТовары.Товар;
Row.Cells(3).Range.Text = "шт";
Row.Cells(4).Range.Text = Формат(ВыборкаТовары.Цена,"ЧДЦ=2");
Row.Cells(5).Range.Text = ВыборкаТовары.Колво;
Row.Cells(6).Range.Text = Формат(ВыборкаТовары.Сумма,"ЧДЦ=2");

КОнецЦикла;
//Row = Таблица.Rows(НомерСтроки+1);
//Row.Cells(6).Range.Text = Формат(ВыборкаШапка.СуммаДокумента,"ЧДЦ=2");

Word.Bookmarks("СуммаОбщаяИтого").Select();
Word.Application.Selection.TypeText(Формат(ВыборкаШапка.СуммаДокумента,"ЧДЦ=2"));
Word.Application.Visible = Истина;

//Doc.Close();
//Word.Quit();


Документы.ПриходнаяНакладная.ПечатьАктив(СсылкаНаДокумент,Макет);

КОнецПроцедуры

Сам файл загружал в макеты документа с типом макета Active document.

В самом документе делаете закладки и уже обращаетесь к закладкам и пишу, что нужно.
Может Вам поможет.

LexaK

margo,
ЦитироватьПроблема вывода печатной формы в ВОРД
Печатная форма это Таб.Документ (в терминах 1С).
 
а если вы уже и так работаете с Вордом, то проверяйте как в нем все настроено,
текстовые области, режимы растягивания, возможно какие-то данные на стороне 1С надо обрезать, и др.

а вы не рассматривали вариант выгрузки ПФ именно табдока, сохранение его в ПДФ?
(очень красиво/правильно получается)
 
если помогло нажмите: Спасибо!

margo

 :nhsrm: прошу прощения, я забыла уточнить, когда выводится в Ворд, то все впорядке, ошибка возникает, при печати на принтер

margo

LexaK, да согдасна ТабДок это более красивее, но мы уже сделали не один приказ в ВОРДе и было все впорядке, вылезло такое только на одном приказе  :dfbbdrfb:

margo

Максим75,    прошу прощения, я забыла уточнить, когда выводится в Ворд, то все впорядке, ошибка возникает, при печати на принтер

Теги:

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

Рейтинг@Mail.ru

Поиск