#0
by TapokMan
...на форме - табличное поле типа "Таблица значений". В момент обновления данных этой таблицы происходит автоматическая активация первой строки и, соответственно, срабатывает событие "ПриАктивацииСтроки". Что делать, если такое положение вещей меня не устраивает? Как сделать так, чтоб активация происходила только когда я сам ткну в строку? Ну или хотя бы как различить "автоматический" и "интерактивный" вызовы процедуры? относится все к 1с 8.2 (на 8.1 не проверял). Подскажите, пожалуйста, если кто сталкивался.
#1
by mikecool
активация происходит только если таб поле активно или вне зависимости от того, какой элемент формы активен?
#2
by EvgeniuXP
про 8.1 я тебе могу ответить: да, так оно и есть, но это можно определить, где интерактивный, а где - программный. Я для этого завел переменную в модуле (тип число, почему, потому что у меня было три таблицы, и мне нужно было хранить три состояния), отслеживал через нее. + через отладчик, там когда открывается форма, сразу срабатывает ПриАктивизации - это я считал уже программно.
#3
by EvgeniuXP
просто мне тоже надо было активировать первую строку в третьей таблице, а в первых двух таблицах не надо было активировать :) по отладчику я и определил, какие таблицы в каком порядке активируются и прописал число, если 0, то прибавь 1, в другой таблице: если 1 - то прибавь еще 1, в третей (при активизации) если = 2 то прибавь 3 - и свыше этого числа это уже интерактивное обновление.
#4
by EvgeniuXP
а в этом числе при условии прописал: снять выделенные строки в зависимости от активизации таблиц у тех и снимаем выделение :)
#5
by TapokMan
на форме несколько подобных табличных полей, и у каждого срабатывает "ПриАктивизацииСтроки" при заполнении данными.
#6
by EvgeniuXP
активироваться может 1, 3, а потом только вторая таблица - это зависит от создания на форме. Какую первую создал, та и активируется первая, какую последнюю - та активируется последней.
#7
by TapokMan
у меня так не получится. мне надо не только самую первую активизацию "отсечь" как автоматическую - обновляются данные в табличных полях часто.
#8
by EvgeniuXP
работай через число и прибавляй 1 - и делай что хочешь с таблицами. Таким образом ты можешь определить, что именно открывается форма и активируется таблица именно при открытии, т.к. счетчик меньше (в моем случае) трех.
#10
by EvgeniuXP
правильно, для остальных случаев уже далее в модуле пишешь, это число свыше 3 - там обрабатываешь условия по другому, т.к. когда активируешь одну таблицу, может произойти следующее: 1 активизировалась, а потом 2-ая активизировалась при значении свыше 3... - это тоже надо через отладчик отслеживать, в какой последовательности эти таблицы активизируется но уже при интеррактивном обновлении. Я с этим долго парился, но сделал.
#11
by EvgeniuXP
Сделал эффект: выделенная строка (строки) могут выделяться только в одной таблице, по нажатию кнопки эти элементы перелетают в другую таблицу и эти же строки выделяются только в другой таблице. Плюс, еще сделал, что из одной таблицы куча элементов перелетала в две другие и там выделялись, а в первой общей выделенные исчезали строки. Т.е. своего рода строки летают из одной таблицы в другую.
#12
by TapokMan
на мысль ты меня навел. спасибо. забацал с помощью флагов: при любом обновлении данных специальный флаг "ИнтерактивнаяАктивизация" сбрасывается в ЛОЖЬ. А потом в процедуре "приАктивизацииСтроки" алгоритм отрабатывает только если этот флаг = ИСТИНА, а в конце процедуры флаг устанавливается в ИСТИНУ.
#14
by EvgeniuXP
да, именно через флаги, определял какая действительно активировалась таблица, а потом уже выставлял флаги истина или ложь для каждой таблицы.
#15
by EvgeniuXP
только там надо все варианты перебирать (последовательность активизаций таблиц), один упустишь - будет сбой, и работать не будет - и сложно будет отследить, когда этот сбой происходит.
#16
by EvgeniuXP
во, вспомнил, например в таблицах каких-то нет данных, активация уже проводится по другому - это тоже надо отслеживать.
#17
by EvgeniuXP
т.е. таблицы могут быть полностью пустыми, а может одна пустая, а может две и т.д. и т.п. - всё это надо отслеживать.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- ЗиК падает при загрузке. Без сообщений. Без переиндексации.
- Создаем ВК "без программирования",получаем задержку в N-сек без 100% загр.
- Как закрыть форму документа, без сохранения и без запроса на сохранение
- Многократный вызов ПриАктивацииСтроки в УФ
- Мобильное приложение. Активация поле ввода без участия пользователя
- БП3 отчёты руководителю без копеек, как сделать, чтобы было без округлений.
- Зацикливание ПриАктивацииСтроки Бух 3.0
В этой группе 1С
- Измерение высоты строки в макете. Возможно?
- Как определить загрузилась ли страница полностью
- Сумма вычетов из доходов физ.лиц в отчете "Расчетные ведомости организаций"
- ЗУП: Неверно считается суммы в отчетах
- v8: Ошибка сетевого доступа к серверу (10054)
- v8: Черный и Белый учет в УТ
- как изменить текст в поле ввода?
- перепроведение документа из модуля формы.
- Вылетает сеанс пользователя....
- Розница, 1,0,9,5 Контроль остатков
- Горизонтальная секция в цикле, как объединить одну ячеку этой секции в цикле
- v7: Не работает метапарсер имен в прямых запросах
- Уникальный идентификатор составителя ЭД-УИС
- Как программно создать новый документ и заполнить его данными из ТЗ в обработке?
- EXEL-12 (2007 офис) и mxl
- WinHTTP и 1С
- УПП Добавить предопределенное субконто
- Загрузка в регистр накопления обработкой "загрузкой данных из табл. докум."
- ЗУП. Не заполняется табель учета рабочего времени
- Плюсы и минусы перехода с самописных топоров на стандартное УТ 8.2