Support » Plugin: WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange » где в базе wp хранится GUID товара или торгового предложения из 1С

  • Добрый день!

    Подскажите, пожалуйста, где-нибудь в базе WP записан GUID из 1С для товара или торгового предложения?

    Спасибо

Viewing 2 replies - 1 through 2 (of 2 total)
  • Подключи базу сайта к 1С как внешний источник данных. И спокойно все скачивай средствами 1С.

    Номенклатуру и ее Гуид можно вот так получить:

    Запрос = Новый Запрос;
    Запрос.Текст = “ВЫБРАТЬ
    | МояБаза_posts.ID,
    | МояБаза_posts.post_title,
    | ПОДСТРОКА(МояБаза_postmeta.meta_value, 0, 36) КАК НоменклатураГуид
    |ИЗ
    | ВнешнийИсточникДанных.Сайт.Таблица.МояБаза_posts КАК МояБаза_posts
    | ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Сайт.Таблица.МояБаза_postmeta КАК МояБаза_postmeta
    | ПО МояБаза_posts.ID = МояБаза_postmeta.post_id
    |ГДЕ
    | МояБаза_posts.post_type = &post_type
    | И МояБаза_postmeta.meta_key = &_wc1c_guid
    | И МояБаза_posts.post_status = &post_status”;

    Запрос.УстановитьПараметр(“post_status”,”publish”);
    Запрос.УстановитьПараметр(“post_type”,”product”);
    Запрос.УстановитьПараметр(“_wc1c_guid”,”_wc1c_guid”);

    ТЗДанные = Запрос.Выполнить().Выгрузить();

    Характеристику, Гуид НоменклатурыВладельца и Гуид Характеристики можно вот так получить:

    Запрос = Новый Запрос;
    Запрос.Текст = “ВЫБРАТЬ
    | МояБаза_posts.ID,
    | МояБаза_posts.post_title,
    | ПОДСТРОКА(МояБаза_postmeta.meta_value, 38, 36) КАК ХарактеристикаГуид,
    | ПОДСТРОКА(МояБаза_postmeta.meta_value, 0, 36) КАК НоменклатураГуид,
    | МояБаза_postmeta.meta_value КАК _wc1c_guid
    |ИЗ
    | ВнешнийИсточникДанных.Сайт.Таблица.МояБаза_posts КАК МояБаза_posts
    | ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Сайт.Таблица.МояБаза_postmeta КАК МояБаза_postmeta
    | ПО МояБаза_posts.ID = МояБаза_postmeta.post_id
    |ГДЕ
    | МояБаза_posts.post_type = &post_type
    | И МояБаза_postmeta.meta_key = &meta_key
    | И МояБаза_posts.post_status = &post_status”;

    Запрос.УстановитьПараметр(“post_status”,”publish”);
    Запрос.УстановитьПараметр(“post_type”,”product_variation”);
    Запрос.УстановитьПараметр(“meta_key”,”_wc1c_guid”);

    ТЗДанные = Запрос.Выполнить().Выгрузить();

    Сохранить на сайте данные из 1С можно так:
    Пример кода по переносу сортировки товара из 1С на сайт.
    Таким же образом можно переносить цены, описания, свойства, характеристики…
    Все можно так переносить. Можно блоками переносить, сразу по несколько тысяч строк. Но сайт от нагрузки упадет.
    Тут только подбирать опытным путем количество строк в запросе.
    Проще подождать пару минут и построчно переносить все данные.
    Тогда и сайт не упадет и все данные гарантированно перенесутся.
    Еще можно переносить только измененные данные. Будет еще быстрее.
    Драйвер MySQL ODBC 5.2 ANSI Driver должен быть установлен на машину.

    АутентификацияСтандартная = Истина;
    ИмяПользователя = “ИмяПользователяMySQL”;
    Пароль = “ПарольВБазеMYSQL”;

    СтрокаПодключения = “DRIVER={MySQL ODBC 5.2 ANSI Driver};
    |SERVER=МойСайт.ru;
    |Language=русский;
    |STMT=SET CHARACTER SET cp1251;
    |DATABASE=БазаДанныхMYSQLНаСайте;
    |uid=”+ИмяПользователя+”;
    |pwd=”+Пароль+”;
    |”;

    Connection = Новый COMОбъект(“ADODB.Connection”);

    Connection.Open(СтрокаПодключения);
    Connection.DefaultDatabase = “БазаДанныхMYSQLНаСайте”;
    Recordset = Новый COMОбъект(“ADODB.Recordset”);

    Для Каждого Стр из Объект.НоменклатураСписок Цикл

    ID = УбратьПробелы(Стр.ID);
    menu_order = УбратьПробелы(Стр.Номенклатура.ПорядокНаСайте);

    ТекстЗапроса = “INSERT INTO МояБаза_posts (ID, menu_order) VALUES(‘”+ ID +”‘,'”+ menu_order +”‘)
    |ON DUPLICATE KEY UPDATE ID= VALUES(ID), menu_order= VALUES(menu_order)”;

    Table = Connection.Execute(ТекстЗапроса);

    КонецЦикла;
    Connection.Close();

    спасибо за ответ)) мне только название меты надо было, все нашел что искал

Viewing 2 replies - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.