Использование расшифровки в отчетах   

   

Мне надоело пользоваться стандартным системным обработчиком ячейки таблицы, и я написал свою процедуру.

Она позволяет, в зависимости от типа передаваемого значения, делать различные действия. Для справочника - предлагает открыть форму элемента в режиме редактирования или просмотра, а также найти и активизировать сам элемент в форме списка справочника.

Если передаваемое значение - это документ, то его можно открыть в режимах редактирования или просмотра, либо найти и активизировать его в своем журнале, либо в полном (общем) журнале документов.

Сделано все очень просто - при двойном щелчке по ячейке с расшифровкой выводится небольшое контекстное меню выбора действия. Пользователю только нужно выбрать то, что он хочет. В следующей версии обязательно предусмотрю дополнительные пункты меню: «Не знаю», «Что-нибудь». ;-)

Для обеспечения универсальности весь программный код размещен в одной процедуре «ОбработкаЯчейкиТаблицы()». Так как обработка ячейки происходит следующим образом: [ Локально -> Глобально -> Системный обработчик ], то и область действия процедуры будет зависеть от ее место расположения.

Собственно, процедура представлена ниже:

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


 


 

Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").

Статья: Использование расшифровки в отчетах

Перейти на главную страницу компании "Софтпоинт"