Доброго здоровья! Решил поделиться простейшим примером (неоптимальным, не очень-то и правильным, но зато работающим) выгрузки 1С на сайт, вместе с готовым скриптом.
Регистрируетесь на хостинге. Если он вам даст прямой доступ к базе данных mysql - будет проще. Если нет - сделаете туннель через putty. Затем в личном кабинете берете данные для доступа к базе (в моем случае адрес - доменное имя, в вашем может быть и localhost, если подключение через туннель).
В обработке выбираете вид выгружаемой цены. В итоге получится результат "Наименование номенклатуры / кол. штук / цена руб."
Можно в модуле обработки поставить нужные данные, подключить ее через пользовательский режим и выполнять ее регламентным заданием.
Скрипт взят отсюда https://kylaksizov.ru/51-zhivoy-poisk-ajax-php.html
Для работы необходим https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.17-win32.msi
Конструктивная критика приветствуется, собственно в том числе и ради нее делаю публикацию)
Тестировалось на Рознице 2.2.12.30 и на платформе 8.3.13.1865. Думаю работать будет на огромном количестве конфигураций и версий платформ. Работает не очень-то быстро, но я не знаток mysql, да и в 1С я не так давно.
 
&НаКлиенте
Функция ПодключитьсяКРабочемуСайту()  
    
    Connection = Новый COMОбъект("ADODB.Connection");    
    
    Если Connection.State = 0 // 0 - adStateClosed
        Тогда
        SRV =  Объект.АдресСервераMysql; //адрес сервера MySQL
        DB = Объект.ИмяБазыMysql; //имя базы MySQL
        UID = Объект.ИмяПользователяMysql; //имя пользователя MySQL
        PWD = Объект.ПарольПользователяMysql; //пароль пользователя MySQL        
        PORT = "3306";//порт сервера MySQL, например 3306
        cstr = "DRIVER={MySQL ODBC 8.0 Unicode Driver};
        |SERVER=" + SRV + ";UID=" + UID + ";
        |PASSWORD=" + PWD + ";DATABASE=" + DB + ";PORT=" + PORT + ";";
        Попытка
            Connection.Open (cstr);    
        Исключение
            Connection = Неопределено;
            Сообщить(ОписаниеОшибки());
        КонецПопытки;        
    КонецЕсли;
    
    Возврат Connection;
    
КонецФункции // ПодключитьсяКСайту()
&НаКлиенте
Процедура УдалитьВсе()
    
    Connection = ПодключитьсяКРабочемуСайту();
    Попытка
        Connection.Execute("TRUNCATE TABLE `search`");        
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    Connection.Close();
    
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗагрузку()
    
    МассивНаСайт = СформироватьОтправляемыеДанные();
    
    Connection = ПодключитьсяКРабочемуСайту();
    
    Для Каждого ЭлементМассива из МассивНаСайт Цикл
        Попытка
            Connection.Execute("INSERT INTO `search` SET `name`  ="+""""+ЭлементМассива+"""");    
        Исключение
            Продолжить;;
        КонецПопытки;         
    КонецЦикла;
    
    Connection.Close();  
    
КонецПроцедуры
&НаСервере
Функция СформироватьОтправляемыеДанные()
    
    МассивНаСайт = Новый Массив;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗЛИЧНЫЕ  
    |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Количество,
    |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    |    ТоварыНаСкладахОстатки.Номенклатура.Представление КАК НоменклатураПредставление
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
    |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |ГДЕ
    |    ТоварыНаСкладахОстатки.КоличествоОстаток > 0
    |    И ЦеныНоменклатурыСрезПоследних.Цена > 0
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("ВидЦены", Объект.ВидЦены);
    
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        СтрокаНаСайт = Выборка.НоменклатураПредставление + " / " + Выборка.Количество +  "  шт. / " +Выборка.Цена + " руб.";
        МассивНаСайт.Добавить(СтрокаНаСайт);
    КонецЦикла;
    
    Возврат МассивНаСайт;
    
КонецФункции
&НаКлиенте
Процедура ОтправитьНаСайт(Команда)
        
    УдалитьВсе();
    
    ВыполнитьЗагрузку();
    
КонецПроцедуры
Спасибо за внимание! ))
Вступайте в нашу телеграмм-группу Инфостарт
 
                                 
                                     
                                    