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

10.06.21

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Клиенту потребовалось печатать договора из заказа клиента в Управлении торговлей 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();   
	
	
КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    73938    377    170    

322

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    266199    1483    421    

1177

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    61940    127    36    

136

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    39681    111    48    

125

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    7978    33    45    

49

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    26179    97    46    

104

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    4598    16    1    

20

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2409    6    0    

21
Для отправки сообщения требуется регистрация/авторизация