Загрузка номенклатуры с картинками из прайс-листа документа Excel
Учетные задачи - Логистика, склад и ТМЦ
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Идея взята из комментария к теме:
Идея состоит в копировании рисунка в буфер обмена методом com объекта Excel. Из буфера обмена картинка копируется в созданный объект Excel диаграмма, а из нее сохраняется в графический файл. Из графического файла картинку можно добавить к номенклатуре уже штатными средствами.
Для каждого рисунка в документе вычисляется строка документа, в котором он находится, и таким образом сопоставляется с номенклатурой.
// В параметрах передаются объекты страницы документа Excel и картинки.
// Функция возвращает номер строки документа, в котором находится рисунок
Функция ПолучитьНомерСтрокиОбъекта(СтраницаДокумента,Картинка)
НомерСтроки = 0;
ТекущаяПозиция = 0;
ПозицияКартинки = Картинка.Top + 3; // на случай, если картинка выходит за границы строки документа добавляем 3 пикселя
Пока ТекущаяПозиция < ПозицияКартинки Цикл
НомерСтроки = НомерСтроки + 1;
ВысотаСтроки = СтраницаДокумента.Rows(НомерСтроки).Height;
ТекущаяПозиция = ТекущаяПозиция + ВысотаСтроки;
КонецЦикла;
Возврат НомерСтроки;
КонецФункции
.............
// Как загрузить номенклатуру из строк документа не привожу.
// Здесь только получение картинок и добавление к номенклатуре, раннее импортированной
// и указанной ссылками в таблице обработки, в которой номера строк соответствуют строкам документа
Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(Объект.ФайлЗагрузки);
WS = WB.Worksheets(1);
Если ЗагружатьКартинки Тогда
WS1 = WB.Worksheets(2); // Создаем диаграмму Excel
ДиаграммаXLS = WS1.ChartObjects().Add(0, 0, 100, 100);
Для Н = 1 По WS.Pictures.Count() Цикл
Картинка = WS.Pictures.Item(Н);
НомерСтроки = ПолучитьНомерСтрокиОбъекта(WS, Картинка);
Картинка.Copy(); // Копируем картинку в буфер обмена
Ширина = Картинка.Width;
Высота = Картинка.Height;
ДиаграммаXLS.Width = Ширина * 1.01; // Устанавливаем размеры
ДиаграммаXLS.Height = Высота * 1.01;
ДиаграммаXLS.Chart.Paste();
ДиаграммаXLS.Chart.Export("c:\TEMP\picture.jpg"); // Сохраняем картинку во временный файл
Если НомерСтроки > 0 И НомерСтроки <= ТаблицаЦенИОстатков.Количество() Тогда
ДвоичныеДанныеКартинки = Новый ДвоичныеДанные("c:\TEMP\picture.jpg");
ДанныеКартинки = Новый Картинка(ДвоичныеДанныеКартинки);
АдресДвоичныхДанныхКартинки = ПоместитьВоВременноеХранилище(ДвоичныеДанныеКартинки);
Номенклатура = ТаблицаЦенИОстатков[НомерСтроки - 1].Номенклатура;
ЗаписатьКартинкуНоменклатуры(АдресДвоичныхДанныхКартинки, Номенклатура, ДанныеКартинки.Формат());
КонецЕсли;
КонецЦикла;
КонецЕсли;
Приложенная обработка не претендует на универсальность, в ней реализован импорт номенклатуры из прайса с жестко заданной структурой. Импортируется в конфигурацию Управление торговлей 11.2, используется определенный вид номенклатуры ("ТоварСКартинками", опционально с дополнительными свойствами "Состав" и "Произведено"). Графический файл сохраняется в каталоге C:\TEMP. В первой строке документа на первом листе Excel должны быть заголовки столбцов (не используется). Стобцы:
- 1 - не используется
- 2 - Наименование (обязательно)
- 3 - не используется
- 4 - Артикул
- 5 - Производитель
- 6 - Картинка (положение в строке не имеет значения)
- 7 - Состав (опционально)
- 8 - Описание
- 9 - Страна (опционально)
- 10 - Цена
- 11 - Количество
Обработку можно использовать в качестве шаблона для реализации импорта номенклатуры под собственные нужды.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
39141 руб.
21.04.2017 113524 212 44
17284 руб.
26.04.2016 688145 1573 669
5490 руб.
12.08.2021 48473 654 71
6649 руб.
09.01.2024 22177 229 30
6000 руб.
11.12.2019 68063 1163 3
89900 руб.
09.06.2020 58324 47 60
12444 руб.
29.10.2014 237916 777 544
6000 руб.
26.11.2020 51298 865 4