#0
by andryuhin
Всем привет. Есть процедура, которая вызывается при изменении реквизита колонки табличного поля. В процедуру передается сам элемент управления, т.е. "ПолеВвода". А как определить имя колонки? (вариант с обращением к имени ТекущейКолонки НЕ предлагать! Не тот случай, т.к. процедура не всегда вызывается интерактивно)
#3
by andryuhin
Вопрос остается: как по элементу управления получить колонку табличного поля, с которой этот элемент связан.
#4
by Пятница Мен
реквизита колонки табличного поля - как не интерактивно? может реквизит не табличного поля, а чего то другого?
#7
by andryuhin
Да, к данным привязан. Я уже сам запутался. На пальцах попытаюсь озвучить. Есть документ с табличной частью. Табличная часть содержит колонки (реквизиты документа, вроде номенклатура, цена, кол-во, сумма. Все просто.). Есть процедура "РасчетСумм", которая вызывается при изменении реквизитов в табличной части. В эту процедуру передается элемент управления. Нужно узнать, какой реквизит вызвал процедуру.
#9
by andryuhin
В документе есть кнопка Заполнить, с ней связана процедура "Заполнить". Из нее тоже вызывается "РасчетСумм".
#10
by andryuhin
Задача сводится к следующей: До элемента управления я достучаться могу: ЭлементыФормы.ИмяТабличнойЧасти.Колонки.Номенклатура.ЭлементУправления А вот как имея "ЭлементУправления" получить его родителя, в приведенном примере "Номенклатура"
#13
by andryuhin
не катит. Нет у поля ввода такого свойства и метода. да, похоже, что этот способ и остается. Делать через 2 процедуры, а не через 1. Спасибо.
#17
by andryuhin
Нужно, чтобы во всех ячейках стояла ОДНА процедура, а не 15 штук для каждой ячейки. Так удобнее при связанных расчетах, когда предыдущая ячейка вызывает пересчет последующих.
#19
by Рэйв
Сделай одну БОЛЬШУЮ процедуру пересчета всего что там у тебя есть, а в процедурах ПриИзменении ячеек просто ее вызывай.
#21
by andryuhin
Ух ты, уже и принюхался. Поздравляю с хорошим обонянием. Или ты на вкус определил? В любом случае приятного аппетита. Все, работает. Спасибо за помощь. Код из поста катит. И из поста тоже.
#22
by andryuhin
Так так и сделано в самом начале. Одна БОЛЬШАЯ процедура, которая вызывается ПриИзменении ячеек. НО засада была в том, что эта же процедура вызывается не интерактивно при автопересчете по отдельной кнопке
#24
by andryuhin
НЕТ не все. Только ячейки с 3й по 15ю, или например с 10й по 15ю. В зависимости от того, на какой ячейке стартанули
#28
by zakidonoff
Просто ты нарушаешь базовые принципы. Любая дочерняя функция или процедура должна быть предельно "тупой". Всё, что можно посчитатьзадать в родительской процедуре, должно быть задано в ней. В твоём случае - это имя колонки. "Откуда считать" должно определяться не в "одной БОЛЬШОЙ процедуре", а там, откуда она вызывается.
#29
by andryuhin
мммм, чтобы не вдаваться в полемику лучше приведу свою проблему: Есть 15 колонок. На каждой колонке своя формула. Меняем значение 1й колонки, должны пересчитаться все до 15й. Меняем 2ю, должны пересчитаться со 2й по 15ю и т.д. Вполне логично иметь ОДНУ процедуру, описывающую логику расчета всего документа. В результате этот алгоритм расчета можно вызывать как интерактивно (пользователь меняет значение ячейки), так и при неких общих расчетах для всех строк табличной части. В результате не плодится множество процедур, вся логика в одном месте и в нее при необходимости просто вносить изменения. ------ Может я действительно мудрю, предложи вариант, как это реализовать проще.
#31
by andryuhin
Да, это сработает, но в таком подходе есть минус (во всяком случае для меня). В модуле много процедур, что не гут для "читаемости" кода. Лишний не нужный код. Хотя по сути все то же самое.
#32
by zakidonoff
А как ещё ты инициируешь срабатывание события по клику на ячейку? Через процедуру изменения таб.поля?
#33
by zakidonoff
Ну так 12 тогда тебя абсолютно всем устраивать должен. Читаемость это абсолютно не портит. Или ты хотел сразу событие на изменение в ячейке кидать на процедуру расчётссумм? -) Это явно не тру - запутаешься в условиях только.
#35
by andryuhin
все верно, вариант из вполне устраивает. (хотя в итоге стал использовать свой с вызовом события из ячейки на "РасчетСумм" и определением внутри, какая ячейка вызвала)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- как определить у кого висит окошка ввода пароля?
- Как определить по полю iddocdef вид документа?
- Как программно задать Связь по Владельцу для Поля ввода Табличного поля?
- Как определить имя реквизита таб части через поле ввода?
- можно ли установить тип полю ввода на ворме документа?
- Как определить программно определить в какой точке завершился бизнес процесс?
- Тип значения для поля ввода в колонке Табличного поля
- Как в СКД сделать отбор по полю ДатаДок между двумя датами?
- v7: Имя колонки в текущей строке табличного поля
- как узнать имя текущего пользователя (не полное имя, а просто имя?)
- Как узнать типы колонки таб.поля по имени колонки, и привести к ним поле ввода
- Как определить тип колонки Табличного поля тип Таблица значений
В этой группе 1С
- v7: 1с 7, ошибка Запрос.Группировка("День")
- 1с 8.2 вылетает при входе пользователя с полными правами
- 1с8.2 Упр.формы: ЗначенияВДанныеФормы(ТЗ,Отчет) - недопустимое значение параметр
- Хранилище значений в ТЗ обработки
- 1С в Эксель, выедает память
- 8.3 Такси. Можно ли програмно изменить состав интерфейса клиентской прикл-й п-мы
- 1с:Документооборот автоматическая отправка уведомлений при старте процесса
- Работа с файлами БСП
- Секс вместе с Clation *.tps через ODBC
- Как ускорить программное выполнение СКД с набором данных - объект?
- v8: Как правильно передавать ОС между филиалами?
- Настройка доступа пользователей 1С УТ 10.3
- 1с 8.2 и LibreOffice. Неправильное отображение таблиц
- v7: Кража наличных. Оформить в 1С
- В режиме 1С Предпри - программно получить данные по доступным ролям пользователя
- 1с общепит проблема установки ключа
- КД 2. Замена значения при перегрузке табличной части "Номенклатура".
- БГУ 8.2 как перенести настройки универсального отчета другому пользователю?
- УТ 11.1.4.5 (Ошибка при запуске)
- v8: Программно вставить строки в Табличный документ