База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в УТ 11.5 выгрузить номенклатуру с картинками в Excel?
- В этой теме 1 ответ, 2 участника, последнее обновление 8 часов, 55 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
19 февраля 2026 в 16:30 #35875
УТ 11.5 дай код выгрузки номенклатуры с присоединенными картинкам в EXCEL
-
19 февраля 2026 в 16:30 #35876
В УТ 11.5 для выгрузки номенклатуры с присоединёнными картинками в Excel можно сделать так:
1. Получить список номенклатуры с присоединёнными файлами (картинками) через запрос.
2. Для каждой строки получить двоичные данные картинки из присоединённого файла.
3. Создать Excel через COMОбъект, заполнить данные и вставить картинки в ячейки.Пример кода (упрощённый, на клиенте):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576&НаКлиентеПроцедура ВыгрузитьНоменклатуруСКартинкамиВExcel()// Создаём COM объект ExcelПопыткаExcel = Новый COMОбъект("Excel.Application");Excel.Visible = Истина;Книга = Excel.Workbooks.Add();Лист = Книга.Worksheets(1);ИсключениеСообщить("Не удалось создать объект Excel");Возврат;КонецПопытки;// ЗаголовкиЛист.Cells(1,1).Value = "Код";Лист.Cells(1,2).Value = "Наименование";Лист.Cells(1,3).Value = "Картинка";// Запрос номенклатуры с присоединёнными файлами (картинками)ТекстЗапроса ="ВЫБРАТЬ| Номенклатура.Код КАК Код,| Номенклатура.Наименование КАК Наименование,| ПрисоединенныйФайл.Значение КАК ФайлКартинки|ИЗ| Справочник.Номенклатура КАК Номенклатура| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрисоединенныеФайлы КАК ПрисоединенныйФайл| ПО Номенклатура.Ссылка = ПрисоединенныйФайл.Ссылка|ГДЕ| ПрисоединенныйФайл.ТипФайла = &ТипФайла| И Номенклатура.ЭтоГруппа = ЛОЖЬ";Запрос = Новый Запрос;Запрос.Текст = ТекстЗапроса;Запрос.УстановитьПараметр("ТипФайла", "Изображение");Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Строка = 2;Пока Выборка.Следующий() ЦиклЛист.Cells(Строка,1).Value = Выборка.Код;Лист.Cells(Строка,2).Value = Выборка.Наименование;Если ЗначениеЗаполнено(Выборка.ФайлКартинки) Тогда// Получаем двоичные данные файлаДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.ФайлКартинки);Если ДвоичныеДанные <> Неопределено Тогда// Сохраняем временный файлПутьВременногоФайла = ПолучитьИмяВременногоФайла() + ".tmp";ДвоичныеДанные.Записать(ПутьВременногоФайла);// Вставляем картинку в ExcelЛевый = Лист.Cells(Строка,3).Left;Верх = Лист.Cells(Строка,3).Top;Ширина = Лист.Cells(Строка,3).Width;Высота = Лист.Cells(Строка,3).Height;Лист.Shapes.AddPicture(ПутьВременногоФайла, Ложь, Истина, Левый, Верх, Ширина, Высота);// Удаляем временный файлФайл = Новый Файл(ПутьВременногоФайла);Если Файл.Существует() ТогдаФайл.Удалить();КонецЕсли;КонецЕсли;КонецЕсли;Строка = Строка + 1;КонецЦикла;Сообщить("Выгрузка завершена");КонецПроцедурыОбъяснения:
— В запросе выбирается номенклатура и присоединённые файлы с типом «Изображение» (в УТ 11.5 именно так обычно хранят картинки).
— Для каждой записи сохраняется временный файл с картинкой.
— Через COM объект Excel вставляется картинка в ячейку.
— Временный файл удаляется после вставки.Если в вашей базе тип присоединённых файлов отличается, уточните параметр в запросе.
https://infostart.ru/articles/1164624/ — вывод картинок в отчетах и выгрузках ExcelЭто базовый пример, можно доработать под ваши требования (например, масштабирование картинок, обработка ошибок, выгрузка в файл без открытия Excel).
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.