Загрузка XML в 1С из FTP
КаталогВрФл = КаталогВременныхФайлов();
ФТПСоединение = Новый FTPСоединение("адрес",, "логин", "пароль",, Истина);
НайдемФайлаНаФТП = ФТПСоединение.НайтиФайлы("/", "*.xml");
Если НайдемФайлаНаФТП.Количество() = 0 Тогда
ФТПСоединение = Неопределено;
Возврат;
КонецЕсли;
ДанныеИзФайлаТовары = Новый ТаблицаЗначений();
ДанныеИзФайлаТовары.Колонки.Добавить("Артикул");
ДанныеИзФайлаТовары.Колонки.Добавить("ИД");
ДанныеИзФайлаТовары.Колонки.Добавить("Производитель");
ДанныеИзФайлаТовары.Колонки.Добавить("Номенклатура");
ДанныеИзФайлаТовары.Колонки.Добавить("Количество");
ДанныеИзФайлаТовары.Колонки.Добавить("Цена");
ДанныеИзФайлаТовары.Колонки.Добавить("Размер");
ДанныеИзФайлаТовары.Колонки.Добавить("Цвет");
ДанныеИзФайлаТовары.Колонки.Добавить("Серия");
ДанныеИзФайлаТовары.Колонки.Добавить("ЦенаСоСкидкой");
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
ЕдиницаИзмШТ = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоКоду("796");
ПриоритетСредний = Справочники.Приоритеты.НайтиПоНаименованию("Средний");
СкладОсновной = Справочники.Склады.НайтиПоНаименованию("Основной склад");
ТиповоеСоглашение = Справочники.СоглашенияСКлиентами.НайтиПоНаименованию("Основное");
ВалютаДок = Константы.ВалютаРегламентированногоУчета.Получить();
Для каждого ФайлФТП из НайдемФайлаНаФТП Цикл
ДанныеИзФайлаТовары.Очистить();
НомерКП = ФайлФТП.ИмяБезРасширения;
ДатаКП = "";
ПутьКФайлуОбъект = КаталогВрФл + ФайлФТП.Имя;
Попытка
ФТПСоединение.Получить(ФайлФТП.ПолноеИмя, ПутьКФайлуОбъект);
ФТПСоединение.Переместить(ФайлФТП.ПолноеИмя, "OldFiles" + "\" + ФайлФТП.Имя);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлуОбъект);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда Продолжить; КонецЕсли;
ИмяУзла = ЧтениеXML.ЛокальноеИмя;
Если ИмяУзла = "PRODUCT" Тогда
НоваяСтрока = ДанныеИзФайлаТовары.Добавить();
Продолжить;
КонецЕсли;
Если ИмяУзла = "ID" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.ИД = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "ARTICLE" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Артикул = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "SIZE" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Размер = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "COLOR" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Цвет = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "NAME" И ЧтениеXML.КонтекстПространствИмен.Глубина = 5 Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Серия = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "PROPERTY_PROVIDER_NAME" И ЧтениеXML.КонтекстПространствИмен.Глубина = 5 Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Производитель = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "NAME" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Номенклатура = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "QUANTITY" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Количество = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "PRICE" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Цена = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "PRICE_DISCOUNT" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.ЦенаСоСкидкой = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "DATE" Тогда
ЧтениеXML.Прочитать();
ДатаСтр = СокрЛП(ЧтениеXML.Значение);
ДатаКП = Дата(ДатаСтр);
Продолжить;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
УдалитьФайлы(ПутьКФайлуОбъект);
КаталогВрФл = КаталогВременныхФайлов();
ФТПСоединение = Новый FTPСоединение("адрес",, "логин", "пароль",, Истина);
НайдемФайлаНаФТП = ФТПСоединение.НайтиФайлы("/", "*.xml");
Если НайдемФайлаНаФТП.Количество() = 0 Тогда
ФТПСоединение = Неопределено;
Возврат;
КонецЕсли;
ДанныеИзФайлаТовары = Новый ТаблицаЗначений();
ДанныеИзФайлаТовары.Колонки.Добавить("Артикул");
ДанныеИзФайлаТовары.Колонки.Добавить("ИД");
ДанныеИзФайлаТовары.Колонки.Добавить("Производитель");
ДанныеИзФайлаТовары.Колонки.Добавить("Номенклатура");
ДанныеИзФайлаТовары.Колонки.Добавить("Количество");
ДанныеИзФайлаТовары.Колонки.Добавить("Цена");
ДанныеИзФайлаТовары.Колонки.Добавить("Размер");
ДанныеИзФайлаТовары.Колонки.Добавить("Цвет");
ДанныеИзФайлаТовары.Колонки.Добавить("Серия");
ДанныеИзФайлаТовары.Колонки.Добавить("ЦенаСоСкидкой");
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
ЕдиницаИзмШТ = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоКоду("796");
ПриоритетСредний = Справочники.Приоритеты.НайтиПоНаименованию("Средний");
СкладОсновной = Справочники.Склады.НайтиПоНаименованию("Основной склад");
ТиповоеСоглашение = Справочники.СоглашенияСКлиентами.НайтиПоНаименованию("Основное");
ВалютаДок = Константы.ВалютаРегламентированногоУчета.Получить();
Для каждого ФайлФТП из НайдемФайлаНаФТП Цикл
ДанныеИзФайлаТовары.Очистить();
НомерКП = ФайлФТП.ИмяБезРасширения;
ДатаКП = "";
ПутьКФайлуОбъект = КаталогВрФл + ФайлФТП.Имя;
Попытка
ФТПСоединение.Получить(ФайлФТП.ПолноеИмя, ПутьКФайлуОбъект);
ФТПСоединение.Переместить(ФайлФТП.ПолноеИмя, "OldFiles" + "\" + ФайлФТП.Имя);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлуОбъект);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда Продолжить; КонецЕсли;
ИмяУзла = ЧтениеXML.ЛокальноеИмя;
Если ИмяУзла = "PRODUCT" Тогда
НоваяСтрока = ДанныеИзФайлаТовары.Добавить();
Продолжить;
КонецЕсли;
Если ИмяУзла = "ID" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.ИД = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "ARTICLE" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Артикул = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "SIZE" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Размер = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "COLOR" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Цвет = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "NAME" И ЧтениеXML.КонтекстПространствИмен.Глубина = 5 Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Серия = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "PROPERTY_PROVIDER_NAME" И ЧтениеXML.КонтекстПространствИмен.Глубина = 5 Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Производитель = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "NAME" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Номенклатура = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "QUANTITY" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Количество = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "PRICE" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.Цена = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "PRICE_DISCOUNT" Тогда
ЧтениеXML.Прочитать();
НоваяСтрока.ЦенаСоСкидкой = СокрЛП(ЧтениеXML.Значение);
Продолжить;
КонецЕсли;
Если ИмяУзла = "DATE" Тогда
ЧтениеXML.Прочитать();
ДатаСтр = СокрЛП(ЧтениеXML.Значение);
ДатаКП = Дата(ДатаСтр);
Продолжить;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
УдалитьФайлы(ПутьКФайлуОбъект);
Недостаточно рейтинга для добавления отрицательного голоса. Шаблон будет скрыт из ваших результатов поиска.
{113} Ожидается Except
Комментарии