Как выгрузить данные из 1С на веб-сервере при отсутствии прав администратора и доступа к конфигуратору

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Метод 1. Использование механизмов отчетов и формата MXL

Рассмотрим наиболее перспективный вариант, который позволяет выгрузить данные с сохранением их внутренней структуры. В 1С формат MXL (табличный документ) при сохранении из отчета может содержать скрытую информацию, включая уникальные идентификаторы объектов (GUID). Это критически важно, если мы планируем загружать эти данные в другую базу и хотим сохранить связи между объектами.

Разберем процесс по шагам:

  1. Поиск подходящего отчета. Нам необходимо найти отчет, который может вывести нужные нам документы и их табличные части. Если это 1С:Управление торговлей 11, проанализируем раздел «Отчеты». Даже если у нас нет прав на «Универсальный отчет», в конфигурации могут быть доступны специализированные отчеты по закупкам, продажам или складским остаткам.
  2. Настройка варианта отчета. Попробуем изменить настройки отчета. Нажмем «Настройки» -> «Расширенный» -> «Структура». Здесь мы попытаемся добавить детальные записи и выбрать все необходимые поля из шапки документа и его табличных частей. Проанализируем возможность вывода полей через точку (например, Номенклатура.Артикул или Склад.Код).
  3. Вывод и сохранение. Сформируем отчет. Если данные отобразились, сохраним результат в формате .mxl. Почему именно он? В отличие от Excel, при правильной настройке 1С сохраняет в ячейках не просто текст, а расшифровку (ссылку на объект).
  4. Обработка данных. Полученный файл MXL в дальнейшем можно программно прочитать в другой базе. Для этого используется объект ТабличныйДокумент. Мы можем обойти ячейки и извлечь из них свойство Расшифровка, которое будет содержать ссылку или GUID, если платформа это позволила при выгрузке.

Метод 2. Системная команда «Вывести список»

Если нам не удается найти отчет, который выводит табличные части, мы можем воспользоваться встроенной функцией платформы для выгрузки списков (шапок документов или справочников). Выясним, как это работает:

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

Важные моменты этого метода:

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

Метод 3. Массовая печать документов

Когда нам нужно выгрузить содержимое табличных частей множества документов, а прав на отчеты нет, мы можем использовать механизм печати. Разберем эту ситуацию подробнее:

В списке документов выделим группу нужных объектов (используя Ctrl+A или Shift). Нажмем кнопку «Печать» и выберем любую форму, которая содержит максимум данных (например, «Счет на оплату», «ТОРГ-12» или «Универсальный передаточный документ»). Платформа сформирует единый печатный документ, в который последовательно будут выведены данные всех выделенных документов.

Полученный документ сохраним в формате Excel. Да, данные потребуют последующей очистки и парсинга (нужно будет программно отделить заголовки печатных форм от строк таблиц), но это гарантированный способ получить содержимое документов без админских прав.

Метод 4. Проверка доступности планов обмена и РИБ

Иногда администраторы закрывают доступ к отчетам, но забывают ограничить права на механизмы синхронизации. Проанализируем раздел «Администрирование» или «Синхронизация данных».

Выясним, доступны ли следующие возможности:

  1. Создание автономного рабочего места. Если база позволяет создать начальный образ для РИБ (Распределенной информационной базы), мы сможем выгрузить всю базу целиком в один файл и развернуть ее локально, где у нас уже будут полные права администратора.
  2. Синхронизация через универсальный формат (EnterpriseData). Если мы можем настроить обмен (даже в файл), мы сможем инициировать выгрузку документов по определенным правилам в формате XML.

Метод 5. Использование «Универсального отчета» (если доступен)

Несмотря на заявление о том, что прав нет, часто пользователи путают права на «Консоль запросов» и «Универсальный отчет». Последний является стандартным объектом многих конфигураций на базе БСП (Библиотеки стандартных подсистем). Попробуем найти его через «Все функции» (если пункт доступен) или через поиск по командам.

Рассмотрим алгоритм работы с ним:

  1. В поле «Тип объекта» выберем Документ.
  2. В поле «Имя объекта» выберем наш тип документа.
  3. В поле «Таблица» выберем нужную табличную часть (например, Товары).

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

Метод 6. Копирование через буфер обмена (Copy-Paste)

В веб-клиенте 1С 8.3 прекрасно работает выделение строк. Мы можем зайти в справочник или список документов, нажать Ctrl+A, затем Ctrl+C. После этого откроем пустой лист Excel и нажмем Ctrl+V. Платформа перенесет данные в табличном виде. Этот способ кажется примитивным, но он часто выручает при необходимости быстрой выгрузки справочников со всеми видимыми реквизитами.

Итог: Даже в условиях жестких ограничений, комбинация методов «Вывести список» для получения реквизитов шапки и «Массовая печать» для получения табличных частей позволяет собрать полную картину данных. Наиболее технологичным же является использование MXL из отчетов, так как он сохраняет внутренние связи объектов 1С.

← На главную