Как перенести данные из системы «МойСклад» в 1С:Управление торговлей и другие конфигурации

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

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

Способ 1: Использование штатной обработки «Загрузка данных из табличного документа»

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

  1. В интерфейсе «МойСклад» перейдем в нужный раздел (например, «Заказы покупателей» или «Товары»).
  2. Выполним выгрузку списка в формат Excel. Важно убедиться, что в выгрузку включены все необходимые колонки: артикулы, наименования, цены, количества и контрагенты.
  3. В 1С откроем обработку ЗагрузкаДанныхИзТабличногоДокумента.epf (она входит в состав ИТС или встроена во многие конфигурации).
  4. Настроим сопоставление полей. Например, Артикул из Excel должен соответствовать реквизиту Артикул справочника Номенклатура в 1С.
  5. Для загрузки документов (заказов) укажем вид объекта ДокументСсылка.ЗаказПокупателя и настроим создание табличной части Товары.

Рассмотрим преимущество этого метода: он не требует навыков программирования и позволяет быстро «закинуть» данные в систему, минуя сложности настройки правил обмена XML.

Способ 2: Перенос данных через JSON API v1.2

Современный «МойСклад» предоставляет мощное REST API, работающее с данными в формате JSON. Если нам требуется автоматизированный перенос или постоянный обмен, этот способ является наиболее надежным. В 1С версии 8.3 для этого используются объекты HTTPСоединение и ЧтениеJSON.

Разберем пример кода для получения списка заказов через API:


// Настройка соединения с API МойСклад
Сервер = "online.moysklad.ru";
Ресурс = "/api/remap/1.2/entity/customerorder";
Заголовок = Новый Соответствие;
Заголовок.Вставить("Authorization", "Basic " + КодироватьСтрокуBase64(Логин + ":" + Пароль));

Соединение = Новый HTTPСоединение(Сервер, 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(Ресурс, Заголовок);
Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда
    Чтение = Новый ЧтениеJSON;
    Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
    Данные = ПрочитатьJSON(Чтение);
    // Далее следует обход структуры Данные.rows и создание документов в 1С
КонецЕсли;

Проанализируем ситуацию, когда необходимо загрузить не только заголовки, но и позиции заказа. В API 1.2 позиции находятся по отдельной ссылке в поле positions. При обработке каждого заказа нам потребуется выполнить дополнительный запрос к вложенному ресурсу, чтобы получить состав табличной части.

Способ 3: Синхронизация через формат EnterpriseData

Для современных конфигураций (Управление торговлей 11, Управление нашей фирмой (УНФ), Бухгалтерия предприятия 3.0) сервис «МойСклад» поддерживает протокол EnterpriseData. Это универсальный формат обмена, который понимает большинство типовых решений 1С.

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

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

Способ 4: Промежуточное звено через 1С:Бухгалтерия 3.0

Если конечной целью является перенос данных в УТ 10.3, но стандартные обработки не справляются с объемом, рассмотрим схему «Шлюза»:

  1. Настроим бесплатную штатную синхронизацию «МойСклад» -> Бухгалтерия предприятия 3.0.
  2. После того как данные (включая оплаты и контрагентов) попали в БП 3.0, используем стандартную обработку ВыгрузкаЗагрузкаДанныхXML.epf или настроенные правила в Конвертации данных 2.0 для переброса в УТ 10.3.

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

Способ 5: Обходной путь с «фиктивными реализациями»

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

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


Для Каждого СтрокаРеализации Из РеализацияОбъект.Товары Цикл
    НоваяСтрока = ЗаказОбъект.Товары.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаРеализации);
КонецЦикла;
ЗаказОбъект.Записать();

Рекомендации по переносу для BAS УНФ

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

Подводя итог, выбор метода зависит от глубины истории, которую нужно сохранить. Если важны только остатки — выбираем Excel. Если нужен полноценный оперативный учет с сохранением всех цепочек документов — настраиваем EnterpriseData или используем API v1.2.

← На главную