Подсистема Обмен с сайтами в 1С Розница

Печать (Ctrl+P)

По материалами библиотеки электронных документов

Подсистема Обмен с сайтами входит в состав библиотеки электронных документов. Последняя версия библиотеки 1.9.х используется , например, в редакции 1С:Розница 2.3.10.х.

Подсистема позволяет настроить обмен данными между прикладным решением 1С и Интернет-магазином, поддерживающим,  разработанный компаниями «1С» и «1С-Битрикс»., протокол обмена между системой 1С:Предприятие и сайтом,

Такие системы управления сайтами как , Moguta и Bitrix поддерживают двухсторонний обмен данными с 1С на базе подсистемы Обмен с сайтами.

Подробное описание объектов подсистемы Обмен с сайтами можно посмотреть в документации библиотеки электронных документов. на диске ИТС.

В разделе Обмен с сайтом доступны возможности :

  1. Создание нового сайта в домене umi.ru. – Это конструктор создания быстрого бесплатного сайта на домене umi.ru. Существуют также другие домены каr bitirix и Mogut, поддерживающие этот протокол обмена системы еще
  2. Обмен товарами – Выгрузка на сайт каталога товаров, включая все свойства товаров, цены и остатки товара на складах, а также автоматическая поддержка этих данных в актуальном состоянии.
  3. Обмен заказами – Загрузка заказов, оформленных в Интернет-магазине, а также обновление данных на сайте о статусе оплаты и отгрузке по заказам.

В каждой прикладном решении есть свои особенности и изменения в программном коде подсистемы, особенно при обмене заказами.

Некоторые особенности обмена заказами в 1С Розница 2.3

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

  • «ОбменССайтомКлиентПереопределяемый»
  • , «ОбменССайтомКлиентСерверПереопределяемый»
  • , «ОбменССайтомПереопределяемый»

Основные изменения описаны в общем модуле ОбменССайтомРТ. Все глобальные функции и процедуры в этом модуле вызываются из стандартного модуля подсистемы ОбменССайтомПереопределяемый .

В этом модуле ОбменССайтомРТ формируются все тексты запросов, которые позволяют получить таблицу значений, описанные в макетах плана обмена “Обмен с сайтом”.:

Рис1 Макеты схемы компоновки данных плана обмена “Обмен с сайтом”

Для обмена заказами используется макет СхемаВыгрузкиЗаказов. Текст запроса формируется процедуре

ПолучитьТекстЗапросаЗаказы(ТекстЗапроса) .

Я посмотрел текст запроса и заметил, что поля ЗаказКОплатеОстаток и ЗаказКОтгрузкеОстаток имеют одинаковое значение. См рис 2

Рис 2. Фрагмент запроса для макета СхемаВыгрузкиЗаказов. в Рознице

Это не совсем корректно. Остаток к отгрузке и остаток к оплате не могут иметь одинаковое значение. Запрос обращается к регистру накопления заказов покупателей. где ведется учет только по отгрузке – Заказы увеличивают количество, заказанных товаров, а реализация и чеки ККМ – уменьшают их. Согласно такому запросу получается , что заказ всегда будет оплачен как только будет отгружен.

Также не понятно почему в этом запросе не участвует регистр сведения СостояниеОплатыЗаказаПокупателя . В этом периодическом регистре хранится текущее состояние заказа по оплате: Не оплачен, Оплачен частично, оплачен полностью.

Если посмотреть аналогичную функцию ПолучитьТекстЗапросаЗаказы(ТекстЗапроса) в конфигурации 1С управления торговлей 11.4/ 11.5 , то можно убедитсяч, что поля ЗаказКОплатеОстаток и ЗаказКОтгрузкеОстаток имеют различные значения ( см Рис 3).

Рис 3. Фрагмент запроса для макета СхемаВыгрузкиЗаказов. в УТ

Это связано с тем, что запрос в конфигурации УТ выгрузки состояния на сайт учитывается состояние заказов по оплате.

Следует отметить, что в механизме обмена заказами в рознице , в отличии от УТ, отсутствует таблица Соответствия статусов заказов. и поэтому в функции РеквизитыОбменаЗаказами() модуля ОбменССайтомРТ. закомментирован элемент массива реквизитов обмена заказами:

Функция РеквизитыОбменаЗаказами()
	
	МассивРеквизитов = Новый Массив;
	
	МассивРеквизитов.Добавить("СпособИдентификацииКонтрагентов");
	МассивРеквизитов.Добавить("ЕдиницаИзмеренияНовойНоменклатуры");
	МассивРеквизитов.Добавить("ГруппаДляНовойНоменклатуры");
	МассивРеквизитов.Добавить("ГруппаДляНовыхКонтрагентов");
	МассивРеквизитов.Добавить("Организация");
	МассивРеквизитов.Добавить("НомерНаСайте");
	МассивРеквизитов.Добавить("ДатаНаСайте");
//	МассивРеквизитов.Добавить("СоответствиеСтатусовЗаказов");
	МассивРеквизитов.Добавить("ВидНоменклатурыТоварДляНовойНоменклатуры");
	МассивРеквизитов.Добавить("ВидНоменклатурыУслугаДляНовойНоменклатуры");
	
	Возврат МассивРеквизитов;
	
КонецФункции

Статусы и Состояния – это разные перечисления в системе 1С. Соответствие состояний и статусов в рознице со статусами заказов на сайте имеет предопределенное соответствие в программном коде обмена как показано в следующей таблице

Статус заказа на сайтеАлгоритм определения
Заказ в работеЕсли заказ покупателя не закрыт
Заказ отгруженЕсли ЗаказКОтгрузкеОстаток = 0
Заказ оплаченЕсли ЗаказКОплатеОстаток = 0

Следующая процедура модуля ОбменССайтомРТ определения статус Заказ в работе. Параметр ЗаказВРаботе – Булево – Признак того, что заказ был “обработан” в прикладном решении (т.е. поменял свой статус после загрузки с сайта). Данный признак влияет на статус заказа на сайте.


Процедура ОпределитьСтатусСостоянияЗаказаЗаказВРаботе(ЗаказВРаботе, ДанныеДокументаСостояниеЗаказа) Экспорт

ЗаказВРаботе = НЕ ДанныеДокументаСостояниеЗаказа = Перечисления.СостоянияЗаказовПокупателей.Закрыт;

КонецПроцедуры

Следующая процедура модуля ОбменССайтомРТ определяет была ли оплата по заказу. ЗаказОплачен – типа Булево – признак того, что заказ был оплачен, влияет на статус оплаты заказа на сайте. В качестве параметра ДанныеДокументаКОплатеОстаток передается значение поля ЗаказКОплатеОстаток из результата запроса на рис 2


Процедура ОпределитьСтатусОплатыЗаказа(ЗаказОплачен, СтатусЗаказа,										ДанныеДокументаКОплатеОстаток) Экспорт

ЗаказОплачен = ДанныеДокументаКОплатеОстаток = 0;

КонецПроцедуры

Следующая процедура модуля ОбменССайтомРТ определения была ли отгрузка товара по заказу. Параметр ЗаказОтгружен – Булево – признак того, что товар по заказу был отгружен. Влияет на статус отгрузки заказа на сайте. В качестве параметра ДанныеДокументаКОтгрузкеОстаток передается значение поля ЗаказКОтгрузкеОстаток из результата запроса на рис 2


Процедура ОпределитьСтатусОтгрузкиЗаказа(ЗаказОтгружен, ДанныеДокументаСтатусЗаказа,
ДанныеДокументаКОтгрузкеОстаток) Экспорт

ЗаказОтгружен = ДанныеДокументаКОтгрузкеОстаток = 0;
	
КонецПроцедуры
Previous Article
Next Article

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.