Автоматическая выгрузка отчетов из 1с
Благодаря удобству и информационной надежности 1С огромное количество пользователей используют решения для автоматизации и обработки бизнес-процессов на любых фирмах. Но, все же, зачастую возникает необходимость выгрузки информации из 1С в другие программы и файлы. Данный материал раскрывает понятие выгрузки и показывает, как проводится данный процесс и потенциальные сложности при его проведении. Сразу хотим отметить, если у вас возникнет необходимость задать вопрос по 1С, вы можете это сделать по телефону или через заявку на сайте, по которой с вами свяжутся в ближайшее время.
Какие данные можно выгружать из 1С
В 1С любой конфигурации доступна выгрузка следующей информации:
- Печатные формы;
- Отчеты;
- Таблицы и списки.
Форматы для выгрузки поддерживаются следующие:
- Microsoft Excel;
- Microsoft Word;
- PDF;
- Выгрузка в CSV;
- HTML и другие.
Процесс выгрузки печатных форм и отчетов
Сохранение в требуемом формате можно сделать для любой печатной формы или отчета в 1С. Открываем форму или отчет и выбираем в Главном меню Файл – Сохранить как.
Затем мы увидим окно сохранения документа, где нужно присвоить имя и тип файла.
Потенциальные сложности во время выгрузки
Опция «Сохранить как» не всегда может функционировать.
Объясняется это неактивизированной печатной формой или отчетом в настоящий момент. Кликаем мышкой в любом месте и печатная форма становится активной для сохранения.
Можно увидеть, что опция «Сохранить как» уже доступна. Напомним, по любым вопросам касаемо выгрузки и не только вы можете обращаться к нашим консультантам по сопровождению 1С 8.3.
Особенности выгрузки в Excel
Чаще всего требуется произвести выгрузку в табличном формате Excel. Для сохранения данных указываем тип Лист Excel2007 -…(*.xlsx), реже используется старый формат Лист Excel (*.xls):
Выгрузка из 1С в другие форматы (PDF, Word, CSV и др) проводится таким же образом.
Как выгружать произвольные таблицы из 1С
Давайте рассмотрим возможность выгрузки любых данных в случае наличия на это прав.
Используя штатный механизм в 1С, позволяющий выгружать любые списки (к примеру, список документов или элементы справочника), пользователь может получать комплексные данные удобным способом. Так, в командной панели любого списка выбираем группу «Еще» и затем команду «Вывести список»:
После этого нужно определить требуемые колонки и нажать кнопку ОК:
Мы получим данные в виде специального табличного документа, имеющего аналогичный вид, как и у всех отчетов в 1С. Выгрузка проводится также с помощью опции Файл – Сохранить как:
Выгрузка невидимых в перечне данных
Часто пользователи сталкиваются с необходимостью добавить в список колонки, присутствующие в документе, но отсутствующие по каким-то причинам в текущем перечне. Например, в перечне «Клиенты» отсутствует поле «Телефон», которое видно только в дополнительной панели с правой стороны.
Для возможности выгрузить телефон из 1С необходимо эти данные сначала внести в список. Нажимаем «Еще – Изменить форму». Из перечня колонок выбираем нужную нам. Стоит отметить, что почти во всех конфигурациях программы имеется поле «Ссылка». При переходе на это поле и нажав кнопку «Добавить поля» нам отобразятся все доступные поля этого справочника. Тут мы и делаем выбор поля «Телефон» и присваиваем ему галочку использования.
После проведения этих этапов база данных клиентов с телефонами готова к выгрузке в файл используя команду «Вывести список».
Задача: требуется настроить обмен данными через файл из 1С: Управление торговлей 11 (далее УТ) в 1С: Бухгалтерия 3.0 (далее Бухгалтерия).
- платформа 1С: Предприятие 8.3 (8.3.13.1690),
- конфигурация Управление торговлей, редакция 11 (11.4.7.150),
- конфигурация Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.72.72)
- режим Файловый (без сжатия).
- настроить параметры подключения,
- настроить правила отправки и получения данных,
- выполнить начальную выгрузку данных.
- настроить правила отправки и получения данных,
- выполнить сопоставление и загрузку данных,
- выполнить начальную выгрузку данных.
ШАГ 1. Настройка в УТ
Переходим в раздел «НСИ и администрирование» и выбираем пункт «Синхронизация данных». Обязательно должен быть указан префикс информационной базы. В нашем случае это «ЦБ».
Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будем настраивать обмен. В нашем случае это «Бухгалтерия предприятия, редакция 3.0».
Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».
Так как обмен будет настраивать через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе».
Далее укажем каталог и настроим архивацию файлов.
Далее укажем префикс базы бухгалтерии и название файла с настройками синхронизации.
Обратите внимание: если указать префикс, по которому уже есть обмен, то будет ошибка, программа предложит указать уникальный код. Нажимаем «Далее» и на этом заканчивается первый шаг настройки.
В результате у нас появится два файла в указанной папке: файл с данными (Message_ЦБ_БП.zip) и файл с настройками обмена (Синхронизация данных через универсальный формат.xml). Обратите внимание: если в УТ попробовать перейти к этапу «Настроить правила отправки и получения данных», то будет ошибка.
ШАГ 2. Настройка в Бухгалтерии
Перед настройкой синхронизации в Бухгалтерии нам понадобятся два файла, созданных на предыдущем шаге. Разместим файлы Message_ЦБ_БП.zip и Синхронизация данных через универсальный формат.xml в любую папку на компьютере с базой Бухгалтерии. Внимание: если Бухгалтерия находится на одном компьютере с УТ, то ничего переносить не нужно. Будем использовать ту же папку, что и для УТ.
Сначала перейдем в раздел «Администрирование» и выберем пункт «Синхронизация данных». В открывшемся окне проверим, чтобы префикс указанной базы совпадал с префиксом, который мы указали на первом шаге.
Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будет настроен обмен. В нашем случае это «1С: Управление торговлей, редакция 11».
Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».
Так как обмен настраиваем через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе». На Шаге 1 мы уже создали файл с настройками обмена Синхронизация данных через универсальный формат.xml, поэтому выберем его. Если был создан другой каталог и туда скопировали файл с настройками обмена, то выбираем его.
Далее укажем каталог и настроим архивацию файлов. В данном случае каталог может быть тот же самый или тот, в который перенесли два файла.
Далее проверяем настройки префиксов и на этом настройка параметров подключения в Бухгалтерии завершена.
Далее переходим к следующему этапу «Настройка правил отправки и получения данных».
Так как задачи выгрузки из Бухгалтерии у нас нет, то в настройках отправки данных укажем «не отправлять».
В настройках получения данных укажем типовые настройки. При необходимости можно указать свои настройки.
Нажимаем «Записать и закрыть». Далее переходим к следующему этапу «Выполнить начальную выгрузку данных».
После выполнения операции будет создан в каталоге обмена файл с данными Message_БП_ЦБ.zip. На этом этап настройка обмена в Бухгалтерии закончена.
ШАГ 3. Окончание настройки в УТ
Вернемся в УТ. Если использовался другой каталог, то в папку обмена УТ перенесем файл, созданный на прошлом шаге Message_БП_ЦБ.zip.
Продолжим настройку синхронизации в УТ с этапа «Настроить правила отправки и получения данных».
В настройках обратим внимание на два поля.
1.Отправлять только используемую в документах нормативно-справочную информацию.
2.Отправлять все, начиная с даты. Это поле полезно, так как бывает, что нужно начать синхронизацию с определенного времени. Например, учет в УТ уже был настроен ранее, а в
Бухгалтерии только начинаем вести учет. Тогда нет необходимости переносить все документы из УТ в Бухгалтерию. Или второй случай: нужно поменять настройки обмена, но чтобы они действовали только для документов с определенной даты.
Все остальные поля заполняем в зависимости от учета.
В нашем случае настройка получения данных не требуется. Оставляем ее без изменений.
Нажимаем «Записать и закрыть». Переходим к следующему этапу «Выполнить сопоставление и загрузку данных».
В нашем случае программа ничего загружать не будет и перейдет к следующему этапу.
На последнем этапе «Выполнить начальную выгрузку данных» программа выгрузит данные из УТ в файл Message_ЦБ_БП.zip.
Обратите внимание (для случая с двумя каталогами): полученный файл Message_ЦБ_БП.zip копируем в каталог обмена Бухгалтерии. В Бухгалтерии выполняем синхронизацию. При этом Бухгалтерия сначала загрузит данные из присланного файла Message_ЦБ_БП.zip, потом обновит свой файл выгрузки Message_БП_ЦБ.zip Этот файл выгрузки Message_БП_ЦБ.zip нужно скопировать обратно в каталог обмена УТ и в УТ выполнить синхронизацию. При этом УТ сначала загрузит данные (если они там есть) из файла Message _БП_ЦБ.zip, а потом обновит свой файл выгрузки Message _ЦБ_БП.zip и т.д.
ШАГ 4. Итоги
В результате мы получили файл с настройками обмена Синхронизация данных через универсальный формат.xml и два файла с данными: Message_БП_ЦБ.zip (данные из Бухгалтерии) и Message_ЦБ_БП.zip (данные из УТ).
В холдинге имеются файловые базы 1С на каждую отдельную компанию. Сейчас сбор отчетности производится следующим образом:
1) специалист фин отдела заходит в каждую базу и собирает необходимую информацию о движении денежных средств, карточку 20,25,26 счетов
2) копирует информацию в Excel
3) обрабатывает вручную в едином шаблоне в Excel, чтобы видеть консолидированную информацию по группе компаний.
Как хочется делать: нажимать кнопку в Excel и получать данные из 1С автоматически.
Базы 1С не на SQL, а с обычным файловым доступом.
1С: Консолидацию не пробовали, но она требует очень долгой настройки, потому что виды бизнеса разные и разные учетные политики у организаций.
По кнопке "Выгрузить в Excel" создаете ТабличныйДокумент и заполняете нужными данными. Потом вызываете у него метод Записать и указываете в параметрах путь для сохранения и формат в котором нужно сохранить.
За адекватную цену сделаю для вас эту задачу.
Поскольку баз много, лучше без кнопок.
Банальная обработка которая будет запускаться из батника поочередно в каждой базе выгружая информацию в нужные поля листа Excel.
АртемЪ: а как быть с тем, что базы могут быть закрыты? Точнее они итак закрыты. Хочется открыть файл Excel, нажать кнопку "Получить данные" и обработка сама вытащит из баз все данные. Как я понимаю, базы все равно нужно открывать.
Из батника вызываете 1cv8.exe указав в качестве параметров режим Enterprise и имя обработки.
Она откроется в фоновом режиме, выполнит обработку и закроется.
Константин Нагибович: доступ есть к ним, они на удаленном сервере лежат. Я имею в виду, что в них никто не работает в этом время, т.е. программа не запущена.
АртемЪ: получается в батнике нужно будет имя пользователя и пароль прописать? И схема дальше получается: батник запустил обработку, обработка собрала нужные данные в файл и куда то положила, сводный Excel файл забрал этот файл. Так?
Каждому программисту 1с, хоть раз, да приходилось писать выгрузку отчета из 1С в Excel с формулами. Есть много вариантов как это сделать. Но мне захотелось это сделать "по нормальному", используя как можно меньше кода выгрузки в excel, и так чтобы проще было дорабатывать. Идея была проста, все формулы засунуть в макет, и при выводе в Excel просто "проинициализировать" их. Но меня ждал облом, который мне пришлось героически преодолевать. Спойлер - в итоге все получилось. )
Отчетов таких была написана куча и на доработку каждого требовалось куча времени. Я захотел попробовать найти какой-нибудь новый подход - все формулы засунуть в макет. Но меня поджидал облом. С простыми формулами типа "=RC[-2]-RC[-1]" все было замечательно - внести как текст и все ок, но, когда потребовалось реализовать формулу чуть посложнее, типа "=СУММ(R[1]C:R[КоличествоСтрок]C)", то тут ждал облом. Тут сразу напрашивается шаблон, но как оказалось, шаблон никак не хотел выводить символ "[", т.к. для 1С это служебный символ, определяющий параметры для шаблона. Поиск в инете типа "как вывести квадратные скобки в шаблоне макета" ничего не дал, вообще ничего не дал! Путем проб и ошибок выяснилось, чтоб вывести "КакойТоТекст[1]" нужно задать "КакойТоТекст [ [1]". А вот чтоб задать "КакойТоТекст[1]ещё[ КоличествоСтрок ]", где КоличествоСтрок - это параметр, который нужно менять, то тут нужно извратиться по жёсткому - "КакойТоТекст [] [[1]ещё [] [[[ КоличествоСтрок ]]". Конструкция [] - нужна, чтоб не удалялся текст - "КакойТоТекст".
Итого: копируем формулу Excel, модифицируем её:
1. заменяем " ; " на " , "
2. к неизменным значениям в скобках добавляем спереди [] [
3. изменяемые значения в скобках обворачиваем [] [[изменяемое значение в скобках]. И макет готов.
И тогда весь код при формировании Excel будет минимальным:
Эксель = Новый COMОбъект("Excel.Application");
Эксель.Application.DisplayAlerts = False;
Эксель.Application.ReferenceStyle = "xlR1C1";
Эксель.Application.ErrorCheckingOptions.InconsistentFormula = Ложь;
ВсегоКолонок = ТабличныйДокумент.ШиринаТаблицы;
ВсегоСтрок = ТабличныйДокумент.ВысотаТаблицы;
МассивКом = Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1;
Для Ном = 1 По МассивКом.GetLength(0) Цикл
Для Ном2 = 1 По МассивКом.GetLength(1) Цикл
Значение = МассивКом.GetValue(Ном,Ном2);
Если НЕ Найти(Значение, "") = 0 Тогда
МассивКом.SetValue(Ном, Ном2, СтрЗаменить(Значение, "", ""));
КонецЕсли;
КонецЦикла;
КонецЦикла;
Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивКом; //Если тут ошибка, то скорее всего косяк в формуле
Как вы будете использовать макет - это ваше дело, хотите формируйте отчет через СКД используя Макет, хотите выводите отчет алгоритмически. В приложенном файле, я использую алгоритмическое формирование табличного документа (через СКД не получилось получить КоличествоСтрок), а затем формирую Excel файл из него. Приложенный файл это шаблон для ознакомления с подходом, он будет запускаться в Бухгалтерии, УТ, в общем там где есть регистр сведений ЦеныНоменклатуры.
Конечно формула в таком виде "=КакойТоТекст [] [[1]ещё [] [[[ КоличествоСтрок ]]" мне не очень нравится. Если кто-нибудь знает, как можно представить формулу в более наглядном виде, был бы рад узнать.
Выгрузка данных из 1С в Excel - задача, которая встречается довольно часто, но, к сожалению, не все пользователи знают как ее правильно решить.
Хорошая новость заключается в том, что сделать это очень просто, буквально в 2 клика мышкой.
Выгрузка данных из отчетов 1С в Excel
Для начала откроем отчет. Любой. В нашем примере мы рассмотрим два отчета: один из УНФ, другой из УТ.
✅ Способ №1 (Подходит для всех конфигураций)
Нажмите на клавиатуре Ctrl+S. Самый универсальный способ.
✅ Способ №2 (Конфигурации на управляемых формах)
Нажать на иконку с дискетой в правом верхнем углу
✅ Способ №3 (Конфигурации на обычных формах)
Нажать файл, затем "сохранить" или "сохранить как". Или нажать на на иконку с дискетой.
✅ Способ №4 (Сохранение данных по нажатию кнопки из формы отчета)
Во многих типовых конфигурациях на форму отчета выведены кнопки, при нажатии на которые, можно сохранить данные.
Вне зависимости от способа, которым вы воспользуетесь, откроется окно сохранения файла.
В этом окне нужно указать адрес папки, в которую вы хотите сохранить файл:
Затем необходимо указать имя файла:
Обязательно указываем тип файла (выбираем старый или новый формат Excel).
Кстати, не обязательно выбирать именно Excel, если вам нужно сохранить данные в Word или PDF - просто выберите интересующий вас формат в списке.
После этого нажимаем на кнопку "Сохранить":
Файл с данными из отчета в формате Excel появится в указанной вами папке :)
Сохранение данных из списков и табличных частей в Excel
Еще одна полезная фишка, о которой стоит рассказать.
А вы знали, что практически любой список или табличную часть документа из 1С можно запросто сохранить в Excel? Теперь знаете.
Управляемые формы
Для примера откроем список заказов клиентов в УНФ:
Перед тем, как вывести его на печать, возможно? вы захотите установить период, а также нужные вам отборы.
Читайте также: