Hare.ru @ Коллективный разум / Hare.ru @ Дикое место

Архив hare.ru 
Мысли, конвертированные в текст

Собственные руки TM


Все статьи раздела

Как использовать в таблицах свои собственные пиктограммы?

Никита Зайцев (WildHare) (где-то в 1999)

Насмотревшись на табличные формы типовых конфигураций, практически каждый 1С-программист загорается желанием сделать нечто похожее в своих таблицах. И, не без помощи на редкость косноязычной документации от 1С, у многих так ничего не получается.

Каким же волшебным образом 1С работает с пиктограммами в таблицах? А вот как: к таблице прикрепляется картинка-исходник (закладка “Картинка” в палитре свойств), которая представляет собой последовательный ряд пиктограмм размером 15х15 пикселов. Далее, у нужной колонки таблицы выставляется опция “Показывать пиктограммы”. Система ведет себя следующим образом: значение колонки преобразуется в число, из картинки вырезается соответствующий кусочек (1 - первый квадрат, 2 - второй и т.д.) и показывается в колонке как пиктограмма. Хм.. похоже, что внятно рассказать про это невозможно в принципе. Просто следуйте нижеследующему алгоритму, и все заработает ;-)

Возьмем конкретную задачу: имеется некий журнал документов, в одной из колонок которого нужно выводить пиктограммы. Какую именно иконку показывать — зависит от реквизита текущего документа журнала (для простоты, это будет перечисление). Всего есть четыре разных иконки. Что нужно делать?

  • Подготовим исходник для пиктограмм. В качестве примера можно полюбоваться на 1Cv7\bin\imagecol.bmp. Именно оттуда я и вырезал картинку, поскольку artwork — не моя стихия. Если вы умеете рисовать пиктограммы — тем лучше для вас ;-) Итак, мы имеем картинку (zoom ну очень сильный, на самом деле она 15х60 пикселов):

  • Занесем картинку в Библиотеку Картинок, это выглядит так:

  • Откроем палитру свойств табличной части формы списка нашего журнала, перейдем в закладку “Картинка” и назначим нашу картинку:

  • Добавим в табличную часть текстовую колонку (F10-Вставить-Текст), откроем ее палитру свойств, перейдем в закладку “Дополнительно”, выставим там режим “Показывать пиктограммы” и впишем название функции, которая будет задавать номер пиктограммы для показа:

  • Перейдем в модуль формы и напишем эту функцию. В нашем простом примере будем считать, что номером показываемой пиктограммы будет считаться порядковый номер некоего перечисления — реквизита документа по имени НомерПиктограммы. Естественно, что на реальных задачах будут другие, более сложные алгоритмы, но принцип тот же — сопоставить некий параметр документа номеру пиктограммы. Функция будет выглядеть так:

    Функция НомПикт ()
      Если ТекущийДокумент.Выбран()=0 Тогда
      // проверим наличие документа в строке
        Возврат 0;
      Иначе // возвращаем номер элемента перечисления
        Возврат ТекущийДокумент.НомП.ПорядковыйНомер();
      КонецЕсли;
    КонецФункции
    
  • Готово дело. Работающая форма будет выглядеть так:

Само собой, в качестве таблицы может выступать любой табличный реквизит любой формы: документа, журнала, справочника. Таблица значений также может содержать пиктограммы, единственное отличие от “прошитых” заключается в том, что режим показа пиктограмм для колонки включается программно, методом ТЗ.ВыводитьПиктограммы(...).

Партнеры:


Также может быть интересно:

Канал Россия 1 на http://spbtvonline.ru/
   
 Сайт поддерживается за счет партнеров:
:::... Сайт содержит архив двух версий hare.ru Карта сайта