В практике часто возникают ситуации, когда необходимо получить данные из информационной базы 1С, но доступ к ней крайне ограничен. Представим ситуацию: база расположена на удаленном веб-сервере, доступа к конфигуратору нет, прав администратора у пользователя нет, ODATA и веб-сервисы отключены, а запуск внешних обработок заблокирован. На первый взгляд задача кажется невыполнимой, однако платформа 1С предоставляет ряд обходных путей. В этой статье мы подробно разберем, как извлечь документы и справочники, используя только пользовательский интерфейс и стандартные функции.
Рассмотрим наиболее перспективный вариант, который позволяет выгрузить данные с сохранением их внутренней структуры. В 1С формат MXL (табличный документ) при сохранении из отчета может содержать скрытую информацию, включая уникальные идентификаторы объектов (GUID). Это критически важно, если мы планируем загружать эти данные в другую базу и хотим сохранить связи между объектами.
Разберем процесс по шагам:
1С:Управление торговлей 11, проанализируем раздел «Отчеты». Даже если у нас нет прав на «Универсальный отчет», в конфигурации могут быть доступны специализированные отчеты по закупкам, продажам или складским остаткам.Номенклатура.Артикул или Склад.Код).MXL в дальнейшем можно программно прочитать в другой базе. Для этого используется объект ТабличныйДокумент. Мы можем обойти ячейки и извлечь из них свойство Расшифровка, которое будет содержать ссылку или GUID, если платформа это позволила при выгрузке.Если нам не удается найти отчет, который выводит табличные части, мы можем воспользоваться встроенной функцией платформы для выгрузки списков (шапок документов или справочников). Выясним, как это работает:
Проанализируем форму списка интересующего нас документа. В командной панели или в меню «Еще» почти всегда доступна команда «Вывести список». При ее нажатии открывается диалоговое окно, где можно отметить колонки, которые должны попасть в результирующую таблицу.
Важные моменты этого метода:
XLSX или MXL.Ограничение: этот метод позволяет выгрузить только данные шапки. Чтобы получить табличные части, перейдем к следующему способу.
Когда нам нужно выгрузить содержимое табличных частей множества документов, а прав на отчеты нет, мы можем использовать механизм печати. Разберем эту ситуацию подробнее:
В списке документов выделим группу нужных объектов (используя Ctrl+A или Shift). Нажмем кнопку «Печать» и выберем любую форму, которая содержит максимум данных (например, «Счет на оплату», «ТОРГ-12» или «Универсальный передаточный документ»). Платформа сформирует единый печатный документ, в который последовательно будут выведены данные всех выделенных документов.
Полученный документ сохраним в формате Excel. Да, данные потребуют последующей очистки и парсинга (нужно будет программно отделить заголовки печатных форм от строк таблиц), но это гарантированный способ получить содержимое документов без админских прав.
Иногда администраторы закрывают доступ к отчетам, но забывают ограничить права на механизмы синхронизации. Проанализируем раздел «Администрирование» или «Синхронизация данных».
Выясним, доступны ли следующие возможности:
XML.Несмотря на заявление о том, что прав нет, часто пользователи путают права на «Консоль запросов» и «Универсальный отчет». Последний является стандартным объектом многих конфигураций на базе БСП (Библиотеки стандартных подсистем). Попробуем найти его через «Все функции» (если пункт доступен) или через поиск по командам.
Рассмотрим алгоритм работы с ним:
Документ.Товары).Этот отчет выведет данные в плоскую таблицу, которую крайне удобно сохранять в Excel для последующего импорта.
В веб-клиенте 1С 8.3 прекрасно работает выделение строк. Мы можем зайти в справочник или список документов, нажать Ctrl+A, затем Ctrl+C. После этого откроем пустой лист Excel и нажмем Ctrl+V. Платформа перенесет данные в табличном виде. Этот способ кажется примитивным, но он часто выручает при необходимости быстрой выгрузки справочников со всеми видимыми реквизитами.
Итог: Даже в условиях жестких ограничений, комбинация методов «Вывести список» для получения реквизитов шапки и «Массовая печать» для получения табличных частей позволяет собрать полную картину данных. Наиболее технологичным же является использование MXL из отчетов, так как он сохраняет внутренние связи объектов 1С.