Какую технологию 1С выбрать для временного хранилища данных при переносе контента с сайта?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При переносе данных с одного сайта на другой (например, с платформы 1С-Битрикс на новую CMS) часто возникает необходимость во временном промежуточном буфере. В таком хранилище удобнее контролировать полноту загрузки контента, проверять связи между товарами и статьями, подготавливать промежуточные выгрузки в XML или JSON, а также формировать сводные отчеты.

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

Влияет ли тип форм на работу с данными и выгрузками

Проанализируем распространенное заблуждение: тип пользовательских форм (управляемые или обычные) определяет способы работы с базой данных на сервере. В платформе 1С:Предприятие 8 серверный код языка (выборки из справочников, выполнение запросов, генерация файлов XML или JSON, построение отчетов в СКД) работает одинаково независимо от типа визуального интерфейса.

Рассмотрим основные моменты, которые нужно учитывать при выборе подхода:

  1. Разделение интерфейса и логики: Тип формы (обычная или управляемая) отвечает исключительно за отображение данных клиенту. Логика обработки, парсинг входящей информации и создание файлов выгрузки на стороне сервера полностью независимы от интерфейсной части.
  2. Использование Системы компоновки данных (СКД): Механизм СКД одинаково эффективен как в управляемом, так и в обычном приложении. Он позволяет строить сводный результат и отчеты по связям между статьями и товарами без прорисовки сложных форм.
  3. Поддержка формата JSON и HTTP-сервисов: Платформа 8.3 предоставляет встроенные объекты ЧтениеJSON, ЗаписьJSON, HTTPСоединение и HTTPЗапрос. Эти средства доступны для серверных модулей и обработок независимо от выбранной технологии форм.

Сравнение управляемых и обычных форм для задачи миграции

Выясним плюсы и минусы использования каждой технологии при проектировании временной базы данных.

Обычные формы (ОФ):

  1. Быстрая разработка интерфейсов для специалистов, имеющих опыт работы с платформой 1С предыдущих версий.
  2. Прямой доступ к визуальным элементам управления на клиенте.
  3. Поддержка всех классических обработок и комплекса «Инструменты разработчика» (ИР) для прямого анализа и редактирования любых таблиц базы без создания форм для каждого справочника.
  4. Ограничение: Работают только в режиме Толстый клиент и требуют соответствующей настройки запуска конфигурации.

Управляемые формы (УФ):

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

Использование внешних инструментов разработки (ИР)

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

Если задача 1С состоит только в том, чтобы забрать данные, дать разработчику возможность визуальной проверки и сгенерировать XML или JSON для PHP-скрипта новой CMS, оптимальным решением является:

  1. Создание простейшей конфигурации с нужными объектами метаданных (справочники статей, товаров, организаций) без прорисовки форм объектов.
  2. Использование подсистемы «Инструменты разработчика» (ИР). Данный комплекс позволяет просматривать структуру таблиц, выполнять произвольные запросы, редактировать реквизиты и визуально отслеживать целостность загруженного контента прямо в режиме толстого клиента.
  3. Написание внешней обработки для выгрузки готовых данных во временный файл.

Проанализируем пример серверного кода для создания выгрузки структуры данных в формат JSON с помощью встроенных средств платформы:


// Пример формирования JSON-файла с данными товаров для новой CMS
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ОткрытьФайл("C:\temp\export_products.json");

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Товары.Код КАК Код,
    |	Товары.Наименование КАК Наименование,
    |	Товары.Артикул КАК Артикул
    |ИЗ
    |	Справочник.Товары КАК Товары";

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

МассивТоваров = Новый Массив;
Пока Выборка.Следующий() Цикл
    ДанныеТовара = Новый Структура;
    ДанныеТовара.Вставить("id", Выборка.Код);
    ДанныеТовара.Вставить("title", Выборка.Наименование);
    ДанныеТовара.Вставить("sku", Выборка.Артикул);
    МассивТоваров.Добавить(ДанныеТовара);
КонецЦикла;

ЗаписатьJSON(ЗаписьJSON, МассивТоваров);
ЗаписьJSON.Закрыть();

Выводы и рекомендации

Если стоит разовая задача переноса данных и создания временного хранилища, изучать и проектировать управляемые формы с нуля нецелесообразно. Для скорейшего достижения результата рекомендуется использовать привычные обычные формы в режиме толстого клиента совместно с «Инструментами разработчика» или стандартными отчетами СКД. Это позволит сэкономить время на разработке интерфейса и сосредоточиться на логике трансформации и выгрузки данных.

← На главную