Работа с флажками в ТЗ на форме #541167


#0 by alikgam_3
На форме лежит ТЗ ТаблНакл. Первая колонка флажок. Вторая расходные накладные. Хочу при нажатии флажка подсчитывать суммы уже отмеченных расходных накладных. А у меня ТаблНакл[к][0] всегда ложь. Помогите, пожалуйста, разобраться, что я не так делаю.
#1 by dimoff
Какая религия мешает обраттиться к колонкке по имени?
#2 by Defender aka LINN
Страшно представить, какими нетривиальными способами автор способен принимать пищу...
#3 by vicof
если ТаблНакл[к][0]=истина - нельзя так писать, нужно если ТаблНакл[к][0] тогда
#4 by vicof
"сумма=сумма+ТаблНакл.расхнакл.сумма;" и вот это что такое?
#5 by alikgam_3
Это так? Тоже не выходит
#6 by dimoff
Какая религия запрещает писать ТаблНакл[к][0]=истина?
#7 by alikgam_3
начинающего каждый обидеть может ;)
#8 by dimoff
А что в колонке "Флаг" табличного поля указано в свойстве "Данные"?
#9 by kosts
#10 by Defender aka LINN
Кто запретил?
#11 by dimoff
И проверь чтобы флажок имел двва состояния а не три, в противном случае его тип будет число а не булево
#12 by alikgam_3
флаг
#13 by Ненавижу 1С
отлядчик что говорит?
#14 by alikgam_3
сейчас попробую
#15 by Ненавижу 1С
а ничего должно быть, должны быть данные флажка
#16 by dimoff
Посмотри ТЗ отладчике, будут ли проставлены в нем флажки, потому как ничего неправильного в твоем коде не вижу9кроме того что он неоптимальный, но это не суть)
#17 by dimoff
Точно
#18 by dimoff
Данные должны быть пустыми, Флаг должно быть написано в поле Данные флажка
#19 by vicof
и , погорячился. Не то, чтобы нельзя, но ТаблНакл[к].флаг уже содержит Истина. Зачем сравнивать Истину и Истину, когда можно обойтись одним действием? По глазам режет.
#20 by Ненавижу 1С
да ладно, вот это режет:
#21 by alikgam_3
совет помог, но теперь пока не кликнешь по ячейке с флажком там пусто, а должен быть пустой квадратик, как раньше. Может надо и в этом коде что поменять Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) КонецПроцедуры
#22 by Defender aka LINN
А обход таблицы тебе глаза не режет, значит? :)
#23 by vicof
режет, но меньше)
#24 by alikgam_3
можно и без обхода. Но тогда у меня возникал вопрос, как понять в какой строке я только что поменял значение флажка
#25 by Ненавижу 1С
а зачем?
#26 by alikgam_3
задача посчитать сумму отмеченных накладных. Или каждый раз при смене состояния любого флажка пробегать по всей таблицу считать отмеченные или при смене состояния флажка добавлять или вычитать к сумме соотв-ю накладную
#27 by dimoff
Если я правильно понля о чем речь, то в свойствах колонки установить Редактирвоание "Непосредственно", не думаю что надо что-то в ПриВвыводеСтроки делать.
#28 by dimoff
"Но тогда у меня возникал вопрос, как понять в какой строке я только что поменял значение флажка" Элемент.ТекущиеДанные Просто минусуй или плюсуй сумму в зависимости от значения флажка. Ещё как вариант посмотри методы ТЗ Скопировать НайтиСтроки и Итог тогда не обязательно знать в какой строке поменял
#29 by alikgam_3
точно
#30 by Defender aka LINN
В текущей. Если ты, конечно, не Дэвид Блейн.
#31 by dimoff
Весь код будет выглядеть так СуммаОтмеченныхСтрок = ТЗ.Скопировать( ТЗ.НайтиСтроки(Новый Структура("Флаг", Истина)), "Сумма").Итог("Сумма")
#32 by kosts
А если таблица большая, зачем создавать тормоза
#33 by dimoff
Ну и что ты нового написал? Это описано в 28
#34 by kosts
Не говорю что новое, говорю, что не нужно как в Далее просто показал как бы сделал я.
#35 by dimoff
Ок
#36 by hhhh
всё-таки это ненадежно. У тебя программист получится как сапер, достаточно чуть-чуть где-нибудь ошибиться и вся сумма слетит к едрени фене. Лучше каждый раз пересчитать, дешево и сердито. Но конечно сумма - это должна быть колонка в таблице, а не лазить каждый раз в расходную накладную. То есть Сумма = Сумма + т.сумма;
#37 by Mitriy
до ста постов дотянем?
#38 by alikgam
Всем спасибо. Думаю, что по данному вопросу непоняток у меня не осталось
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С