#0
by KindLion
Доброго дня! В табличном поле документа мне необходимо менять оформление строки, сравнивая данные текущей и предыдущей строк. Алгоритм, который написал - несовершенен, т.к. начинает глючить после редактирования любой ячейки, или при удалении любой строки. Собственно, сам код: ============================== Как этот код нужно доработать?
#3
by Mort
Не взлетит. Нет, оформлять нужно в этих процедурах, а вот считать параметры оформления нужно уже на других событиях ТЧ.
#5
by KindLion
Да, я видел это событие. Но вот чего не соображу - ОформленияСтрок - коллекция только для видимой части ТЧ, а для того, чтобы оформить [0] строку этой коллекции, мне надо заглянуть на одну строчку вверх от горизонта. :)
#6
by KindLion
Перетаскивание строк я запретил - тут проблемы не будет. Но вот удаление строки... это возможно - оно ведь тоже меняет состав строк.... :(
#7
by Mort
1. Делаешь соответствие строкаТЧ - реквизиты оформления. 2. При удалении/окончании редактирования обновляешь это соотвествие. 3. При получении данных читаешь оформление для своих строк из соответствия. .. Profit!
#8
by pessok
данные надо сравнивать все же не по табличному полю, а по табличной части. ключом у тебя будет НомерСтроки. Т.е. ты берешь ТЧ[ОформлениеСтроки.Ячейки.НомерСтроки-1] = ТЧ[ОформлениеСтроки.Ячейки.НомерСтроки-2] Как-то так. Только не забудь про условия на 0 там и прочее
#10
by KindLion
Рассматривал я этот вариант. Только СтрокаТЧ ничего не знает об оформлении стрки в таб.поле. А писать в ТЧ что-то про оформление - путь легкий, но моветонистый, имхо.
#12
by Mort
Тут не совсем понятно в задаче, достаточно ли одной предыдущей строки для однозначного вычисления оформления. Если да, то вариант в , конечно лучше.
#15
by KindLion
Для оформления текущей строки необходимо и достаточно знать: 1. Данные предыдущей строки 2. Оформление предыдущей строки Ну или понимания того, что текущая строка - первая в табличном поле, и тогда оформлять ее данными по умолчанию
#16
by Kashemir
Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок) Оформлением можно оперировать лишь в пределах текущих видимых строк. Отсюда опираться на оформление предыдущей строки для первой выводимой невозможно.
#18
by Mort
Вообще есть функция получения текущего оформления для строки, но юзать её здесь небезопасно.
#19
by pessok
+ ну как вариант, можно при изменении тч создавать ее копию, в нее добавлять колонки, в которых хранить условия оформления строк, а уже при выводе строки делать как в или , но уже по отношению к новой ТЗ
#20
by KindLion
вот об этом я и писал в - нет, 2 строится не из 1, а из 1 и 2 для вышележащей строки
#22
by KindLion
- да, я тоже склоняюсь к этому варианту. И, каждый раз переписывать эту копию после окончания редактирования и после удаления. Муторно, но если все сделать аккуратно, то должно сработать. Спасибо!
#23
by pessok
подумай в адрес . в твоем случае, это, наверное, единственный приемлемый вариант. рассказывать тебе про рекурсию ведь не надо?
#24
by pessok
можно так, или поизголятся таки с рекурсией. может даже красивше получится, но не факт, что быстрее
#26
by hhhh
не взлетит. Те строки, которые не участвуют в ПриПолученииДанных останутся старых цветов.
#27
by hhhh
Автор - Петросян, ветку в юмор. ЧередованиеЦветовСтрок (UseAlternationRowColor) Использование: Чтение и запись. Описание: Тип: Булево. Содержит признак чередования цветов строк. Истина - цвета чередуются. Доступность: Толстый клиент. См. также: ТабличноеПоле, свойство ЦветФонаЧередованияСтрок
#28
by pessok
так там речь шла не о чередовании, а об условиях различных... или он нас всех наобманул?)
#31
by Kashemir
Ну да. У автора цвет должен меняться только изменении в сочетании номенклатура+характеристика
#32
by Kashemir
Вобщем этот код проверил - работает без проблем Только желательно ОбновлениеКэша всунуть под события фактического изменении ТЧ - в текущем виде напостой будет пересчитывать - лишняя нагрузка
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как программно задать Связь по Владельцу для Поля ввода Табличного поля?
- Как в Icq Lite 7 изменить оформление
- Условное оформление в динамическом списке
- Обработчик события ПриИзменении у поля ввода у ячейки табличного поля
- Подстроить размер выводимой области табличного документа к окну табличного поля
- Как в конфигураторе добраться до поля ввода табличного поля невидимого на форме
- Вывод Табличного поля в табличный документ (поле табличного документа)
- УФ: Где и как сохранить оформление ячейки табличного документа?
В этой группе 1С
- Добавить колонку "Дата выпуска" в отчет Оборотной Ведомости Основных Средств
- Как раскрыть дерево на форме на нужной позиции?
- v7: Windows 2008 и 1С 7.7 SQL
- Корректировка реализаций в УТ 10.3 не делает проводок по рег. Продажи
- Обработка выбора значения составного типа
- Что такое модель сервиса в БСП?
- v8: Обмен УТ 10,3- Розница 2,0
- Ошибка создания компоненты "Система защиты" (LicenceAddIn.dll)
- Рутрекер (rutracker.org) взломали!
- Вызов процедуры модуля объекта из формы....
- выгрузка данных на ТСД CipherLab
- ЗУП: расчёт премий от количества отработанных часов
- БП 2.0 не видит авансов и не делает их автоматический зачет
- КА 1.1.19.1 - ведомость по учету мпз - характеристики номенклатуры
- Районный коэффициент, Северная надбавка. Переход Зик77-ЗУП8
- Представление полей в универсальном отчете
- Как в БП 2.0 рассчитать налог УСН - доходы 6%?
- Как добавить колонку в форму списка регистра сведений
- Как получить ссылку на справочник по данным из SQL Binari(16)
- Розница ред 2.0 .Печать этикеток и ценников