Печать WORD из тонкого клиента с доступом по вэб адресу (управляемые формы)

10.06.21

Разработка - Инструментарий разработчика

Вариант печати файлов WORD из 1С из-под тонкого клиента, подключенного по вэб адресу. В файле показан вариант печати динамических таблиц, то есть таблиц с изменяемым количеством строк. Обработка печати довольно простая. Опробована на Управление торговлей, редакция 11 (11.4.13.155), версия платформы 1С:Предприятие 8.3 (8.3.18.1334)

Скачать файлы

Наименование Файл Версия Размер
Печать ворд из тонкого клиента с доступом по вэб адресу управляемые формы :
.epf 58,61Kb
7
.epf 58,61Kb 7 Скачать

Клиенту потребовалось печатать договора из заказа клиента в Управлении торговлей 11.4. Делать стандартный договор 1с не хотелось, так как замучишься потом править, то это нужно доработать, то это. Сделал вариант печати из WORD, чтобы сами правили. Два варианта печати из внешнего файла и из макета обработки. Макет двоичные данные. Так вот из макета через вэб интерфейс не печатает. Не может перегнать файл. Только из внешнего файла, сохраненного на компьютере пользователя. Плохо, что один и тот же макет, нужно размножить для каждого нуждающегося. Хорошо, что каждый нуждающийся сам может модернизировать себе макет.

В файле могут быть использованы следующие переменные

<ДокНомер>             //Номер в формате только последние цифры без префиксов

<ДоговорНомер>     //Полный номер документа

<ДокДата>                //Дата в формате 20.05.2010

<ДоговорДата>        //Дата в формате 20 мая 2010 г

<КлиентНаименование> //Наименование клиента

<КлиентНаименованиеПолное>   //Полное наименование клиента

<АдресКлиента>      //Адрес клиента

<ТелефонКлиента>  //Контактный телефон клиента

<АдресЭПКлиента> //Адрес электронной почты клиента

<КонтрагентНаименование>         //Наименование контрагента

<КонтрагентНаименованиеПолное>        //Полное наименование контрагента

<ЮрАдресКонтрагента>    //Юридический адрес контрагента

<ПочтовыйАдресКонтрагента>    //Почтовый адрес контрагента

<КонтрагентИНН>              //ИНН Контрагента

<КонтрагентКПП>              //КПП Контрагента

<КонтрагентКодПоОКПО>                       //Код по ОКПО Контрагента

<ТелефонКонтрагента>                  //Телефон контрагента

<АдресЭПКонтрагента>                //Адрес электронной почты контрагента

<ОрганизацияНаименование>      //Наименование организации       

<ОрганизацияНаименованиеПолное>     //Полное наименование организации

<ОрганизацияНаименованиеСокращенное> //Сокращенное наименование организации

<ОрганизацияКПП>           //КПП Организации

<ОрганизацияОГРН>

<ОрганизацияИНН>

<Город>                                //Город организации (из юр. Адреса)

<ЮрАдресОрганизации>   //Юридический адрес организации

<ПочтовыйАдресОрганизации>   //Почтовый адрес организации

<ТелефонОрганизации>     //Телефон организации

<Соглашение>         

<Сделка>

<Валюта>      //Валюта договора

<СуммаДокумента>  //Обшая сумма по заказу

<ГрафикОплаты>     //График оплаты

<ЖелаемаяДатаОтгрузки>             //Желаемая дата отгрузки

<Склад>         //Склад

<ЦенаВключаетНДС>        //Цена включает НДС

<Менеджер>             //Менеджер

<НеОтгружатьЧастями>     //Не отгружать частями

<ДатаСогласования>           //Дата согласования

<Согласован>                       //Признак согласования

<ФормаОплаты>      //Форма оплаты

<БанковскийСчет> //Банковский счет организации

<НомерСчетаОрганизации>// Номер банковского счета организации

<БИКБанкаОрганизации>  //БИК банка организации

<НаименованиеБанкаОрганизации> //Наименование банка организации

<КоррСчетБанкаОрганизации>    //Корр счет банка организации

<ГородБанкаОрганизации>                       //Город банка организации

<БанковскийСчетКонтрагента>    //Банковский счет контрагента

<НомерСчетаКонтрагента>                       //Номер банковского счета контрагента

<НаименованиеБанкаКонтрагента>         //Наименование банка контрагента

<БИКБанкаКонтрагента>               //БИК банка контрагента

<КоррСчетБанкаКонтрагента>      //Корр счет банка контрагента

<ГородБанкаКонтрагента>            //Город банка контрагента

<СуммаАвансаДоОбеспечения>   //Сумма аванса до обеспечения

<СуммаПредоплатыДоОтгрузки>            //Сумма предоплаты до отгрузки

<ДатаОтгрузки>       //Дата отгрузки

<АдресДоставки>    //Адрес доставки

<НалогообложениеНДС>// Налогообложение НДС

<Комментарий>       //Комментарий документа

<НомерПоДаннымКлиента> //Номер по данным клиента

<ДатаПоДаннымКлиента> //Дата по данным клиента

<Грузоотправитель> //Грузоотправитель

<Грузополучатель>  //Грузополучатель

<БанковскийСчетГрузоотправителя> //Банковский счет грузоотправителя

<БанковскийСчетГрузополучателя>//      Банковский счет грузополучателя

<Договор>     //Договор документа

<Подразделение> //Подразделение

<Автор>                    //Автор

<ПорядокРасчетов>//           Порядок расчетов

<СпособДоставки>  //Способ доставки

<КонтактноеЛицо> //Контактное лицо

<КонтактноеЛицоРП>        //Контактное лицо родительный падеж

<КонтактноеЛицоДП>       //Контактное лицо дательный падеж

<Руководитель>       //Руководитель организации

<РуководительНаОсновании> //Руководитель действующий на основании устава или доверенности

<РуководительРП> //Руководитель в родительном падеже

<РуководительДП>             //Руководитель в дательном падеже

<РуководительФИО>          //Руководитель Фамилия Инициалы

<ДолжностьРуководителя>            //Должность руководителя

<ДолжностьРуководителяРП>      //Должность руководителя в родительном падеже

<ДолжностьРуководителяДП>      //Должность руководителя в дательном падеже

<ГлавныйБухгалтер>          //Главный бухгалтер

<ПорядокОплаты>              //Порядок оплаты

 

Переменные (слова в квадратных скобках) получены запросом к документу печати и загружены в структуру. Они добавляются в нужные места в документе WORD. Файл в формате *.docx.

&НаКлиенте
// Функция - заполняет шаблоны в файле шаблоне документа Word
//
Процедура ОбработатьФайлDocx(ПараметрыЗаполнения,ДокПечати) Экспорт
	//КаталогДокументов();
	ШаблоныКЗамене = ПолучитьШаблоныКЗамене(ДокПечати); 	
	ФайлШаблона = ВывестиМакетНаСервере(ЗначениеЗаполнено(ПутьКФайлу));
	
	Word = Новый COMОбъект("Word.Application");
	ДокументВорд = Word.Documents.Add(ФайлШаблона);
	ДокументВорд = Word.Application.Documents(1);
	ДокументВорд.Activate();
	КолСтрокТаб = 0;
	Для каждого ПараметрЗ Из ШаблоныКЗамене Цикл
		Если ПараметрЗ.Ключ = "КолСтрок" Тогда
			КолСтрокТаб = Число(ПараметрЗ.Значение);
		КонецЕсли;
		Попытка
			Замена = ДокументВорд.Content;
			Замена.Find.Execute("<"+ПараметрЗ.Ключ+">",0,0,,,,,,,ПараметрЗ.Значение,2);
		Исключение
			Сообщить("Ошибка "+"<"+ПараметрЗ.Ключ+">"+ " Знач "+ПараметрЗ.Значение);
		КонецПопытки;
	КонецЦикла;
	//Заполняем первую таблицу
	Если ДокументВорд.Bookmarks.Exists("Таблица1") Тогда
		
	    //Выделяем обязательную закладку начала таблицы
	    ДокументВорд.Bookmarks("Таблица1").Select();     
	     
	    //Перемещаемся вниз, выделяем строку таблицы и копируем ее в буфер обмена
	    ДокументВорд.Application.Selection.MoveDown();
	    ДокументВорд.Application.Selection.SelectRow();
	    ДокументВорд.Application.Selection.Copy();
	    Сч = 0; 
		Пока Сч < КолСтрокТаб Цикл
			Сч = Сч + 1;
	        Для каждого СтрокаТ Из ШаблоныКЗамене Цикл
				Если СтрокаТ.Ключ = "Номенклатура"+Сч Тогда
					Номенклатура = СтрокаТ.Значение;
				КонецЕсли;
				Если СтрокаТ.Ключ = "Количество"+Сч Тогда
					Количество = СтрокаТ.Значение;
				КонецЕсли;
				Если СтрокаТ.Ключ = "Цена"+Сч Тогда
					Цена = СтрокаТ.Значение;
				КонецЕсли;
				Если СтрокаТ.Ключ = "Сумма"+Сч Тогда
					Сумма = СтрокаТ.Значение;
				КонецЕсли;
			КонецЦикла;  
	        //Заменяем значения
	        ДокументВорд.Application.Selection.Find.Execute("<Знач1>" ,,,,,,,,,Сч,2);
	        ДокументВорд.Application.Selection.Find.Execute("<Знач2>" ,,,,,,,,,СокрЛП(Номенклатура),2);
	        //Последний параметр поиска пустой
	        ДокументВорд.Application.Selection.Find.Execute("<Знач3>" ,,,,,,,,,"Шт.",2);
			ДокументВорд.Application.Selection.Find.Execute("<Знач4>" ,,,,,,,,,СокрЛП(Количество),2);
			ДокументВорд.Application.Selection.Find.Execute("<Знач5>" ,,,,,,,,,СокрЛП(Цена),2);
			ДокументВорд.Application.Selection.Find.Execute("<Знач6>" ,,,,,,,,,СокрЛП(Сумма),2);
	         
	        //Перемещаемся вниз, вставляем из буфера обмена строку
	        ДокументВорд.Application.Selection.MoveDown();
	        ДокументВорд.Application.Selection.Paste();
	        //Перемещаемся вверх и выделяем строку для замены значений
	        ДокументВорд.Application.Selection.MoveUp();
	        ДокументВорд.Application.Selection.SelectRow();
	         
	    EndDo;
	     
	    //Вырезаем лишнюю строку
	    ДокументВорд.Application.Selection.Cut();
	     
	    //Скрываем обязательную закладку начала таблицы
	    ДокументВорд.Bookmarks("Таблица1").Select();
	    ДокументВорд.Application.Selection.TypeText(" ");
	     
	КонецЕсли;
	Word.Application.Visible = Истина;
	Word.Application.WindowState = 2;
	Word.Application.WindowState = 1;
	Word.Activate();   
	
	
КонецПроцедуры

 

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121534    670    389    

709

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7247    21    6    

38

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3488    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177710    1073    0    

848

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99328    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18092    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28078    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23589    15    15    

32
Оставьте свое сообщение