Зачастую перед разработчиками в 1С:Предприятие 7.7 встает задача наглядного отображения графической информации, привязанной к конкретному документу. Рассмотрим пошагово, как реализовать механизм, при котором каждому документу будет соответствовать уникальный графический файл.
Прежде всего, нам необходимо связать конкретный документ с файлом на диске. Наиболее оптимальным способом является хранение пути к файлу непосредственно в реквизитах документа. Для этого выполним следующие действия:
ПутьКФайлуКартинки. Установим для него тип «Строка» достаточной длины (например, 200–300 символов), чтобы в нем поместился полный путь к файлу.ПутьКФайлуКартинки всегда попадал корректный адрес.Когда путь к файлу успешно сохраняется в документе, следующим этапом будет вывод самой графики на экран. Для этого воспользуемся объектом Картинка, доступным в конструкторе форм 1С 7.7:
Картинка на форме документа.ПриОткрытии() модуля формы пропишем логику считывания файла. Если файл существует по указанному пути, мы загрузим его в наш объект.Важно помнить об актуальности данных. Если пользователь открывает несколько документов подряд или редактирует путь, состояние объекта на форме не всегда обновляется автоматически. Для корректной работы рекомендуем использовать процедуру ПриАктивизацииСтроки (если работаем со списком) или вызывать обновление при изменении реквизита.
Самый интересный этап — это вывод нашего файла в печатную форму (таблицу). Здесь мы будем использовать механизм работы с областью печати и объектом Картинка, размещенным в макете.
Для реализации этой задачи создадим вспомогательную функцию, которая будет проверять наличие файла и загружать его в ячейку таблицы. Разберем пример реализации такой функции:
Функция Рисунок(Куда, Откуда)
Если ФС.СуществуетФайл(Откуда) = 1 Тогда
Куда.Загрузить(Откуда);
КонецЕсли;
Возврат Куда;
КонецФункции
В приведенном коде объект ФС — это встроенный системный объект ФС (Файловая Система), который позволяет работать с дисковыми операциями. Метод СуществуетФайл() гарантирует, что программа не «вылетит» с ошибкой, если файл случайно удалили или переместили.
При заполнении табличного документа нам нужно правильно инициализировать процесс вывода:
ПутьКФайлу, в которую передаем полное имя файла.Рисунок.Растягивать, чтобы картинка корректно вписалась в отведенную ей область без искажения верстки всей печатной формы.Совет: Всегда очищайте объект Картинка, если в текущем документе файл отсутствует или путь к нему не задан. Это защитит вас от ситуации «залипания», когда при печати пачки документов в одном экземпляре случайно выводится изображение от предыдущего документа.
Проанализируем ситуацию, когда файлов становится очень много. Загрузка «тяжелых» графических объектов напрямую может замедлить формирование печатных форм. В таких случаях мы рекомендуем:
OLE или специализированные библиотеки Windows.Используя данный подход, вы сможете быстро и эффективно организовать визуализацию документов в 1С 7.7, сделав интерфейс программы более понятным для конечных пользователей.