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

24.10.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
[ШАБЛОН] Внешняя печатная форма с отладкой.:
.epf 10,86Kb
30
30 Скачать (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С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    13493    34    7    

67

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 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 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    229864    984    894    

986

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

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

3600 руб.

13.02.2019    93244    428    44    

409

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

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

13200 руб.

27.06.2023    3265    9    1    

9

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

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

12000 руб.

13.03.2018    59077    200    76    

119

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

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

5400 руб.

08.10.2019    45800    159    89    

154

Печатные формы Бухгалтер Платформа 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    38147    245    216    

156

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

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

4500 руб.

23.08.2019    56064    167    64    

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