К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как рисовать в 1С: графические схемы, рисунки и изображения

Как рисовать в 1С: работа с графическими схемами, рисунками в табличном документе, картинками в макетах и программным построением схем. Пошаговые инструкции и примеры кода.

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

Интерактивного «редактора картинок» в 1С нет: платформа не предназначена для рисования мышкой, как графический редактор. Зато есть объект «Графическая схема», элементы оформления табличного документа, поле картинки на форме и встроенный редактор графической схемы, который позволяет размещать фигуры, соединять их линиями и подписывать.

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

Что выбрать: графическая схема, рисунок или картинка на форме

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

Поле картинки на форме — вариант для отображения фотографий товаров, изображений сотрудников и других иллюстраций в интерфейсе. Картинка хранится в базе (в реквизите типа «ХранилищеЗначения») или берётся из файла и выводится через адрес временного хранилища.

Сравнение вариантов

Графическая схема

Блок-схемы, маршруты, интерактивные схемы с обработкой кликов. Не подходит для печати фотографий и сложной графики.

Рисунок табличного документа

Картинки и фигуры в макетах, печатных формах, отчётах. Не интерактивен, редактируется только в конфигураторе или программно.

Поле картинки на форме

Отображение фото и изображений в интерфейсе. Требует хранения двоичных данных и работы с временным хранилищем.

Рисунок в табличном документе: макет и печатная форма

Самый частый сценарий — добавить логотип или изображение в печатную форму. Откройте конфигуратор, найдите нужный макет (или создайте новый: Общие → Макеты → добавить макет типа «Табличный документ»). В редакторе табличного документа выберите пункт меню «Таблица → Рисунки → Вставить рисунок» и укажите тип — картинка из файла, из библиотеки картинок или фигура (линия, прямоугольник, овал, текст).

После вставки рисунок позиционируется мышью, а его свойства (размер, рамка, прозрачность, привязка к ячейкам) настраиваются через палитру свойств. Обратите внимание на свойство «Размещение»: оно определяет, будет ли рисунок двигаться вместе с ячейками при выводе областей макета. Для логотипа в шапке обычно устанавливают привязку к конкретным ячейкам.

Вставка картинки в макет
  1. 1
    Откройте макет табличного документа в конфигураторе
  2. 2
    Выберите Таблица → Рисунки → Вставить рисунок
  3. 3
    Укажите источник: файл, библиотека картинок или общая картинка
  4. 4
    Настройте размер, положение и привязку к ячейкам в палитре свойств
  5. 5
    Сохраните конфигурацию и проверьте вывод печатной формы в режиме предприятия

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

bsl
Рисунок = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = Новый Картинка(ДвоичныеДанныеЛоготипа);
Рисунок.Верх = 2; Рисунок.Лево = 2;
Рисунок.Высота = 15; Рисунок.Ширина = 40;

Графическая схема: блок-схемы и маршруты

Объект «Графическая схема» доступен как реквизит формы. Добавьте реквизит формы типа «ГрафическаяСхема», перетащите его на форму — получите поле, в котором можно размещать фигуры. В режиме предприятия пользователь может редактировать схему встроенным редактором (если это разрешено), а разработчик — строить её программно.

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

bsl
Элемент = Схема.ЭлементыГрафическойСхемы.Добавить(Тип("ЭлементГрафическойСхемыДействие"));
Элемент.Лево = 100; Элемент.Верх = 50;
Элемент.Ширина = 120; Элемент.Высота = 60;
Элемент.Заголовок = "Согласование";

Графическая схема поддерживает события: можно перехватить выбор элемента, двойной щелчок и изменение схемы. Это позволяет делать интерактивные маршруты — например, по клику на фигуру открывать связанный документ. Типовой пример применения — карта маршрута бизнес-процесса, где текущая точка выделяется цветом.

Картинка на форме: фото товара или сотрудника

Для отображения изображения на форме создайте реквизит объекта типа «ХранилищеЗначения» для хранения двоичных данных и строковый реквизит формы для адреса временного хранилища. На форме добавьте элемент «Поле картинки», связанный со строковым реквизитом. При открытии формы данные из хранилища помещаются во временное хранилище, а его адрес присваивается реквизиту.

Загрузка новой картинки делается через диалог выбора файла с помещением файла во временное хранилище (методы НачатьПомещениеФайла или ПоместитьФайл в тонком клиенте). После помещения двоичные данные записываются в реквизит объекта при сохранении. Ограничивайте размер загружаемых файлов: большие фотографии раздувают базу и замедляют обмены.

Типичные ошибки
01
Хранение картинок напрямую в строке неограниченной длины вместо ХранилищеЗначения — база растёт и портится производительность
02
Загрузка фото без сжатия и ограничения размера — документы открываются медленно, обмены удлиняются
03
Забытая очистка временного хранилища после записи — утечки памяти на сервере при массовой работе
04
Привязка рисунка в макете к абсолютным координатам — при выводе областей картинка «уезжает» от своего места

Оформление ячеек как способ «рисования»

Часть задач визуализации решается без картинок вовсе — через оформление ячеек табличного документа. Цвет фона, рамки, шрифт и узоры позволяют «нарисовать» план помещения, шахматку бронирования или цветовую шкалу статусов прямо в отчёте. Программно это делается через область табличного документа и её свойства: ЦветФона, ЦветРамки, ГраницаСверху и аналогичные.

В отчётах на СКД аналогичный эффект даёт условное оформление: ячейки раскрашиваются по условию без единой строки кода. Это предпочтительный путь для аналитических отчётов — он не требует изменения макета и работает в пользовательских вариантах отчёта.

Маршрут решения

Как выбрать подход

Нужна блок-схема или интерактивный маршрут с кликами по элементамИспользуйте объект ГрафическаяСхема на форме
Изображение должно попасть в печатную формуВставьте рисунок в макет или добавьте программно в ТабличныйДокумент.Рисунки
Нужно показать фото в интерфейсе (товар, сотрудник)Храните картинку в ХранилищеЗначения и выводите через поле картинки
Нужна цветовая индикация в отчётеИспользуйте условное оформление СКД или оформление ячеек табличного документа

Проверка результата и ограничения

После вставки рисунка в макет проверьте печатную форму в режиме предприятия на реальных данных: картинка не должна перекрывать текст, обрезаться при разрыве страницы и смещаться при разном количестве строк. Для графической схемы проверьте поведение при масштабировании и при открытии в веб-клиенте — отрисовка в браузере может отличаться от тонкого клиента.

Учтите ограничения платформы: табличный документ не поддерживает поворот картинок и сложную векторную графику, графическая схема не предназначена для печати в высоком качестве, а поле картинки показывает растровые форматы (PNG, JPEG и др.). Если требуется сложная визуализация — диаграммы строятся отдельным объектом «Диаграмма», а нестандартную графику иногда выводят через поле HTML-документа, что требует аккуратной работы с безопасностью содержимого.

Контрольные точки

Как проверить результат

Картинка в печатной форме
Норма

Не перекрывает текст, не обрезается, на месте при разном числе строк

Тревожный признак

Смещается, наезжает на данные, исчезает при разрыве страницы

Графическая схема
Норма

Фигуры соединены линиями, клики обрабатываются, схема сохраняется

Тревожный признак

Линии оторваны от фигур, схема пустая после переоткрытия

Фото на форме
Норма

Отображается после записи и переоткрытия объекта

Тревожный признак

Видно только до записи — данные не сохранились в хранилище

Частые вопросы

Можно ли рисовать мышкой прямо в 1С, как в Paint?

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

Какие форматы картинок поддерживает 1С?

Объект «Картинка» работает с распространёнными растровыми форматами — PNG, JPEG, GIF, BMP. Для печатных форм предпочтителен PNG с прозрачностью. Поддержка конкретных форматов может зависеть от версии платформы, поэтому нестандартные форматы стоит проверить в своей версии.

Как вывести разные картинки в печатной форме в зависимости от условия?

Добавьте рисунок в табличный документ программно при формировании: определите нужное изображение по условию (например, по организации или статусу документа), получите его двоичные данные и присвойте объекту «Картинка» в коллекции Рисунки табличного документа.

Почему картинка на форме пропадает после перезаписи объекта?

Чаще всего двоичные данные помещены во временное хранилище, но не записаны в реквизит объекта типа «ХранилищеЗначения» при записи. Проверьте обработчик записи: адрес временного хранилища нужно превратить в двоичные данные и сохранить в базу до завершения транзакции записи.

Можно ли напечатать графическую схему?

Да, графическую схему можно сохранить в картинку или вывести, но качество и удобство ограничены. Если схема нужна именно в печатном виде, часто её перерисовывают средствами табличного документа или экспортируют как изображение и вставляют в макет.

Как раскрасить ячейки отчёта без программирования?

В отчётах на СКД используйте условное оформление в настройках отчёта: задайте условие (например, значение меньше нуля) и оформление (цвет фона, шрифт). Настройка доступна пользователю в режиме предприятия без изменения конфигурации.

Итог

Что важно запомнить

В 1С нет графического редактора — изображения вставляются из файлов или строятся программно. Для печатных форм используйте рисунки табличного документа, для блок-схем — графическую схему, для фото в интерфейсе — поле картинки с хранением данных в ХранилищеЗначения. Всегда проверяйте результат на реальных данных и ограничивайте размер загружаемых изображений.