Как выгрузить эсф в эксель
С помощью мастера экспорта можно экспортировать данные из базы данных Access в файл формата, распознаваемого приложением Excel. В этой статье описаны процедуры подготовки и экспорта данных в Excel, а также приведены рекомендации по поиску и устранению типичных неполадок, которые могут при этом возникнуть.
В этой статье
Экспорт данных в Excel: основы
При экспорте данных в Excel приложение Access создает копию выбранных данных, а затем сохраняет их в файле, который можно открыть в Excel. Если данные требуется копировать из Access в Excel достаточно часто, можно сохранить параметры операции экспорта для повторного использования и даже запланировать ее автоматический запуск через определенные интервалы времени.
Стандартные сценарии экспорта данных в Excel
В отделе или рабочей группе для работы с данными используется как Access, так и Excel. Данные хранятся в базах данных Access, но для анализа и распространения его результатов используется Excel. Группа выполняет экспорт данных в Excel по мере необходимости, но этот процесс требуется сделать более эффективным.
Вы используете Access, но ваш руководитель предпочитает работать с данными в Excel. Вам приходится регулярно копировать данные в Excel, но вам хотелось бы автоматизировать этот процесс ради экономии времени.
Об экспорте данных в Excel
В приложении Access нет команды "Сохранить как” с возможностью сохранения данных в формате Excel. Чтобы скопировать данные в Excel, необходимо воспользоваться функций экспорта, описанной в этой статье, либо скопировать данные Access в буфер обмена, а затем вставить их в таблицу Excel.
Можно экспортировать таблицу, запрос, форму или отчет, а также отдельные записи в представлении.
В приложении Microsoft Excel есть команда импорта данных из базы данных Access. Ее можно использовать вместо команды экспорта Access, однако с помощью команды импорта в Excel можно импортировать только таблицы и запросы. Дополнительные сведения см. в разделе справки Excel Подключение к внешним данных и их импорт.
Экспортировать макросы и модули нельзя. При экспорте формы, отчета или таблицы с подчиненными формами, отчетами или таблицами экспортируется только главная форма, отчет или таблица. Все подчиненные формы, отчеты и таблицы следует экспортировать в Excel отдельно.
В ходе операции экспорта можно экспортировать лишь один объект базы данных. Однако после нескольких операций экспорта можно выполнить в Excel слияние нескольких листов.
Подготовка к экспорту
Если исходным объектом является таблица или запрос, определите, как требуется экспортировать данные: с сохранением форматирования или без него. Выбранный способ экспорта влияет на два аспекта целевого файла: объем экспортируемых данных и формат их отображения. В приведенной ниже таблице представлены результаты экспорта форматированных и неформатированных данных.
Исходный объект
Поля и записи
Форматирование
Таблица или запрос
Примечание: Формы и отчеты невозможно экспортировать без форматирования.
Экспортируются все поля и записи базового объекта.
Параметры свойства "Формат" пропускаются в ходе операции.
Для полей подстановки экспортируются только значения кодов подстановки.
Таблица, запрос, отчет или форма
Экспортируются только поля и записи, отображаемые в текущем представлении или объекте. Фильтрованные записи, скрытые столбцы таблицы, а также не отображаемые в форме или отчете поля не экспортируются.
В мастере соблюдаются параметры свойства "Формат".
В случае полей подстановки экспортируются значения подстановки.
При экспорте полей гиперссылок значения экспортируются в виде гиперссылок.
При экспорте полей форматированного текста текст экспортируется без форматирования.
Выберите целевую книгу и ее формат. Имейте в виду, что отчеты можно экспортировать только в более старом формате XLS (но не в формате XLSX).
В процессе экспорта Access предлагает указать имя конечной книги. В приведенной ниже таблице представлена сводка случаев создания новой книги или перезаписи имеющейся.
Целевая книга
Исходный объект
Экспортируемые данные
Таблица, запрос, отчет или форма
Данные с форматированием или без него
В ходе операции экспорта создается книга.
Таблица или запрос
Данные без форматирования
Файл не перезаписывается. В книгу добавляется новый лист, которому присваивается имя объекта, из которого экспортируются данные. Если лист с таким именем уже существует, Access предлагает либо заменить содержимое соответствующего листа, либо указать другое имя нового листа.
Таблица, запрос, отчет или форма
Данные с форматированием
Файл перезаписывается экспортируемыми данными. Все имеющиеся листы удаляются, и создается новый лист с именем экспортируемого объекта. Данные листа Excel наследуют параметры форматирования исходного объекта.
Данные всегда добавляются в новый лист. Невозможно добавить данные в имеющийся лист или именованный диапазон.
Выполнение экспорта
Если целевая книга Excel открыта, закройте ее перед выполнением операции.
На панели навигации исходной базы данных выберите объект, который требуется экспортировать.
Экспорт только части данных
Если объектом является таблица, запрос или форма и требуется экспортировать только часть данных, откройте объект в режиме таблицы и выберите необходимые записи.
Открытие формы в режиме таблицы
Чтобы открыть форму, дважды щелкните ее.
Щелкните форму правой кнопкой мыши, а затем щелкните элемент Режим таблицы. Если он недоступен, выполните действия, описанные ниже.
Выберите пункт Режим конструктора.
В раскрывающемся списке в верхней части этой панели выберите пункт Форма.
На вкладке Конструктор в группе Представления выберите пункт Режим таблицы.
Примечание: Часть отчета экспортировать нельзя. Однако можно выбрать или открыть таблицу или запрос, на которых основан отчет, и затем экспортировать часть данных в этот объект.
На вкладке Внешние данные в группе Экспорт нажмите кнопку Excel.
В диалоговом окне Экспорт - Электронная таблица Excel просмотрите предлагаемые имена файлов рабочей книги Excel (Access использует имена исходных объектов). При необходимости имя файла можно изменить.
В поле Формат файла выберите нужный формат файла.
Если при экспорте таблицы или запроса требуется сохранить форматирование данных, установите флажок Экспортировать данные с макетом и форматированием. Дополнительные сведения см. в разделе Подготовка к операции экспорта.
Примечание: При экспорте формы или отчета этот флажок установлен по умолчанию и недоступен для изменения.
Чтобы просмотреть конечный файл Excel после завершения операции экспорта, установите флажок Открыть целевой файл после завершения операции экспорта.
Если исходный объект был открыт и одна или несколько записей для экспорта выделены до запуска операции, можно установить флажок Экспортировать только выбранные записи. Если требуется экспортировать все отображаемые записи, этот флажок необходимо снять.
Примечание: Если записи не выделены, этот флажок недоступен (неактивен).
Что еще важно знать об экспорте
Сведения о том, как сохранить сведения об экспорте в виде спецификации, которую можно использовать повторно, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.
Дополнительные сведения о запуске спецификаций см. в статье Выполнение сохраненной операции импорта или экспорта.
Дополнительные сведения о запуске спецификаций в определенное время см. в статье Планирование импорта или экспорта.
Сведения о том, как изменить имя спецификации, удалить ее или обновить имена исходных файлов, см. в статье Задачи управления данными.
Решение проблем, связанных с отсутствующими и неверными значениями
В приведенной ниже таблице описаны различные способы устранения типичных ошибок.
Совет: Если отсутствует всего несколько значений, введите их в книгу Excel самостоятельно, в противном случае исправьте исходный объект в базе данных Access и повторите экспорт.
Источник проблемы
Описание и решение
Экспортируются результаты вычисляемых полей; выражения, на основе которых производится вычисление, не экспортируются.
Многозначные поля экспортируются в виде списка значений, разделенных точками с запятой (;).
Рисунки, объекты и вложения
Графические элементы (например, эмблемы, содержимое полей объектов OLE и вложения, которые содержатся в исходных данных) не экспортируются. Их следует добавить на лист вручную после завершения операции экспорта.
При экспорте формы или отчета, содержащих объект Microsoft Graph, он не экспортируется.
Данные в неверном столбце
Значения Null на целевом листе иногда заменяются данными, которые должны находиться в следующем столбце.
Отсутствующие значения даты
Значения дат, предшествующих 1 января 1900 г., не экспортируются. Соответствующие ячейки на листе содержат значения Null.
Выражения, которые используются для вычислений, не экспортируются в Excel. Экспортируются только результаты вычислений. Формулу следует добавить в рабочий лист Excel вручную после завершения операции экспорта.
Отсутствующие подчиненные формы, отчеты и таблицы
При экспорте формы, отчета или таблицы экспортируется только главная форма, отчет или таблица. Необходимо повторить операцию экспорта для всех подчиненных форм, отчетов и таблиц, которые требуется экспортировать.
Отсутствующие или неправильно отформатированные столбцы
Если ни один из столбцов на конечном листе не отформатирован, повторите операцию экспорта, установив флажок Экспортировать данные с макетом и форматированием в мастере. Если же только некоторые столбцы имеют форматирование, отличное от исходного, выполните нужные действия в Excel вручную.
Форматирование столбца в Excel
Откройте целевую книгу Excel и перейдите на лист с экспортированными данными.
Щелкните нужный столбец или выделенный диапазон ячеек правой кнопкой мыши и выберите пункт Формат ячеек.
На вкладке Число в группе Числовые форматы выберите нужный формат, например Текстовый, Числовой, Дата или Время.
Индикаторы или значения ошибки
Загрузить файл, полученный после использования конвертера, в программу спецоператора СБИС++
После того как вы воспользуетесь конвертером книги покупок, книги продаж или журнала учета полученных и выставленных счетов-фактур у вас на жестком диске будет сохранен xml-файл. Загрузить его в программу спецоператора СБИС++ вам поможет эта инструкция.
Первое, что необходим сделать после запуска системы СБИС++ — выбрать в системе формирование новой декларации по НДС:
В появившемся диалоге выберите строчку с декларацией:
Загрузить файл, полученный после использования конвертера, в программу Налогоплательщик ЮЛ
Для загрузки Декларации с разделами — книга покупок, книга продаж, журналы учета счетов-фактур полученных и выставленных в программу Налогоплательщик ЮЛ нужно выполнить следующие шаги.
Книгу покупок и продаж можно загрузить в НалогопательщикЮЛ напрямую, а не в составе декларации. Как загрузить книгу покупок написано здесь, а книгу продаж здесь.
Чтобы загрузить в Налогоплательщик ЮЛ счет-фактуры, а не Декларацию, нужно использовать специальный конвертер для Журналов счетов-фактур, который Вы можете также приобрести, связавшись с нами.
Для импорта данных книги продаж и покупок (в т.ч. дополнительных листов) в Декларацию по НДС необходимо:
2. Нажать кнопку Создать и выбрать Налоговая декларация по налогу на добавленную стоимость:
5. Для импорта данных из файла xml – Нажать кнопку Загрузить и выбрать xml-файл, выгруженный из конвертера:
Загрузить файл, полученный после использования конвертера, в программу спецоператора Контур-Экстерн
Конвертер уведомления о контролируемых сделках — Добавлен импорт данных из формата 5.01 (до 2018) и 5.03 (после 2018г.) !
Мы восстановили возможность производить покупку он-лайн через сервис Робокасса. Оплачивайте конвертеры и получайте ссылку для скачивания самых новых версий!
Теперь подтвердить экспорт можно с помощью Конвертера реестра подтверждения экспорта. Как и все наши продукты этот конвертер поможет Вам эффективно использовать время при составлении декларации по НДС.
Заполнить декларацию по НДС за 1 квартал 2016г. помогут актуальные версии конвертеров. Мы по прежнему продолжаем поддержку всех наших клиентов во время декларационной компании.
Декларационная кампания за 4 квартал 2015г. — все версии конвертеров по прежнему актуальны и могут быть использованы для сдачи отчета. Последние версии конвертеров — самые удобные для использования.
19 июля появилась возможность формировать книги покупок и продаж для загрузки в Налогоплательщик ЮЛ напрямую (не через декларацию).
31 мая обновлены конвертеры для формирования декларации по НДС. Об изменениях можно прочитать здесь.
За декларационную компанию за 1 квартал по НДС мы получили по электронной почте более 300 «Спасибо» от налогоплательщиков 🙂 !
16 апреля 2015 на серверах хостинг провайдера произошел сбой, в связи с чем сайт работал нестабильно. В настоящий момент проблемы устранены.
15 апреля 2015 стал доступен конвертер Уведомления о контролируемых сделках.
14 апреля 2015 стал доступен Конвертер журнала учета счетов-фактур в формате Приказа ФНС России от 04.03.2015 N ММВ-7-6/93@. С его помощью можно из Excel загрузить в Налогоплательщик ЮЛ не просто декларацию по НДС, а сами счет-фактуры. Купить конвертер можно, связавшись с нами.
Тип декларации 3НДФЛ, Номер инспекции ищем свою в списке, Признак налогоплательщика иное физическое лицо, Имеются доходы оставляем первую галочку, Доверенность предоставляется лично. Если же вы хотите что-то уточнить, обращайтесь ко мне!
Обработка обновлена под версию 1С:Налогоплательщика 3.0.105.2
В 1С:Налогоплательщике: Отработаны изменения в «Формат предоставления в электронной форме требования о предоставлении пояснений к налоговой декларации по налогу на добавленную стоимость».
Подача документов в налоговую в электронном виде, как сдать отчетность налоговой в электронном виде в 2021 году
Никакой проблемы в этом нет. Просто в режиме «Просмотр» кликните на кнопку с изображением дискеты. Модуль печати создаст файл с расширением TIF. Его можно будет вывести на печать в любом месте. Там, где удобно.
Это может понадобиться, если вы предварительно заполнили налоговую декларацию 3-НДФЛ в специальной программе ФНС «Декларация» и выгрузили файл в формате.xml.
Зайдите в свой личный кабинет на сайте ФНС и авторизуйтесь там по логину и паролю, которые вы получили в налоговой.
После первого входа в личный кабинет система попросит сменить пароль. Исходный пароль, который вы получили в инспекции, действует месяц с момента регистрации в личном кабинете. Если его не сменить в течение месяца, он заблокируется — и придется еще раз идти в налоговую.
После смены пароля система предложит сделать электронную подпись — она понадобится, чтобы подписать декларацию 3-НДФЛ на финальном этапе ее заполнения.
Чтобы сформировать электронную подпись, на главной странице нажмите на свои ФИО в верхней части экрана. Вы перейдете на страницу «Профиль», выберите там пункт «Получить ЭП». В нижней части этой страницы будет находиться плашка «Сертификат электронной подписи успешно выпущен». Вы сможете просмотреть этот сертификат или отозвать его.
Если вы забыли пароль к своей электронной подписи, необходимо отозвать текущий сертификат, после чего сформировать запрос на выпуск нового. Если вы еще не регистрировали сертификат электронной подписи, то сможете заказть его на этой же странице. Обычно выпуск электронной подписи занимает от 5 минут до часа, а в редких случаях на это может уйти до одного дня.
Чтобы перейти в раздел «Профиль», на главной странице личного кабинета налогоплательщика нажмите на свои ФИО в верхней части экрана
Шаг 2. Переход к декларации 3-НДФЛ
В самом низу появившегося экрана выберите пункт «Заявить доход»:
И на появившемся экране выберите раздел «Загрузить готовую декларацию»:
Шаг 3. Загрузка готовой декларации
На этом этапе вам останется указать год, за который подается декларация, и выбрать для загрузки нужный файл в формате.xml:
Далее при необходимости можно прикрепить дополнительные документы, после чего нужно ввести пароль от электронной подписи, которую вы сформировали на шаге 1. После этого декларация будет считаться отправленной и вам поступит уведомление о принятии документов.
Я не могу сказать точно, зачем чиновники этой службы так мудрят, но, самый лучший способ открыть файл XML от Росреестра, это, как не смешно это звучит, можно на самом сайте Росреестра. Если же вы хотите что-то уточнить, обращайтесь ко мне!
Если Вы продали автомобиль дороже, чем купили его, то есть получили прибыль от перепродажи, и автомобиль был в Вашей собственности менее трех лет, выберите вычет 906. Вычет следует указать в сумме разницы между покупкой и продажей автомобиля, но не более 250 000 рублей.
Как Выгрузить в Excel Декларацию из Налогоплательщика
Что изменится с 1 января 2022 года Доверенный удостоверяющий центр ФНС России — что это? Где получать электронную подпись руководителю организации, предпринимателю и нотариусу в 2022 году? Почему удобн.
Часто у пользователей 1С возникает вопрос: как загрузить (сохранить) документ или отчет в Excel? На самом деле, сделать это довольно просто. Рассмотрим действия на примере 1С 8.3 Бухгалтерия предприятия 3.0.
Как из 1С 8.3 выгрузить в Excel оборотно-сальдовую ведомость
Предположим, нам необходимо сохранить отчет (или другую печатную форму) в формате Excel.
Для примера, сформируем Оборотно-сальдовую ведомость ( Отчеты — Стандартные — Оборотно-сальдовая ведомость ).
Зайдем в пункт меню Файл — Сохранить (или Сохранить как ). Вызвать команду Сохранить можно используя горячие клавиши — Ctrl+S.
Указываем папку — куда сохранить документ, задаем имя файла и выбираем Тип файла — Лист Excel (*.xls) или Лист Excel2007-…(*.xlsx) — это разные версии программы Excel. Можно сохранить в обоих форматах и посмотреть какой вас больше устроит. Также, при сохранении доступны и другие форматы файла. Нажимаем кнопку Сохранить .
В нашем примере мы выбрали папку Документы из 1С и задали имя файла — ОСВ за 9 месяцев. Для примера, сохраняем в разных форматах Excel.
После сохранения документы будет находиться в указанной папке.
Открываться будут оба файла, т.к. более ранние версии документов поддерживаются более поздними версиями программ.
Как в 1С сохранить документ в Excel
Есть еще один способ как сохранить документ в 1С в формате Excel.
Предположим, нам надо сохранить Счет , Счет-фактуру или Платежное поручение , для распечатки на другом компьютере или отправке по электронной почте.
Рассмотрим сохранение на примере документа Платежное поручение . Сформируем его печатную форму и среди кнопок на панели инструментов видим кнопку с дискетой .
При нажатии, открывается окно сохранения документа, где мы указываем папку — куда сохранить и выбираем нужный формат. В нашем случае это — Лист Microsoft Excel. Устанавливаем галочку и нажимаем кнопку Готово . Документ сохранен в папку.
Выгрузка таблиц из 1С в Эксель
Иногда возникает необходимость сформировать список из данных табличных частей журналов документов, справочников и т.п. При этом можно установить отбор нужных элементов (дата, наименование контрагента). Рассмотрим пример.
Мы хотим вывести список Платежных поручений по уплате налогов и взносов за период.
Для выбора документов можно выделить их, удерживая кнопку Ctrl или Shift, а также используя горячие клавиши для выделения группы строк. После чего нажимаем кнопку Еще и выбираем команду Вывести список .
В открывшемся окне настраиваем, какие колонки нам нужно вывести и выбираем — выводить в Табличный документ . Если мы выделили группу строк в списке, то установим галочку — выводить Только выделенные . Нажимаем ОК и список готов.
Выглядит он следующим образом.
Получившийся отчет можно сохранить в любом формате, в том числе Excel — *.xls. Для этого (как описывалось выше) выбираем команду Сохранить (или Сохранить как ) в меню Файл и задаем параметры.
Или же воспользуемся кнопкой Сохранить (в виде дискеты) — она доступна в верхней части окна программы 1С 8.3.
Эти действия можно выполнять с любыми списками программы 1С.
При работе с большими списками, например, справочник Номенклатура , можно устанавливать дополнительный отбор и делать группировку, устанавливать порядок сортировки данных.
Поэтому перед формированием любого списка следует обратить внимание на команду Настройка списка в кнопке Еще .
Как сохранить данные ячеек таблицы из 1С в Excel
Иногда возникаем необходимость скопировать из отчета или документа часть данных. Сделать это можно обычным копированием. Для этого выделяем часть нужных ячеек и нажав правой кнопкой мышки выбираем команду Копировать (или сочетание клавиш Ctrl+C).
Перейдя в программу Excel с помощью команды Вставить , добавляем в таблицу скопированный фрагмент. Этот способ работает со всеми данными в 1С, как в сформированных таблицах, так и с ячейками форм — в справочниках, журналах, документах.
- Выгрузка в 1С из xml: как выгрузить данные из 1С 8.3 и загрузить в 1С 8.3
- Загрузка из Excel в 1С 8.3
- Горячие клавиши в 1С
- Поиск и замена значений 1С 8.3
- Групповое перепроведение документов в 1С 8.3 Бухгалтерия 3.0
- Групповая обработка справочников и документов в 1С 8.3
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
В справочник Контрагенты можно загружать данные из таблиц. Это особенно.Иногда возникают ситуации, когда необходимо сделать копию информационной базы 1С.Иногда в работе сталкиваешься с ситуацией, когда возникает необходимость перенести.В справочнике Номенклатура можно загружать цены номенклатуры из подготовленных таблиц.
(10 оценок, среднее: 3,60 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Добрый день!
Спасибо за доступ.
Вопрос: как на новой платформе 1С:Предприятие 8.3 (8.3.16.1063) выгрузить отчет в формате Эксель? куда пропала в верхней панеле кнопка — Файл слева. и почему справа — нет возможности ни напечатать отчет ни сохранить его в каком либо другом формате?
Есть в IT-отрасли задачи, которые на фоне успехов в big data, machine learning, blockchain и прочих модных течений выглядят совершенно непривлекательно, но на протяжении десятков лет не перестают быть актуальными для целой армии разработчиков. Речь пойдёт о старой как мир задаче формирования и выгрузки Excel-документов, с которой сталкивался каждый, кто когда-либо писал приложения для бизнеса.
Какие возможности построения файлов Excel существуют в принципе?
- VBA-макросы. В наше время по соображениям безопасности идея использовать макросы чаще всего не подходит.
- Автоматизация Excel внешней программой через API. Требует наличия Excel на одной машине с программой, генерирующей Excel-отчёты. Во времена, когда клиенты были толстыми и писались в виде десктопных приложений Windows, такой способ годился (хотя не отличался скоростью и надёжностью), в нынешних реалиях это с трудом достижимый случай.
- Генерация XML-Excel-файла напрямую. Как известно, Excel поддерживает XML-формат сохранения документа, который потенциально можно сгенерировать/модифицировать с помощью любого средства работы с XML. Этот файл можно сохранить с расширением .xls, и хотя он, строго говоря, при этом не является xls-файлом, Excel его хорошо открывает. Такой подход довольно популярен, но к недостаткам следует отнести то, что всякое решение, основанное на прямом редактировании XML-Excel-формата, является одноразовым «хаком», лишенным общности.
- Наконец, возможна генерация Excel-файлов с использованием open source библиотек, из которых особо известна Apache POI. Разработчики Apache POI проделали титанический труд по reverse engineering бинарных форматов документов MS Office, и продолжают на протяжении многих лет поддерживать и развивать эту библиотеку. Результат этого reverse engineering-а, например, используется в Open Office для реализации сохранения документов в форматах, совместимых с MS Office.
Но у прямого использования Apache POI есть и недостатки. Во-первых, это Java-библиотека, и если ваше приложение написано не на одном из JVM-языков, вы ей вряд ли сможете воспользоваться. Во-вторых, это низкоуровневая библиотека, работающая с такими понятиями, как «ячейка», «колонка», «шрифт». Поэтому «в лоб» написанная процедура генерации документа быстро превращается в обильную «лапшу» трудночитаемого кода, где отсутствует разделение на модель данных и представление, трудно вносить изменения и вообще — боль и стыд. И прекрасный повод делегировать задачу самому неопытному программисту – пусть ковыряется.
Но всё может быть совершенно иначе. Проект Xylophone под лицензией LGPL, построенный на базе Apache POI, основан на идее, которая имеет примерно 15-летнюю историю. В проектах, где я участвовал, он использовался в комбинации с самыми разными платформами и языками – а счёт разновидностей форм, сделанных с его помощью в самых разнообразных проектах, идёт, наверное, уже на тысячи. Это Java-проект, который может работать как в качестве утилиты командной строки, так и в качестве библиотеки (если у вас код на JVM-языке — вы можете подключить её как Maven-зависимость).
Xylophone реализует принцип отделения модели данных от их представления. В процедуре выгрузки необходимо сформировать данные в формате XML (не беспокоясь о ячейках, шрифтах и разделительных линиях), а Xylophone, при помощи Excel-шаблона и дескриптора, описывающего порядок обхода вашего XML-файла с данными, сформирует результат, как показано на диаграмме:
Шаблон документа (xls/xlsx template) выглядит примерно следующим образом:
Как правило, заготовку такого шаблона предоставляет сам заказчик. Вовлечённый заказчик с удовольствием принимает участие в создании шаблона: начиная с выбора нужной формы из «Консультанта» или придумывания собственной с нуля, и заканчивая размерами шрифтов и ширинами разделительных линий. Преимущество шаблона в том, что мелкие правки в него легко вносить уже тогда, когда отчёт полностью разработан.
Когда «оформительская» работа выполнена, разработчику остаётся
- Создать процедуру выгрузки необходимых данных в формате XML.
- Создать дескриптор, описывающий порядок обхода элементов XML-файла и копирования фрагментов шаблона в результирующий отчёт
- Обеспечить привязку ячеек шаблона к элементам XML-файла с помощью XPath-выражений.
Если бы в форме, которую мы создаём, не было повторяющихся элементов с разным количеством (таких, как строки накладной, которых разное количество у разных накладных), то дескриптор выглядел бы следующим образом:
Здесь root – название корневого элемента нашего XML-файла с данными, а диапазон A1:Z100 – это прямоугольный диапазон ячеек из шаблона, который будет скопирован в результат. При этом, как можно видеть из предыдущей иллюстрации, подстановочные поля, значения которых заменяются на данные из XML-файла, имеют формат ~ (тильда, фигурная скобка, XPath-выражение относительно текущего элемента XML, закрывающая фигурная скобка).
Что делать, если в отчёте нам нужны повторяющиеся элементы? Естественным образом их можно представить в виде элементов XML-файла с данными, а помочь проитерировать по ним нужным образом помогает дескриптор. Повторение элементов в отчёте может иметь как вертикальное направление (когда мы вставляем строки накладной, например), так и горизонтальное (когда мы вставляем столбцы аналитического отчёта). При этом мы можем пользоваться вложенностью элементов XML, чтобы отразить сколь угодно глубокую вложенность повторяющихся элементов отчёта, как показано на диаграмме:
Красными квадратиками отмечены ячейки, которые будут являться левым верхним углом очередного прямоугольного фрагмента, который пристыковывает генератор отчёта.
Есть и ещё один возможный вариант повторяющихся элементов: листы в книге Excel. Возможность организовать такую итерацию тоже имеется.
Рассмотрим чуть более сложный пример. Допустим, нам надо получить сводный отчёт наподобие следующего:
Пусть диапазон лет для выгрузки выбирает пользователь, поэтому в этом отчёте динамически создаваемыми являются как строки, так и столбцы. XML-представление данных для такого отчёта может выглядеть следующим образом:
Мы вольны выбирать названия тэгов по своему вкусу, структура также может быть произвольной, но с оглядкой на простоту конвертации в отчёт. Например, выводимые на лист значения я обычно записываю в атрибуты, потому что это упрощает XPath-выражения (удобно, когда они имеют вид @имяатрибута ).
Шаблон такого отчёта будет выглядеть так (сравните XPath-выражения с именами атрибутов соответствующих тэгов):
Теперь наступает самая интересная часть: создание дескриптора. Т. к. это практически полностью динамически собираемый отчёт, дескриптор довольно сложен, на практике (когда у нас есть только «шапка» документа, его строки и «подвал») всё обычно гораздо проще. Вот какой в данном случае необходим дескриптор:
Полностью элементы дескриптора описаны в документации. Вкратце, основные элементы дескриптора означают следующее:
- element — переход в режим чтения элемента XML-файла. Может или являться корневым элементом дескриптора, или находиться внутри iteration . С помощью атрибута name могут быть заданы разнообразные фильтры для элементов, например
- name="foo" — элементы с именем тэга foo
- name="*" — все элементы
- name="tagname[@attribute='value']" — элементы с определённым именем и значением атрибута
- name="(before)" , name="(after)" — «виртуальные» элементы, предшествующие итерации и закрывающие итерацию.
- mode="horizontal" — режим вывода по горизонтали (по умолчанию — vertical)
- index=0 — ограничить итерацию только самым первым встреченным элементом
- sourcesheet —лист книги шаблона, с которого берётся диапазон вывода. Если не указывать, то применяется текущий (последний использованный) лист.
- range – диапазон шаблона, копируемый в результирующий документ, например “A1:M10”, или “5:6”, или “C:C”. (Применение диапазонов строк типа “5:6” в режиме вывода horizontal и диапазонов столбцов типа “C:C” в режиме вывода vertical приведёт к ошибке).
- worksheet – если определён, то в файле вывода создаётся новый лист и позиция вывода смещается в ячейку A1 этого листа. Значение этого атрибута, равное константе или XPath-выражению, подставляется в имя нового листа.
Ну что же, настало время скачать Xylophone и запустить формирование отчёта.
Возьмите архив с bintray или Maven Central (NB: на момент прочтения этой статьи возможно наличие более свежих версий). В папке /bin находится shell-скрипт, при запуске которого без параметров вы увидите подсказку о параметрах командной строки. Для получения результата нам надо «скормить» ксилофону все приготовленные ранее ингредиенты:
Открываем файл report.xlsx и убеждаемся, что получилось именно то, что нам нужно:Так как библиотека ru.curs:xylophone доступна на Maven Central под лицензией LGPL, её можно без проблем использовать в программах на любом JVM-языке. Пожалуй, самый компактный полностью рабочий пример получается на языке Groovy, код в комментариях не нуждается:
У класса XML2Spreadsheet есть несколько перегруженных вариантов статического метода process , но все они сводятся к передаче всё тех же «ингредиентов», необходимых для подготовки отчёта.Важная опция, о которой я до сих пор не упомянул — это возможность выбора между DOM и SAX парсерами на этапе разбора файла с XML-данными. Как известно, DOM-парсер загружает весь файл в память целиком, строит его объектное представление и даёт возможность обходить его содержимое произвольным образом (в том числе повторно возвращаясь в один и тот же элемент). SAX-парсер никогда не помещает файл с данными целиком в память, вместо этого обрабатывает его как «поток» элементов, не давая возможности вернуться к элементу повторно.
Использование SAX-режима в Xylophone (через параметр командной строки -sax или установкой в true параметра useSax метода XML2Spreadsheet.process ) бывает критически полезно в случаях, когда необходимо генерировать очень большие файлы. За счёт скорости и экономичности к ресурсам SAX-парсера скорость генерации файлов возрастает многократно. Это даётся ценой некоторых небольших ограничений на дескриптор (описано в документации), но в большинстве случаев отчёты удовлетворяют этим ограничениям, поэтому я бы рекомендовал использование SAX-режима везде, где это возможно.
Надеюсь, что способ выгрузки в Excel через Xylophone вам понравился и сэкономит много времени и нервов — как сэкономил нам.
В холдинге имеются файловые базы 1С на каждую отдельную компанию. Сейчас сбор отчетности производится следующим образом:
1) специалист фин отдела заходит в каждую базу и собирает необходимую информацию о движении денежных средств, карточку 20,25,26 счетов
2) копирует информацию в Excel
3) обрабатывает вручную в едином шаблоне в Excel, чтобы видеть консолидированную информацию по группе компаний.Как хочется делать: нажимать кнопку в Excel и получать данные из 1С автоматически.
Базы 1С не на SQL, а с обычным файловым доступом.
1С: Консолидацию не пробовали, но она требует очень долгой настройки, потому что виды бизнеса разные и разные учетные политики у организаций.По кнопке "Выгрузить в Excel" создаете ТабличныйДокумент и заполняете нужными данными. Потом вызываете у него метод Записать и указываете в параметрах путь для сохранения и формат в котором нужно сохранить.
За адекватную цену сделаю для вас эту задачу.Поскольку баз много, лучше без кнопок.
Банальная обработка которая будет запускаться из батника поочередно в каждой базе выгружая информацию в нужные поля листа Excel.АртемЪ: а как быть с тем, что базы могут быть закрыты? Точнее они итак закрыты. Хочется открыть файл Excel, нажать кнопку "Получить данные" и обработка сама вытащит из баз все данные. Как я понимаю, базы все равно нужно открывать.
Из батника вызываете 1cv8.exe указав в качестве параметров режим Enterprise и имя обработки.
Она откроется в фоновом режиме, выполнит обработку и закроется.Константин Нагибович: доступ есть к ним, они на удаленном сервере лежат. Я имею в виду, что в них никто не работает в этом время, т.е. программа не запущена.
АртемЪ: получается в батнике нужно будет имя пользователя и пароль прописать? И схема дальше получается: батник запустил обработку, обработка собрала нужные данные в файл и куда то положила, сводный Excel файл забрал этот файл. Так?
Читайте также: