Выгрузка зарплатной ведомости для Альфабанк: АЗОН или создаем файл xls с несколькими листами без использования Excel

26.04.19

Учетные задачи - Банковские операции

Альфабанк является одним из крупнейших банков в нашей стране. В корпоративном секторе этот банк предлагает своим клиентам множество услуг, в число которых входит зарплатный проект - "Альфа-Зарплата Онлайн" или знакомый многим как "АЗОН". В АЗОН есть возможность загрузки зарплатных ведомостей из файлов XLS. Но в формате файла есть небольшая особенность: в файле должно быть несколько листов с различными данными. В этой публикации разберемся, как сформировать такой файл без использования COM-объекта Microsoft Excel.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Выгрузка зарплатной ведомости для Альфабанк: АЗОН:
.epf 25,40Kb
16 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

К сожалению, 1С пока не умеет работать штатными средствами с листами XLS-файлов. На ИС уже есть решения, использующие COM-объект Excel. Но это решение будет работать только под Windows, а у меня несколько пользователей работают под Linux, поэтому приходится изобретать кроссплатформенные решения. Для решения этой задачи я использовал Python. С его огромным количество модулей и относительно простой их установкой он уже не первый раз выручает в задачах, которые нельзя решить типовыми средствами 1С. Мое решение одинаково хорошо работает как в ОС Windows, так и на Linux. А для его работы вообще не требуется Excel (Openoffice или другие текстовые редакторы).

 

1. Установка Python.

Особых сложностей при установке Pyhton 3.x не должно возникнуть. В Windows  скачиваем установщик с сайта python.org и устанавливаем в режиме «Далее» - «Готово».

В linux выполняем команды  в терминале:

 

sudo apt-get install python3

 

Если вы используете Linux отличный от Debian/Ubuntu, то наверняка сами знаете как установить Python.

 

2. Установка дополнительных модулей для работы с Excel.

Для работы с файлами Excel нам понадобятся пара дополнительных модулей:  xlutils и xlwt.

Проще всего их установить используя менеджер пакетов pip (устанавливается вместе с Python).

Для установки открываем командную строку в Windows или терминал в Linux и вводим команды:

pip install xlutils
pip install xlwt

или, если на компьютере установлено несколько версий Python

pip3 install xlutils
pip3 install xlwt

 

3. Печатная форма

Для экспорта файла начислений была сделана внешняя печатная форма, которая подключается к документу «Зарплата к выплате организаций».  При использовании проверьте правильность заполнения реквизитов "Номер" и "Дата" для выбранного договора с банком. Эти данные заполняются в печатной форме. 

Значение поля "Служебная информация" можно посмотреть в файле выгрузки (образец), полученном из АЗОН. 

Реквизиты банка и основание платежа ("согласно платежному поручению № ....") определяется из документа "Платежное поручение исходящее", введенного на основании Зарплаты к выплате. 

 

Само формирование зарплатой ведомости стандартно, и ничего интересного не представляет: формируются три табличных документа, по одному на каждую страницу. Они записываются во временные файлы и вызывается скрипт для их объединения в один документ. 

 

Полученный документ загружаем в АЗОН в разделе Ведомости - Загрузка.

 

Пример файла, сформированный в демонстрационной базе УПП: 

 

4. Создание книги Excel

Эта обработка может быть интересна и тем, кому необходимо объединить несколько отдельных табличных документов в один файл Excel. Для этого можно воспользоваться функцией "ОбъединитьЛистыВЕдиныйФайл" в которую передаются массив табличных документов и каталог для сохранения итогового документа.

 

Для табличного документа можно заранее определить имя листа, передав его в свойстве "ИспользуемоеИмяФайла":

ЛистИнформации = Новый ТабличныйДокумент;
ЛистИнформации.ИспользуемоеИмяФайла = "Info"; //Задаем имя листа в книге XLS

Листы будут добавляться в книгу Excel в том порядке, в котором добавлены в массив:

МассивЛистов = Новый Массив;
МассивЛистов.Добавить(ЛистРеестрНачислений);
МассивЛистов.Добавить(ЛистИнформации);
МассивЛистов.Добавить(ЛистПлатежей);	
		
ИмяФайлаExcel = ОбъединитьЛистыВЕдиныйФайл(МассивЛистов, ДанныеДляПечати.Каталог, ДанныеДляПечати.ИмяФайла);

Функция возвращает путь к полученному файлу XLS. 

 

5. Как работает скрипт?

С помощью команды wb = xlwt.Workbook() мы создаем новый документ, в который будем записывать данные.

Далее обходим найденные в текущем каталоге XLS-файлы и добавляем их как отдельный лист к новому документу (wb).

//Создаем новый лист с именем входящего файла
(fileBaseName, fileExtension)=os.path.splitext(fileName)
ws = wb.add_sheet(fileBaseName)

Одной из проблем которая возникла при записи файлов это некорректное форматирование документа. Это удалось исправить с помощью копирования стилей из исходного файла:

//Вначале получаем описание стилей исходного документа
w = XLWTWriter()
process(XLRDReader(in_file,'unknown.xls'), w)
styles =  w.style_list

//записываем данные в ячейку с сохранением стилей оформления
xf_index = rs.cell_xf_index(Ряд, Строка)
ws.write(Ряд,Строка,Значение_ячейки, styles[xf_index])

 

Выполняем копирование всех ячеек для каждого листа и сохраняем выходной файл:

 

wb.save(outfile)

В приложенной печатной форме код модулей открыт. Полный текст скрипта находится в текстовом макете script.

Версия платформы: 8.3.10.Х и старше.

 

Вступайте в нашу телеграмм-группу Инфостарт

Экспорт начислений Альфабанк АЗОН ЗП выгрузка зарплатной ведомости Объединение листов Excel добавление

См. также

Зарплата Роли и права Системный администратор Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

9675 руб.

27.05.2021    54200    456    127    

324

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Устали вручную дозаполнять и корректировать документы по банку после загрузки банковской выписки? С помощью правил обработки банковской выписки вы сможете автоматически определять правильный вид хозяйственной операции, заполнять расшифровку, аналитику платежа и многое другое.

19520 руб.

21.03.2023    22134    155    32    

120

SALE! 30%

Загрузка и выгрузка в Excel Оптовая торговля Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Комплексная автоматизация 1.х 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл эксель, документ 1С и нажимаете кнопку "Загрузить"

8000 7200 руб.

09.11.2016    271501    1196    955    

1109

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Мастера заполнения Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки, и оно автоматически применится при загрузке выписки, экономя ваше время (Можно настроить отбор по любому реквизиту или по регулярному выражению). Решение позволяет автоматически заполнять расшифровку платежа, исключать загрузку ненужных документов (дублей) из банка, заполнять комиссию за эквайринг и многое другое. Вам не нужно доплачивать за алгоритмы, они уже включены в решение. Автоматическая обработка применяется при загрузке данных как из файлов клиент банка, так и через DirectBank. Доступен AI чат бот который умеет консультировать по функционалу решения.

15250 руб.

20.12.2024    14720    66    27    

62

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    230798    742    530    

494

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

18800 руб.

01.11.2012    105688    130    1    

139
Для отправки сообщения требуется регистрация/авторизация