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

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

Автор 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

Поиск