Как вытащить отчет из 1с

Очень часто требуется получить данные из 1С 8.3 и сохранить информацию во внешний файл, иными словами, сделать выгрузку из 1С предприятия. Задача практически всегда выполнима без привлечения программистов 1С.

Рассмотрим ряд полезных советов, с помощью которых Вы сможет выгрузить данные из 1С во внешнюю информационную систему.

Способы выгрузки информации

В 1С есть несколько методов, с помощью которых Вы можете получить информацию без привлечения специалистов:

  • Выгрузка базы из 1С 8.3 целиком — для последующей загрузки на другом компьютере
  • Сохранение отчетов и печатных форм в Excel, Word или PDF
  • Выгрузка таблиц из 1С
  • Получение информации с помощью консоли запросов

Подробнее о них:

Как выгрузить базу из 1с 8.3 целиком (в файл .dt)

Для этого понадобится зайти в режим конфигуратора, затем в главном меню выбрать пункт «Администрирование» — «Выгрузить информационную базу»:

Затем потребуется только указать название будущего файла и его расположение на диске.

Для последующей загрузки в другую базу нажмите на кнопку «Загрузить информационную базу» и выберите предварительно выгруженный файл.

Выгрузка из 1С в Excel отчетов и печатных форм

Этот способ универсальный и очень простой. Для этого достаточно при открытии печатной формы или отчета.

Например, открываем печатную форму ТОРГ 12, нажимаем ctrl+S (или в меню Файл – Сохранить как) и выбираем тип файла и его имя:

Для отчетов действует та же система – отчет выгружается в два клика:

Получите 267 видеоуроков по 1С бесплатно:

Доступно сохранение в основные форматы – excel, word, pdf, html, txt и тд.

Выгрузка таблиц из 1С 8.3

Часто встречаются такие банальные задачи, как «получить список платежек за текущий год», «выгрузить книгу покупок или продаж» или «выгрузить товары из накладной №256». Решить такие задачи достаточно просто.

Например, мне необходимо получить все поступления от контрагента «Вектор» с суммой более 1000. Откроем форму списка и установим нужные отборы в списке:

Далее, когда мы получили список документов, необходимо вызвать контекстное меню (правая кнопка на таблице или меню «Действия») и выбрать в списке команд «Вывести список»:

Система предложит вариант вывода – в табличный документ или текстовый, выберем табличный. Программа 1С выведет информацию в такой табличный документ, который, подобно отчетам, можно сохранить в нужный нам формат:

Подобные действия можно произвести практически для любой табличной части в 1С 8.2. Например, нам потребовалось выгрузить список товаров из поступления № МСК00003, не проблема. Делается это очень просто – открываем документ, вызываем контекстное меню и через пару кликов получаем нужную выгрузку в нужном формате:


Выгрузка в Excel журнала проводок из 1С:

Получение информации с помощью консоли запросов

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

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

Например, требуется получить всех контрагентов-поставщиков и их телефонный номер. Для этого напишем следующий запрос:

Полученную таблицу можно также выгрузить в нужный формат файла:

Загрузить полученные данные можно в другую базу 1С с помощью «Универсальной загрузки из эксель«. Смотрите видеоинструкцию на примере номенклатуры:

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Читайте также:  Как открыть файл в электронной почте

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

В программах «1С Предприятие 8.3», в разделе меню «Отчеты» — «Стандартные», среди прочих можно найти «Универсальный отчет».


Как пользоваться универсальным отчетом в 1С 8.3

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

Рассмотрим на небольших примерах, что представляет собой «Универсальный отчет» и его настройка.

Как настроить универсальный отчет в 1С

Зайдем в раздел меню «Отчеты» — «Стандартные» и выберем пункт «Универсальный отчет». Кроме периода мы видим, что в отчете можно указать, по какому объекту мы хотим сформировать наш отчет. Это может быть определенный вид документа или справочника, отчет по регистрам накопления, сведений, бухгалтерии или по планам видов расчета. И в зависимости от выбранного варианты у нас будет немного изменяться настройка отчета, но основные принципы его работы останутся неизменны.


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


Отчет сформирован, но получился громоздким, содержащим много лишней информации. Для более точной настройки нажмем кнопку «Настройки». На закладке «Поля и сортировки» мы видим все поля выводимые в отчет. Убрав лишние галочки, мы оставим лишь необходимые – «Контрагент», «Договор», «Сумма». С помощью голубой стрелочки «Вправо» мы можем задать порядок сортировки, перенеся в окно элемент, по которому мы хотим упорядочить информацию. В нашем примере упорядочим по полю «Контрагент» в порядке возрастания.


Нажав кнопку «Закрыть и сформировать», мы получаем более компактный отчет по указанным данным.


Такой отчет по составу данных напоминает отчет «Оборотно-сальдовая ведомость по счету», из которого мы также можем получить такого рода информацию. Но в «Универсальном отчете» есть данные, по которым нельзя сформировать любой другой стандартный отчет. Например, из всего объема реализации необходимо отобрать данные по определенной номенклатурной группе «Металлические изделия собственного производства». Для этого, перейдя по кнопке «Настройки», на закладке «Отборы» с помощью кнопки «Добавить отбор» установим «Товары.Номенклатура. Номенклатурная группа» — Равно «Металлические изделия собственного производства». Нажимаем кнопку «Закрыть и сформировать».


В результате мы получили отбор по заданному критерию.


Таким образом, мы можем устанавливать различного рода отборы при формировании данных с помощью «Универсального отчета». Но в нашем примере не так много информации. При больших объемах целесообразно пользоваться дополнительными настройками, например, задать структуру отчета, чтобы данные были сгруппированы по какому-либо принципу. Например, по контрагенту, по месяцам и т.п. Зайдем еще раз в кнопку «Настройки» и перейдем на закладку «Структура». Зададим группировку по полю «Контрагент» и под ней дополнительно структуру данных – Дата, Договор, Тип цен (для примера). Формируем отчет (кнопка «Закрыть и сформировать»).


В нашем примере данные сгруппировались по полю «Контрагент» и с помощью знаков группировки -/+ мы можем сворачивать и разворачивать данные. Конечно, такой отбор актуален при большом объеме информации. Но данный пример иллюстрирует возможность задать любые данные, их отбора и группировки.


Рассмотрим пример построения отчета по данным справочников. Предположим, нам необходимы данные о составе номенклатурных групп. Выбираем элемент отчета «Справочник» — «Номенклатура» — «Основные данные», а по кнопке «Настройка» задаем сразу необходимые поля и сортировку, отметив также «Номенклатурная группа» (закладка «Поля и сортировка»). Мы получим отчет в виде списка номенклатуры, с указанием номенклатурной группы. Так мы можем посмотреть, в каких элементах номенклатуры она не установлена или установлена неверно.

Читайте также:  Как попасть в рек в тик токе



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


У нас должна получиться вот такая структура. Формируем отчет.


Как видим, вся номенклатура у нас сгруппирована в разрезе номенклатурных групп, которые мы можем сворачивать и разворачивать.


Добавим к нашему отчету отбор. Весь список у нас большой, и нас не интересует вид номенклатуры «Материалы». Нам более интересны данные о товарах, продукции. Нажав «Настройки», на закладке «Отборы» добавляем «Вид номенклатуры» — Не равно — «Материалы».


В результате в отчете у нас останутся данные по номенклатуре с другими видами номенклатуры, т.е. продукция, товары, услуги.


Аналогично, применяя настройки отчета, мы можем формировать данные по любым регистрам – накопления, сведений, бухгалтерии.




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



Используя настройки отчета, пользователь также может настроить произвольно отчет по «Планам видов расчетов» – начислениям и удержаниям.


При настройке различных вариантов отчета мы можем сохранять их и в дальнейшем к ним обращаться. Вариантов настройки отчетов может любое количество. Используя кнопки на панели инструментов, отчет можно распечатать, сохранить в различных форматах на компьютере или отправить по электронной почте.



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

Хочу поделиться способом выгрузки данных из 1С на основе COM-соединения. Этот вариант можно назвать альтернативным использованию стандартных и нестандартных обработок 1С. Для примера взят язык C#, а выгрузка выполняется в один большой XML-файл.

Где можно применить

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

  • загрузить в другую базу данных произвольного формата;
  • перейти с 1С на другую систему учета (миграция данных);
  • направить поток данных в базу для анализа (OLAP);
  • иметь архивную копию данных в открытом виде.

Сразу хочу сказать о недостатке данного способа. В 1С написано много обработок выгрузки данных под разные цели. Использование обработок 1С можно назвать самым официальным способом получения данных. Типичная обработка не только выгружает данные из базы, но и удобным образом их преобразует и компонует через соединения в запросах и путем проведения расчетов на встроенном языке. Выгружая данные описанным в статье способом вы получаете только первичные таблицы, сохраненные в базе данных, и может потребоваться их дальнейшая обработка.

Подробнее о результате

Что мы получим?

Через внешнее соединение можно выгрузить данные в файл произвольного формата или передать полученные записи в другую базу данных вообще не сохраняя промежуточный файл. Здесь выгрузка в xml-файл сделана как демонстрация самой возможности выгрузки.
Данные извлекаются из базы 1С и помещаются в один xml-файл. Вот пример получаемого файла.

Какие данные выгружаются

Числовые и строковые типы сохраняются в выгружаемом файле в обычном строковом виде. Поля ссылок, которые отображаются в формах с кнопкой выбора с тремя точками «. », выгружаются как значения GUID. Например, в счете указан атрибут «Контрагент» со значением «0cc56776-0daa-11e3-bf95-f46d04eec7f5». В справочнике контрагентов по этой ссылке мы можем найти «Торговый дом».
Выгрузка выполняется без расчета на какую-то конкретную конфигурацию и структуру данных. Путем перебора метаданных выгружаются все справочники и все документы. У каждого элемента справочника и у каждого документа выгружаются все атрибуты. Если у документа есть табличные части, по каждой табличной части выгружаются все строки.
В примере реализована выгрузка только основных типов таблиц: справочников, документов и табличных частей документов. Не реализована выгрузка констант, регистров сведений и табличных частей справочников. Выгрузка регистров накопления и регистров бухгалтерии не выполняется, т.к. эти данные могут быть получены из первичных документов. Но для целей анализа, возможно, удобнее было бы выгружать записи регистров.

Читайте также:  Как вставлять ссылки в ворде 2007
Как происходит получение данных

Запуск программы должен выполняться с установленной 1С, т.к. к ней выполняется подключение через COM-соединение. Строка подключения в примере создается для файлового варианта, но при необходимости можно переправить на подключение к серверу 1С. Пользователь с указанным паролем должен быть прописан в базе. У пользователя должны иметься права на чтение всех данных и на возможность установить внешнее соединение.
Монопольный режим не требуется. «Выгрузить» базу таким образом можно не прерывая работу пользователей.

Альтернативные способы

Данный способ извлечения данных не единственный. Можно даже сказать, что доступ через COM-соединение самый медленный и перечисленные ниже способы более производительные. Но по этим способам есть и принципиальные недостатки.

Внешняя или встроенная в конфигурацию обработка

Тот же результат в виде xml-файла можно получить из внешней или встроенной обработки 1С. Преимущество выполнения обработки 1С в ее скорости. Все-таки это внутренняя кухня, а вызовы из COM-соединения в плане временных затрат чего-то да стоят.
Недостаток использования обработки в том, что на этом автоматизация и заканчивается. Пользователь должен вручную открыть форму обработки, указать параметры, нажать кнопку выгрузки.

Процедура в модуле, доступном для внешнего соединения

Процедуру выгрузки можно разместить в общем модуле, доступном для внешнего соединения. Сама процедура при этом должна быть объявлена как экспортная.

Теперь достаточно обратиться к процедуре выгрузки из C#.

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

Типовые средства

Во многих конфигурациях существуют встроенные обработки выгрузки. Многие обработки выгружают не все данные, а ограниченные по получателю. Из базы торговли в бухгалтерию выгружаются только первичные документы для формирования проводок, а в интернет-магазин выгружаются позиции справочника номенклатуры, а также цены и характеристики товаров. Выгрузка всей базы обычно делается для перехода на следующую редакцию. Если есть возможность использовать для конкретной задачи типовые средства, вероятно это и будет лучшим решением.

Физический доступ к базе

Есть еще способы доступа к данным извне, но они опираются на знание структуры базы данных. Если база 1С расположена на SQL сервере, фактически таблицы открыты для чтения. Можно делать запросы и получать все данные. Проблема лишь в том, что структура данных сложна и требует очень внимательной обработки.
Еще более сложно выполнить чтение из файлового варианта базы 1С. Структура файла 1CD не документирована, и в принципе может меняться. Здесь нужно отметить, что для целей доступа к информации можно выполнять конвертирование из файлового режима в SQL и наоборот.

Полный текст программы

Приведу код C# класса установки соединения с базой 1С и выгрузки данных, а также пример использования данного класса.

Экспорт разбит на два блока: выгрузка справочников и выгрузка документов. Для получения видов справочников и видов документов выполняется обращение к метаданным.
Данные каждой таблицы извлекаются отдельными запросами. По документам также выгружаются табличные части. Для этого формируются подзапросы к табличным частям с отбором по ссылке на выгружаемый документ.
Для конкретных задач, возможно, придется вносить изменения в код. Формируемые имена тегов xml-файла (catalog, document, attribute, name, value) выбраны произвольно. Если внести небольшие правки в код, структуру получаемого xml-файла можно изменить. Также можно ограничить выгружаемые данные только определенными таблицами и атрибутами, используя условия в циклах выборки метаданных.

Adblock
detector