Загрузка пункта выдачи заказа с сайта. УНФ3

В УНФ почему-то ПВЗ только выгружается на сайт, но не загружается с сайта. Вот, выгрузка на сайт есть:

Попросил администратора сайта добавить в значения реквизитов заказа наименование ПВЗ под реквизитом «Пункт выдачи заказа»:

Далее делаю расширение модуля ОбменССайтом (ОШИБКА. Код не рабочий):

&Вместо("ЗаполнитьЗаказДаннымиДокументаXDTO")
Функция сайт_ЗаполнитьЗаказДаннымиДокументаXDTO(ДокументОбъект, ДокументXDTO, СвойстваЗаказа, Параметры, ОписаниеОшибки)
	//Осипов - создание пункта вычачи заказа 25-02-04
	Результат = ПродолжитьВызов(ДокументОбъект, ДокументXDTO, СвойстваЗаказа, Параметры, ОписаниеОшибки);
	
	Если СвойстваЗаказа.Получить("Пункт выдачи заказа") <> Неопределено Тогда
		НаименованиеПВЗ = СвойстваЗаказа.Получить("Пункт выдачи заказа");
		ИскПВЗ = Справочники.ПунктыВыдачиЗаказов.НайтиПоНаименованию(ИскПВЗ, Истина,, ДокументОбъект.СлужбаДоставки);
		Если Не ЗначениеЗаполнено(ИскПВЗ) Тогда 
			ОО = Справочники.ПунктыВыдачиЗаказов.СоздатьЭлемент();
			ОО.Владелец = ДокументОбъект.СлужбаДоставки;
			ОО.Наименование = "НаименованиеПВЗ";
			ОО.Записать();                         
			ИскПВЗ = ОО.Ссылка;
		КонецЕсли;
		ДокументОбъект.ПунктВыдачиЗаказа = ИскПВЗ;
	КонецЕсли;

	Возврат Результат;
КонецФункции

UPD 25-03-12: Отладка показала, что обмен переехал в модуль ИнтеграцияСИнтернетМагазиномСервер. Беру из свойства комментарий объекта XDO, администратор только туда смог запихнуть JSON:

&Вместо("ЗаполнитьЗаказДаннымиДокументаXDTO")
Функция сайт_ЗаполнитьЗаказДаннымиДокументаXDTO(ДокументОбъект, ДокументXDTO, СвойстваЗаказа, Параметры, ОписаниеОшибки)
	
	СтрокаXDTO = сайт_Сервер.ОбъектXDTOВстроку(ДокументXDTO);  
	СвойстваЗаказа.Вставить("ДокументXDTO", СтрокаXDTO);
	
	ЗаписьЖурналаРегистрации("Отладка.ЗаказXDTO",,,,СтрокаXDTO);
	
	Данные = Неопределено;
	КомментарийXDTO = "";
	Если ОбъектXDTOСодержитСвойство(ДокументXDTO, "Комментарий") Тогда
		Если ТипЗнч(ДокументXDTO.Комментарий) = Тип("Строка") Тогда
			КомментарийXDTO = СокрЛП(ДокументXDTO.Комментарий);
			ЗаписьЖурналаРегистрации("Отладка.ЗаказXDTO.КомментарийXDTO",,,,КомментарийXDTO);
			Попытка
				Данные = сайт_Сервер.ДанныеИзJSON(КомментарийXDTO);
			Исключение
			КонецПопытки;
		КонецЕсли;
	КонецЕсли;

	
	Результат = ПродолжитьВызов(ДокументОбъект, ДокументXDTO, СвойстваЗаказа, Параметры, ОписаниеОшибки);
	
	//Заполняем после, когда ПВЗ уже проставлен
	Если Данные <> Неопределено 
		И ТипЗнч(Данные) = Тип("Структура") 
		И Данные.Свойство("pvz") 
		Тогда
		
		НаименованиеПВЗ = Данные.pvz; //"143909, Россия, Московская область, Балашиха, ул. Лукино, 57А"
		ИскПВЗ = Справочники.ПунктыВыдачиЗаказа.НайтиПоНаименованию(НаименованиеПВЗ, Истина,,ДокументОбъект.СлужбаДоставки);
		Если Не ЗначениеЗаполнено(ИскПВЗ) Тогда 
			ОО = Справочники.ПунктыВыдачиЗаказа.СоздатьЭлемент();
			ОО.Владелец = ДокументОбъект.СлужбаДоставки;
			ОО.Наименование = НаименованиеПВЗ;
			ОО.Записать();                         
			ИскПВЗ = ОО.Ссылка;
		КонецЕсли;
		ДокументОбъект.ПунктВыдачиЗаказа = ИскПВЗ;
	КонецЕсли;

	
	Возврат Результат;
КонецФункции

В итоге ПВЗ создается или находится при загрузке заказа.

Среда: 3.0.10.178 Объем: 1 час

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. rzd:

    За час можно было и качественно сделать

    • У каждого свой темп работы. И я кстати делаю с оптимальным качеством. За это клиенты и любят.

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

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