Новая внешняя обработка выгрузки по зарплатному проекту для ЗАО «Кредит Европа Банк»
В Процедуре КнопкаВыполнитьНажатие(Кнопка) надо изменить
// здесь надо поставить свой путь к шаблону
Книга = 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 — тонкая сплошная. |
Внешняя обработка: Выгрузка данных по зарплатному проекту для ЗАО «КРЕДИТ ЕВРОПА БАНК» с созданием файла Excel в 1С 8.2 HRM
Перейти к публикации
Спасибо за таблицу.
Но смущает расхождение между названием публикации и ее описанием
так и хочется спросить, а почему сами банки(за малым исключением) не дают внешние обработки/отчеты для Зарп.проекта?
И особенно это показательно для Сбербанка
—
…глядя на скриншот, я понял, что никогда не захочу иметь дело с этим банком.
(1) Batman, Тебе пригодилась Выгрузка данных по ЗП для ЗАО «КРЕДИТ ЕВРОПА БАНК»
или пример для создания макета Excel в 1С 8.2
(3)
Мне понравилось то, что используемые выражения работы с MS Excel сведены в таблицу. Удобно держать под рукой.
Сама обработка — нет, не нужна
Довольно ценное замечание, по поводу использования в типе макета Active Document, Exel-евского документа.
Действительно, без использования, в данном случае Книга.Windows(1).Visible = 1, получим док с данными, но с закрытой книгой, а открыть её в редакторе не получиться. Многие на эти грабли наступают.
Написал вывод в шаблон в макете типа ActiveDocument и «обломался» — на экране то показывает Excel, а вот сохранить невозможно ни программно ни через меню Excel. Убил кучу времени и так и эдак пытался сохранить. А потом погуглил и понял что это у всех такая трабла… Вобщем переделал на сохранение в макете бинарных данных. ActiveDocument — «в топку».
На ActiveDocument обломы не закончились… В Excel 2003 поячеечный вывод более менее приемлемо по скорости работает, а в Excel 2007-2010 скорее не работает чем работает. «Пошарился» по инету — нашел достаточно много способов вывода данных в Excel, но большинство из них не позволяет использовать заранее заданный шаблон.
Остановился на варианте с буфером обмена. Создаем шаблон, создаем текстовое содержимое буфера обмена и имитируем действия пользователя (программно) Кантрэл-Цэ и Кантрэл-Вэ 🙂 Прайс на 9000 строк выводится секунд за 20 !
А как сохранить данный excel-файл по определенному пути без его открытия? И как программно проверить, что он сохранился или нет?
При попытке выполнить обработку появилось сообщение об ошибке:
«{Форма.Форма.Форма(110)}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно Файл не сохранен!»
(9) Филипп, при каком варианте? другой вариант пробовал?
Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат;
А можно подробностей по этому методу, примеры его использования?
Лист.Cells(НомерСтроки, НомерКолонки).DataFormat = Формат;
так будет дата?
Всё ясно.
ДатаФормат = «ДД.ММ.ГГГГ»;
Лист2.Cells(НомерСтроки,НомерКолонки).NumberFormat = ДатаФормат;
//принудительно ставим формат даты
У нас проблемма с банком ЕВРОПА-КРЕДИТ.
Не поняла т.к. в этом файле не работает макрос, зачем туда запихивать информацию.
М.б. я что-то не понимаю.
Мы пытаемся запихнуть все в csv
(15) chmv, сейчас выложу свежую обработку для КЕБ
(15) chmv, скачивайте новую обработку
К сожалению не хватает ресурсов. Не могли бы прислать на chmv2005@mail.ru
(18) chmv, выслал
Спасибо, полезный материал.
Да, полезный код для работы с Excel, спасибо!
Хочу поделиться (добавить для пользы на будущее) еще одним приемом работой с Excel через 1с — программной установкой формул.
Только что экспериментальным методом нашла, как это сделать.
Например, нужно посчитать сумму в столбце 8 в той же строке из столбца 1+ столбца 2.
СтрокаСФормулой = «=RC[-7]+ RC[-6]»;
Лист.Cells(НомерСтроки,НомерКолонки).Formula = СтрокаСФормулой.
Формулы писать исключительно на английском, русский не воспринимает почему-то…
меня устраивает во всем — а некоторые моменты возьму на вооружение для дальнейшего использования
Спасибо, помогла информация и обсуждения
{Форма.Форма.Форма(124)}: Преобразование значения к типу Число не может быть выполнено
Лист.Cells(ии,3).Value = ФОРМАТ(Число(ВыборкаДетальныеЗаписи.НомерСчетаСотрудникаОрганизацииВБанке), «ЧГ=»);
Поправил ручками:
— Выборка может быть и пустой, поэтому преобразование формата в попытку ставим.
(21) воспользовался установкой формулы в ячейку:
// Получение итогов по колонке для двух строк:
СтрокаСФормулой = «=SUM(F13:F14)»;
Лист.Cells(17,6).Formula = СтрокаСФормулой;