Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 07:46

Табличная часть в обычной форме

Автор AlenkaInt, 03 окт 2012, 21:33

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

AlenkaInt

Здравствуйте. У меня такой вопрос. В обычной форме, в табличной части, при изменении ячейки в колонке СуммаСписания нужно чтобы пересчитывалась ДоступнаяСумма по формуле. Я пишу такой код -

Процедура ТабличноеПолеСуммаСписанияПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока
СтрокаТабличнойЧасти.ДоступнаяСумма = СтрокаТабличнойЧасти.СуммаДокумента-СтрокаТабличнойЧасти.СуммаСписания;
КонецПроцедуры

Но Доступная сумма не пересчитывается..

has

Может не ТекущаяСтрока, а ТекущиеДанные использовать?
СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле.ТекущиеДанные

mixqn

AlenkaInt, код похож на правильный. попробуйте поискать ошибку в чем-то другом: убедитесь, что обработчик события указан у элемента управления, что типы данных все совпадают и т.п. - лучше поставьте точку останова в процедуре и проверьте значения вех параметров.

AlenkaInt

Это внешняя обработка, не знаю как сделать, чтобы точка останова сработала. У меня вообще с этой обработкой что то не так. Я пробовала не давать пользователю редактировать колонки, и выставляла только просмотр и убирала доступ и редактирование текста все равно пользователь мог редактировать, а вот на все табличное поле срабатывало. И вот сейчас тоже. На отдельные колонки не получается, а вот когда я в свойствах табличного поля в событиях описала эту процедуру все получилось.
Процедура ТабличноеПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока.ДоступнаяСумма = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока.СуммаДокумента - ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока.СуммаСписания;
КонецПроцедуры

mixqn

Цитата: AlenkaInt от 04 окт 2012, 08:56Это внешняя обработка, не знаю как сделать, чтобы точка останова сработала.
что за глупости? все прекрасно работает с внешними обработками, точно так же как и со всем остальным.
ПриВыводеСтроки - плохой вариант. делайте как было раньше - при изменении суммы, либо, альтернатива - при окончании редактирования строки.
Цитата: AlenkaInt от 04 окт 2012, 08:56У меня вообще с этой обработкой что то не так. Я пробовала не давать пользователю редактировать колонки, и выставляла только просмотр и убирала доступ и редактирование текста все равно пользователь мог редактировать, а вот на все табличное поле срабатывало.
что-то не так делаете значит.
предлагаю вам выложить (то бишь прикрепить файл к сообщению) обработку, тогда проще будет найти ошибки.

AlenkaInt

Я поняла в чем было дело. В табличное поле данные загружаются из запроса, а для вывода результата запроса в таблицу я использую метод "СоздатьКолонки()".
А чем плоха процедура ПриВыводеСтроки?
Почему про точки останова глупости? Я говорю как есть. Я точки останова ставлю, но они не срабатывают.

Slin

Про точки останова. Либо до них не доходит поток выполнения, либо, что более вероятно, 1С предприятие не запущено в режиме отладчика. Режим отладчика - при запуске из конфигуратора.
skype: slin-dev

AntonB

При отладке Внешней обработки ее лучше запускать через Файл - Открыть
а не из Сервис - Внешние...
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Slin

skype: slin-dev

AlenkaInt

По задаче ее надо запускать из табличной части документа.

Теги:

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

Рейтинг@Mail.ru

Поиск