Условное оформление программно созданной таблицы значений #767125


#0 by belka4_4
Здравствуйте! Снова я Есть таблица значений, создаётся программно (т.к. список колонок зависит от значений реквизита). В общем случае получить надо что-то такое Создаю ТЗ, заполняю её типа как тут: Выкидываю на форму: //переносим таблицу значений на форму ЭтаФорма.ЗначениеВРеквизитФормы(Таб,ИмяТЗ); Теперь на форме таблица с именем "ТабЗН" (через отладчик доступно). В ячейках - ссылки на мероприятие. Надо: 1. убрать возможность заполнения ячеек ручками, кнопку выпадающего списка и открытия и вместо этого добавить своё контекстное меню чтобы можно было обработать. 2. вместо ссылки пользователю показывать только тип мероприятия, а открыть для просмотра можно будет по кнопке контекстного меню 3. для каждого типа свой цвет ячейки. Пытаюсь делать через условное оформление. Вопрос: как подобраться к ячейке чтобы были доступны эти все свойства? В отладчике по Элементы.ТабЗН.ПодчинённыеЭлементы.ТабЗН[ИмяКолонки] доступны кнопки и цвет фона, но цвет фона нужен не для колонки а именно для ячейки. По самой таблице до вывода её на форму делала так: Но тут только значения. С оформлением ничего сделать нельзя. Пока пробовала сделать просто ненужное мне условное оформление хотя бы для строки. Но ничего не выходит. Пробовала так: ........ ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный); Т.е. если пара вторая - строка должна стать кирпичного цвета. Знаю  что к полю подбираться как-то так: но опять же что в это самое ПолеДляОформления передавать. Как этот цикл по ячейкам организовать?
#1 by Cyberhawk
Много букв + несколько вопросов = лень
#2 by belka4_4
Вопрос один. Просто расписала что я вообще делаю. Если коротко: Есть программно созданная таблица вида В ячейках - ссылки на мероприятие. Надо: 1. убрать возможность заполнения ячеек ручками, кнопку выпадающего списка и открытия и вместо этого добавить своё контекстное меню чтобы можно было обработать. 2. вместо ссылки пользователю показывать только тип мероприятия, а открыть для просмотра можно будет по кнопке контекстного меню 3. для каждого типа свой цвет ячейки. Пытаюсь делать через условное оформление. Вопрос: как подобраться к ячейке чтобы были доступны эти все свойства?
#3 by Cyberhawk
Я бы делал в виде отчета на СКД...
#4 by kosts
Положи на форму готовую тз. Количество колонок соответствующее твоей задаче (5, 9, 33 колонки). Создавать динамически колонки не нужно. Меняй заголовки у готовой таблицы. 1. Только просмотр включи. Контекстное меню можно добавить. Но только это нетиповой подход. Тогда уже обрабатывай двойное нажатие для открытия. 2. Условное оформление в форме. 3. Условное оформление в форме. Условное оформление находится в свойствах формы. Вроде так. Т.е. динамически надо всего лишь заполнить готовую ТЗ, и заголовки колонок. Запомнить соответствия колонок и данных. Вся настройка таблицы и условного оформления в конфигураторе.
#5 by Ник080808
100500
#6 by belka4_4
Количество колонок постоянно меняется. В зависимости от того, за какой промежуток пользователь хочет видеть данные. Кнопку списка и открытия пока убрала так:
#7 by belka4_4
, Тоже уже думала про отчёт. Но просто мне надо не только выводить, но ещё и менять чего-нибудь (отменить мероприятие, забронировать). И хотелось бы чтобы вся работа по бронированию была в одном месте - в обработке "Управление аудиторным фондом". Там 3 формы: списка, поиска помещения и вот эта занятости.
#8 by kosts
Добавь 40 или 50 колонок. Не обязательно все заполнять, пусть пустые будут. Зато в другом упрощается.
#9 by belka4_4
. Максимально пользователь может узнать за 7 месяцев. Многовато "прозапас"(
#10 by kosts
Как раз для системы такое количество тфу. А вот пользователь наверное доволен будет, когда ему вывалят 200 колонок...
#11 by belka4_4
Ну так я за пользователя и переживаю.
#12 by belka4_4
Да и сидеть на форме руками создавать 200 колонок это тож как-то не правильно.
#13 by kosts
В любом случае показывать пользователю одновременно больше 30-35 колонок не нужно. По этому не пойму зачем делать 200. Или скажи уже, сколько колонок хочешь показать...
#14 by belka4_4
. Если рассуждать логически, то да - в основном не более 30 колонок. Но раз данные хранятся за пол года, значит если барин хочет всё - пусть видит всё. А так придётся ограничивать его диапазоном дат. Сейчас ограничиваю датами записей из регистра сведений о занятости. С календарём я не знаю как запретить выбирать даты вне диапазона. Поэтому делаю типа такого: Процедура ДатаНачалаПриИзменении(Элемент) Аналогично для реквизита ДатаОкончания. Т.е. если дата превышает допустимую - просто допустимая устанавливается. Согласна, способ с ручным созданием наиболее простой для этой задачи. Но хочется же чтоб без ГК((( На то она и автоматизация чтобы не создавать руками пусть даже 30 колонок. Тем более всё равно по ним нужен будет цикл с установкой заголовка.
#15 by belka4_4
Вот так прохожу по реквизитам таблицы: ...... В результате все даты окрашиваются в аквамарин. Уже немного ближе к истине. Но как здесь добавить условное оформление?
#16 by EvgeniuXP
можешь условное оформление сделать прямо на форме, добавить колонки по выкрашиванию цвета - они скрыты будут, вот и пусть закрашивают. При заполнении ТЗ заполняй еще и числа цветом
#17 by belka4_4
. Т.е. тоже поддерживаете идею о создании ТЗ на 30 колонок и последующее её изменение? Чтобы поля стали доступны для отбора.
#18 by Ник080808
Отчет. "Но просто мне надо не только выводить, но ещё и менять чего-нибудь (отменить мероприятие, забронировать). " - делается через расшифровку.
#19 by belka4_4
. В курсе про расшифровку. Основной аргумент был: "И хотелось бы чтобы вся работа по бронированию была в одном месте - в обработке "Управление аудиторным фондом"." Пока борюсь.
#20 by belka4_4
Получилось окрашивать пару вот так: Вторая пара в таблице окрашивается. Но вот с датами не работает(. Пробую так: Не окрашивается вообще Пробовала ещё так: В этом случае получаем вот что: На форме создала таблицу ТЗ для испытаний. Так там при установке условия отбора колонка Дата с типом СправочникСсылка.Мероприятия не имеет никаких данных о себе по ссылке и максимум можно установить так: ТЗ.Дата Равно Справочник.Мероприятия.ПустаяСсылка Получается нельзя обратиться к данным никак?
#21 by belka4_4
По поводу контекстного меню и командной панели: максимум смогла добиться отсутствия командной панели и по ПКМ показывает только 3 варианта (Изменить, Копировать, Выделить все)и они не доступны (просто подсвечиваются бледно-серым, но применить их нельзя). Как их убрать так и не нашла. Остальное убрала так: //Получили таблицу, изменили массив реквизитов и т.д. Для своих задач создала отдельно непривязанную к таблице командную панель средствами конфигуратора. Текущую выделенную ячейку считываю так: Строка = Элементы.ТабЗН.ТекущаяСтрока; +дополнительно обрабатываю чтобы выделенное пользователем было заполненное значение типа СправочникСсылка.Мероприятие, а не пара или пустое, например.
#22 by belka4_4
Вопрос с условным оформлением остаётся открытым, к сожалению(
#23 by Ник080808
ну так выводите в обработке в табличный документ. Кто мешает то?
#24 by Ma3eIIa
если ты выводишь только. да и вообще кури СКД.
#25 by Ник080808
Пока Дата <= ДатаОкончания Цикл     ЭлементОформления.Поля.Элементы.Очистить; " - может очищать перед циклом?)
#26 by Ma3eIIa
#27 by Ma3eIIa
можно и такое. но думаю не сможешь. еще пока рано. хотя вот бонус нарыл
#28 by belka4_4
Тогда зло распространяется на все колонки. Поэтому и очищаю, чтоб только для одной колонки окрашивалось
#29 by belka4_4
, . Спасибо, почитаю. Но да, с диаграммой Ганта наверное рановато мне=(
#30 by Ник080808
тогда непонятно что не так
#31 by belka4_4
Видимо нельзя как по ссылке обратиться. Сейчас делаю так. Помимо мероприятия получаю ещё к какому типу оно относится. Т.е. есть колонка типа Дата07_03_2016 и колонка ГруппаМероприятия07_03_2016, значение которой имеет тип Строка. Просто на форме эту колонку не отображаю. И тогда условное оформление пытаюсь сделать так:     КонецЦикла; Т.е. Окрасить хочу поле Дата в зависимости от значения соседнего поля Группа. Но вообще ничего не закрашивается(((
#32 by МимохожийОднако
Написала, что делала. Но я так и не понял для чего. Если озвучишь цель обработки, то возможно и решение будет проще.
#33 by belka4_4
. Есть РС, который хранит где, что, во сколько и когда проходит. Измерения Дата, Пара, Помещение. Ресурс - Мероприятия (Да, регистр не периодический и есть измерение Дата - так надо). Т.е. записи вида 07.03.2016 | 09.50-11.20 | 210 | ИИТ Вытягивают из этого регистра данные чтобы получить что-то такое: При взаимодействии с таблицей у пользователя должна быть возможность отменить мероприятие, забронировать новое, перенести. Сейчас вопрос стоит в окрашивании ячеек в зависимости от типа мероприятия. ТипМероприятия - реквизит справочника, имеет значение ПеречислениеСсылка.
#34 by Ник080808
не ну отчет на скд. И пишется быстрее и работать красивее будет.
#35 by Garykom
А никто не предложил ТабличныйДокумент на форму засунуть и с ним играться?
#36 by belka4_4
УРААААА!!!!! Поборола. Злосчастная ошибка была. Не в том месте строчка ЭлементОформления  = УсловноеОформление.Элементы.Добавить; Её нужно на каждом витке цикла добавлять     КонецЦикла; Вот только таких циклов надо столько, сколько типов мероприятий. Вот это поворот. не проблема, конечно накопипастить, но это странно
#37 by Garykom
+ свое контекстное меню сделать если нуна ))
#38 by Garykom
замечание: нежелательно использовать в качестве имен переменных служебные слова языка программирования, например "Дата"
#39 by belka4_4
, Предлагали выше. Но уже вроде как получилось с таблицей) Проблема с менюшкой правда осталась( Не критично, но если ни к чему не приду, то, наверное, придётся к табдоку обратиться. . Вы про итератор в цикле?
#40 by Garykom
в 1С есть функция "Дата", поэтому использовать переменную с таким же именем нежелательно.
#41 by belka4_4
. Да, знаю про функцию. Но решила, что раз такой служебной именно переменной нет, то можно юзать.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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