При переносе данных с одного сайта на другой (например, с платформы 1С-Битрикс на новую CMS) часто возникает необходимость во временном промежуточном буфере. В таком хранилище удобнее контролировать полноту загрузки контента, проверять связи между товарами и статьями, подготавливать промежуточные выгрузки в XML или JSON, а также формировать сводные отчеты.
Разберем, какую технологию визуального интерфейса платформы 1С лучше использовать для решения подобной задачи — управляемые или обычные формы, и влияют ли они на функциональные возможности языка 1С.
Проанализируем распространенное заблуждение: тип пользовательских форм (управляемые или обычные) определяет способы работы с базой данных на сервере. В платформе 1С:Предприятие 8 серверный код языка (выборки из справочников, выполнение запросов, генерация файлов XML или JSON, построение отчетов в СКД) работает одинаково независимо от типа визуального интерфейса.
Рассмотрим основные моменты, которые нужно учитывать при выборе подхода:
СКД одинаково эффективен как в управляемом, так и в обычном приложении. Он позволяет строить сводный результат и отчеты по связям между статьями и товарами без прорисовки сложных форм.ЧтениеJSON, ЗаписьJSON, HTTPСоединение и HTTPЗапрос. Эти средства доступны для серверных модулей и обработок независимо от выбранной технологии форм.Выясним плюсы и минусы использования каждой технологии при проектировании временной базы данных.
Обычные формы (ОФ):
Толстый клиент и требуют соответствующей настройки запуска конфигурации.Управляемые формы (УФ):
Тонкий клиент и Веб-клиент.&НаКлиенте и &НаСервере, что требует дополнительных затрат времени при написании разовых скриптов и обработок.Посмотрим на практическое решение задачи проверки и редактирования загруженных данных без затрат времени на проектирование индивидуальных форм для всех справочников и документов.
Если задача 1С состоит только в том, чтобы забрать данные, дать разработчику возможность визуальной проверки и сгенерировать XML или JSON для PHP-скрипта новой CMS, оптимальным решением является:
Проанализируем пример серверного кода для создания выгрузки структуры данных в формат JSON с помощью встроенных средств платформы:
// Пример формирования JSON-файла с данными товаров для новой CMS
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ОткрытьФайл("C:\temp\export_products.json");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Код КАК Код,
| Товары.Наименование КАК Наименование,
| Товары.Артикул КАК Артикул
|ИЗ
| Справочник.Товары КАК Товары";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
МассивТоваров = Новый Массив;
Пока Выборка.Следующий() Цикл
ДанныеТовара = Новый Структура;
ДанныеТовара.Вставить("id", Выборка.Код);
ДанныеТовара.Вставить("title", Выборка.Наименование);
ДанныеТовара.Вставить("sku", Выборка.Артикул);
МассивТоваров.Добавить(ДанныеТовара);
КонецЦикла;
ЗаписатьJSON(ЗаписьJSON, МассивТоваров);
ЗаписьJSON.Закрыть();
Если стоит разовая задача переноса данных и создания временного хранилища, изучать и проектировать управляемые формы с нуля нецелесообразно. Для скорейшего достижения результата рекомендуется использовать привычные обычные формы в режиме толстого клиента совместно с «Инструментами разработчика» или стандартными отчетами СКД. Это позволит сэкономить время на разработке интерфейса и сосредоточиться на логике трансформации и выгрузки данных.