|
v7: Расшифровка ячейки в сформированном отчете | ☑ | ||
---|---|---|---|---|
0
skaylanz23
19.01.17
✎
01:44
|
У меня есть процедура которая формирует отчет и есть данные которыми отчет заполняется. Мне надо чтобы при нажатии на ячейку ДатаСоб открывался другая внешний обработка. Может кто-нибудь подсказать как лучше это сделать.
Процедура Отчет() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Отчет"); Таб.ВывестиСекцию("Заголовок"); Филиал = ""; Код = ""; ТЧ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); Таб.Показать("Отчет",""); КонецПроцедуры |
|||
1
Aleksey
19.01.17
✎
02:25
|
А в чем собственно проблема?
Процедура ОбработкаЯчейкиТаблицы(<?>,,,) КонецПроцедуры Синтаксис: ОбработкаЯчейкиТаблицы(<Значение>,<ФлагСтандОбраб>,<Таблица>,<Адрес>) Назначение: Предопределенная процедура обработки ячейки таблицы (по двойному щелчку мыши или по нажатию клавиши ''Enter'' в табличном документе на выбранной ячейке). Параметры: <Значение> - здесь в процедуру передается вычисленное значение ячейки (задается в конфигураторе: ''Свойства'' ячейки, ''Текст'', ''Значение''). <ФлагСтандОбраб> - флаг обработки ячейки: установка в 1 приведет к выполнению стандартной обработки значения ячейки по завершении процедуры (открытию документа, элемента справочника и т.п.). <Таблица> - необязательный параметр. Имя переменной, куда система передаст объект типа ''Таблица''. С помощью значения этого контекста можно произвольно манипулировать данной таблицей, пока она открыта. Пока данный объект ''Таблица'' существует, тип значения данного параметра равен 100, если закрыта - 0. <Адрес> - необязательный параметр. Имя переменной, куда система передаст адрес ячейки/объекта в формате ''R1C1:R2C2''. Замечание: Объект типа ''СписокЗначений'' может записываться в поле ''значение'' ячейки таблицы и использоваться затем процедурой ОбработкаЯчейкиТаблицы. Важно! Если данная процедура описана в модуле формы, то вызывается она, иначе система запускает одноименную процедуру из глобального модуля. Внимание! Данная предопределенная процедура НЕ вызывается при выборе ячейки таблицы в режиме ввода данных. Для этого случая вызывается предопределенная процедура ПриВыбореЯчейкиТаблицы. |
|||
2
skaylanz23
19.01.17
✎
02:34
|
Спасибо большое.
|
|||
3
rphosts
19.01.17
✎
03:09
|
Таб = СоздатьОбъект("Таблица");
эээ, может не проснулся, а не так нужно начинать? Таб = Новый Табличный документ; и это... что-бы клик отрабатывал нужна форма к которой прикрепить обработчик (точнее к табличному документу на ней лежащему над которым надругаться кликом) |
|||
4
varelchik
19.01.17
✎
09:50
|
(3) Не в ту ветку попали.
Смотрим сверху 7.7 и ранее. |
|||
5
Ёпрст
19.01.17
✎
09:53
|
||||
6
linoblack
19.01.17
✎
11:33
|
(3) дас ист Спарта!!!! )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |