Как в 1С изменить цвет строки

Ниже приведено несколько полезных шаблонов кода по работе с табличным документом:

Код 1C v 8.х //Пример получения текста ячейки
ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область(«R1C2»).Текст = спрНоменклатура.Наименование;
ПолеТабДок.Область(«R2C2»).Текст = «Это Строка»; //указываем явно литерал строки
Код 1C v 8.х // Изменение текста в области или ячейке
Для а = 11 по ТабличныйДокумент.ВысотаТаблицы Цикл
//Ячейка = ТабличныйДокумент.Область(а,1,а,1).Текст;
текстЯчейка = ТабличныйДокумент.Область(«R»+а+»C2»).Текст;
Если Строка(ТабличныйДокумент.Область(«R»+а+»C2″).ЦветФона)=»стиль: Фон кнопки» Тогда
ТабличныйДокумент.Область(«R»+а+»C7″).Текст=»»;
ТабличныйДокумент.Область(«R»+а+»C11″).Текст=»»;
ТабличныйДокумент.Область(«R»+а+»C8″).Текст=»»;
ТабличныйДокумент.Область(«R»+а+»C9″).Текст=»»;
ТабличныйДокумент.Область(«R»+а+»C10″).Текст=»»;
КонецЕсли;
КонецЦикла;
Код 1C v 8.х // Как раскрасить ячейку или область табличного документа в зависимости от условия
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; // Получаем табличный документ из формы
ТабДок.Очистить(); // Очищаем табличный документ
Макет = ПолучитьМакет(«Макет»); // Получаем макет с именем «Макет» из текущего объекта
ОбластьСтрокаТаб = Макет.ПолучитьОбласть(«СтрокаТаб»); // Получаем область из макета
ОбластьСтрокаТаб.Параметры.НашПараметр = 1; // Устанавливаем значение 1 параметру «НашПараметр»
ОбластьОформления = ТабДок.Вывести(ОбластьСтрокаТаб);
// Вот собственно и само оформление ячейки
ТабДок.Область(ОбластьОформления.Верх, ОбластьОформления.Лево, ОбластьОформления.Низ, ОбластьОформления.Лево).ЦветФона = WebЦвета.Красный;
Код 1C v 8.х //Пример изменения цвета текста при выводе данных в табличный документ
Таб.ВывестиСекцию(«Контрагент»);
// Изменим Текст ячейки, имя которой заранее задали как «ТекстОСостоянии»
Таб.Область(«ТекстОСостоянии»).Текст = «Хорошо«;
// В зависимости от условия изменим Цвет Текста
Если Раз<0 Тогда
Таб.Область(Таб.ВысотаТаблицы(),9,Таб.ВысотаТаблицы(),9).ЦветТекста(255,0,0);
ИначеЕсли Раз>0 Тогда
Таб.Область(Таб.ВысотаТаблицы(),9,Таб.ВысотаТаблицы(),9).ЦветТекста(0,0,255);
КонецЕсли;

Для того, чтобы появилась возможность использовать свойство «Значение», необходимо явно присвоить свойству ячейки «СодержитЗначение» значение Истина или установить флажок «Содержит значение» в палитре свойств.

Для ячейки, у которой установлен признак «СодержитЗначение», можно задать тип значения, размещаемого в ячейке.

Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта «ОписаниеТипов»

Код 1C v 8.х МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип(«Булево»));
ОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
//…
ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область(«R3C3»).СодержитЗначение = Истина; //указываем, что в ячейке будет значение
ПолеТабДок.Область(«R3C3»).ТипЗначения = ОписаниеТиповБулево; //указываем тип значения
ПолеТабДок.Область(«R3C3»).Значение = СпрНоменклатура.Услуга; //значение, типа «Булево» из справочника

Для ячейки табличного документа можно задавать формат вывода данных. Для этого используется свойство «Формат», которое содержит форматную строку. Приемы работы с форматной строкой полностью совпадают с функцией Формат()

Код 1C v 8.х ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область(«R4C3»).ТипЗначения = ОписаниеТиповДата; //указываем тип, ранее заданный для Даты
ПолеТабДок.Область(«R4C3»).Значение = ТекущаяДата();
//указываем форматную строку
//будет выглядеть как «-«, если текущая дата ’20-11-2003 23:15:00′)
ПолеТабДок.Область(«R4C3»).Формат = «ДФ=-«;

Элемент управления в табличном документе

Для ячейки, у которой установлен признак «СодержитЗначение», можно также задать элемент управления, который будет использоваться для редактирования этого значения.

Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода «УстановитьЭлементУправления()». Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство «ЭлементУправления», которое возвращает элемент управления, назначенный для ячейки.

Элементы управления, встроенные в ячейку, отображаются только при входе в режим редактирования значения. На приведенном ниже рисунке редактируемая ячейка обведена овалом и в ней отображается флажок:

Ниже показан пример установки элемента управления типа «Флажок» из встроенного языка://задаем нужный тип с помощью объекта «ОписаниеТипов»

Код 1C v 8.х МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип(«Булево»));
ОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);

ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область(«R5C3»).СодержитЗначение = Истина; //указываем, что в ячейке будет значение
ПолеТабДок.Область(«R5C3»).ТипЗначения = ОписаниеТиповБулево; //указываем ранее заданный тип
ПолеТабДок.Область(«R5C3»).Значение = СпрНоменклатура.Услуга; //значение, типа «Булево» из справочника
//а теперь указываем, что в ячейке будет отображаться флажок
ПолеТабДок.Область(«R5C3»).УстановитьЭлементУправления(Тип(«Флажок»));

Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:

Разберем самые важные свойства и методы:

Свойство «ВстроенВЯчейку» имеет тип «булево» и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.

Свойство «Видимость» позволяет показать или скрыть элемент управления.

Свойство «Значение» предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.

Метод «Расположить» позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.

Код 1C v 8.х ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента;
ПолеТабДок.Область(«R4C3»).Защита = Истина;

Альфа-Авто: Автосалон+Автосервис+Автозапчасти. Редакция 4.1 версия для Renault (Step 7) (4.1.01.19)
используем Модуль учета рабочего времени. Документ Заказ-наряд, табличная часть работы, нам понадобилось добавить еще один пункт в контекстное меню(когда пользователь правой кнопкой мыши стоя на любой строке ТЧ вызывает контекстное меню), в этом меню есть один добавленный пункт Состояние работ(выводится отчет по состоянию работ с отбором по текущей работе). В свойствах табличного поля Работы в св-ве «КонтекстноеМеню» стоит значение Отсутствует. при этом пункт с отчетом есть, и для него прописана функция в модуле формы КоманднаяПанельРаботыКонтекстноеМенюСостояниеВыполнения(Кнопка), причем прописано что этоДинамически подключаемый обработчик. а что это? пожалуйста подскажите, очень НАДО
Отсюда вопрос, как нам добавить еще один пункт, свой, видимо состав меню прописывается где то в защищенных модулях УРВ? ведь стандартный механизм контекстного меню не используется(т.е. конкретная командная панель, где можно прописывать кнопки свои и для них задавать процедуры)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *