Главная » Статьи » "1С" Програмирование

Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!

Через минуту Вы получите "Гостевой доступ"




Горячая печать реквизитов (их значений ) документов с использованием 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
// выводим заголовки ТЧ (идентификаторы реквизитов)
Для А=По Метаданные.Документ(Вид).РеквизитТабличнойЧасти(
) Цикл
ИД=Метаданные.Документ(Вид).РеквизитТабличнойЧасти(А).Идентификатор;   
Область=Таб.Область(Стр,А);
Область.РазмерШрифта(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);
Таб.Показать("Документ "+Вид);
КонецЕсли;           
КонецЕсли;    
ФормаРасш ="";    
КонецПроцедуры
 

статья с сайта: www.infostart.ru

Категория: "1С" Програмирование | Добавил: c1 (2009 Февраль 21)
Просмотров: 1082 | Теги: Горячая печать реквизитов (их значе | Рейтинг: 0.0/0

Выразить благодарность - Поделиться с друзьями!

 

Здесь все о технической стороне 1С!

 

Узнай, как правильно администрировать 1С Предприятие
Регистрируйся на бесплатный 7-ми дневный курс сейчас:

Ваш E-Mail в безопасности



Всего комментариев: 0
avatar