Каталог решений - Горячая печать реквизитов (их значений ) документов с использованием FormEx

Горячая печать реквизитов (их значений ) документов с использованием FormEx

Горячая печать реквизитов (их значений ) документов с использованием FormEx

В наличии

Иногда хочется увидеть все реквизиты документа, в том числе и те, которые на форме отсутствуют.
Особенно, если они автоматом понаустанавливались.
Приведенный код позволяет по горячим клавишам CTRL+ALT+P получить распечатку ВСЕХ реквизитов, начиная от общих, заканчивая ТЧ. Код необходимо вставить в Глобальный модуль, или в Дополнительный глобальный модуль, подключенный с помощью Formex

Категория:

Описание

// добавляем в ГМ или допГМ
// предопределенная процедура Formex.dll
Процедура ПриНажатииКнопкиКлавиатуры(Конт, КодКл, Альт, Шифт, Контрол, Символ, ФСО)  
	ФормаРасш = СоздатьОбъект("РасширениеФормы");   
	Попытка
		ФормаРасш.УстановитьФорму(Конт.Форма);
	Исключение
		Возврат;
	КонецПопытки;   
	Тип=ФормаРасш.ТипОбъекта();  
	Если Тип="Документ" Тогда   
		// Распечатка документа по горячим клавишам CTRL+ALT+P   
		//(форма документа должна быть интерактивно открыта)
		Если (Контрол=1) И (Альт=1) И  (КодКл=80)   Тогда   
			Вид=Конт.Вид();  
			Таб=СоздатьОбъект("Таблица");
			Область=Таб.Область(1,1); 
			Область.РазмерШрифта(10);
			Область.Полужирный(1);   
			Область.ВысотаСтроки(12);
			Область.Текст=  Конт.ТекущийДокумент();       
			Область=Таб.Область(2,1); 
			Область.РазмерШрифта(10);
			Область.Полужирный(1);   
			Область.ВысотаСтроки(12);
			Область.РамкаОбвести(3,3,3,3);
			Область.ЦветФона(200,250,225); 
			Область.ШиринаСтолбца(20);    
			Область.Текст=  "ВР";       
			Область=Таб.Область(2,2);
			Область.РазмерШрифта(10);
			Область.Полужирный(1);   
			Область.ВысотаСтроки(12);
			Область.РамкаОбвести(3,3,3,3);
			Область.ЦветФона(200,250,225);
			Область.ШиринаСтолбца(20);    
			Область.Текст=  "Реквизит";       
			Область=Таб.Область(2,3);
			Область.РазмерШрифта(10);
			Область.ВысотаСтроки(12);
			Область.Полужирный(1);   
			Область.РамкаОбвести(3,3,3,3);
			Область.ЦветФона(200,250,225); 
			Область.ШиринаСтолбца(20);    
			Область.Текст=  "Значение";                     
			Стр=2;            
			// Общие реквизиты
			Для А=1 По Метаданные.ОбщийРеквизитДокумента() Цикл 
				Стр=Стр+1;
				ИД=Метаданные.ОбщийРеквизитДокумента(А).Идентификатор;
				Область=Таб.Область(Стр,1);
				Область.РамкаОбвести(3,3,3,3); 
				Область.РазмерШрифта(10);
				Область.Текст=  "ОБЩ"; 
				Область=Таб.Область(Стр,2);
				Область.РамкаОбвести(3,3,3,3);      
				Область.РазмерШрифта(10);
				Область.Текст=  ИД; 
				Область=Таб.Область(Стр,3);
				Область.РамкаОбвести(3,3,3,3);
				Область.РазмерШрифта(10);
				Область.Контроль(2);
				Область.Текст=  Конт.ПолучитьАтрибут(ИД); 
			КонецЦикла;             
			// Реквизиты шапки
			Для А=1 По Метаданные.Документ(Вид).РеквизитШапки() Цикл  
				Стр=Стр+1;
				ИД=Метаданные.Документ(Вид).РеквизитШапки(А).Идентификатор; 
				Область=Таб.Область(Стр,1);
				Область.РамкаОбвести(3,3,3,3);
				Область.РазмерШрифта(10);
				Область.Текст=  "  Ш"; 
				Область=Таб.Область(Стр,2);
				Область.РамкаОбвести(3,3,3,3);
				Область.РазмерШрифта(10);
				Область.Текст=  ИД; 
				Область=Таб.Область(Стр,3);
				Область.РамкаОбвести(3,3,3,3);
				Область.РазмерШрифта(10);   
				Область.Контроль(2);
				Область.Текст=  Конт.ПолучитьАтрибут(ИД); 
			КонецЦикла;  
			Если Конт.КоличествоСтрок()>0 Тогда
				Стр=Стр+1;  
				// выводим заголовки ТЧ (идентификаторы реквизитов)
				Для А=1  По Метаданные.Документ(Вид).РеквизитТабличнойЧасти() Цикл
					ИД=Метаданные.Документ(Вид).РеквизитТабличнойЧасти(А).Идентификатор;    
					Область=Таб.Область(Стр,А); 
					Область.РазмерШрифта(10);
					Область.Полужирный(1);   
					Область.ВысотаСтроки(12);
					Область.РамкаОбвести(3,3,3,3);
					Область.ЦветФона(200,250,225);    
					Область.ШиринаСтолбца(20);    
					Область.Контроль(2);
					Область.Текст=  ИД;       
				КонецЦикла;   
				// Выводим значения реквизитов ТЧ
				Конт.ВыбратьСтроки();
				Пока Конт.ПолучитьСтроку()=1 Цикл
					Стр=Стр+1;
					Для А=1 По Метаданные.Документ(Вид).РеквизитТабличнойЧасти() Цикл 
						ИД=Метаданные.Документ(Вид).РеквизитТабличнойЧасти(А).Идентификатор;  
						Область=Таб.Область(Стр,А);
						Область.РамкаОбвести(3,3,3,3);
						Область.РазмерШрифта(10); 
						Если Найти(ИД,"Номенклатура")=0 Тогда
							Область.Текст=  Конт.ПолучитьАтрибут(ИД);
						Иначе     
							Атр=Конт.ПолучитьАтрибут(ИД);
							Если Атр.НеВключатьВПрайс=1 Тогда
								Область.Текст=  "З:"+Конт.ПолучитьАтрибут(ИД); 
							Иначе
								Область.Текст=  "П:"+Конт.ПолучитьАтрибут(ИД); 
							КонецЕсли;  
						КонецЕсли; 
					КонецЦикла;   
				КонецЦикла;  
			КонецЕсли;
			Таб.Опции(0,0,1,0);
			Таб.Показать("Документ "+Вид); 
		КонецЕсли;            
	КонецЕсли;     
	ФормаРасш ="";     
КонецПроцедуры 
has been added to your cart:
Оформление заказа