Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 окт 2021, 20:52

Расшифровка ячейки в сформированном отчете 1C 7.7

Автор Андрей Ролтонов, 19 янв 2017, 02:20

0 Пользователей и 1 гость просматривают эту тему.

Андрей Ролтонов

У меня есть процедура которая формирует отчет и есть данные которыми отчет заполняется. Мне надо чтобы при нажатии на ячейку ДатаСоб открывался другая внешний обработка. Может кто-нибудь подсказать как лучше это сделать.

Процедура Отчет()
Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Отчет");
    Таб.ВывестиСекцию("Заголовок");
   
    Филиал = "";
    Код = "";
   
    ТЧ2.ВыбратьСтроки();
   
    Пока ТЧ2.ПолучитьСтроку() = 1 Цикл
       
        Если Филиал = "" Тогда
           
            Если Код <> СокрЛП(ТЧ2.Код) Тогда
               
                Филиал = ТЧ2.Филиал;
                Таб.ВывестиСекцию("Т1");
                Код = СокрЛП(ТЧ2.Код);
                ИндексПоиска = Лев(СокрЛП(Филиал) + "   ",3) + "#" + Лев(СокрЛП(Код) + "                         ",25);

               
                Стр = 0;
               
                Если ТЧ3.НайтиЗначение(ИндексПоиска,Стр,"ИндексПоиска") = 1 Тогда
                   
                    ТЧ3.ПолучитьСтрокуПоНомеру(Стр);
                    ИтогС = ТЧ3.Итог;
               
                Иначе
                   
                    ИтогС = 0;
                   
                    Сообщить("Сотрудник с кодом " + ИндексПоиска + " не найден");
                   
                КонецЕсли;
               
                Таб.ВывестиСекцию("Т2");
                ДатаСоб = ТЧ2.ДатаСоб;
                КолОтрМин = ТЧ2.КолОтрМин;
                Таб.ВывестиСекцию("Т3");
                Приход = ТЧ2.Приход;
                Уход = ТЧ2.Уход;
                КолОтрМин = ТЧ2.КолОтрМин;
                Таб.ВывестиСекцию("Т4");
               
            КонецЕсли;
           
        Иначе
           
            Если Филиал = ТЧ2.Филиал Тогда
               
                Если Код <> СокрЛП(ТЧ2.Код) Тогда
                   
                    Код = СокрЛП(ТЧ2.Код);
                    ИндексПоиска = Лев(СокрЛП(Филиал) + "   ",3) + "#" + Лев(СокрЛП(Код) + "                         ",25);

                   
                    Стр = 0;
                   
                    Если ТЧ3.НайтиЗначение(ИндексПоиска,Стр,"ИндексПоиска") = 1 Тогда
                       
                        ТЧ3.ПолучитьСтрокуПоНомеру(Стр);
                        ИтогС = ТЧ3.Итог;
                   
                    Иначе
                       
                        ИтогС = 0;
                       
                        Сообщить("Сотрудник с кодом " + ИндексПоиска + " не найден");
                       
                    КонецЕсли;
                   
                    Таб.ВывестиСекцию("Т2");
                   
                КонецЕсли;
               
                ДатаСоб = ТЧ2.ДатаСоб;
                КолОтрМин = ТЧ2.КолОтрМин;
                Таб.ВывестиСекцию("Т3");
                Приход = ТЧ2.Приход;
                Уход = ТЧ2.Уход;
                КолОтрМин = ТЧ2.КолОтрМин;
                Таб.ВывестиСекцию("Т4");
               
            Иначе
               
                Филиал = ТЧ2.Филиал;
                Таб.ВывестиСекцию("Т1");
                Код = СокрЛП(ТЧ2.Код);
                ИндексПоиска = Лев(СокрЛП(Филиал) + "   ",3) + "#" + Лев(СокрЛП(Код) + "                         ",25);

               
                Стр = 0;
               
                Если ТЧ3.НайтиЗначение(ИндексПоиска,Стр,"ИндексПоиска") = 1 Тогда
                   
                    ТЧ3.ПолучитьСтрокуПоНомеру(Стр);
                    ИтогС = ТЧ3.Итог;
                   
                Иначе
                   
                    ИтогС = 0;
                   
                    Сообщить("Сотрудник с кодом " + ИндексПоиска + " не найден");
                   
                КонецЕсли;
               
                Таб.ВывестиСекцию("Т2");
                ДатаСоб = ТЧ2.ДатаСоб;
                КолОтрМин = ТЧ2.КолОтрМин;
                Таб.ВывестиСекцию("Т3");
                Приход = ТЧ2.Приход;
                Уход = ТЧ2.Уход;
                КолОтрМин = ТЧ2.КолОтрМин;
                Таб.ВывестиСекцию("Т4");   
               
            КонецЕсли;
           
        КонецЕсли;
       
    КонецЦикла;
   
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Отчет","");
   
КонецПроцедуры

alex0402

Если память не изменяет, то это событие ОбработкаЯчейкиТаблицы(,,,).
Спасибо за Сказать спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск