Как правильно создать и объединить пиктограммы для Таблицы Значений в 1С 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Работа с графическими элементами в платформе 1С:Предприятие 7.7 существенно отличается от современных версий 8.x. Одной из часто встречающихся задач является визуализация статусов или состояний строк в объекте ТаблицаЗначений. Для этого используется специальный набор пиктограмм, объединенных в один файл. В этой статье мы подробно разберем, как подготовить такой файл, соблюдая все технические требования устаревшей, но все еще используемой платформы.

Технические требования к изображениям в 1С 7.7

Прежде чем приступать к "склеиванию" иконок, проанализируем жесткие ограничения, которые накладывает система 1С 7.7 на графические файлы. Несоблюдение этих правил приведет к тому, что картинки будут отображаться серыми, инвертированными или с "грязным" фоном.

  1. Формат файла: Используется строго BMP (Windows Bitmap). Никакие PNG с альфа-каналами или современные форматы не поддерживаются.
  2. Глубина цвета: Это критический момент. 1С 7.7 лучше всего работает с палитрой 16 цветов (4 бита) или 256 цветов (8 бит). При сохранении в режиме 24 бита (True Color) вы почти наверняка столкнетесь с искажением цветопередачи.
  3. Размеры: Стандартная высота одной иконки составляет 16 пикселей. Ширина обычно принимается равной 15 или 16 пикселям. Если мы создаем набор из нескольких значков, они должны идти строго друг за другом по горизонтали. Например, для 4-х иконок размер файла должен быть 60x16 пикселей (15*4 по ширине).

Разберем процесс объединения иконок по шагам

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

Шаг 1. Подготовка холста. Выясним количество иконок, которые нам нужны. Если их 5, то создаем новый файл размером 75 на 16 пикселей (15 пикселей ширины на каждый элемент). Важно, чтобы между иконками не было разделительных линий или пустых пикселей.

Шаг 2. Копирование элементов. Последовательно открываем каждую иконку и вставляем ее в наш общий файл. Разберем по шагам: первая иконка занимает координаты от 0 до 14 по горизонтали, вторая — от 15 до 29 и так далее. Контролируйте, чтобы края иконок не накладывались друг на друга.

Шаг 3. Установка прозрачности. Посмотрим на фон. В 1С 7.7 нет понятия прозрачного слоя в привычном смысле. Система считает прозрачным один конкретный цвет. Чаще всего это ярко-бирюзовый (Fuchsia или Cyan) или стандартный серый цвет Windows RGB (192, 192, 192). Рассмотрим секрет опытных разработчиков: система часто определяет цвет прозрачности по нижнему левому пикселю картинки. Убедитесь, что фон вокруг ваших значков залит однородным цветом, который вы хотите сделать прозрачным.

Работа с палитрой и специализированными утилитами

Выясним причину, по которой иконки часто выглядят "испорченными" после сохранения. Проблема в индексированных цветах. Проанализируем использование штатной утилиты 1cv7ie.exe (1C Icon Editor). Этот инструмент входил в состав дисков ИТС и специально предназначен для создания библиотек картинок 1С.

Если вы используете этот редактор, процесс упрощается: вы можете импортировать готовые картинки, и программа сама приведет их к стандартной палитре 1С. Если же вы рисуете в Photoshop или GIMP, обязательно переведите режим изображения в "Indexed Color" перед сохранением и выберите палитру Windows System.

Программная реализация вывода пиктограмм

Теперь разберем, как подключить созданный файл к вашей ТаблицеЗначений в конфигурации. Проанализируем последовательность действий в конфигураторе:

  1. Откройте форму, где расположена ваша ТаблицаЗначений.
  2. Зайдите в свойства колонки, в которой должны отображаться значки.
  3. Установите флажок "Пиктограммы".
  4. В поле "Картинка" выберите ваш созданный BMP-файл (его предварительно нужно загрузить в ветку "Картинки" дерева конфигурации).

Теперь посмотрим на пример программного кода, который управляет отображением конкретной картинки в зависимости от условий задачи.


// Предположим, у нас есть ТЗ с колонкой "СтатусКартинка"
// В свойствах этой колонки стоит флаг "Пиктограммы"
// 0 - иконка не выводится, 1 - первая иконка в ленте, 2 - вторая и т.д.

ТЗ.НоваяСтрока();
Если ТекущийСтатус = "Оплачено" Тогда
    ТЗ.СтатусКартинка = 1; // Зеленая иконка
ИначеЕсли ТекущийСтатус = "Ошибка" Тогда
    ТЗ.СтатусКартинка = 2; // Красная иконка
Иначе
    ТЗ.СтатусКартинка = 3; // Желтая иконка
КонецЕсли;

Рассмотрим важный нюанс: если в ячейке будет стоять значение 0, пиктограмма отображаться не будет. Это удобно использовать для пустых строк или строк-заголовков. Если же иконка отображается не тем цветом, проанализируем еще раз настройки монитора и глубину цвета файла — 1С 7.7 крайне чувствительна к видеорежимам операционной системы.

Рекомендации по дизайну

Поскольку размер 15x16 очень мал, постараемся избегать мелких деталей и градиентов. Используйте чистые цвета. Чтобы края иконки не казались "рваными", не используйте сглаживание (anti-aliasing) при рисовании на прозрачном фоне, так как 1С 7.7 не умеет смешивать цвет маски с цветом фона таблицы. Разберем ситуацию: если вы нарисуете круг со сглаженными краями на бирюзовом фоне, при выводе в 1С вокруг круга останется бирюзовый "ореол". Рисуйте "пиксель в пиксель", чтобы результат выглядел профессионально.

← На главную