Как добавить картинку в прайс в 1с
Данная статья является больше описанием моего собственного опыта решения данного вопроса, но не в кой мере каким-то универсальным решением для всех и каждого. Поэтому заранее прошу прощения за некоторые упущения и тонкости, которые я мог упустить в процессе её написания.
Захотелось как-то помочь всем тем несчастным вроде меня, кто знает, что можно читать EXCEL и уже не раз загружал что-то из него в 1С. Но вот тут возникла потребность загрузить картинки из ячеек, да так, что бы понимать какой строке таблицы соответствует какая картинка, что очень даже важно, если загружаешь прайс-лист поставщика.
Тогда было принято решение поступить радикально и работать не с объектом EXCEL, а непосредственно с табличным документом, так как есть методы позволяющие прочитать файл xlsx и загрузить его в табличный документ и работать уже конкретно с ним. К счастью у табличного документа 1С у рисунка есть метод позволяющий сохранить его в файл, что уже огромный плюс.
Дальше были только мелочные проблемы, например в Экселе есть возможность получить уровень группировки с помощью Лист1.rows(Х).OutlineLevel А вот в табличном документе такого свойства нет. Ещё возникали проблемы при загрузке картинки уже непосредственно в 1С, но это лишь от незнания особенностей конфигурации УТ 11.4
Платформа: 1С:Предприятие 8.3 (8.3.13.1690)
Конфигурация: Управление торговлей, редакция 11 (11.4.6.207)
Я выложу основные моменты в виде текста, что бы любой мог ими воспользоваться. Но для особо ленивых будет доступна обработка, в которой уже всё готово. А так же пример прайс-листа.
Самое простое – это прочитать Эксель в табличный документ. Тут ничего сложно. Единственное есть нюанс, что чтение происходит на сервере и файл у вас должен быть доступен со стороны сервера. У меня это условие выполнялось, так что тут я особо не заморачивался.
EXCEL открывается в табличном документе, при этом даже не обязательно, что бы на компьютере был установлен какой-то из продуктов Microsoft Office .
В данном случае Объект.ТабДок – это реквизит на форме типа ТабличныйДокумент. Таким образом, у нас файл EXCEL открывается в табличном документе, при этом даже не обязательно, что бы на компьютере был установлен какой-то из продуктов Microsoft Office .
Следующий код выполняется на клиенте
Следующим этапом надо определить, где находятся нужные нам колонки. Что бы ни подгонять каждый раз таблицу под какой-то определённый шаблон, чего конечные пользователи делать не будут, я написал алгоритм, который позволяет автоматически определять, в каких колонках какие данные находятся.
При этом, список данных, которые нужны заранее задан как колонки таблицы значений на форме. В моём случае это: Артикул Аналоги, Бренд, Номенклатура, Применяемость, Цена. Алгоритм анализирует начало таблицы в поисках имён и сам определяет по наименованию в какой колонке какие данные лежат. При этом у меня был довольно таки сложный прайс лист, так как в нём присутствовали повторяющиеся названия в колонках, например слово «номенклатура» встречалось несколько раз. Поэтому было дополнительное условие, выбирающее название колонки с наименьшей длинной.
Таким образом мы находим всю шапку табличного документа и здесь же понимаем с какой строки начинать загрузку непосредственно данных. Конкретно в моём случае данные начинались через две строки после шапки, так как и сама шапка высотой в две ячейки.
Дальше происходит непосредственно обход табличного документа по строкам с изъятием данных из колонок, которые мы нашли и добавлением в таблицу значений. Всё это происходит на клиенте.
По большей части всё. Дальше просто создаёте номенклатуру, затем номенклатуру поставщика, создаёте между ними связь. А затем регистрируете цены поставщика.
Надеюсь, мой пример сэкономит кому-то время и нервы. Я собирал всю информацию около недели, так как нет всего этого в одном месте. Где-то одно, где-то другое. Много всего перепробовал, много не получилось, много ошибок допустил и исправил. R03;R03;R03;R03;R03;R03;R03;
В этой статье научимся добавлять в табличный документ картинки. Вы узнаете, как вставить конкретную картинку в табличный документ, а также как подгрузить картинку из общих картинок конфигурации и из хранилища значений.
Вставить картинку в табличный документ 1С
Откроется окно «Выбор картинки».
В этом окне есть несколько вариантов выбора. В закладке «Из библиотеки» мы можем выбрать или общую картинку конфигурации, или стандартную картинку платформы 1С.
На закладке «Из файла» мы можем загрузить нужную картинку из файловой системы.
Вставим картинку из файла. Для этого на закладке «Из файла» следует нажать на кнопку «Выбрать файл».
Найти нужный файл в открывшемся окне «Выбор картинки».
После выбора рисунка, вы можете сделать белый цвет прозрачным. Для этого следует нажать на кнопку «Установить прозрачный цвет», после этого ваш курсор станет «карандашом», и этим курсором необходимо кликнуть по белому цвету картинки.
В результате, белый цвет уйдет.
После нажатия на кнопку «Ок» окна «Выбор картинки», картинка отобразится в табличном документе.
Заметьте, что вокруг вставленной картинки имеется рамка. Для того, чтобы убрать эту рамку, откроем палитру свойств картинки.
И в свойстве Линия установим значение «Нет линии».
В результате, рамки во круг картинки не станет.
Добавим макету область, создадим форму, команду формы, в которой будем выводить табличный документ на просмотр.
И посмотрим, как выведется наш табличный документ с картинкой.
Вывести картинку в табличный документ 1С
Приведенный выше способ отображение картинок статичен: мы вручную при создании макета выбираем ту или иную картинку, которая будет всегда в этом макете отображаться. Но, очень часто возникают ситуации, когда нужно картинку подгружать или из библиотеки картинок, или из хранилища значений.
В этой статье Вы узнаете, как загружать и хранить картинки в хранилище значений:
В учебной конфигурации у справочника Контрагенты был создан реквизит Логотип, тип которого Хранилище значения.
В этом реквизите хранятся картинки.
Теперь, сделаем табличный документ, на котором будет выводиться информация об контрагенте, а также картинка, которая привязана к этому контрагенту.
Есть несколько способов вывода картинки на табличный документ, разберем один из них.
Создадим макет табличного документа, в котором создадим область и зададим несколько параметров, в которые будем выводить информацию о контрагенте.
Будет добавлена пуста картинка (скорее всего, она будет маленького размера).
Откроем палитру свойств этой картинки, изменим имя, уберем рамку и установим авторазмер картинки.
Всё! Макет готов, теперь создадим на управляемой форме реквизит Контрагент, поле ввода контрагента, а также команду для вывода табличного документа.
Создадим обработчик команды и функцию, в которой будем выводить в табличный документ данные контрагента.
Мы получили данные контрагента через запрос. Обращаю ваше внимание на поле «Контрагенты.Логотип КАК Логотип», так мы получаем хранилище значения. Пока все вывели табличный документ без рисунка. Реализуем возможность вывода рисунка. Для этого, вставим после вывода параметров области (ИНН,КПП, название) следующий код.
В этом коде, из хранилища значений, которое в поле Логотип выборки, получим двоичный файл (//1). Потом создадим объект Картинка конструктором на основе двоичных данных (//2), вторым параметром Истина мы установили прозрачность картинки. И присвоим свойству Картинка рисунку области табличного документа, который мы добавили пустым, созданную картинку (//3).
Если мы сейчас попробуем показать этот табличный документ, то на нем отобразится картинка.
Рассмотрим ещё, как программным способом вывести общую картинку. Например, в моей конфигурации имеется общая картинка под названием «Общий логотип».
Выведем эту картинку в уже созданный ранее табличный документ.
Для этого, также как и в первый раз, добавим на табличный документ пустую картинку, которую назовем ОбщийЛоготип, и у которой уберем обводку.
Нам осталось вывести эту картинку при формировании табличного документа. Делается это гораздо проще, чем с картинкой из хранилища значений: просто присваиваем свойству Картинка, вновь добавленному рисунку табличного документа, общую картинку из библиотеки картинок.
После этого, общая картинка будет выведена в табличный документ.
Другие статьи про табличные документы в 1С:
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Читайте также: