|
Помогите поймать в УТ 11.1 данные выгрузки из БП 2.0 (контактная информация) | ☑ | ||
---|---|---|---|---|
0
Sefuirosu
16.07.14
✎
14:58
|
Всем добрый день!
Делаю выгрузку из БП 2.0 в УТ 11.1 посредством конвертации данных. Все работает отлично, настроил как надо, осталась только одна досадная ситуация, сладить с которой я самостоятельно не могу. Суть в том, что когда я переношу контактную информацию, переносится все, кроме составного адреса. Точнее из БП он переносится, а в УТ не подставляется. Очень прошу на примере одного реквизита (например как подставить в УТ 11.1 "Город") написать как решить данный вопрос. Вот фрагмент ЮрАдресОрганизации из файла выгрузки из БП 2.0 (собственно юридический адрес одного контрагента): <Запись><Свойство Имя="Вид" Тип="СправочникСсылка.ВидыКонтактнойИнформации"><Ссылка Нпп="4"> <Свойство Имя="{ИмяПредопределенногоЭлемента}" Тип="Строка"> <Значение>ЮрАдресОрганизации</Значение> </Свойство> <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка"> <Значение>ecafb10a-3da0-4433-802b-acac84dcd704</Значение> </Свойство> </Ссылка> </Свойство><Свойство Имя="Город" Тип="Строка"> <Значение>Октябрьский пгт</Значение> </Свойство><Свойство Имя="Регион" Тип="Строка"> <Значение>Московская обл</Значение> </Свойство><Свойство Имя="Тип" Тип="ПеречислениеСсылка.ТипыКонтактнойИнформации"> <Значение>Адрес</Значение> </Свойство><ЗначениеПараметра Имя="ЭтоПроизвольнаяСтрока" Тип="Булево"> <Значение>false</Значение> </ЗначениеПараметра><ЗначениеПараметра Имя="Индекс" Тип="Строка"> <Значение>140060</Значение> </ЗначениеПараметра><ЗначениеПараметра Имя="Район" Тип="Строка"> <Значение>Люберецкий р-н</Значение> </ЗначениеПараметра><ЗначениеПараметра Имя="Улица" Тип="Строка"> <Значение>Ленина ул</Значение> </ЗначениеПараметра><ЗначениеПараметра Имя="Дом" Тип="Строка"> <Значение>47</Значение> </ЗначениеПараметра><ЗначениеПараметра Имя="ТипДома" Тип="Строка"> <Значение>дом</Значение> </ЗначениеПараметра> </Запись> Благодарю за Вашу помощь! |
|||
1
Sefuirosu
16.07.14
✎
15:00
|
Думаю, что операцию следует записать в виде алгоритма, который потом подставить в "после выгрузки". Либо же тупо прописывать каждому реквизиту. Но вот сделать это у меня не получается.
|
|||
2
Sefuirosu
16.07.14
✎
22:37
|
Все еще не могу понять, как преобразовать код из выгрузки в реквизиты УТ 11.
Подскажите пожалуйста, кто знает! Хоть на одном реквизите, я уже остальное сам разберусь! Если нужно предоставить что-то еще дополнительно, пишите! Еще раз спасибо! |
|||
3
Defender aka LINN
16.07.14
✎
22:41
|
У тебя там параметры какие-то. Нафига?
КИ в УТ11 - это табличная часть. Заполни ее на стороне источника да и все. |
|||
4
Sefuirosu
16.07.14
✎
22:49
|
Я пытался сделать так:
1) Создаю параметр "Улица" (например). 2) Источник оставляю пустым. 3) Затем в "перед выгрузкой" помещаю (например): Значение = ОбъектКоллекции.Улица; Если НЕ ЗначениеЗаполнено(Значение) Тогда Пусто = Истина; КонецЕсли; И так для всех параметров КИ. Вот это не сработало... Можно наглядный пример хоть одного заполнения? Наверху код, это как я из регистра сведений БП 2.0 вытягивал их... |
|||
5
Sefuirosu
16.07.14
✎
22:53
|
Вот как вытягивал из регистра сведений БП 2.0:
ВыгружаемыйОбъект = Источник; ВыгружаемыйОбъектИП = Ложь; КоллекцияОбъектов = Новый ТаблицаЗначений; КоллекцияОбъектов.Колонки.Добавить("Тип"); КоллекцияОбъектов.Колонки.Добавить("Вид"); КоллекцияОбъектов.Колонки.Добавить("Представление"); КоллекцияОбъектов.Колонки.Добавить("ЗначенияПолей"); КоллекцияОбъектов.Колонки.Добавить("Страна"); КоллекцияОбъектов.Колонки.Добавить("Регион"); КоллекцияОбъектов.Колонки.Добавить("Город"); КоллекцияОбъектов.Колонки.Добавить("АдресЭП"); КоллекцияОбъектов.Колонки.Добавить("ДоменноеИмяСервера"); КоллекцияОбъектов.Колонки.Добавить("НомерТелефона"); КоллекцияОбъектов.Колонки.Добавить("НомерТелефонаБезКодов"); КоллекцияОбъектов.Колонки.Добавить("ЭтоПроизвольнаяСтрока", Новый ОписаниеТипов("Булево")); КоллекцияОбъектов.Колонки.Добавить("Индекс"); КоллекцияОбъектов.Колонки.Добавить("Район"); КоллекцияОбъектов.Колонки.Добавить("НаселенныйПункт"); КоллекцияОбъектов.Колонки.Добавить("Улица"); КоллекцияОбъектов.Колонки.Добавить("Дом"); КоллекцияОбъектов.Колонки.Добавить("Корпус"); КоллекцияОбъектов.Колонки.Добавить("Квартира"); КоллекцияОбъектов.Колонки.Добавить("ТипДома"); КоллекцияОбъектов.Колонки.Добавить("ТипКорпуса"); КоллекцияОбъектов.Колонки.Добавить("ТипКвартиры"); КоллекцияОбъектов.Колонки.Добавить("КодСтраны"); Запрос = Новый Запрос(" |ВЫБРАТЬ | КонтактнаяИнформация.Тип КАК Тип, | КонтактнаяИнформация.Вид КАК Вид, | КонтактнаяИнформация.Представление КАК Представление, | КонтактнаяИнформация.Поле1 КАК Поле1, | КонтактнаяИнформация.Поле2 КАК Поле2, | КонтактнаяИнформация.Поле3 КАК Поле3, | КонтактнаяИнформация.Поле4 КАК Поле4, | КонтактнаяИнформация.Поле5 КАК Поле5, | КонтактнаяИнформация.Поле6 КАК Поле6, | КонтактнаяИнформация.Поле7 КАК Поле7, | КонтактнаяИнформация.Поле8 КАК Поле8, | КонтактнаяИнформация.Поле9 КАК Поле9, | КонтактнаяИнформация.ТипДома КАК ТипДома, | КонтактнаяИнформация.ТипКорпуса КАК ТипКорпуса, | КонтактнаяИнформация.ТипКвартиры КАК ТипКвартиры |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Контрагент |"); Если ТипЗнч(Источник) = Тип("СправочникОбъект.Организации") И Источник.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо И ЗначениеЗаполнено(Источник.ИндивидуальныйПредприниматель) Тогда ВыгружаемыйОбъект = Источник.ИндивидуальныйПредприниматель; ВыгружаемыйОбъектИП = Истина; КонецЕсли; Запрос.УстановитьПараметр("Контрагент", ВыгружаемыйОбъект.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = КоллекцияОбъектов.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка, "Тип,Вид,Представление"); Если Выборка.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда // Проверка на произвольное значение Если УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдреса(Выборка) <> Выборка.Представление Тогда НоваяСтрока.ЭтоПроизвольнаяСтрока = Истина; КонецЕсли; Если НоваяСтрока.ЭтоПроизвольнаяСтрока И ЗначениеЗаполнено(Выборка.Поле1) Тогда НоваяСтрока.Страна = Выборка.Поле1; Страна = Справочники.КлассификаторСтранМира.НайтиПоНаименованию(Выборка.Поле1, Истина); Если ЗначениеЗаполнено(Страна) Тогда НоваяСтрока.КодСтраны = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Страна, "Код"); КонецЕсли; КонецЕсли; НоваяСтрока.Представление = ?(НоваяСтрока.ЭтоПроизвольнаяСтрока, Выборка.Представление, Неопределено); НоваяСтрока.Индекс = ?(НоваяСтрока.ЭтоПроизвольнаяСтрока, Неопределено, Выборка.Поле1); НоваяСтрока.Регион = Выборка.Поле2; НоваяСтрока.Район = Выборка.Поле3; НоваяСтрока.Город = Выборка.Поле4; НоваяСтрока.НаселенныйПункт = Выборка.Поле5; НоваяСтрока.Улица = Выборка.Поле6; НоваяСтрока.Дом = Выборка.Поле7; НоваяСтрока.Корпус = Выборка.Поле8; НоваяСтрока.Квартира = Выборка.Поле9; Если ЗначениеЗаполнено(НоваяСтрока.Дом) Тогда НоваяСтрока.ТипДома = ?(Выборка.ТипДома = Перечисления.ТипыДомов.Владение, "владение", "дом"); КонецЕсли; Если ЗначениеЗаполнено(НоваяСтрока.Корпус) Тогда НоваяСтрока.ТипКорпуса = ?(Выборка.ТипКорпуса = Перечисления.ТипыКорпусов.Строение, "строение", "корпус"); КонецЕсли; Если ЗначениеЗаполнено(НоваяСтрока.Квартира) Тогда НоваяСтрока.ТипКвартиры = ?(Выборка.ТипКвартиры = Перечисления.ТипыКвартир.Офис, "оф.", "кв."); КонецЕсли; Если ВыгружаемыйОбъектИП Тогда Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ИнформАдресФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.АдресОрганизацииПочтовый; ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации; ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации; ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ИнострАдресФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.АдресИнострОрганизацииУчред; Иначе КоллекцияОбъектов.Удалить(НоваяСтрока); КонецЕсли; КонецЕсли; ИначеЕсли Выборка.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда НоваяСтрока.ЗначенияПолей = ?(ЗначениеЗаполнено(Выборка.Поле1), "КодСтраны=" + Выборка.Поле1 + Символы.ПС, "") + ?(ЗначениеЗаполнено(Выборка.Поле2), "КодГорода=" + Выборка.Поле2 + Символы.ПС, "") + ?(ЗначениеЗаполнено(Выборка.Поле3), "НомерТелефона=" + Выборка.Поле3 + Символы.ПС, "") + ?(ЗначениеЗаполнено(Выборка.Поле4), "Добавочный=" + Выборка.Поле4, ""); НоваяСтрока.НомерТелефонаБезКодов = Выборка.Поле3; НоваяСтрока.НомерТелефона = Выборка.Поле1 + Выборка.Поле2 + Выборка.Поле3; Если ВыгружаемыйОбъектИП Тогда Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации; ИначеЕсли Выборка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонСлужебныйФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонПоЮрАдресуОрганизации; Иначе КоллекцияОбъектов.Удалить(НоваяСтрока); КонецЕсли; КонецЕсли; ИначеЕсли Выборка.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда НоваяСтрока.АдресЭП = Выборка.Представление; Если ВыгружаемыйОбъектИП Тогда Если Выборка.Вид = Справочники.ВидыКонтактнойИнформации.EmailФизЛица Тогда НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.EmailОрганизации; Иначе КоллекцияОбъектов.Удалить(НоваяСтрока); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Это делал в виде алгоритма, который применяется на папку, внутри которой находятся переменные с контактной информацией и который запускается перед обработкой. На правильность выбранного пути не претендую... :) |
|||
6
Sefuirosu
17.07.14
✎
09:14
|
Все еще вожусь с этим, чую, что голова уже совсем дырявая стала, но мыслей совсем нет, в чем моя ошибка. Из базы все выгружается, по коду алгоритма, значения присваиваются вроде (код в предпоследнем сообщении), а адреса остаются незаполненными. Ошибок тоже никаких не выдает...
|
|||
7
Sefuirosu
17.07.14
✎
12:12
|
Неужели, ни у кого нет никаких версий и идей?..
(Кроме самых очевидных, типа автор - идиот :) ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |