БСП. Настраиваемый комплект документов. Внешние печатные формы

09.06.17

Учетные задачи - Печатные формы

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

Постановка задачи

Итак, возникла следующая задача: распечатывать нажатием одной кнопки комплект документов при приёме на работу сотрудника в ЗУП 3.1. Список печатных форм следующий:

  • Приказ о приеме;
  • Трудовой договор;
  • Согласие на обработку персональных данных.

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

Реализация

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

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ПриемНаРаботу");
    МассивНазначений.Добавить("Документ.ПриемНаРаботуСписком");     
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Комплект документов");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Печать комплекта документов");
    
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = 'Комплект документов'");
    Команда.Идентификатор = "ПриказОПриеме,ТрудовойДоговор,СогласиеНаОбработку";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    Команда.ПоказыватьОповещение = Истина;
    Команда.Модификатор = "ПечатьMXL";
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Процедура печати выглядит следующим образом:

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, Отладка=ложь) Экспорт 
	
	ГенеральныйДиректор = КтоПодписываетДокументы();
		
	//Приказ о приеме
	ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПриказОПриеме");
	Если ПечатнаяФорма <> Неопределено Тогда
		Если ГенеральныйДиректор Тогда
			ПечатнаяФорма.ИмяВРЕГ = "ПФ_MXL_Т1";
			Обработки.ПечатьКадровыхПриказов.Печать(МассивОбъектов, , КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);			
		Иначе
			ВПФ = СоздатьВПФ("ПриказОПриеме");
			ВПФ.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
		КонецЕсли;
		ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Приказ о приеме'");
	КонецЕсли;
	
	//ТД
	ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ТрудовойДоговор");
	Если ПечатнаяФорма <> Неопределено Тогда
		ВПФ = СоздатьВПФ("ТрудовойДоговорПРК");
		ВПФ.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
		ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Трудовой договор'");
	КонецЕсли;
	
	//Согласие на обработку
	ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "СогласиеНаОбработку");
	Если ПечатнаяФорма <> Неопределено Тогда
		ВПФ = СоздатьВПФ("СогласиеНаОбработку");
		ВПФ.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
		ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Согласие на обработку перс. данных'");
	КонецЕсли;
		
Конецпроцедуры

На входе имеем пустую коллекцию печатных форм, где уже есть формы с вышеперечисленными идентификаторами ("ИмяВРЕГ"). Cоздаём экземпляр соответствующей ВПФ и обращаемся к её экспортной процедуре "Печать". Внимание! Идентификаторы печатных форм в комплекте и ВПФ должны совпадать!

Внешнюю печатную форму вызываем так:

Функция СоздатьВПФ(ИмяОбъекта)
	
	АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", ИмяОбъекта).Ссылка.ХранилищеОбработки.Получить());
	СтрокаВО = ВнешниеОбработки.Подключить(АдресВоВременномХранилище, , Ложь);  
	ВООбъект = ВнешниеОбработки.Создать(СтрокаВО);
	
	Возврат ВООбъект;
	
КонецФункции

Если документы подписывает генеральный директор, нужно вызвать стандартную процедуру печати из обработки "ПечатьКадровыхПриказов". Всё бы ничего, но идентификатор у встроенной печатной формы другой. Нет проблем! Просто заменяем его на нужный:

ПечатнаяФорма.ИмяВРЕГ = "ПФ_MXL_Т1";

И видим на выходе следующее:

Может, кому-нибудь этот материал окажется полезным.

внешняя печатная форма комплект документов БСП

См. также

SALE! 15%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 1C:Бухгалтерия 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С.

6000 5100 руб.

09.11.2016    243273    1124    911    

1050

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

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

22200 руб.

06.10.2023    19873    51    19    

85

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

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

14400 руб.

13.03.2018    63054    224    79    

120

Печатные формы Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Транспорт, автопарки, такси Бухгалтерский учет Платные (руб)

Учет путевых листов выполнен в виде расширения. Предназначен для учета путевых листов в конфигурации БП 3.0., УТ 11.5 и КА 2.5 Печатная форма: Типовая межотраслевая форма № 3. Утверждена постановлением Госкомстата России от 28.11.97 № 78. Типовая межотраслевая форма № 4-П от 18.09.2008 г. N 152 с учетом изменений указанных в Приказе Министерства транспорта Российской Федерации №368 от 11 сентября 2020 г. №368, Типовая межотраслевая форма № ЭСМ-7, и др. ЭСМ-2, 4-С, 3 спец., 6 спец., ПЛ для Автомобильного крана.

3600 руб.

14.10.2019    40479    278    216    

182

Печатные формы Производство готовой продукции (работ, услуг) Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Строительство Россия Бухгалтерский учет Платные (руб)

Откройте для себя заполнение КС-2 и КС-3 в "1С:Бухгалтерия 3.0". Вы получаете удобство, скорость и систему, чтобы заполнить, распечатать и сохранить формы КС-2 и КС-3 из документов "Оказание производственных услуг" или "Реализация товаров услуг". Вы можете заполнить дополнительную информацию о материалах из документов "Требование-накладная" и указать сведения, которые не предусмотрены типовой конфигурацией "1С:Бухгалтерия 3.0". Так же доступно множество настроек для формирования КС-2 и КС-3.

4560 руб.

13.02.2019    102717    464    45    

447

Печатные формы Программист Пользователь Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Научите вашу 1C печатать из 1С в файл Word (Например: трудовые договоры, договоры с контрагентами, спецификации, дополнительные соглашения, приказы, коммерческие предложения, акты, накладные, карточки партнера или любого справочника и многие другие). Универсальная печать предназначена для формирования печатных форм на основе шаблонов в формате Word из любой конфигурации 1С. С помощью данного инструмента можно самостоятельно заполнить шаблон реквизитами справочника или документа 1С и сформировать печатные формы на основании ссылки на любой объект.

3960 руб.

08.10.2019    49365    180    105    

174

Печатные формы Учет рабочего времени Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Транспорт, автопарки, такси Россия Бухгалтерский учет Платные (руб)

Программа «Путевой лист грузового автомобиля в 1С:Бухгалтерия 3.0» - заполнить, распечатать, сохранить. Вы можете не только внести всю информацию и распечатать путевой лист грузового автомобиля в 1С, но и повторно использовать ранее введенные данные спустя любое время - данные путевого листа водителя сохраняются в "1С:Бухгалтерия 3.0" без каких-либо доработок.

4500 руб.

23.08.2019    59239    185    64    

179

Печатные формы Логистика, склад и ТМЦ Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обработки для "1С:Бухгалтерия предприятия 3.0", которые формируют акты МХ-1 и МХ-3 для документов "ПоступлениеТоваровУслуг", "Реализация товаров услуг", "Возврат товаров поставщику", "Передача материалов в эксплуатацию" соответственно. Так же можно сформировать акты с факсимиле, которая загружена в 1С:Бухгалтерия предприятия 3.0.

3720 руб.

18.02.2019    66096    223    15    

179
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4671 12.06.17 20:00 Сейчас в теме
2. Новиков 292 13.06.17 10:33 Сейчас в теме
3. fokin 13.06.17 11:40 Сейчас в теме
а подскажите в какой версии БП (3.0)
есть возможность менять печатные формы местами?

у нас на Бухгалтерия предприятия (3.0.47.28)
и 1С:ERP Управление предприятием (2.2.3.205)

нет возможности перемещать формы вверх/вниз
они выстраиваются по-умолчанию по алфавиту
4. WhiteOwl 448 14.06.17 12:40 Сейчас в теме
(3) Посмотрела в БП, там для печати комплекта используется другая форма, изменить порядок печатных форм в ней не получится.
5. shoy 19 14.06.17 17:25 Сейчас в теме
Благодарю за такую подсказку.
6. пользователь 05.07.17 09:26
Сообщение было скрыто модератором.
...
7. LexSeIch 212 06.07.17 07:41 Сейчас в теме
Спасибо за публикацию. Берем на заметку.
8. maxx 998 18.09.17 13:21 Сейчас в теме
У нас есть свой механизмик небольшой по комплекту, главный Момент что каждую печатной.форму
можно отправить на свой принтер
9. docerman 74 19.09.17 11:54 Сейчас в теме
А как можно при печати комплекта ввести свои параметры для передачи в печатные формы?
12. WhiteOwl 448 05.11.17 23:07 Сейчас в теме
(9) С параметрами в ВПФ под УФ вообще все непросто) Вот хорошая публикация по теме: https://infostart.ru/public/191796/
10. Поручик 4671 27.09.17 10:39 Сейчас в теме
11. Поручик 4671 28.09.17 23:38 Сейчас в теме
У меня условия были посложнее. Формировать комплект из разных документов в УТ 11 в зависимости от налогообложения и формы оплаты, указанных в соглашении реализации, то есть набор печатных форм заранее неизвестен. Вывернулся с помощью "динамической" генерации коллекции печатных форм в процедуре печати.
13. user1043839 05.09.18 09:52 Сейчас в теме
Почему то с этим кодом говорит что табличный документ не сформирован в обработчике печати, все пролазил не могу понять куда копать?
medexe; programmer_87; +2 Ответить
14. klaus38 06.10.20 10:02 Сейчас в теме
Я такие конструкции выдумывал, нечитаемые, а тут так изящно. Спасибо. 101- плюс.
user894576; c300pm; +2 Ответить
15. user1226970 28.01.21 06:52 Сейчас в теме
Создала 2 ВПФ,третья-комплект документов.Добавила код СведенияОВнешнейОбработке() и процедуры Печати,открываю комплект, выдает ошибку-слишклм много фактических параметров в УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ВПФ");
Что не так?
16. terran_1C 25.01.22 16:55 Сейчас в теме
(15) при такой ошибке необходимо добавить проверку перед вызовом УправлениеПечатью.СведенияОПечатнойФорме и процедуру

// проверка
Если ТипЗНЧ(КоллекцияПечатныхФорм) = Тип("Массив") Тогда
МассивСтруктурВТаблЗначений(КоллекцияПечатныхФорм);
КонецЕсли;

Процедура МассивСтруктурВТаблЗначений(КоллекцияПечатныхФорм)

КоллекцияПечатныхФормТ = Новый ТаблицаЗначений;
Колонки = КоллекцияПечатныхФормТ.Колонки;

Для каждого ЭлементМассива Из КоллекцияПечатныхФорм Цикл

СтрокаТЗ = КоллекцияПечатныхФормТ.Добавить();

Для каждого Свойство Из ЭлементМассива Цикл

Если Колонки.Найти(Свойство.Ключ) = Неопределено Тогда
//МассТипов = Новый Массив();
//МассТипов.Добавить(ТипЗНЧ(Свойство.Ключ));
Колонки.Добавить(Свойство.Ключ);
КонецЕсли;

СтрокаТЗ[Свойство.Ключ] = Свойство.Значение;

КонецЦикла;

КонецЦикла;

КоллекцияПечатныхФорм = КоллекцияПечатныхФормТ;

КонецПроцедуры
17. Shestopalova_L 15.04.22 10:52 Сейчас в теме
Столкнулась с проблемой, когда комплект состоит из большого количества печатных форм и разного количества копий. Проблема возникает в этой строке:
Команда.Идентификатор = "ПриказОПриеме,ТрудовойДоговор,СогласиеНаОбработку";
Здесь перечисляются все идентификаторы печ. форм и если есть копии, то надо повторять идентификаторы по количеству копий. Поле идентификатор, строка с ограничением до 100 символов, соответственно не все нужные печ.формы помещаются. Подскажите пожалуйста, как можно это решить?
18. WhiteOwl 448 15.04.22 14:36 Сейчас в теме
(17) попробуйте примерно так:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	МассивНазначений = Новый Массив;
	МассивНазначений.Добавить("ЛюбаяСсылка"); 
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование", "Комплект документов"); 
	ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ); 
	ПараметрыРегистрации.Вставить("Версия", "1.0"); 
	ПараметрыРегистрации.Вставить("Информация", "Печать комплекта документов"); 
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Комплект документов'");
	Команда.Идентификатор = "КомплектДокументов";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	Команда.ПоказыватьОповещение = Истина;
	Команда.Модификатор = "ПечатьMXL"; 
	
	Возврат ПараметрыРегистрации; 
	
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, Отладка=ложь) Экспорт 	
		
	КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("ПриказОПриеме,ТрудовойДоговор,СогласиеНаОбработку,Полиграф,ДоговорОМатОтв,СоглОНеразгл,ДопСогл2");
	
	//Приказ о приеме
	ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПриказОПриеме");
	Если ПечатнаяФорма <> Неопределено Тогда
...
Показать


Насчёт копий есть более изящное решение, вот тут в комментариях посмотрите:
https://forum.infostart.ru/forum9/topic220334/
Shestopalova_L; +1 Ответить
19. Shestopalova_L 15.04.22 16:41 Сейчас в теме
(18)
УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(


Большое спасибо! Получилось.
20. mariya.mary.00 31.08.22 12:31 Сейчас в теме
Добрый день!
Подскажите, пожалуйста, а можно выводить в комплект печатные формы с макетом active document, например если печатаем сразу в word?
Печатная форма в списке комплекта появляется, но при нажатии кнопки печать получаю сообщение - "Печатная форма недоступна".
21. WhiteOwl 448 31.08.22 18:19 Сейчас в теме
(20) не доводилось сталкиваться, к сожалению, не подскажу.
22. ValentineZ 02.12.22 11:34 Сейчас в теме
23. user1965444 04.03.24 22:40 Сейчас в теме
Может я делаю что-то не так, но у меня в имя ПФ попадает путь к файлу ошибка и всё...
Ошибка при выполнении файловой операции 'e1cib/tempstorage/9fd05d3d-8d0d-4a78-a220-8f4daeebf9af?seanceId=NTk3OWY0NzQtYzg3YS00YTliLThhNjAtYzkxNTUxMGYwMzNm94y­gJMX28keG0'. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)
Оставьте свое сообщение