Задача: создать обмен 1с v8 управление торговлей 10.1 и virtuemart .
Что такое VM можно почитать тут www.virtuemart.ru, вкраце - это компонент интернет
/каталога товаров к известному CMS движку Joomla.
Код 1C v 8.х Процедура СнятиеФлагаПустыхГрупп(Кнопка)
СтрПодключения = "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 Тогда
АпдейтГрупп = "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 или Выборка. ПустойОстаток
Тогда
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 ;
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 = н;
КонецЦикла ;
Сообщить ( "обновлена структура " + н+ " групп" ) ;
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( ) ;
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;
Если ТЗостатоков. Найти( Артикул, "Артикул" ) = Неопределено Тогда
АпдейтВиртмарта = "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 ;
ДОступноеКоличество= Выборка. ДоступноеКоличество;
флагсуществования= Ложь ;
Наименование = СтрЗаменить( Выборка. Наименование, "'" , " " ) ;
query = "
|SEL ECT *
|FR OM jos_vm_product WHERE product_sku='" + Выборка. Артикул+ "' limit 1" ;
RSIDProduct. Open( query, Connection) ;
Если RSIDProduct. EOF( ) И RSIDProduct. BOF( ) Тогда
Если ПРО2 Тогда Цена = ВЫборка. WEbЦЕнаУПР2 ; Иначе Цена = Выборка. 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=" + Выборка. Артикул+ "')" ;
КонецЕсли ;
Command. CommandText = query;
Command. CommandType = 1 ;
Попытка
RS = Command. Execute( ) ;
Исключение
Сообщить ( ОписаниеОшибки( ) ) ;
КонецПопытки ;
RSIDProduct. Close( ) ;
флагсуществования = Ложь ;
Иначе
флагсуществования= Истина ;
Если ПРО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( ) ;
КонецЕсли ;
Попытка
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" ) + "'" ;
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 = "I_nsert 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 )" ;
Command. CommandText = query;
Command. CommandType = 1 ;
Попытка
RS = Command. Execute( ) ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
КонецПопытки ;
Исключение
Сообщить ( ОписаниеОшибки( ) ) ;
Сообщить ( Выборка. Наименование) ;
КонецПопытки ;
ОбработкаПрерыванияПользователя( ) ;
Индикатор1 = н;
КонецЦикла ;
Сообщить ( "Выгружено " + н + " объектов" ) ;
Сообщить( Строка ( ТекущаяДата( ) ) + " обновление завершено" ) ;
КонецПроцедуры
Процедура Автомат ()
ОсновныеДействияФормыОбновитьТовары( 1 ) ;
КонецПроцедуры
Процедура ПустыеГруппы()
СнятиеФлагаПустыхГрупп( 1 ) ;
КонецПроцедуры
Процедура ОсновныеДействияФормыАвтомат(Кнопка)
ЭтаФорма. ПодключитьОбработчикОжидания( "автомат" , 3600 ) ;
ЭтаФорма. ПодключитьОбработчикОжидания( "ПустыеГруппы" , 5400 ) ;
ЭтаФорма. ЭлементыФормы. ОсновныеДействияФормы. Кнопки. Автомат. Доступность = Ложь ;
КонецПроцедуры