Обработка выгрузки товаров в Каспий Магазин
Доброго времени суток, уважаемые коллеги! В этой статье поговорим об обработке, которая выгружает номенклатуру из базы конфигурации 1С «Управление торговлей для Казахстана», редакция 2.2, редакции 2.2.17.4 в xml-файл. Если немного доработать, то можно использовать и для других подобных конфигураций. В прошлые раз на этом сайте была выложена обработка для загрузки операций из табличного документа 1С.
- Описание работы выгрузки товаров в Каспий Магазин
- Описание свойств основной организации
- Часть программного кода обработки на встроенном языке 1С
- Синхронизация выгруженного файла с hhtp/s сервером
- Демонстрация работы обработки 1С для выгрузки номенклатуры
Описание работы выгрузки товаров в Каспий Магазин
Обработка позволяет выгрузить товары и их цены в xml-файл, указанного формата.
- Скачайте обработку, в конце статьи указана ссылка.
- Затем откройте её в режиме 1С:Предприятие 8.
- Перейдите к пункту меню «Файл» | «Открыть…» (Ctrl+O).
- После открытия нужно нажать на кнопку «Выполнить».
- После этого нужно пройти в справочник «Организаци» -> «Свойства».
- Затем необходимо заполнить все эти свойства, описание этих свойств можно посмотреть ниже.
- После заполнения всех свойств нужно нажать на кнопку «Выполнить» и файл с товарами будет записан в папку, которую вы указали в свойствах.
Заполнение данных номенклатурных позиций происходит в зависимости от того, какие группы номенклатуры указаны в свойстве «ПапкаНоменклатурыКаспий». Если остатков товара нет в базе, то он все равно будет записан в xml-файл с указанием цены и флагом отсутствия наличия этого товара в остатках. Кстати, вы можете воспользоваться неплохим отчётом, чтобы удобно анализировать движения номенклатуры по приходу, реализации и возвратам в разрезе месяцев года, если вы работаете в конфигурации Бухгалтерия для Казахстана.
Описание свойств основной организации
Свойство | Описание | Значение по умолчанию |
---|---|---|
КаталогКаспий | Каталог, в который будет записан файл с товарами, тип «Строка». | «Z:\Dropbox (Личный)» |
ПапкаНоменклатурыКаспий | Группа справочника «Номенклатура», по которой осуществляется фильтрация товаров. Можно создавать несколько таких свойств. | пустая ссылка на справочник «Номенклатура» |
СкладКаспий | Элемент справочника «Склады», по которому осуществляется фильтрация остатков номенклатуры. Можно создавать несколько таких свойств. | пустая ссылка на справочник «Склады» |
ТипЦеныКаспий | Название типа цен в вашей базе, тип «Строка». | «Розничные» |
Часть программного кода обработки на встроенном языке 1С
Когда вы нажимаете на кнопку Выполнить, то срабатывает процедура ВыгрузитьФайл и выполняется следующий код:
Процедура ВыгрузитьФайл() Экспорт Папки = УстановитьПапкуНоменклатурыКаспий(); КаталогКаспий = ПолучитьКаталогКаспий(); Склад = УстановитьПапкуСкладаКаспий(); ТипЦены = УстановитьТипЦеныКаспий(); Если Папки = Неопределено ИЛИ КаталогКаспий = Неопределено ИЛИ Склад = Неопределено ИЛИ ТипЦены = Неопределено Тогда Возврат; КонецЕсли; ТипЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(ТипЦены[0]); Если ТипЦены.Пустая() Тогда Сообщить("Тип цен """ + ТипЦены[0] + """ не найден!", СтатусСообщения.Важное); Возврат; КонецЕсли; СтруктураИсходныхПараметров = Новый Структура("Организация, Склад, Родитель, ДатаЗапроса, ПодбиратьУслуги, ТипЦен", ОсновнаяОрганизация, Склад, Справочники.Номенклатура.ПустаяСсылка(), ТекущаяДата(), Ложь, ТипЦены); Запрос = ПолучитьЗапросДляПодбора("РасходОстаткиИЦеныНоменклатуры", Папки, ТекущаяДата(), Истина, Ложь); Если Запрос = Неопределено Тогда Возврат; КонецЕсли; РезультатЗапроса = Запрос.Выполнить(); ... ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(КаталогКаспий + "\GoodsForKaspi.xml"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("kaspi_catalog"); ЗаписьXML.ЗаписатьАтрибут("date", "string"); ЗаписьXML.ЗаписатьАтрибут("xmlns", "kaspiShopping"); ЗаписьXML.ЗаписатьАтрибут("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьАтрибут("xsi:schemaLocation", "kaspiShopping http://kaspi.kz/kaspishopping.xsd"); ... ЗаписьXML.ЗаписатьКонецЭлемента(); // ЗаписьXML.ЗаписатьКонецЭлемента(); // ЗаписьXML.Закрыть(); КонецПроцедуры
Здесь опубликован не весь программный код обработки для выгрузки товаров в Каспий Магазин. Но его можно увидеть, да и опробовать саму эту обработку, если скачать по ссылке. Если у вас другие данные или другая конфигурация, то можно помочь изменить обработку под ваши нужды, обращайтесь.
Синхронизация выгруженного файла с hhtp/s сервером
На сайте Каспий Магазина сказано, что можно выложить сформированный XML в http/s сервер и затем указать ссылку в кабинете продавца и каждые 30 минут система будет загружать ваш прайс, если в нём есть изменения. Если у вас есть собственный хостинг, то вы можете выгружать свой файл туда через ftp, воспользовавшись, например, бесплатной программой FreeFileSync. С помощью нее можно настроить онлайн обмен в режиме реального времени. Она может выгружать файл, если он будет изменен.
Можно настроить запись изменений остатков товаров в XML без участия пользователя. Для этого можно встроить обработку в конфигурацию, затем создать подписку на событие ОбработкаПроведения и расположить её обработчик, например в общем модуле ОбщегоНазначения. И в этом обработчике прописать такой код:
Процедура ОбработкаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт Если Источник.Движения.Найти("ТоварыНаСкладах") <> Неопределено Тогда Обработка = Обработки.ВыгрузкаТоваровВКаспийМагазин.Создать(); Обработка.ВыгрузитьФайл(); КонецЕсли; КонецПроцедур
Как видно из кода, файл с товарами будет формироваться всякий раз, когда будет проведен любой документ, который делает движения в регистр накопления ТоварыНаСкладах. Как раз из этого регистра формируются остатки для записи в xml-файл.