Имя: Пароль:
1C
1С v8
ТаблицаФормы: оформление ячеек (УФ)
0 Dmitriy_
Kolesnikov
 
19.04.17
06:07
Есть динамически формируемая ТЗ с неизвестным заранее количеством колонок (их несколько десятков), которая переносится в реквизит формы, связанный с таблицей формы.
Во всех ячейках - числа.
Мне нужна простая вещь: в тех ячейках таблицы (элемента формы), где число <0, сделать Доступность = ложь.
При этом данные в ячейках друг от друга совершенно никак не зависят.
Как я понял, обойти таблицу формы или просто обратиться к отдельной ячейке, чтобы прочитать\записать её реквизиты, нельзя.

Видится некрасивое решение: в цикле для каждой колонок добавлять свой УсловноеОформление.Элементы.Добавить(), проверяющий значение и меняющий оформление именно этой колонки. Как это будет работать в веб-клиенте - страшно представить.

А есть ли красивое решение?

СКД и ТабличныйДокумент не предлагать - ТЗ формируется очень хитро. А после редактирования таблицы оператором её надо обработать.
1 Тихий омут
 
19.04.17
06:47
Событие таблицы ПередНачаломИзменения, проверка тек ячейки на 0, отказ=истина. Неужели не работает?
2 Dmitriy_
Kolesnikov
 
19.04.17
11:43
(1) ОК, хорошая идея. Но мне надо дополнительно, чтобы фон всех ячеек, в которых значение меньше нуля, был черным. Тогда как?
3 Fedor-1971
 
19.04.17
11:51
(1) Не совсем так. ПередНачаломИзменения проверить и установить доступность=ложь (для колонки таблицы, ячейка не имеет таких настроек), ПослеОкончанияРедактирования снять, иначе не сможешь редактировать данные в тех строках, где значение есть.
Только Доступность может ломануться наСервер, ТолькоПросмотр - дешевле, гарантированно не полезет на сервер.

(2) Динамически создал колонки, динамически создай и элементы УсловноеОформление для нужных колонок и будет тебе счастье.
4 Dmitriy_
Kolesnikov
 
19.04.17
12:42
(3) за совет относительно ТолькоПросмотр - благодарю.
Вся проблема в том, что колонок у меня 60-80 штук, и я не уверен в том, насколько разумная идея - нагружать клиента 60-80 условными оформлениями. Но если других вариантов нет - так и сделаю.
5 Dmitriy_
Kolesnikov
 
19.04.17
14:46
(4) сделал - всё работает быстро.
AdBlock убивает бесплатный контент. 1Сергей