Выгрузка данных по зарплатному проекту для ЗАО "КРЕДИТ ЕВРОПА БАНК" в Excel (для 1С 8.2 HRM)



Внешняя обработка: Выгрузка данных по зарплатному проекту для ЗАО "КРЕДИТ ЕВРОПА БАНК" с созданием файла Excel в 1С 8.2 HRM

Новая внешняя обработка выгрузки по зарплатному проекту для ЗАО «Кредит Европа Банк»

В Процедуре КнопкаВыполнитьНажатие(Кнопка) надо изменить

// здесь надо поставить свой путь к шаблону
Книга = Excell.WorkBooks.Open("C:1CSALARY.xlsm");

// здесь надо поставить ваши коды для организации
Если Организация.Код = "000000078" Тогда
КлиентНом = "765";
ИначеЕсли Организация.Код = "000000032" Тогда
КлиентНом = "3TS";
ИначеЕсли Организация.Код = "000000099" Тогда
КлиентНом = "0RX";
КонецЕсли;

Процедура ПриОткрытии()
//куда выгружаем по умолчанию
Элементыформы.Файл.Значение = "D:ase1CВедомость.xlsm";
КонецПроцедуры

 

Вариант 2 (внешний шаблон)

Процедура КнопкаВыполнитьНажатие(Кнопка)
Попытка
Excell = Новый COMОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Excell.WorkBooks.Open("C:maket_nerezedent.xls"); //******здесь необходимо указать путь к шаблону
.....

***************

Ключевые моменты:

Макет = ПолучитьМакет("Макет");

Книга = Макет.Получить();

Лист = Книга.WorkSheets(1);                          // Установка листа в качестве рабочего с номером 1.

Лист.Cells(1,1).Value = "1234567";

Книга.Windows(1).Visible = 1;                        //без строчки ниже при использовании метода SaveAs
//документ создается c закрытым листом (в данном случае лист 1)

Лист.Rows("15:15").Insert(1);                        //добавить строку 15

Лист.Rows(Строка(17) + ":" + Строка(17)).Delete(1);  //удалить строку 17


Попытка
Книга.SaveAs("D:111.xls",56);                   //(,56)сохраняется с параметром XlExcel8 (Microsoft Office 97-2003)
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
КонецПопытки;

 

 

1)В создание пригодилась информация с http://forum.infostart.ru/forum24/topic40980/


2)Часто используемые методы для чтения/установки значений в Excel.

Эксель = СоздатьОбъект(«Excel.Application»);

 

Получение доступа к приложению Excel.

Эксель.Visible = Видимость;

 

0 — Excel не виден, 1 — виден.

Книга = Эксель.WorkBooks.Add();

 

Создание новой книги (файла) Excel.

Книга.SaveAs(ИмяФайла);

 

Сохранение книги Excel.

Лист = Книга.WorkSheets.Add();

 

Добавление нового листа в книгу.

Книга = Эксель.WorkBooks.Open(ИмяФайла);

 

Открытие существующей книги (файла) Excel.

Лист = Книга.WorkSheets(НомерЛиста);

 

Установка листа в качестве рабочего с номером НомерЛиста.

Лист.Name = ИмяЛиста;

 

Задание рабочему листу имени ИмяЛиста

Лист.PageSetup.Zoom = Масштаб;

 

Задание параметра страницы «Масштаб» (от 10 до 400).

Лист.PageSetup.Orientation = Ориентация;

 

Ориентация: 1 — книжная, 2 — альбомная.

Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры);

 

Задание левой границы (в сантиметрах).

Лист.PageSetup.TopMargin =

Эксель.CentimetersToPoints(Сантиметры);

 

Задание верхней границы (в сантиметрах).

Лист.PageSetup.RightMargin =

Эксель.CentimetersToPoints(Сантиметры);

 

Задание правой границы (в сантиметрах).

Лист.PageSetup.BottomMargin =

Эксель.CentimetersToPoints(Сантиметры);

 

Задание нижней границы (в сантиметрах).

Лист.Columns(НомерКолонки).ColumnWidth = Ширина;

 

Задание ширины колонке.

Лист.Cells(НомерСтроки,НомерКолонки).Value = Значение;

 

Ввод данных в ячейку.

Лист.Cells(НомерСтроки,НомерКолонки).Font.Name = ИмяШрифта;

 

Установка шрифта в ячейке.

Лист.Cells(НомерСтроки,НомерКолонки).Font.Size = РазмерШрифта;

 

Установка размера шрифта в ячейке.

Лист.Cells(НомерСтроки,НомерКолонки).Font.Bold = Жирный;

 

1 — жирный шрифт, 0 — нормальный.

Лист.Cells(НомерСтроки,НомерКолонки).Font.Italic = Курсив;

 

1 — наклонный шрифт, 0 — нормальный.

Лист.Cells(НомерСтроки,НомерКолонки).Font.Underline =

Подчеркнутый;

 

2 — подчеркнутый, 1 — нет.

Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat =

Формат;

 

Установка формата данных ячейки.

Лист.Cells(НомерСтроки,НомерКолонки).Borders.Linestyle =

ТипЛинии;

 

Установка рамок ячейки. 1 — тонкая сплошная.

27 Comments

  1. 02RUSlan

    Внешняя обработка: Выгрузка данных по зарплатному проекту для ЗАО «КРЕДИТ ЕВРОПА БАНК» с созданием файла Excel в 1С 8.2 HRM

    Перейти к публикации

    Reply
  2. Batman

    Спасибо за таблицу.

    Но смущает расхождение между названием публикации и ее описанием

    Reply
  3. gutentag

    так и хочется спросить, а почему сами банки(за малым исключением) не дают внешние обработки/отчеты для Зарп.проекта?

    И особенно это показательно для Сбербанка



    …глядя на скриншот, я понял, что никогда не захочу иметь дело с этим банком.

    Reply
  4. 02RUSlan

    (1) Batman, Тебе пригодилась Выгрузка данных по ЗП для ЗАО «КРЕДИТ ЕВРОПА БАНК»

    или пример для создания макета Excel в 1С 8.2

    Reply
  5. Batman

    (3)

    Мне понравилось то, что используемые выражения работы с MS Excel сведены в таблицу. Удобно держать под рукой.

    Сама обработка — нет, не нужна

    Reply
  6. гвость

    Довольно ценное замечание, по поводу использования в типе макета Active Document, Exel-евского документа.

    Действительно, без использования, в данном случае Книга.Windows(1).Visible = 1, получим док с данными, но с закрытой книгой, а открыть её в редакторе не получиться. Многие на эти грабли наступают.

    Reply
  7. ZLENKO

    Написал вывод в шаблон в макете типа ActiveDocument и «обломался» — на экране то показывает Excel, а вот сохранить невозможно ни программно ни через меню Excel. Убил кучу времени и так и эдак пытался сохранить. А потом погуглил и понял что это у всех такая трабла… Вобщем переделал на сохранение в макете бинарных данных. ActiveDocument — «в топку».

    Reply
  8. ZLENKO

    На ActiveDocument обломы не закончились… В Excel 2003 поячеечный вывод более менее приемлемо по скорости работает, а в Excel 2007-2010 скорее не работает чем работает. «Пошарился» по инету — нашел достаточно много способов вывода данных в Excel, но большинство из них не позволяет использовать заранее заданный шаблон.

    Остановился на варианте с буфером обмена. Создаем шаблон, создаем текстовое содержимое буфера обмена и имитируем действия пользователя (программно) Кантрэл-Цэ и Кантрэл-Вэ 🙂 Прайс на 9000 строк выводится секунд за 20 !

    Reply
  9. MrVesna

    А как сохранить данный excel-файл по определенному пути без его открытия? И как программно проверить, что он сохранился или нет?

    Reply
  10. Filipp_inf

    При попытке выполнить обработку появилось сообщение об ошибке:

    «{Форма.Форма.Форма(110)}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно Файл не сохранен!»

    Reply
  11. 02RUSlan

    (9) Филипп, при каком варианте? другой вариант пробовал?

    Reply
  12. ilonnaa

    Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат;

    А можно подробностей по этому методу, примеры его использования?

    Reply
  13. ilonnaa

    Лист.Cells(НомерСтроки, НомерКолонки).DataFormat = Формат;

    так будет дата?

    Reply
  14. ilonnaa

    Всё ясно.

    ДатаФормат = «ДД.ММ.ГГГГ»;

    Лист2.Cells(НомерСтроки,НомерКолонки).NumberFormat = ДатаФормат;

    //принудительно ставим формат даты

    Reply
  15. chmv

    У нас проблемма с банком ЕВРОПА-КРЕДИТ.

    Не поняла т.к. в этом файле не работает макрос, зачем туда запихивать информацию.

    М.б. я что-то не понимаю.

    Мы пытаемся запихнуть все в csv

    Reply
  16. 02RUSlan

    (15) chmv, сейчас выложу свежую обработку для КЕБ

    Reply
  17. 02RUSlan

    (15) chmv, скачивайте новую обработку

    Reply
  18. chmv

    К сожалению не хватает ресурсов. Не могли бы прислать на chmv2005@mail.ru

    Reply
  19. 02RUSlan

    (18) chmv, выслал

    Reply
  20. maxim305

    Спасибо, полезный материал.

    Reply
  21. elenko1

    Да, полезный код для работы с Excel, спасибо!

    Хочу поделиться (добавить для пользы на будущее) еще одним приемом работой с Excel через 1с — программной установкой формул.

    Только что экспериментальным методом нашла, как это сделать.

    Например, нужно посчитать сумму в столбце 8 в той же строке из столбца 1+ столбца 2.

    СтрокаСФормулой = «=RC[-7]+ RC[-6]»;

    Лист.Cells(НомерСтроки,НомерКолонки).Formula = СтрокаСФормулой.



    Формулы писать исключительно на английском, русский не воспринимает почему-то…

    Reply
  22. Alfer

    меня устраивает во всем — а некоторые моменты возьму на вооружение для дальнейшего использования

    Reply
  23. buval

    Спасибо, помогла информация и обсуждения

    Reply
  24. Tapochki-tmn
    Reply
  25. Светлый ум

    {Форма.Форма.Форма(124)}: Преобразование значения к типу Число не может быть выполнено

    Лист.Cells(ии,3).Value = ФОРМАТ(Число(ВыборкаДетальныеЗаписи.НомерСчетаСотрудникаОрганизацииВБанке), «ЧГ=»);

    Reply
  26. Светлый ум

    Поправил ручками:

    — Выборка может быть и пустой, поэтому преобразование формата в попытку ставим.

    Reply
  27. Светлый ум

    (21) воспользовался установкой формулы в ячейку:

    // Получение итогов по колонке для двух строк:

    СтрокаСФормулой = «=SUM(F13:F14)»;

    Лист.Cells(17,6).Formula = СтрокаСФормулой;

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *