Открытие из обработки табличного документа в общей форме "ПечатьДокументов" с помощью БСП

01.09.15

Разработка - БСП (Библиотека стандартных подсистем)

В статье описан механизм создания обработки, табличный документ из которой можно непосредственно вывести в типовую форму печати БП 3.0 и УТ 11.1 (редакция БСП начиная с 2.2.4.43, где-то начало 2015 года). С помощью данного механизма удобно отлаживать печатные формы или создавать внешние обработки, выводящие что-нибудь на печать.

Файлы

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

Наименование Скачано Купить файл
Открытие ТД из формы обработки в форме ПечатьДокументов.epf
.epf 9,69Kb
12 2 500 руб. Купить

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

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

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

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

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

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

&НаКлиенте
Перем ТабДокумент;

&НаСервере
Процедура ПолучитьТабличныйДокумент(ТабДокумент)
	Обработка = РеквизитФормыВЗначение("Объект");
	ТабДокумент = Обработка.ПечатьВнешняя(Неопределено, Неопределено);
КонецПроцедуры

&НаКлиенте
Процедура КомандаПечать(Команда)	
	ПолучитьТабличныйДокумент(ТабДокумент);
...

процедура печати в модуле обработки

// Процедура возвращает табличный документа
//
Функция ПечатьВнешняя(МассивОбъектов, ОбъектыПечати) Экспорт
	ТабДокумент = Новый ТабличныйДокумент;
	Макет = ПолучитьМакет("Макет");
	Область = Макет.ПолучитьОбласть("Заголовок");
	Область.Параметры.Дата = ТекущаяДата();
	ТабДокумент.Вывести(Область);
	
	Возврат ТабДокумент;
КонецФункции

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

//Для стандартных печатных форм используется таблица значений, но создать её на клиенте нельзя
	//по этой причине воспользуемся массивом и структурой 
	КоллекцияПечатныхФормСтруктура = Новый Структура;
	КоллекцияПечатныхФормСтруктура.Вставить("СинонимМакета"        , Неопределено);
	КоллекцияПечатныхФормСтруктура.Вставить("Экземпляров"          , 1);
	КоллекцияПечатныхФормСтруктура.Вставить("ИмяМакета"            , Неопределено);
	КоллекцияПечатныхФормСтруктура.Вставить("ПолныйПутьКМакету"    , Неопределено);
	КоллекцияПечатныхФормСтруктура.Вставить("ИмяФайлаПечатнойФормы", Неопределено);
	КоллекцияПечатныхФормСтруктура.Вставить("ТабличныйДокумент"    , ТабДокумент);	
	КоллекцияПечатныхФорм = Новый Массив;
	КоллекцияПечатныхФорм.Добавить(КоллекцияПечатныхФормСтруктура);
	
	ПараметрыПечати = Новый Структура("ДополнительныеПараметры", Новый Структура);
	//если значение будет Ложь, то система попытается восстановить пользовательские настройки, которых у нас нет
	ПараметрыПечати.Вставить("ПереопределитьПользовательскиеНастройкиКоличества", Истина);	
	//заголовок печатной формы
	ПараметрыПечати.Вставить("ЗаголовокФормы", "Заголовок моей печатной формы");
	
	ПараметрыОткрытия = Новый Структура;
	//не важно, какое значение лишь бы было заполнено, иначе будет ошибка
	ПараметрыОткрытия.Вставить("ИсточникДанных"       , "ВнешняяОбработка");
	ПараметрыОткрытия.Вставить("ПараметрыПечати"      , ПараметрыПечати);	
	ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);	
	ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);	
	
КонецПроцедуры

Пример обработки можно скачать ниже.

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

Печатная форма печать внешняя печать

См. также

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    2281    4    0    

5

БСП (Библиотека стандартных подсистем) Разработчик Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

3254 руб.

21.11.2024    14353    51    30    

59

БСП (Библиотека стандартных подсистем) Разработчик 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Наиболее часто используемые методы БСП 3.1.12. На момент публикации БСП 3.1.12 - является последней версией, и на ней построены все новые типовые конфигурации.

28.09.2026    3123    SergMuravev    2    

16

БСП (Библиотека стандартных подсистем) Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)

Все мы когда-то писали свои функции для получения реквизита через точку или парсинга строк. В этой статье собрана выжимка самых полезных и ежедневно необходимых процедур и функций БСП. Никакой сухой документации ИТС — только жизненные кейсы, чистый код и разбор ситуаций, когда стандартные подсистемы делают работу за нас.

1 стартмани

30.07.2026    8740    Elya_Elya    14    

20

БСП (Библиотека стандартных подсистем) Разработчик Стажер 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Часто требуется вывести понятное пользователю сообщение, ткнув его в конкретный проблемный реквизит, что называется, "носом"... И вот тут довольно часто приходится перечитывать параметры функции ОбщегоНазначения[Клиент].СообщениеПользователю. Решила написать для себя шпаргалку и поделиться с сообществом.

24.07.2026    2744    check2    2    

11

БСП (Библиотека стандартных подсистем) Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Каждый раз, когда разработчик 1С пишет очередной цикл для свертки массива или использует конструкцию Попытка / Исключение для проверки наличия реквизита, где-то грустит один архитектор фирмы «1С». Мы привыкли изобретать велосипеды там, где в Библиотеке стандартных подсистем (БСП) уже давно лежат готовые, оптимизированные и протестированные на тысячах баз решения. Ниже — практическая подборка из 8 методов актуальных релизов БСП (3.X), которые сделают ваш код чище, быстрее и профессиональнее. Разберем на примерах «Было / Стало».

04.06.2026    13211    Kaliostr0    21    

36

БСП (Библиотека стандартных подсистем) Универсальные функции Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

06.02.2026    22954    manul1c    7    

28
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. infostartfilipich 17.02.16 12:27 Сейчас в теме
Спасибо, пригодилось!
2. vis_tmp 33 18.11.16 09:17 Сейчас в теме
Большое спасибо - всё работает!
3. vis_tmp 33 18.11.16 09:33 Сейчас в теме
http://infostart.ru/public/402197/

А вот есть ещё похожий вариант - только там "КоллекцияПечатныхФорм" формируется не вручную, а вызовом типовой функции.
4. waol 322 20.01.17 17:19 Сейчас в теме
5. Sangre1999 55 29.03.19 11:31 Сейчас в теме
Спасибо пригодилось, единственное пришлось добавить:
КоллекцияПечатныхФормСтруктура.Вставить("ОфисныеДокументы" , "");
Для отправки сообщения требуется регистрация/авторизация