Каталог решений - Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

В наличии

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

Категория:

Описание

Процедура проста в эксплуатации: все, что надо сделать, это вставить ее в модуль печатной формы процедуры или обработки. После этого добавить в свойстве ячейки в поле Расшифровка – ссылку на объект (справочник, или документ).

Процедура ОбработкаЯчейкиТаблицы(Расшифровка,Флаг,Табл,Адрес)
    Перем ТекТип,ТекСписок, ТекЗнач, Конт;
    Если ПустоеЗначение(Расшифровка)=0 Тогда
        ТекСписок=СоздатьОбъект("СписокЗначений");
        ТекТип=ТипЗначенияСтр(Расшифровка);
        Если ТекТип="Справочник" Тогда
            ТекСписок.ДобавитьЗначение("1","Редактировать элемент");
            ТекСписок.ДобавитьЗначение("2","Просмотреть элемент");
            ТекСписок.ДобавитьЗначение("3","Найти в форме списка");
            Если ТекСписок.ВыбратьЗначение(ТекЗнач,,,,1)=1 Тогда
				Если ТекЗнач="1" Тогда
					ОткрытьФорму(Расшифровка,,0);
				ИначеЕсли ТекЗнач="2" Тогда
					ОткрытьФорму(Расшифровка,,1);
				ИначеЕсли ТекЗнач="3" Тогда
					Если ПустоеЗначение(Расшифровка.владелец)=0 тогда
						ОткрытьФорму(Расшифровка,,0);
					Иначе
						Конт="";
						ОткрытьФорму("Справочник." + Расшифровка.Вид() + "." + Метаданные.Справочник(Расшифровка.Вид()).ОсновнаяФорма.Идентификатор, Конт);
						Конт.АктивизироватьОбъект(Расшифровка);
						
					КонецЕсли;
				КонецЕсли;
			КонецЕсли;
		ИначеЕсли ТекТип="Документ" Тогда
			ТекСписок.ДобавитьЗначение("1","Редактировать документ");
			ТекСписок.ДобавитьЗначение("2","Просмотреть документ");
			ТекСписок.ДобавитьЗначение("3","Найти в своем журнале");
			ТекСписок.ДобавитьЗначение("4","Найти в общем журнале");
			Если ТекСписок.ВыбратьЗначение(ТекЗнач,,,,1)=1 Тогда
				Если ТекЗнач="1" Тогда
					ОткрытьФорму(Расшифровка,,0);
				ИначеЕсли ТекЗнач="2" Тогда
					ОткрытьФорму(Расшифровка,,1);
				ИначеЕсли ТекЗнач="3" Тогда
					Конт="";
					ТекЖурнал=Метаданные.Документ(Расшифровка.Вид()).Журнал.Идентификатор;
					ОткрытьФорму("Журнал." + ТекЖурнал + "." + Метаданные.Журнал(ТекЖурнал).ОсновнаяФорма.Идентификатор, Конт);
					Конт.УстановитьИнтервал(Расшифровка.ДатаДок, ПолучитьДатуТА());
					Конт.АктивизироватьОбъект(Расшифровка);
				ИначеЕсли ТекЗнач="4" Тогда
					Конт="";
					ТекЖурнал=Метаданные.ПолныйЖурнал.Идентификатор;
					ОткрытьФорму("Журнал." + ТекЖурнал + "." + Метаданные.Журнал(ТекЖурнал).ОсновнаяФорма.Идентификатор, Конт);
					Конт.УстановитьИнтервал(Расшифровка.ДатаДок, ПолучитьДатуТА());
					Конт.АктивизироватьОбъект(Расшифровка);
				КонецЕсли;
			КонецЕсли;
		Иначе
			Флаг=1;
		КонецЕсли;
	Иначе
		Флаг=1;
	КонецЕсли;
КонецПроцедуры
has been added to your cart:
Оформление заказа