Архив рубрики: Работа с Excel (Эксель)

Выгрузить картинку из 1С в Excel

Для того, чтобы выгрузить картинку из 1С в эксель (на примере выгрузки основного изображения номенклатуры), можно использовать следующий метод:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Получаем основное изображение номенклатуры.
ИзображениеТовара = Номенклатура.ОсновноеИзображение.Хранилище.Получить();
 
Если ЗначениеЗаполнено(ИзображениеТовара) Тогда
 
     // Даём имя временному файлу.
     ИмяФайла = "PicForExcel";
     ВременныйФайл = ПолучитьИмяВременногоФайла("jpg");
     // Записываем временный файл на диск.
     ИзображениеТовара.Записать(ВременныйФайл);
     // Получаем координаты для левого верхнего угла изображения.
     Верх = Лист.Cells(СтрокаПрайса, ТекущаяКолонка).Top;
     Лево = Лист.Cells(СтрокаПрайса, ТекущаяКолонка).Left;
     // Используем метод AddPicture и добавляем картинку в координаты с размером картинки 100 на 100.
     // Сама картинка, при этом, не теряет своего настоящего разрешения, просто подгоняется под указанные размеры.  
     Лист.Shapes.AddPicture(ВременныйФайл, Ложь, Истина, Лево, Верх, 100, 100);
     // Удаляем временный файл с диска.
     УдалитьФайлы(ВременныйФайл);
 
КонецЕсли;

Читать далее

Загрузка из Excel в 1С

Загрузка из excel в 1С номенклатуры (для примера) реализуется следующим образом:

  1. Подготавливается файл-шаблон, по образу и подобию которого всегда будут создаваться файлы с данными для загрузки в 1С из эксель;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Пытаемся подключиться к Excel.
Попытка
 
     ExcelПриложение = Новый COMОбъект("Excel.Application");
     Книга = ExcelПриложение.Workbooks.Open(ПутьКФайлу);
     Лист = Книга.WorkSheets(1);
 
Исключение
 
     Сообщить(ОписаниеОшибки());
     Возврат;
 
КонецПопытки;
 
ExcelПриложение.Application.Visible = Ложь;
ExcelПриложение.Application.DisplayAlerts = Ложь;
 
// По координатам "последней" ячейки (SpecialCells(11)) получаем
// количество используемых колонок и строк
ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
 
// Указываем номер строки, с которой начинается чтение листа
НомерПервойСтроки = 1;
 
// Указываем номера колонок, данные из которых будем читать
КолонкаНаименованиеПолное = 2;
КолонкаАртикул = 5;
КолонкаЦена = 8;
 
// Добавляем номенклатуру в систему
СчетчикСтрок = НомерПервойСтроки;
Пока СчетчикСтрок <= ВсегоСтрок Цикл
 
     НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
     // Мы по координатам (номер строки, номер колонки) находим ячейку и читаем её значение
     НоваяНоменклатура.НаименованиеПолное = СокрЛП(Лист.Cells(СчетчикСтрок, КолонкаНаименованиеПолное).Value);
     НоваяНоменклатура.Артикул = СокрЛП(Лист.Cells(СчетчикСтрок, КолонкаАртикул).Value);
     НоваяНоменклатура.Цена = СокрЛП(Лист.Cells(СчетчикСтрок, КолонкаЦена).Value);
 
     Попытка
          НоваяНоменклатура.Записать();
     Исключение
          СообщениеПользователю = Новый СообщениеПользователю;
          СообщениеПользователю.Текст = "Не удалось записать номенклатуру + " + НоваяНоменклатура.НаименованиеПолное + "! " + ОписаниеОшибки();
          СообщениеПользователю.Сообщить();
     КонецПопытки;
 
     СчетчикСтрок = СчетчикСтрок + 1;
 
КонецЦикла;
 
// Закрываем книгу и эксель
ExcelПриложение.ActiveWorkbook.Close();
ExcelПриложение.Quit();

Выгрузка из 1С в Excel

Как выгрузить данные из 1С в эксель? Очень просто! Код, размещённый ниже, поможет подключиться к Excel, создать книгу Excel из 1С и лист.

Лист можно заполнить данными и сохранить файл на носителе.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Подключаемся к Excel
Подключено = Ложь;
 
Попытка
     ExcelПриложение = Новый COMОбъект("Excel.Application");
     Подключено = Истина;
Исключение
     Сообщить(ОписаниеОшибки());
КонецПопытки;
 
Если Подключено Тогда
     // Готовим книгу и листы
     Книга = ExcelПриложение.WorkBooks.Add();
     Лист = Книга.WorkSheets(1);
 
     // Заполняем строку файла.
     // Заполняются три ячейки в первой строке.
     Лист.Cells(1, 1).Value = "Номенклатура";
     Лист.Cells(1, 2).Value = "Количество";
     Лист.Cells(1, 3).Value = "Цена";
 
     // Путь - это значение реквизита, в котором указан путь к месту сохранения файла.
     ФайлНаДиске = Новый Файл(Путь + "айл.xlsx");
 
     Попытка
          ExcelПриложение.DisplayAlerts = False;
          Книга.SaveAs(ФайлНаДиске.ПолноеИмя);
          ExcelПриложение.ActiveWorkbook.Close();
          // Обязательно закрываем эксель, иначе процесс EXCEL.exe так и будет висеть в памяти.
          ExcelПриложение.Quit();
 
          Сообщить("Файл выгружен успешно: "  + ФайлНаДиске.ПолноеИмя);
     Исключение
          Сообщить("Ошибка записи данных файла: " + ФайлНаДиске.ПолноеИмя);
          Сообщить(ОписаниеОшибки());
          Попытка
               ExcelПриложение.Quit();
          Исключение
          КонецПопытки;
     КонецПопытки;
КонецЕсли;