[ШАБЛОН] Внешняя печатная форма с отладкой

24.10.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
[ШАБЛОН] Внешняя печатная форма с отладкой.:
.epf 10,86Kb ver:0.0.1
32
32 Скачать (1 SM) Купить за 1 850 руб.

Внешняя печатная форма прикрепляется к базе как дополнительная обработка через "Дополнительные отчеты и обработки". Для отладки все выведено на форму. 

Все тесты производились на платформе 8.3.20.1914, однако код отработает на любой из 8.2, 8.3. База КА 2.4.

 

Текст модуля объекта

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

    Возврат ПараметрыРегистрации;
		
КонецФункции

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

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, ПараметрыПечати) Экспорт
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.ОтображатьСетку = Ложь;  
	ТабличныйДокумент.ОтображатьЗаголовки = Ложь;
	ТабличныйДокумент.АвтоМасштаб = Истина;
	ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВНЕШНЯЯ_ПФ";      
	
	Макет = ПолучитьМакет("Макет");
	
	ЭтоПервыйДокумент = Истина;
	
	УстановитьПривилегированныйРежим(Истина); 
		
	Для Каждого ЗаказКлиента Из МассивОбъектов Цикл     
				
		Если ЭтоПервыйДокумент Тогда   
			ЭтоПервыйДокумент = Ложь;
		Иначе
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли; 
		
		// ШАПКА
		ОбластьМакета = Макет.ПолучитьОбласть("Шапка");		
		ТабличныйДокумент.Вывести(ОбластьМакета); 
				
		// Заполнение табличного документа   
		Итого = 0; 
		Валюта = ЗаказКлиента.Валюта;
		
		// ПОДВАЛ
		ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
		
		ОбластьПодвал.Параметры.Итого = Итого;        		
		ОбластьПодвал.Параметры.ИтоговаяСтоимостьЧисло = "" + Итого + " " + Валюта;
		ОбластьПодвал.Параметры.ИтоговаяСтоимостьТекст = "(" + ЧислоПрописью(Итого, "Л=ru_RU; ДП=Истина", "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2") + ")";

		// Получение данных ответсвенных лиц из ДО по связанному документу.
		ПодписантОрганизация = "";
		ПодписантКонтрагент = "";
		ДолжностьПодписантОрганизация = "";
		ДолжностьПодписантКонтрагент = "";
		
		Результат = ИнтеграцияС1СДокументооборотВызовСервера.ДанныеОбъектаДОПоВнешнемуОбъекту(ЗаказКлиента);
		
		Если Результат <> Неопределено Тогда // найден
			Прокси = ИнтеграцияС1СДокументооборотПовтИсп.ПолучитьПрокси();   
			ОбъектXDTO = ИнтеграцияС1СДокументооборот.ПолучитьОбъект(Прокси, Результат.type, Результат.ID);
			Если ОбъектXDTO.objects.Количество() > 0 И ОбъектXDTO.objects[0].partyRows.rows.Количество() > 0 
				И ОбъектXDTO.objects[0].partyRows.rows[0].signedBy <> Неопределено Тогда
				ПодписантОрганизация = ОбъектXDTO.objects[0].partyRows.rows[0].signedBy.name;
			КонецЕсли;
			Если ОбъектXDTO.objects.Количество() > 0 И ОбъектXDTO.objects[0].partyRows.rows.Количество() > 1 
				И ОбъектXDTO.objects[0].partyRows.rows[1].signedBy <> Неопределено Тогда
				ПодписантКонтрагент = ОбъектXDTO.objects[0].partyRows.rows[1].signedBy.name;
				ФИОПодписант = СтрРазделить(ПодписантКонтрагент, " ", Истина);
				Если ФИОПодписант.Количество() = 3 Тогда
					ПодписантКонтрагент = ФИОПодписант[0] + " " + Лев(ФИОПодписант[1], 1) + ". " + Лев(ФИОПодписант[2], 1) + ".";
				КонецЕсли;
				ПодписантXDTO = ИнтеграцияС1СДокументооборот.ПолучитьОбъект(Прокси, ОбъектXDTO.objects[0].partyRows.rows[1].signedBy.objectID.type, ОбъектXDTO.objects[0].partyRows.rows[1].signedBy.objectID.ID);
				Если ПодписантXDTO.objects.Количество() > 0 Тогда
					ДолжностьПодписантКонтрагент = ПодписантXDTO.objects[0].position;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;   
		
		Если ЗначениеЗаполнено(ПодписантОрганизация) Тогда
			
			Запрос = Новый Запрос;
			Запрос.Текст = 
				"ВЫБРАТЬ
				|	ОтветственныеЛицаОрганизаций.ФизическоеЛицо КАК ФизическоеЛицо,
				|	ОтветственныеЛицаОрганизаций.Должность КАК Должность
				|ИЗ
				|	Справочник.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
				|ГДЕ
				|	ОтветственныеЛицаОрганизаций.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)
				|	И ОтветственныеЛицаОрганизаций.Владелец = &Владелец
				|	И ОтветственныеЛицаОрганизаций.ДатаНачала <= &Дата
				|	И (ОтветственныеЛицаОрганизаций.ДатаОкончания >= &Дата
				|			ИЛИ ОтветственныеЛицаОрганизаций.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1))
				|	И ОтветственныеЛицаОрганизаций.ФизическоеЛицо.Наименование = &Наименование";  
			
			Запрос.УстановитьПараметр("Владелец", ЗаказКлиента.Организация);
			Запрос.УстановитьПараметр("Дата", ЗаказКлиента.Дата);
			Запрос.УстановитьПараметр("Наименование", ПодписантОрганизация); 
			
			Выборка = Запрос.Выполнить().Выбрать(); 
			Если Выборка.Следующий() Тогда
				ПодписантОрганизация = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(Выборка.ФизическоеЛицо, ЗаказКлиента.Дата);
				ДолжностьПодписантОрганизация = Выборка.Должность;
			КонецЕсли; 
			
		Иначе                                                        			
			ОтвЛ = ОтветственныеЛицаБП.ОтветственныеЛица(ЗаказКлиента.Организация, ЗаказКлиента.Дата);
			ПодписантОрганизация = ОтвЛ.РуководительПредставление;
			ДолжностьПодписантОрганизация = ОтвЛ.РуководительДолжностьПредставление;   		
		КонецЕсли;
		
		ОбластьПодвал.Параметры.Организация = ЗаказКлиента.Организация.НаименованиеСокращенное;
		ОбластьПодвал.Параметры.Контрагент = ЗаказКлиента.Контрагент.НаименованиеПолное;
		ОбластьПодвал.Параметры.ДолжностьПодписантОрганизация = ?(ЗначениеЗаполнено(ДолжностьПодписантОрганизация), ДолжностьПодписантОрганизация, "Представитель");
		ОбластьПодвал.Параметры.ДолжностьПодписантКонтрагент = ?(ЗначениеЗаполнено(ДолжностьПодписантКонтрагент), ДолжностьПодписантКонтрагент, "Представитель");
		ОбластьПодвал.Параметры.ПодписантОрганизация = ПодписантОрганизация;
		ОбластьПодвал.Параметры.ПодписантКонтрагент = ПодписантКонтрагент; 
		
		// Окрасим незаполненные поля
		Если НЕ ЗначениеЗаполнено(ДолжностьПодписантКонтрагент) Тогда
			ОбластьПодвал.Область(6,3,6,4).ЦветФона = ЦветаСтиля.ПолеСОшибкойФон;
		КонецЕсли;  
		
		ТабличныйДокумент.Вывести(ОбластьПодвал);
		
	КонецЦикла;
	
	УстановитьПривилегированныйРежим(Ложь);
	

	Возврат ТабличныйДокумент;

КонецФункции    

 

Текст формы

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

&НаКлиенте
Процедура ВыполнитьПечать(Команда)
	
	ВыполнитьПечатьНаСервере().Показать(); 
	
КонецПроцедуры

Данный шаблон внешней печатной формы был добавлен для ускорения поиска нужного кода и разработки.

Статья будет дорабатываться, будет добавлен полезный функционал, используемый в ПФ. 


 

Печать ПФ ВнешняяПФ Обработка Шаблон Печатная форма Внешняя печатная отладка

См. также

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

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

22200 руб.

06.10.2023    22329    58    19    

88

Печатные формы Бухгалтер Платформа 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 спец., ПЛ для Автомобильного крана.

4800 руб.

14.10.2019    41373    285    216    

190

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

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

3720 руб.

18.02.2019    67140    233    15    

187

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

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

3960 руб.

08.10.2019    50239    182    107    

176

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

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

14400 руб.

13.03.2018    63905    225    79    

120

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

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

4560 руб.

13.02.2019    104672    460    46    

452

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

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

13200 руб.

27.06.2023    5453    18    2    

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