Как я интегрировал 1Сv8 и Virtuemart

Публикация № 57317

Администрирование - Администрирование данных 1С - Обработка справочников

56
Задача: создать обмен 1Сv8 управление торговлей 10.1 и Virtuemart .

Что такое Virtuemart можно почитать тут http://www.virtuemart.ru, вкратце - это компонент интернет-магазина (каталога товаров) к известному CMS-движку Joomla.
Процедура СнятиеФлагаПустыхГрупп(Кнопка)
    СтрПодключения = "DSN=mySQL_ishop;";
    СтрПодключения = СтрПодключения+"Database=joomla;";
    СтрПодключения = СтрПодключения+"Uid=Sa;";
    СтрПодключения = СтрПодключения+"Pwd=хххххххх;";
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.Open(СтрПодключения);
    
    RS = Новый COMОбъект("ADODB.Recordset");
    RSIDProduct= Новый COMОбъект("ADODB.Recordset");
    Command = Новый COMОбъект ("ADODB.Command");
    Command.ActiveConnection = Connection;
    
    Сообщить (Строка (ТекущаяДата()) + " обновляем флаг пустых групп");
    
    Запрос =Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ РАЗЛИЧНЫЕ
    | Номенклатура.ЭтоГруппа,
    | Номенклатура.НеОтображатьWeb,
    | Номенклатура.НеОтображатьНикогда,
    | Номенклатура.Код КАК Код,
    | Номенклатура.Артикул,
    | Номенклатура.ПустойОстаток
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ИСТИНА";
    // | И (Номенклатура.ПустойОстаток = ИСТИНА
    // | ИЛИ Номенклатура.НеОтображатьWeb = ИСТИНА
    // | ИЛИ Номенклатура.НеОтображатьНикогда = ИСТИНА)";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ПустойОстаток ИЛИ Выборка.НеОтображатьНикогда ИЛИ Выборка.НеОтображатьWEB Тогда
            АпдейтГрупп = "UPD ATE jos_vm_category SET category_publish='N' WHERE category_description='"+Выборка.Код+"'" ;
        Иначе
            АпдейтГрупп = "UPD ATE jos_vm_category SET category_publish='Y' WHERE category_description='"+Выборка.Код+"'" ;
        КонецЕсли;
        Command.CommandText = АпдейтГрупп;
        Command.CommandType = 1;
        Попытка
            РекордСет = Command.Execute();
        Исключение
            Сообщить (ОписаниеОшибки());
        КонецПопытки;
        
    КонецЦикла;
    
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
    СтрПодключения = "DSN=mySQL_ishop;";
    СтрПодключения = СтрПодключения+"Database=joomla;";
    СтрПодключения = СтрПодключения+"Uid=Sa;";
    СтрПодключения = СтрПодключения+"Pwd=ххххххх;";
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.Open(СтрПодключения);
    
    RS = Новый COMОбъект("ADODB.Recordset");
    RSIDProduct= Новый COMОбъект("ADODB.Recordset");
    Command = Новый COMОбъект ("ADODB.Command");
    Command.ActiveConnection = Connection;
    // выберем запросом все группы товаров
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.ПометкаУдаления,
    | Номенклатура.Предопределенный,
    | Номенклатура.Родитель,
    | Номенклатура.ЭтоГруппа,
    | Номенклатура.Код,
    | Номенклатура.Наименование,
    | Номенклатура.НеОтображатьWeb,
    | Номенклатура.НеОтображатьНикогда,
    | Номенклатура.Артикул,
    | Номенклатура.ПустойОстаток
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ИСТИНА";
    // | И Номенклатура.Родитель = &Родитель";
    // Запрос.УстановитьПараметр("Родитель",Справочники.Номенклатура.ПустаяСсылка());
    
    Результат = Запрос.Выполнить();
    Выборка= Результат.Выбрать();
    ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
    ЭлементыФормы.Индикатор1.МаксимальноеЗначение = Выборка.Количество();
    н=0;
    
    Пока Выборка.Следующий() Цикл
        
        н=н+1;
        // запрос существования товара в базе виртуемарта
        query = "
        |SEL ECT category_id
        |FR OM jos_vm_category WHERE category_description='"+Выборка.Код+"' limit 1";
        RSIDProduct.CursorType = 3;
        RSIDProduct.Open(query, Connection);
        
        Если RSIDProduct.EOF() И RSIDProduct.BOF() Тогда
            СтрН = СтрЗаменить(Строка(н)," ","");
            //пишем группы верхнего уровня
            // если группа имеет признак того что-бы ее не выгружать на web то отменим публикацию // необходимо для оптимизации добавить рекурсию по родительскому каталогу
            Если Выборка.НеОтображатьWeb или Выборка.НеОтображатьНикогда или Выборка.Родитель.НеОтображатьНикогда или Выборка.Родитель.НеОтображатьWeb или Выборка.ПустойОстаток
                Тогда
                query = "ins ert into jos_vm_category (vendor_id , category_name ,category_description, category_publish , category_browsepage , products_per_row , category_flypage, list_order )
                |values ('1' , '"+Выборка.НАИМЕНОВАНИЕ+"' ,'"+Выборка.Код+"', 'N', 'managed' , '1' , 'flypage.tpl', '1')";
                // иначе публикуем
            Иначе
                query = "ins ert into jos_vm_category (
                |vendor_id ,
                |category_name ,
                |category_description,
                |category_publish ,
                |category_browsepage ,
                |products_per_row ,
                |category_flypage,
                |list_order )
                |values ('1' , '"+Выборка.НАИМЕНОВАНИЕ+"' ,'"+Выборка.Код+"', 'Y', 'managed' , '1' , 'flypage.tpl', '1')";
                
            КонецЕсли;
            
            Command.CommandText = query;
            Command.CommandType = 1;
            Попытка
                RS = Command.Execute();
            Исключение
                Сообщить (ОписаниеОшибки());
                Сообщить (Выборка.Код);
                Сообщить (Формат (н,"ЧГ=0"));
                
            КонецПопытки;
            
            query = "
            |SEL ECT *
            |FR OM jos_vm_category WHERE category_description='"+Выборка.Код+"' limit 1";
            RS.Open(query, Connection);
            
            RS.MoveFirst();
            Пока RS.EOF() = 0 Цикл
                ИДГруппы = RS.Fields("category_id").Value;
                RS.MoveNext();
            КонецЦикла;
            RS.Close();
            
            query = "ins ert into jos_vm_category_xref ( `category_parent_id` , `category_child_id` )
            |values ( '"+0+"' , '"+Формат(ИДгруппы,"ЧГ=0")+"' )";
            
            Command.CommandText = query;
            Command.CommandType = 1;
            Попытка
                RS = Command.Execute();
            Исключение
                Сообщить (Выборка.Код);
                Сообщить(ОписаниеОшибки());
            КонецПопытки;
            ОбработкаПрерыванияПользователя();
            // Состояние("Обновляем группу товаров " + Выборка.Наименование);
            
        КонецЕсли;
        
        Индикатор1=н;
        RSIDProduct.Close();
        
    КонецЦикла;
    Сообщить ("обновлено " + н+ " групп");
    // обновим статус публикацию групп
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.ПометкаУдаления,
    | Номенклатура.Предопределенный,
    | Номенклатура.Родитель.Код КАК КодРодителя,
    | Номенклатура.ЭтоГруппа,
    | Номенклатура.Код,
    | Номенклатура.Наименование,
    | Номенклатура.НеОтображатьWeb,
    | Номенклатура.НеОтображатьНикогда
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ИСТИНА
    | И (НЕ Номенклатура.Родитель = &Родитель)";
    
    Запрос.УстановитьПараметр("Родитель",Справочники.Номенклатура.ПустаяСсылка());
    
    Результат = Запрос.Выполнить();
    Выборка= Результат.Выбрать();
    ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
    ЭлементыФормы.Индикатор1.МаксимальноеЗначение = Выборка.Количество();
    н=0 ;
    Сообщить ("Строим структуру...");
    
    Пока Выборка.Следующий() Цикл
        н=н+1;
        // Если не Выборка.Ссылка.Уровень=0 тогда
        
        //1 найдем айди родителя и категории в виртуамарте
        query = "
        |SEL ECT *
        |FR OM jos_vm_category WHERE category_description='"+Выборка.КодРодителя+"' limit 1";
        RS.Open(query, Connection);
        
        RS.MoveFirst();
        Пока RS.EOF() = 0 Цикл
            ИДРодителя = RS.Fields("category_id").Value;
            RS.MoveNext();
        КонецЦикла;
        RS.Close();
        
        query = "
        |SEL ECT *
        |FR OM jos_vm_category WHERE category_description='"+Выборка.Код+"' limit 1";
        RS.Open(query, Connection);
        Попытка
            RS.MoveFirst();
        Исключение
            Сообщить (Выборка.Код);
        КонецПопытки;
        Пока RS.EOF() = 0 Цикл
            ИДГруппы = RS.Fields("category_id").Value;
            RS.MoveNext();
        КонецЦикла;
        RS.Close();
        //найдем и завалим запись в категории
        query = "delete fr om jos_vm_category_xref where category_child_id='"+Формат(ИДгруппы,"ЧГ=0")+"'";
        
        Command.CommandText = query;
        Command.CommandType = 1;
        Попытка
            RS = Command.Execute();
        Исключение
            Сообщить (Выборка.Код);
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
        // добавим запись в категорию
        
        query = "ins ert into jos_vm_category_xref ( category_parent_id , category_child_id)
        |values ( '"+Формат(ИДРодителя,"ЧГ=0")+"' , '"+Формат(ИДгруппы,"ЧГ=0")+"' )";
        
        Command.CommandText = query;
        Command.CommandType = 1;
        Попытка
            RS = Command.Execute();
        Исключение
            Сообщить (Выборка.Код);
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
        Индикатор1=н;
        // КонецЕсли;
        
    КонецЦикла;
    
    Сообщить ("обновлена структура " + н+ " групп");
    
    // RS.Close();
    Connection.Close();
КонецПроцедуры

Процедура ОсновныеДействияФормыОчистьТАблицыSQL(Кнопка)
    СтрПодключения = "DSN=mySQL_ishop;";
    СтрПодключения = СтрПодключения+"Database=joomla;";
    СтрПодключения = СтрПодключения+"Uid=Sa;";
    СтрПодключения = СтрПодключения+"Pwd=ххххххх;";
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.Open(СтрПодключения);
    
    RS = Новый COMОбъект("ADODB.Recordset");
    Command = Новый COMОбъект ("ADODB.Command");
    Command.ActiveConnection = Connection;
    Command = Новый COMОбъект ("ADODB.Command");
    Command.ActiveConnection = Connection;
    
    query ="
    |DELETE FR OM jos_vm_category";
    Command.CommandText = query;
    Command.CommandType = 1;
    RS = Command.Execute();
    
    query ="
    |DELETE FR OM jos_vm_category_xref";
    Command.CommandText = query;
    Command.CommandType = 1;
    RS = Command.Execute();
    
    query ="
    |DELETE FR OM jos_vm_product";
    Command.CommandText = query;
    Command.CommandType = 1;
    RS = Command.Execute();
    query ="
    |DELETE FR OM jos_vm_product_category_xref";
    Command.CommandText = query;
    Command.CommandType = 1;
    RS = Command.Execute();
    
    query ="
    |DELETE FR OM jos_vm_product_price";
    Command.CommandText = query;
    Command.CommandType = 1;
    RS = Command.Execute();
    // RS.Close();
    Connection.Close();
    
КонецПроцедуры

Процедура ОсновныеДействияФормыОбновитьТовары(Кнопка)
    Сообщить (Строка (ТекущаяДата()) + " обновляем группы товаров...");
    КнопкаВыполнитьНажатие(1);
    
    СтрПодключения = "DSN=mySQL_ishop;";
    СтрПодключения = СтрПодключения+"Database=joomla;";
    СтрПодключения = СтрПодключения+"Uid=Sa;";
    СтрПодключения = СтрПодключения+"Pwd=ххххххх;";
    
    Connection = Новый COMОбъект("ADODB.Connection");
    Connection.Open(СтрПодключения);
    
    RS = Новый COMОбъект("ADODB.Recordset");
    RSIDProduct = Новый COMОбъект("ADODB.Recordset");
    Command = Новый COMОбъект ("ADODB.Command");
    Command.ActiveConnection = Connection;
    Склад = Константы.СкладРозница.Получить();
    Сообщить (Строка (ТекущаяДата()) + " распубликовываем отсутсвующие товары");
    Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
    | ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Остаток,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул КАК Артикул,
    | ЕСТЬNULL(ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ЗаказыПокупателейОстатки.КоличествоОстаток, 0), 0) КАК ДоступноеКоличество,
    | ЕСТЬNULL(ЗаказыПокупателейОстатки.КоличествоОстаток, 0) КАК Заказы
    |ИЗ
    | РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&КонецДня, СкладКомпании = &Склад) КАК ОстаткиТоваровКомпанииОстатки
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(&КонецДня, ) КАК ЗаказыПокупателейОстатки
    | ПО ОстаткиТоваровКомпанииОстатки.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура
    |ГДЕ
    | ОстаткиТоваровКомпанииОстатки.Заказ = &ПустойЗаказ
    | И ЕСТЬNULL(ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ЗаказыПокупателейОстатки.КоличествоОстаток, 0), 0) > 0
    | И (НЕ ОстаткиТоваровКомпанииОстатки.Номенклатура.WebЦенаУпр = 0)
    | И (НЕ ОстаткиТоваровКомпанииОстатки.Номенклатура.WebЦенаУпр2 = 0)";
    
    Запрос.УстановитьПараметр("ПустойЗаказ", Документы.ЗаказПокупателя.ПустаяСсылка());
    
    Запрос.УстановитьПараметр("Склад",Склад );
    Запрос.УстановитьПараметр("КонецДня",КонецДня (ТекущаяДата()));
    // Запрос.УстановитьПараметр("Артикул",Артикул);
    
    ТЗостатоков = Запрос.Выполнить().Выгрузить();
    // ТЗостатоков.ВыбратьСтроку();
    query = "
    |SEL ECT product_sku, product_id
    |FR OM jos_vm_product";
    RS.Open(query, Connection);
    
    Если (НЕ RS.EOF()) И (НЕ RS.BOF()) Тогда
        RS.MoveFirst();
        Пока RS.EOF() = 0 Цикл
            Артикул = RS.Fields("product_sku").Value;
            ПродуктИД = RS.Fields("product_id").Value;
            // Если Выборка.Количество()= 0 Тогда
            Если ТЗостатоков.Найти(Артикул,"Артикул")= Неопределено Тогда
                АпдейтВиртмарта = "UPD ATE jos_vm_product SET product_in_stock= '0',product_publish='N' WHERE product_sku='"+Артикул+"'" ;
                
                Command.CommandText = АпдейтВиртмарта;
                Command.CommandType = 1;
                Попытка
                    РекордСет = Command.Execute();
                Исключение
                    Сообщить (ОписаниеОшибки());
                КонецПопытки;
            КонецЕсли;
            RS.MoveNext();
        КонецЦикла;
    КонецЕсли;
    RS.Close();
    
    //** модуль обновление цен
    Сообщить (Строка (ТекущаяДата()) + " начинаем обновление цен на сайте...");
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Остаток,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура КАК Номенклатура,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Код КАК Код,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул КАК Артикул,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Наименование КАК Наименование,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Родитель.Код КАК РодительКОД,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Родитель.Артикул КАК РодительАртикул,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.WebЦенаУпр КАК WEbЦЕнаУПР,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.WebЦенаУпр2 КАК WEbЦЕнаУПР2,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.НеВыводитьНаСайт КАК НеВыводитьНаСайт,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Родитель.НеОтображатьWeb КАК НеОтображатьWeb,
    | ОстаткиТоваровКомпанииОстатки.Номенклатура.Родитель.НеОтображатьНикогда КАК НеОтображатьНикогда,
    | ЕСТЬNULL(ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ЗаказыПокупателейОстатки.КоличествоОстаток, 0), 0) КАК ДоступноеКоличество,
    | ЕСТЬNULL(ЗаказыПокупателейОстатки.КоличествоОстаток, 0) КАК Заказы
    |ИЗ
    | РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&КонецДня, СкладКомпании = &Склад) КАК ОстаткиТоваровКомпанииОстатки
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(&КонецДня, ) КАК ЗаказыПокупателейОстатки
    | ПО ОстаткиТоваровКомпанииОстатки.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура
    |ГДЕ
    | ОстаткиТоваровКомпанииОстатки.КоличествоОстаток > 0
    | И ОстаткиТоваровКомпанииОстатки.Заказ = &ПустойЗаказ
    | И (НЕ ОстаткиТоваровКомпанииОстатки.Номенклатура.WebЦенаУпр = 0)
    | И (НЕ ОстаткиТоваровКомпанииОстатки.Номенклатура.WebЦенаУпр2 = 0)";
    Запрос.УстановитьПараметр("ПустойЗаказ", Документы.ЗаказПокупателя.ПустаяСсылка());
    Запрос.УстановитьПараметр("Склад", Справочники.СкладыКомпании.НайтиПоКоду("00002"));
    Запрос.УстановитьПараметр("КонецДня",КонецДня(ТекущаяДата()));
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
    ЭлементыФормы.Индикатор1.МаксимальноеЗначение = Выборка.Количество();
    н=0 ;
    ЗапросКурса = Новый Запрос;
    ЗапросКурса.Текст = "ВЫБРАТЬ
    | КурсыВалютСрезПоследних.Курс
    |ИЗ
    | РегистрСведений.КурсыВалют.СрезПоследних(&ТекущаяДата, ) КАК КурсыВалютСрезПоследних
    |ГДЕ
    | КурсыВалютСрезПоследних.Валюта = &Валюта";
    ЗапросКурса.УстановитьПараметр("Валюта", Константы.ВалютаУправленческогоУчетаКомпании.Получить());
    ЗапросКурса.УстановитьПараметр("ТекущаяДата",КонецДня(ТекущаяДата()));
    ВыборкаКурса = ЗапросКурса.Выполнить().Выбрать();
    
    Пока ВыборкаКурса.Следующий() Цикл
        Курс = ВыборкаКурса.Курс;       
    КонецЦикла;
    
    Пока Выборка.Следующий() Цикл
        н=н+1;
        
        // Если Выборка.ДоступноеКоличество < 0 Тогда ДОступноеКоличество=0; Иначе ДОступноеКоличество=Выборка.ДоступноеКоличество; КонецЕсли;
        
        ДОступноеКоличество=Выборка.ДоступноеКоличество;
        // Сообщить (Выборка.Номенклатура.Наименование + " " + ДОступноеКоличество);
        флагсуществования=Ложь;
        // убираем непорядочные символы
        Наименование = СтрЗаменить(Выборка.Наименование,"'"," "); //уберем символ '
        // запрос существования товара в базе виртуемарта
        query = "
        |SEL ECT *
        |FR OM jos_vm_product WHERE product_sku='"+Выборка.Артикул+"' limit 1";
        
        RSIDProduct.Open(query, Connection);       
        
        Если RSIDProduct.EOF() И RSIDProduct.BOF() Тогда
            
            // Если Выборка.НеОтображатьНикогда = NULL Тогда НеОтображатьНикогда=Ложь; Иначе НеОтображатьНикогда=ИСТИНА; КонецЕсли;
            // Если Выборка.НеОтображатьНикогда = NULL Тогда НеОтображатьWeb=Ложь Иначе НеОтображатьНикогда=ИСТИНА; КонецЕсли;
            Если ПРО2 Тогда Цена = ВЫборка.WEbЦЕнаУПР2; Иначе Цена = Выборка.WEbЦЕнаУПР; КонецЕсли;
            Если Выборка.НеВыводитьНаСайт Тогда
                
                // флаги отображения на сайте
                //Если Выборка.НеВыводитьНаСайт или Выборка.НеОтображатьНикогда или Выборка.НеОтображатьWeb Тогда
                query = "ins ert into jos_vm_product ( vendor_id , product_parent_id , product_sku , product_s_desc , product_publish , product_special , product_discount_id , product_name , product_unit , quantity_options, product_order_levels, product_in_stock, product_sales,product_url )
                |values ( '1', '0', '"+Выборка.Артикул+"', '"+наименование+"', 'N', 'N', '0', '"+наименование+"', 'шт.', 'none,0,0,1', '0,0','"+Формат (ДОступноеКоличество, "ЧГ=0")+"','"+Формат (Цена*Курс,"ЧГ=0")+"','http://catalog.sunrise.ru/descriptionPage.aspx?a="+Выборка.Артикул+"')";
            Иначе
                query = "ins ert into jos_vm_product ( vendor_id , product_parent_id , product_sku , product_s_desc , product_publish , product_special , product_discount_id , product_name , product_unit , quantity_options, product_order_levels, product_in_stock, product_sales, product_url )
                |values ( '1', '0', '"+Выборка.Артикул+"', '"+наименование+"', 'Y', 'N', '0', '"+наименование+"', 'шт.', 'none,0,0,1', '0,0','"+Формат (ДОступноеКоличество, "ЧГ=0")+"','"+Формат (Цена*Курс,"ЧГ=0")+"','http://catalog.sunrise.ru/descriptionPage.aspx?a="+Выборка.Артикул+"')";
            КонецЕсли;
            // запишем номенклатуру
            // Сообщить (query);
            Command.CommandText = query;
            Command.CommandType = 1;
            Попытка
                RS = Command.Execute();
            Исключение
                Сообщить (ОписаниеОшибки());
            КонецПопытки;
            RSIDProduct.Close();
            флагсуществования =Ложь;
        Иначе
            
            флагсуществования=Истина;
            
            // выполним пока не нужный запрос /// данные об изменении в номенклатуре
            //RSIDProduct.MoveFirst();
            //Пока RSIDProduct.EOF() = 0 Цикл
            // ИД = RSIDProduct.Fields("product_id").Value;
            // RSIDProduct.MoveNext();
            //КонецЦикла;
            
            // Если Выборка.НеОтображатьНикогда = NULL Тогда НеОтображатьНикогда=Ложь; Иначе НеОтображатьНикогда=ИСТИНА; КонецЕсли;
            // Если Выборка.НеОтображатьНикогда = NULL Тогда НеОтображатьWeb=Ложь Иначе НеОтображатьНикогда=ИСТИНА; КонецЕсли;
            Если ПРО2 Тогда Цена = ВЫборка.WEbЦЕнаУПР2; Иначе Цена = Выборка.WEbЦЕнаУПР; КонецЕсли;
            Если Выборка.НеВыводитьНаСайт Тогда
                
                query = "UPD ATE jos_vm_product SET product_sku='"+Выборка.Артикул+"', product_s_desc= '"+наименование+"',product_in_stock= '"+Формат (ДОступноеКоличество, "ЧГ=0")+"',product_sales='"+Формат (Цена*Курс,"ЧГ=0")+"',product_url='http://catalog.sunrise.ru/descriptionPage.aspx?a="+Выборка.Артикул+"',product_publish='N' WHERE product_sku='"+Выборка.Артикул+"'" ;
            Иначе
                query = "UPD ATE jos_vm_product SET product_sku='"+Выборка.Артикул+"', product_s_desc= '"+наименование+"',product_in_stock= '"+Формат (ДОступноеКоличество, "ЧГ=0")+"',product_sales='"+Формат (Цена*Курс,"ЧГ=0")+"',product_url='http://catalog.sunrise.ru/descriptionPage.aspx?a="+Выборка.Артикул+"',product_publish='Y' WHERE product_sku='"+Выборка.Артикул+"'" ;
            КонецЕсли;
            Command.CommandText = query;
            Command.CommandType = 1;
            Попытка
                RS = Command.Execute();
            Исключение
                Сообщить (ОписаниеОшибки());
            КонецПопытки;
            RSIDProduct.Close();
        КонецЕсли;
        // Попытка записать Данные о товаре
        Попытка
            // запрос ID родителя товара
            query = "
            |SEL ECT *
            |FR OM jos_vm_category WHERE category_description='"+Выборка.РодительКод+"' limit 1";
            RS.Open(query, Connection);
            RS.MoveFirst();
            Пока RS.EOF() = 0 Цикл
                ИДгрупы = RS.Fields("category_id").Value;
                RS.MoveNext();
            КонецЦикла;
            RS.Close();
            //Обновление группы
            // запрос айди товара в мускуле виртуемарта
            // Сообщить (Выборка.Номенклатура.Артикул);
            query = "
            |SEL ECT *
            |FR OM jos_vm_product WHERE product_sku='"+Выборка.Артикул+"' limit 1";
            RS.Open(query, Connection);
            
            RS.MoveFirst();
            Пока RS.EOF() = 0 Цикл
                ИД = RS.Fields("product_id").Value;
                RS.MoveNext();
            КонецЦикла;
            RS.Close();
            Если НЕ флагсуществования Тогда
                
                query = "ins ert into jos_vm_product_category_xref (category_id , product_id ) values ( '"+Формат(ИДгрупы,"ЧГ=0")+"' , '"+Формат(ИД,"ЧГ=0")+"' )";
                Command.CommandText = query;
                Command.CommandType = 1;
                RS = Command.Execute();
            Иначе
                query = "UPD ATE jos_vm_product_category_xref SET category_id='"+Формат(ИДгрупы,"ЧГ=0")+"' WHERE product_id='"+Формат(ИД,"ЧГ=0")+"'";
                
                
                // "UPD ATE jos_vm_product_category_xref SET category_id='"+Формат(ИДгрупы,"ЧГ=0")+"', product_id='"+Формат(ИД,"ЧГ=0")+"' WHERE product_id='"+Формат(ИД,"ЧГ=0")+"' " ;
                // Сообщить (query);
                Command.CommandText = query;
                Command.CommandType = 1;
                RS = Command.Execute();
            КонецЕсли;        
            
            // прибьем ценник товара
            query = "delete fr om jos_vm_product_price WHERE product_id='"+Формат(ИД,"ЧГ=0")+"' " ;
            Command.CommandText = query;
            Command.CommandType = 1;
            RS = Command.Execute();     
            
            // все поля важны !
            
            query = "insert into jos_vm_product_price (
            |product_id,
            |product_price,
            |product_currency,
            |product_price_vdate,
            |product_price_edate,
            |cdate,
            |mdate,
            |shopper_group_id,
            |price_quantity_start,
            |price_quantity_end )
            |values ( '"+Формат(ИД,"ЧГ=0")+"' , '"+Формат (Цена*Курс,"ЧГ=0")+"','RUB',0,0,1222792314,1222792314,'5',0,0 )";
            // Сообщить(Формат(ИД,"ЧГ=0"));
            Command.CommandText = query;
            Command.CommandType = 1;
            Попытка
                RS = Command.Execute();
            Исключение
                Сообщить(ОписаниеОшибки());
            КонецПопытки;
        Исключение
            Сообщить (ОписаниеОшибки());
            Сообщить (Выборка.Наименование);
        КонецПопытки;   
        
        ОбработкаПрерыванияПользователя();
        // Состояние("Обновляем товары " + Выборка.Номенклатура.Наименование);
        Индикатор1 = н;
    КонецЦикла;
    Сообщить ("Выгружено " + н + " объектов");
    Сообщить(Строка (ТекущаяДата()) + " обновление завершено");
КонецПроцедуры

Процедура Автомат ()
    ОсновныеДействияФормыОбновитьТовары(1);
КонецПроцедуры

Процедура ПустыеГруппы()
    СнятиеФлагаПустыхГрупп(1);
КонецПроцедуры

Процедура ОсновныеДействияФормыАвтомат(Кнопка)
    ЭтаФорма.ПодключитьОбработчикОжидания("автомат", 3600);
    ЭтаФорма.ПодключитьОбработчикОжидания("ПустыеГруппы", 5400);  
    ЭтаФорма.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Автомат.Доступность = Ложь;
КонецПроцедуры
56

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Душелов 3897 09.10.08 20:24 Сейчас в теме
Но вот "НайтиПоКоду" - не красиво!..
2. d.snissarenko 10.10.08 10:35 Сейчас в теме
Согласен, надо взять из констант, просто в тек момент режим отладки, но нужно конечно делать сразу правильно.
3. ValentinV 12.10.08 08:34 Сейчас в теме
>Вооружившись книгой г-на Михайлова, ... вестись по ODBC
У Михайлова про ODBC не нашел?
4. d.snissarenko 13.10.08 10:40 Сейчас в теме
5. Ibrogim 1107 04.03.09 15:01 Сейчас в теме
Не настаиваю, но мне кажется что свойства НеОтображатьWeb и НеОтображатьНикогда лучше было реализовать механизмом категорий...
6. d.snissarenko 24.03.09 14:33 Сейчас в теме
(5) это очень древняя и лохматая конфигурация, в ней много чего надо менять - будет переезд на ут 10.3
7. Ibrogim 1107 17.05.09 17:53 Сейчас в теме
Скажите, а каким хостингом вы пользовались? Интересуюсь потому, что обычно хостеры закрывают TCP-порт и подключиться через ODBC не представляется возможным.
8. d.snissarenko 01.06.09 07:37 Сейчас в теме
У меня свои сервера, к сожалению да, либо договор с провайдером либо свой сервер, но я думаю не стоит смотреть в сторону одбц если сервер не в локале.
9. d.snissarenko 28.06.09 17:33 Сейчас в теме
ВНИМАНИЕ!
ПРИ ПОПЫТКЕ РЕДАКТИРОВАНИЯ ТЕКСТА СТАТЬИ - редактор не захотел ее сохранять!

Кому нужен текст - пишите в личку.
10. d.snissarenko 13.07.09 22:27 Сейчас в теме
11. szhukov 139 11.08.10 12:48 Сейчас в теме
(10) А подскажите пожалуйста - как решается вопрос с кодировкой?
Я правда с 1Сv7.7 борюсь.
У VirtueMart кодировка utf8,
у 1С cp1251 как побороть, а то при выгрузке через соединение с базой в наименованиях кракозябры какие-то?
12. d.snissarenko 251 23.08.10 09:38 Сейчас в теме
(11) Через конфиг файл my.cf, там можно прописать кодировку.
13. user31 21.06.11 16:14 Сейчас в теме
Есть бесплатная разработка http://softent.ru/component/option,com_jdownloads/Itemid,14/cid,2/task,view.download/. Выгружает из 1С в VirtueMart товары, категории, описания, загрузка заказов и отслеживание статусов заказов, бесплатная версия не выгружает изображения товара.
14. ilonnaa 26.09.11 10:12 Сейчас в теме
Класс очень полезно, буду пробовать! Именно этим сейчас и занимаюсь.
15. TopUP 23.11.11 11:39 Сейчас в теме
Интересное решение, перспективное и вполне реализуемое
16. Александр 20.06.12 14:52 Сейчас в теме
Интересное решение. Пригодиться в разработке. Давно искал что нибудь подобное
17. СветикК 19.07.12 18:25 Сейчас в теме
DSN=mySQL_ishop;
скажите пожалуйста,а в этой строке вот это что:
mySQL_ishop;

???
18. Ed111111 11 19.05.13 23:09 Сейчас в теме
Все работает замечательно. Спасибо.

У вас еще есть разработки? Как с ними можно ознакомиться и протестировать?
20. IvankoSusanin 23.12.13 01:19 Сейчас в теме
а файлы можете прикрепить?

21. JediG 15.08.19 05:28 Сейчас в теме
Здравствуйте! Прошло уже 5 лет. Код, вероятно уже утратил актуальность?
Насколько реально его переработать в код для УТ10 и Virtuemart 3?
А может быть уже есть новые наработки? Закрытые решения за деньги есть. Хотелось бы открытое.
Оставьте свое сообщение

См. также

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.) 20

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB Облачные сервисы, хостинг

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

вчера в 11:48    780    uno-c    7       

Самый примитивный HTTP-сервис в мире 162

Статья Программист Нет файла v8 Бесплатно (free) WEB

Пошаговый пример создания простейшего HTTP-сервиса, который генерирует HTML-страницу для поиска товара, а также реализует асинхронное получение данных из базы.

12.09.2019    5788    YPermitin    25       

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию 56

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB Администрирование данных 1С

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    3072    Fragster    7       

Совсем простой обмен HTTP, 2 функции 60

Статья Программист Нет файла v8 Бесплатно (free) WEB

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    3536    Yashazz    15       

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение 51

Статья Программист Расширение (cfe) v8 1cv8.cf Бесплатно (free) WEB

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    3189    Sedaiko    1       

Выгрузка данных в таблицу MS SQL SERVER 14

Статья Программист Нет файла v8 MS SQL Бесплатно (free) Внешние источники данных

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    1669    EvgenSav    6       

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина 22

Статья Бизнес-аналитик Нет файла v8 1С:Франчайзи, автоматизация бизнеса УУ Розничная торговля Бесплатно (free) Внешние источники данных

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    3431    osipov_cvizi    16       

Загрузка картинок в справочники (Универсальная загрузка из табличного документа) 8

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Обработка справочников Загрузка и выгрузка в Excel

Пример загрузки картинок в справочник Номенклатура (с помощью обработки универсальная загрузка данных из табличного документа). Проверялось на конфигурации УТ 11.4.7.

28.05.2019    2031    rasdag    2       

1Script.Web. Интернет-приложения на языке 1С 119

Статья Программист Нет файла v8 Бесплатно (free) WEB OneScript

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    11516    Evil Beaver    32       

Групповая обработка (Управляемая консоль отчетов) 26

Статья Программист Нет файла v8 v8::УФ v8::Запросы 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Бесплатно (free) Обработка документов Инструментарий разработчика Обработка справочников

Статья предназначена тем, кто понимает, зачем нужна групповая обработка в консоли запросов. Рассматривается групповая обработка в консоли Управляемая консоль отчетов.

13.05.2019    3424    Evg-Lylyk    6       

Интеграция решений на 1С и сервиса обмена данными RabbitMQ 99

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Внешние источники данных

"Hello world" из 1С на сервер RabbitMQ и обратно. Полностью открытый код 1С! Реализация протестирована на 1С 8.3.12.1714 (x64).

24.04.2019    8133    Eret1k    42       

Отправка файлов через SOAP. SOAP with attachments, MTOM 38

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB

В продолжение «своеобразной» поддержки 1С протокола SOAP, описанной в https://infostart.ru/public/965259/, опишу еще одну особенность. 1С не поддерживает возможность отправки файлов-вложений. Для решения этой проблемы пришлось самостоятельно писать формирование пакетов SOAP и разбор ответов сервера.

18.04.2019    2714    mysm    2       

HTML-клиент у конфигурации 1С 137

Статья Программист Нет файла v8 Бесплатно (free) WEB

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    10816    Smaylukk    119       

MS Access и 1С. Что, когда и зачем? 70

Статья Программист Бизнес-аналитик Нет файла v8 Бесплатно (free) Практика программирования Разработка Внешние источники данных

Об использовании MS Access в связке с 1С. Можно ли использовать продукты Office на сервере. Когда Access может быть полезен. Примеры работы и другое.

09.04.2019    14603    YPermitin    31       

Парсинг сайтов из 1С на примере ломбарды.рф с помощью XPATH для ДокументDOM 67

Статья Программист Нет файла v8 Бесплатно (free) WEB

На всякую хитрую гайку всегда найдется болт с резьбой (с)

01.04.2019    7035    starik-2005    33       

RabbitMQ + Конвертация Данных 3.0 177

Статья Системный администратор Программист Бизнес-аналитик Руководитель проекта Нет файла v8 КД Бесплатно (free) Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8

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

21.03.2019    13536    barelpro    81       

Логируй больше! 1С + UPD + GELF + Graylog 27

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Администрирование данных 1С WEB Разработка

Наличие производительной платформы управления логами - это жизненно важный элемент в ландшафте систем с высокой активностью. Рассмотрим один из подходов логирования активности систем на платформе 1С в Graylog.

26.02.2019    5143    Lars Ulrich    15       

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов 7

Статья Системный администратор Программист Нет файла v8 УПП1 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте? Правильно - открывать конфигуратор и пилить. Благо, там не сложно. Непосредственно решение для УПП 1.3. Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

07.02.2019    2519    SatanClaws    4       

Работа с кассой Atol через веб-сервер ДТО-10 54

Статья Программист Нет файла v8 Россия Кассовые операции НДС Бесплатно (free) Внешние источники данных ККМ Фискальный регистратор

Поддержка многопользовательской печати на одном устройстве ККТ. Поддержка изменений в законодательстве (Переход на ФФД 1.05 и НДС 20%).

31.12.2018    16392    medangel    36       

RabbitMQ, Python и Windows. Step By Step 36

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Внешние источники данных

Работа с шиной RabbitMQ, используя Python на Windows. Пошаговый быстрый старт.

13.12.2018    5071    w.r.    7       

MDM система для централизованного управления справочниками предприятия типовыми средствами 7

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Обработка справочников Обмен через XML

Поставили мне пару недель назад задачу настроить единые справочники номенклатуры во всех базах холдинга. Учитывая количество 1С бухгалтерий, которых в процессе выполнения задачи оказалось 32, и учитывая, что они все разных версий (2.0, 3.0, отраслевые), задача казалась из ряда чистой воды подстава. Но решение с технической точки зрения оказалось простейшим.

27.11.2018    3340    lopatin    5       

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор 157

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Статья детально рассказывает обо всех аспектах настройки телеграм бота, работающего через сервер-маршрутизатор посредством обратных вызовов. Приведены примеры работы отправки/исправления сообщений, отправки файлов, работы с внутренними и встроенными запросами. Создание клавиатуры. Авторизация пользователей через gmail.

07.11.2018    17078    🅵🅾️🆇    40       

Мой опыт небольшого проекта с веб-сервисами (Часть 2) 20

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

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

05.10.2018    4195    alex_bitti    0       

Как запустить работу Google Maps в поле HTML формы 1С? 25

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

Как справиться с передачей события в поле HTML, если надо передать данные. Переход на новую версию Google Maps.

26.09.2018    6298    Green2    10       

Мой опыт небольшого проекта с веб-сервисами (Часть 1) 22

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Хочу поделиться своим опытом использования веб-сервисов на небольшом проекте, который в принципе расширяем до чего-нибудь более существенного.

08.08.2018    6397    alex_bitti    33       

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя" 54

Статья Программист Нет файла v8 Энергетика и ЖКХ УУ Управление взаимоотношениями с клиентами (СRM) Дебиторская и кредиторская задолженность Бесплатно (free) WEB

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    10320    maxx    31       

На что действительно способны HTTP-сервисы 169

Статья Программист Нет файла v8 Бесплатно (free) WEB

В статье я собираюсь не только рассказать вам про HTTP-сервисы 1С, но и показать много прикольных слайдов с картинками. Я думаю, будет весело, и вы найдете для себя что-то полезное.

14.06.2018    22316    dalgaso2010    44       

IIKO (Айко). Обмениваемся накладными с 1С 6

Статья Программист Нет файла v8 БП3.0 Рестораны, кафе и фаст-фуд БУ УУ Бесплатно (free) Внешние источники данных

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

01.06.2018    9219    oyti    13       

Подготовка тестового контура с помощью gitlab-ci и Яндекс.Диска 18

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB

В статье описан пример использования gitlab-ci для копирования продуктовой базы в Яндекс.Диск и разворачивания на другом контуре.

04.05.2018    7137    pallid    0       

Интеграция Zimbra и 1С 22

Статья Программист Нет файла v8 Россия УУ Управление взаимоотношениями с клиентами (СRM) Бесплатно (free) Внешние источники данных

В публикации описывается способ интеграции 1С с почтовым сервером Zimbra, используя SOAP сервис. Рассматривать вопрос интеграции будем на примере бизнес задачи, из блока CRM. Реализации общей адресной книги(GAL-Global Address List) между сотрудниками. Сотрудники(компания) ведет весь учет в 1С, в том числе и элементы CRM, а Zimbra выступает лишь в роли почтового сервиса. Сделать данную публикация побудило отсутствие в интернете готовых примеров совместной работы 1С и Zimbra. Надеюсь, она поможет кому-либо сократить время на реализацию похожей задачи.

16.04.2018    7217    Гексагон    17       

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера 87

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С WEB docker Apache

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии. Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

04.04.2018    17691    petr.myazin    35       

Обмен сведениями о пособиях с ФСС для Зарплата и Управление персоналом 2.5.129.3 11

Статья Программист Нет файла v8 v8::СПР ЗУП2.5 Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных

Ошибка отправки файла при обмене сведениями о пособиях с ФСС. Зарплата и Управление Персоналом, редакция 2.5 (2.5.129.3).

06.03.2018    14662    Igorexa    30       

Интеграция 1С УТ 11.2 и Битрикс. Настройка выгрузки старой цены для интернет-магазина 8

Статья Программист Нет файла v8 УТ11 Россия УУ Розничная торговля Бесплатно (free) WEB

Настройки позволят вытащить информацию о старой цене из 1С и передать её в CMS Битрикс.

24.01.2018    7835    Consultant_1C    2       

Готовим Soap для Web-сервисов. Рецепты 130

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) WEB

В статье описаны различные варианты обмена данными с web-сервисами по протоколу Soap, основанные на личном опыте.

28.12.2017    28478    987ww765    27       

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов 144

Статья Программист Нет файла v8 v8::Mobile Android Бесплатно (free) Внешние источники данных Мобильная разработка

Краткий курс по созданию мобильного приложения на Android, который связывается с сервером 1С через HTTP-сервис. Публикация рассчитана на тех, кто хорошо знаком с программированием на платформе 1С и владеет основами программирования на платформе Android (умеет создавать Activity и знает, как устроена структура проекта).

03.11.2017    26125    cdiamond    15       

УкрПочта - групповая проверка трек-номеров 9

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

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

23.10.2017    6100    abavas    2       

1С, oauth2, Google API и Google Merchant. Сбор данных и парсинг 18

Статья Программист Нет файла v8 УТ10 Россия Бесплатно (free) Практика программирования WEB

Всем привет. Стала задача, собрать данные с Google Merchants и внести их в 1С, для более детального анализа того, что сейчас показывается, что нет и какие проблемы при этом есть. Если кому это интересно, прошу под кат.

14.09.2017    13070    Mi11er    8       

Как сделать конфигурацию «1С:Предприятие 8» приложением QuickBooks. Проходим авторизацию OAuth 1.0a+OpenID 2.0 52

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Внешние источники данных

Пришло время, когда интеграция со сторонними организациями и их приложениями стала необходимостью для успешного ведения бизнеса. В этой статье будет рассмотрено прохождение авторизации OAuth 1.0a+OpenID 2.0 и превращение конфигурации «1С:Предприятие 8» в приложение QuickBooks.

10.09.2017    17229    pbazeliuk    28       

XPath и пространства имен на примере разбора файла ответа сервиса геокодирования Яндекс 33

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования WEB

Есть некоторые нюансы разбора с помощью Xpath xml-файла, в котором используются несколько пространств имен. Приведен разбор такого файла на примере файла ответа сервиса геокодирования Яндекс.

14.04.2017    9756    brr    6       

PHP OData драйвер 17

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Удобный доступ к OData данным через SQL синтаксис

03.04.2017    8084    virtex3    4       

Online телефонный справочник из 1С: Зарплата и управление персоналом 33

Статья Системный администратор Программист Нет файла v8 ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) WEB

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    18954    ruha    14       

Веб-сервисы и 1С: «Здравствуй, Name», время-деньги и «Жизнь» 75

Статья Программист Нет файла v8 Бесплатно (free) WEB

Несколько статей о создании веб-сервисов на платформе 1С

09.03.2017    20889    hayroff    11       

Интерактивный ввод капчи 26

Статья Программист Нет файла v8 Бесплатно (free) WEB

Краткое описание того, что делать, если нужно получить некоторые данные с определенного сайта, требующего от пользователя ввода текстовой капчи.

17.02.2017    8418    gaabora    3       

Отправка PUT запроса средствами 1С 8.3 65

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

HTTP запрос с использованием метода PUT средствами 1С 8.3 на практике - проблема и решение

16.02.2017    20172    hspeed79    16       

Редактирование пользовательских полей в Битрикс24 через REST API 7

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Внешние источники данных

Меняем значения пользовательских полей в Битрикс24 через REST API на примере редактирования контактов

06.02.2017    11509    user662672_explorer2000    2       

Нагрузочное тестирование сервера 1С при использовании WEB сервисов 51

Статья Системный администратор Программист Нет файла v8 ИТ-компания Бесплатно (free) Производительность и оптимизация (HighLoad) Внешние источники данных WEB

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    22903    BraunAlex    34       

Передаем контакты из 1С в Битрикс24 через REST API 117

Статья Программист Нет файла v8 УТ11 Россия Бесплатно (free) Внешние источники данных

Хочу поделиться опытом использования Битрикс24 REST API для экспорта контактов из 1С УТ 11

09.01.2017    42419    user662672_explorer2000    96