Преодолел лень и нашел загрузку контрагентов с сайта. УНФ 3.0
Нужно было сделать несколько другие значения по умолчанию для контрагентов. загружаемых с сайта.
Подумал, что найти создание контрагента будет сложно в огромном коде УНФ, поэтому хотел привязаться к записи контрагента на сервере. Но как определять, новый контрагент создается вручную или с сайта?
В итоге глянул немного модули и нашел нужный ОбменССайтом, а в нем функцию СоздатьКонтрагента.
Немножко модифицировал:
&Вместо("СоздатьКонтрагента") Функция сайт_СоздатьКонтрагента(ДокументОбъект, КонтрагентXDTO, Параметры, ОписаниеОшибки) //Осипов 2024-04-27 - доработки по сайту НовыйКонтрагент = ПродолжитьВызов(ДокументОбъект, КонтрагентXDTO, Параметры, ОписаниеОшибки); //Вести расчеты по договорам - не ставим НовыйКонтрагент.ВестиРасчетыПоДоговорам = ложь; Попытка НовыйКонтрагент.сайт_СтрокаXDTO = ОбъектXDTOВстроку(КонтрагентXDTO); Исключение ЗаписьЖурналаРегистрации("Ошибка.Отладка",,, НовыйКонтрагент, "Не записался реквизит XDTO контрагента" + ОписаниеОшибки()); КонецПопытки; НовыйКонтрагент.Записать(); Возврат НовыйКонтрагент; КонецФункции Функция ОбъектXDTOВстроку(ОбъектXDTO) Экспорт // Создание объекта ЗаписьXML ЗаписьXML = Новый ЗаписьXML; // Указываем, что запись производится в строку, а не в файл ЗаписьXML.УстановитьСтроку(); // При помощи объекта ФабрикаXDTO записываем данные пакета XDTO в запись XML ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO); // Получаем текст записи XML ТекстОбъектаXDTO = ЗаписьXML.Закрыть(); Возврат ТекстОбъектаXDTO; КонецФункции
Решил сохранять текст XDTO контрагента. Преобразование XDTO изолировал от ошибок, потому что не на чем было проверить — обмен с сайтом проходит только в рабочей базе.
Хотя если бы загрузка проставляла в комментарии, что объект загружен с сайта, то проверял бы перед записью — новый это контрагент и по комментарию — пришел ли он с сайта.
Кстати, поле текста XDTO контрагента добавил программно в свертываемую группу таким образом:
&НаСервере Процедура сайт_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) Привязка = Элементы.КолонкаСправа; Гр = Элементы.Добавить("сайт_ГруппаСайт", Тип("ГруппаФормы"), Привязка); Гр.Вид = ВидГруппыФормы.ОбычнаяГруппа; Гр.Заголовок = "Сайт"; Гр.Поведение = ПоведениеОбычнойГруппы.Свертываемая; Элемент = Элементы.Добавить("сайт_СтрокаXDTO", Тип("ПолеФормы"), Гр); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.Заголовок = "Строка XDTO с сайта"; Элемент.ПутьКДанным = "Объект.сайт_СтрокаXDTO"; Элемент.МногострочныйРежим = истина; Элемент.АвтоМаксимальнаяШирина = ложь; КонецПроцедуры &НаКлиенте Процедура сайт_ПриОткрытииПосле(Отказ) Элементы.сайт_ГруппаДополнительно.Скрыть(); КонецПроцедуры
Среда: УНФ 3.0.7.122 Облако: Cloud 42 Объем: 1 час
Свежие комментарии