суббота, 29 ноября 2014 г.

1С Предприятие УТ - как сделать чтобы при импорте с сайта правильно заполнялись адреса контрагентов



Сам импорт не трогаем - адрес контрагента приходит, как приходит. Возникает проблема при последующем пересохранении контрагента - адрес слетает. Чтобы этого не случалось - подписываемся на событие:


Процедура _НовыйМодульПодпискаНаСобытиеПередЗаписью(Источник, Отказ) Экспорт
 
 ТекущийОбъект = Источник;
 Для Каждого ТекЭлемент Из ТекущийОбъект.КонтактнаяИнформация Цикл
  Если ТекЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес ИЛИ ТекЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты ИЛИ ТекЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
  Иначе
   Продолжить;
  КонецЕсли; 
  Если Лев(ТекЭлемент.ЗначенияПолей, 28) = "<КонтактнаяИнформация xmlns=" Тогда
   Продолжить;
  КонецЕсли;
  Если ТекЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
   ТекЭлемент.Представление = ТекЭлемент.Представление;
   ТекЭлемент.ЗначенияПолей = "<КонтактнаяИнформация xmlns=""http://www.v8.1c.ru/ssl/contactinfo"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Представление="""+ТекЭлемент.Представление+"""><Комментарий/><Состав xsi:type=""Адрес"" Страна=""РОССИЯ""><Состав xsi:type=""АдресРФ""><СубъектРФ>Московская обл</СубъектРФ><СвРайМО><Район xsi:nil=""true""/></СвРайМО><Город>"+ТекЭлемент.Город+"</Город><НаселПункт xsi:nil=""true""/><Улица>"+ТекЭлемент.Представление+"</Улица><ДопАдрЭл ТипАдрЭл=""10100000"" Значение=""""/></Состав></Состав></КонтактнаяИнформация>";
  ИначеЕсли ТекЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
   ТекЭлемент.Представление = ТекЭлемент.Представление;
   ТекЭлемент.АдресЭП   = ТекЭлемент.Представление;                                                                                                                                                                               
   ТекЭлемент.ЗначенияПолей = "<КонтактнаяИнформация xmlns=""http://www.v8.1c.ru/ssl/contactinfo"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Представление="""+ТекЭлемент.Представление+"""><Состав xsi:type=""ЭлектроннаяПочта"" Значение="""+ТекЭлемент.Представление+"""/></КонтактнаяИнформация>";
  ИначеЕсли ТекЭлемент.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
   ТекЭлемент.Представление   = ТекЭлемент.Представление;
   ТекЭлемент.НомерТелефона   = ТекЭлемент.Представление;
   ТекЭлемент.НомерТелефонаБезКодов = ТекЭлемент.Представление;
   ТекЭлемент.ЗначенияПолей = "<КонтактнаяИнформация xmlns=""http://www.v8.1c.ru/ssl/contactinfo"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Представление="""+ТекЭлемент.Представление+"""><Комментарий/><Состав xsi:type=""НомерТелефона"" КодСтраны="""" КодГорода="""" Номер="""+ТекЭлемент.Представление+""" Добавочный=""""/></КонтактнаяИнформация>";
  КонецЕсли;
 КонецЦикла;

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

Комментариев нет: