Работа с интерфейсом в платформе 1С:Предприятие 7.7 сегодня может преподнести немало сюрпризов, особенно когда речь заходит о графических элементах. Одной из классических проблем является некорректный вывод пиктограмм в текстовых столбцах журналов или табличных частей. Разберем ситуацию, когда вместо ожидаемых цветных значков мы видим пустые места, черные рамки или вовсе "битую" картинку, несмотря на то, что в конфигураторе все настроено верно.
Первое, на что нам стоит обратить внимание, — это формат самого файла пиктограмм. Платформа 7.7 крайне чувствительна к структуре файла .bmp. Современные операционные системы (Windows 10, Windows 11) и их встроенные редакторы, такие как Paint, при сохранении файла используют глубину цвета 24 бита или 32 бита. Старый движок 1С 7.7 зачастую не понимает такие файлы корректно.
Проанализируем основные параметры, которые должны быть соблюдены:
Как выяснилось в ходе обсуждения, стандартный MS Paint в новых версиях Windows "ломает" структуру BMP-файла для старых приложений. Рассмотрим варианты решения, если картинка отображается только по первому индексу или выглядит как белый квадрат с черной рамкой:
1cv7ie.exe. Она автоматически выставляет нужные параметры кратности и глубины цвета.Для того чтобы пиктограммы отображались в журнале, мы должны выполнить два условия в конфигураторе:
Рассмотрим пример функции, которая определяет, какую иконку вывести в зависимости от состояния документа:
Функция НомПикт()
Если ТекущийДокумент.Выбран() = 0 Тогда
// Если строка пустая или документ не выбран
Возврат 0;
Иначе
// Проверяем реквизит документа
Если ТекущийДокумент.Терминал = 1 Тогда
// Вернуть индекс первой иконки в ленте
Зн = 1;
Иначе
// Вернуть индекс второй иконки в ленте
Зн = 2;
КонецЕсли;
Возврат Зн;
КонецЕсли;
КонецФункции
Важный момент: индекс 0 обычно означает отсутствие картинки. Нумерация значков в файле для 1С начинается с 1. Если ваша функция возвращает 2, а картинка в файле всего одна, вы увидите пустое поле.
Если проблема сохраняется, мы можем провести диагностику с помощью объекта ТаблицаЗначений на форме обработки. Это позволит исключить влияние свойств конкретного журнала. Посмотрим на пример проверочного кода:
Процедура Сформировать()
Тз.НоваяКолонка("СтатусПикт");
// Включаем режим вывода пиктограмм для колонки
Тз.ВыводитьПиктограммы("СтатусПикт");
// Добавляем строки с разными индексами
Тз.НоваяСтрока();
Тз.СтатусПикт = 1; // Должна быть первая картинка
Тз.НоваяСтрока();
Тз.СтатусПикт = 2; // Должна быть вторая картинка
Тз.НоваяСтрока();
Тз.СтатусПикт = 0; // Пусто
КонецПроцедуры
Если в таблице значений индексы работают корректно, а в журнале — нет, значит, проблема в привязке картинки к самому журналу (проверьте закладку "Картинка" в свойствах формы журнала) или в типах возвращаемых значений функции.
Выясним причину, по которой некоторые цвета могут "пропадать". В 1С 7.7 существует строго заданная палитра для иконок. Например, если вы используете темно-зеленый цвет, который совпадает с системным цветом прозрачности, он будет отображаться как пустота.
Совет: При создании собственных значков старайтесь использовать яркие, чистые цвета из стандартной палитры 16 цветов. Это минимизирует риск того, что при рендеринге интерфейса цвет будет заменен на прозрачный или инвертирован.
Подводя итог нашему разбору, выделим основные шаги для исправления вывода пиктограмм:
1cv7ie.exe или старых версий Photoshop/Gimp с явным указанием разрядности BMP (8 бит).Число.Соблюдение этих несложных, но строгих правил позволит вам добиться стабильного и красивого отображения элементов интерфейса в 1С 7.7, сохраняя привычный пользователям функционал индикации состояний документов.