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

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).ЦветФона = ЦветаСтиля.ПолеСОшибкойФон;
		КонецЕсли;  
		
		ТабличныйДокумент.Вывести(ОбластьПодвал);
		
	КонецЦикла;
	
	УстановитьПривилегированныйРежим(Ложь);
	

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

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

 

Текст формы

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

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

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

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


 

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

См. также

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    244152    1129    912    

1052

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

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

22200 руб.

06.10.2023    20259    51    19    

86

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

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

14400 руб.

13.03.2018    63198    227    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 спец., ПЛ для Автомобильного крана.

4800 руб.

14.10.2019    40634    282    216    

184

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

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

3960 руб.

08.10.2019    49512    182    105    

175

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

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

4560 руб.

13.02.2019    103097    466    46    

449

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

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

3720 руб.

18.02.2019    66246    226    15    

180

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3500 руб.

07.02.2023    8211    88    17    

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