1С 8.3 УФ. Активация таблицы значений #802103


#0 by kupreeff
Доброго дня. На форме обработки есть 2 ТЗ, в каждой по 1 строке. Можно ли отловить событие, когда пользователь выбирает поочередно строку в этих ТЗ? ПриАктивизацииСтроки работает, когда пользователь поочередно выбирает строки в одной ТЗ.спасибо.
#1 by RomaH
ВК
#2 by kupreeff
т.е.?
#3 by FIXXXL
когда пользователь выбирает поочередно строку в этих ТЗ промеж ТЗ фокус переключает или что надо?
#4 by Numerus Mikhail
реквизит с типом булево при активизации строки первой тз устанавливаешь его в истину при активизации строки второй тз проверяешь истина он или нет, если да, то устанавливаешь его в ложь и делаешь свои грязные делишки?
#5 by kupreeff
это частный случай поведения. строк может быть больше. Если по одной строке, то изначально при открытии формы они обе активны (выделены светло-желтым фоном), если щелкать в строку - она становится выделена ярко-желтым фоном. Щелкаем по другой ТЗ - у другой становится строка выделена ярко-желтым фоном, предыдущая же становится с бледным желтым фоном, но при этом в обоих случаях строки постоянно остаются с т.з. 1С активны и указанное мною событие не срабатывает. Нужно это для того, чтобы в третей ТЗ выводить данные по выбранной строке в одной из ТЗ.
#6 by kupreeff
в том и дело, я не могу отловить, что строка активировалась во второй ТЗ.
#7 by RomaH
т.е. только внешняя компонента
#8 by RomaH
а зачем?
#9 by RomaH
у меня использовалась для смены раскладки клавиатуры в зависимости от активного поля - но это было много лет назад пересмотрели логику на более "правильную"
#10 by kupreeff
мне нужно в третьей ТЗ выводить данные по выбранной строке в одной из двух ТЗ.
#11 by FIXXXL
анализируй тек.элемент формы, и уже потом у него строку
#12 by SiAl-chel
Делаешь клиентскую функцию или процедуру с параметрами ТабличноеПоле и ТекущаяСтрока. Создаешь для каждого поля обработчики ПриАктивизацииСтроки, из которых передаешь в свою процедуру текущее поле и текущую строку. А там уже их анализируешь и делаешь что надо.
#13 by kupreeff
вот, я это нутром чую, но где мне анализировать текущий элемент формы? в каком событии?
#14 by RomaH
а на примере
#15 by SiAl-chel
в ПриАктивизацииСтроки у тебя первый параметр - это элемент формы типа ТабличноеПоле.
#16 by kupreeff
ПриАктивацииСтроки не вызывается же при перещелквиании между ТЗ.
#17 by RomaH
.... &НаКлиенте попробуй - не факт что на 8.3 работает расскажи о результатах
#18 by kupreeff
&НаКлиенте     Если Элемент.ТекущиеДанные=Неопределено Тогда Возврат КонецЕсли;
#20 by Вафель
можно и активизации одной ТЗ сбрасывать тек строку в другой ТЗ
#21 by RomaH
я имел в виду - на примере реальных данных и реального БП
#22 by Вафель
по идее нужно бы использовать событие формы при смене текущего элемента. Но увы такого события нет
#23 by kupreeff
не вижу, как можно сбросить текущую строку программно.
#24 by kupreeff
я так понимаю из компоненты нужно взять идею внешнего события "Фокус"
#25 by kupreeff
подключить компоненту, боюсь, сходу не смогу, ни разу не делал(
#26 by dezss
так меняется текущий элемент формы.
#27 by kupreeff
меняется, но мне нужно событие, отлавливающее фокус, чтобы это проверить.
#28 by RomaH
&НаКлиенте немного глючит в плане правильного подключения, но работает
#29 by RomaH
но ... еще раз  - ты так и не рассказал - зачем тебе это надо
#30 by kupreeff
нашел подобную тему, предлагают использовать ОбработчикОжидания, как его прикрутить?
#31 by kupreeff
мне показалось, говорил) повторю - мне нужно в третьей ТЗ выводить инфу по документу, курсор на который поставил пользователь.
#32 by kupreeff
КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаСменыРаскладки", "ruen",ТипВнешнейКомпоненты.Native); как туда ее засунуть?
#33 by RomaH
что в первых двух ТЗ и что в третьей?
#34 by kupreeff
упрощенно если, колонки "Док" типа документа некого вида - в ТЗ1 и ТЗ2, в ТЗ3 - строки табличной части документа, на который установлен фокус. Ну даже не упрощенно, по сути именно такая модель.
#35 by Рэйв
У формы есть обработчик ОбработкаАктивации.Поколдуй над ней, может пригодится для твоих дел.
#36 by Вафель
Это совсем не оно
#37 by МимохожийОднако
Положи эти ТЗ на разные страницы и используй определение страницы ПриСменеСтраницы
#38 by kupreeff
я создал Общий макет и загрузил как двоичные данные dll, правильно?
#39 by kupreeff
не очень удобно в работе получается, к сожалению.
#40 by Вафель
А вариант чем не подошел?
#41 by МимохожийОднако
Можно дать разные имена колонкам и при активации строки смотреть еще и колонку для дальнейших действий.
#42 by kupreeff
если б я мог отловить эту активацию...
#43 by kupreeff
как сбрасывать не знаю.
#44 by kupreeff
Компонента1cruen.СледитьЗаФокусом; возвращает в итоге Истину, правда не в ПриОткрытии, а в ПриСозданииНаСервере я все написал. Норм?
#46 by kupreeff
как работает понятно)
#47 by RomaH
ну осталось совсем малость, разобраться с клиент-серверным вариантом и как подключать ВК
#48 by kupreeff
да.
#49 by Вафель
Элементы.ТЗ1.ВыделенныеСтроки.Очистить
#50 by kupreeff
я ж понимаю, на серной процедуре нет смысла ее запускать, если она должна работать на форме? ПриОткрытии у меня не выхывается. куда писать подключение ВК...
#51 by kupreeff
вызывается, что-то затупил...но КодВозврата=Ложь. Походу, я как-то общий макет ни так создаю. Хотя, когда в серверной писал процедуре, возвращалась Истина.
#52 by dezss
тз1.ТекущаяСтрока = Неопределено, пробовал?
#53 by kupreeff
да, в ПриОткрытии не работает. тоже.
#54 by kupreeff
почему компонента может возвращать Ложь? Я неправильно сделал общий макет?
#55 by kupreeff
сделал так:         Компонента1cruen.СледитьЗаФокусом; СледитьЗаФокусом -возвращает Истину. Но внешнее событие не возникает.
#56 by RomaH
ВК - это зип архив ... почитай что там и как
#57 by kupreeff
по твоей ссылке рар-архив, либо я не в теме.
#58 by kupreeff
Всё, день промахался с такой ерундой, оказывается) dezss оказался прав, все спасибо за помощь!
#59 by kupreeff
*всем!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям