|
сериализация контактной информации | ☑ | ||
---|---|---|---|---|
0
Горогуля
20.08.16
✎
11:52
|
ситуация. имеется контрагент с юридическим адресом "190000, Санкт-Петербург г, Добровольцев ул, дом № 1", это Представление. вышло так, что в ТЧ оказался не заполнен реквизит ЗначенияПолей. БСП туда какой-то чёрной магией пишет сериализованный адрес. Вопрос: как бы мне теперь сериализовать представление для записи в Значения полей?
гугл предлагает так: ОбъектXDTOКИ = КонтактнаяИнформацияСлужебный.ДесериализацияАдреса(...); ЗначенияПолей = КонтактнаяИнформацияСлужебный.СериализацияКонтактнойИнформации(ОбъектXDTOКИ); но это код, годный для БСП более старшей версии, теперь модуль называется УправлениеКонтактнойИнформациейСлужебный и СериализацияКонтактнойИнформации() в нём отсутствует, глобальный поиск молчит, как партизан |
|||
1
Mauser
20.08.16
✎
11:55
|
Версия БСП какая?
|
|||
2
Горогуля
20.08.16
✎
11:58
|
(1) а хз, всё на работе, а сегодня выходной ;)
что-то навроде бухии 3.42.. |
|||
3
Горогуля
20.08.16
✎
12:00
|
на рознице 2.2.2.20 воспроизводится. где там версию БСП подсмотреть?
|
|||
4
Mauser
20.08.16
✎
12:01
|
В общем модуле обновления иб бсп, там есть экспортное, которое версию возвращает
|
|||
5
Горогуля
20.08.16
✎
12:03
|
СтандартныеПодсистемыСервер.ВерсияБиблиотеки()=2.3.2.33
|
|||
6
Mauser
20.08.16
✎
12:03
|
А попробуй, кстати, "грязный хак"
Запиши в значения полей строку в древнем формате "ключ=значение", потом открой форму адреса, добавь-удали для модифицированности и сохрани =) |
|||
7
Mauser
20.08.16
✎
12:04
|
(5) Оок, через некоторое время скажу =)
|
|||
8
Горогуля
20.08.16
✎
12:05
|
(6) там вроде как Символы.ПС как разделитель пар требуется. не вводится многострочная строка
|
|||
9
Mauser
20.08.16
✎
12:07
|
(8) а откуда многострочное?
Или тебя надо представление автоматом на части разобрать? |
|||
10
Mauser
20.08.16
✎
12:08
|
А для многострочных там ПС+Таб работало как перенос.
|
|||
11
Горогуля
20.08.16
✎
12:08
|
>Запиши в значения полей строку в древнем формате "ключ=значение"
что между "ключ1=значение1" и "ключ2=значение2"? |
|||
12
Горогуля
20.08.16
✎
12:09
|
да и не буду ж я тысячи контрагентов руками пересохранять
|
|||
13
pnamik
20.08.16
✎
12:11
|
"Видала я такую чепуху, по сравнению с которой эта чепуха — толковый словарь!"
|
|||
14
Горогуля
20.08.16
✎
12:12
|
(13) Алиса. угадал?
|
|||
15
Mauser
20.08.16
✎
12:12
|
(11) Перенос строки. Если в значении многострочная строка, то перенос строки в ней меняется на ПС+Таб
|
|||
16
Mauser
20.08.16
✎
12:13
|
(14) Нет. Алиса - это Кинчев.
|
|||
17
pnamik
20.08.16
✎
12:13
|
(14) может Мэгги Тейлор?
|
|||
18
pnamik
20.08.16
✎
12:15
|
(12) обратись к Lexey_. по заполнению он спец.
|
|||
19
Горогуля
20.08.16
✎
12:19
|
ТекКИ.ЗначенияПолей=
"Индекс=190000 |Город=Санкт-Петербург г |Улица=Добровольцев ул, |Дом=1"; ТекКИ.Представление="190000, Санкт-Петербург г, Добровольцев ул, дом № 1"; однако, взлетело. никаких пересохранений, форма выбора адреса открывается заполненной. но в значениях полей так и лежит несериализованное. Спасибо, товарищ Маузер. вопрос остаётся уже для саморазвития. как сериализовать? ;) |
|||
20
Mauser
20.08.16
✎
12:20
|
(19) Вот если ты что-то поменяещь и запишешь, оно сериализуется. Это хвост от обмена, когда из старых баз грузились старые адреса.
|
|||
21
Mauser
20.08.16
✎
12:21
|
Там в каких-то БСП программный интерфейс допилили, сейчас доеду, найду скажу =)
|
|||
22
Горогуля
20.08.16
✎
12:21
|
(20) точно. ой, как неохота лезть отладчиком и искать, что оно там делает при записи...
|
|||
23
Горогуля
20.08.16
✎
13:59
|
ничо не понимаю.
сохраняю руками из формы УправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект); там ЗаписатьКонтактнуюИнформацию(Объект, СтрокаТаблицы.ЗначенияПолей, ВидИнформации, ТипИнформации,, ДействуетС); смотрю в Объект.КонтактнаяИнформация[0].ЗначенияПолей - вижу желанное. делаю сам программно: спр=Справочники.Контрагенты.НайтиПоНаименованию("Луи де Фюнес").ПолучитьОбъект(); ЗначенияПолей=Новый Структура("Индекс, ГородСокращение, Город, УлицаСокращение, Улица, Дом", "190000", "г", "Санкт-Петербург г", "ул,", "Добровольцев ул,", "1"); ВидИнформации=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; ТипИнформации=Перечисления.ТипыКонтактнойИнформации.Адрес; УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(спр, ЗначенияПолей, ВидИнформации, ТипИнформации); в спр.КонтактнаяИнформация[0].ЗначенияПолей ничего не меняется. что не так? |
|||
24
Горогуля
20.08.16
✎
14:08
|
вот так взлетело:
правда, дорисовало новую строчку в ТЧ, но это уже мелочи |
|||
25
Mauser
20.08.16
✎
15:16
|
Ну, лучше поздно, чем =)
Ближайшая под руками оказалась только 2.3.1.84. Там для низкого уровня есть вполне себе программный интерфейс УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML. Не думаю, что в новых его оторвали. В новых БСП есть интерфейс работы с параметрами - объектами, там тонкие случаи хранения владельцев КИ в табличной части учитываются и пр. Но это уж до понедельника... |
|||
26
Горогуля
20.08.16
✎
15:31
|
ВидИнформации=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
Представление="190000, Санкт-Петербург г, Добровольцев ул, дом № 1"; Сообщить(УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ЗначенияПолей, Представление, ВидИнформации)); а неплохо так. заполнить СЗ как надо и вперёд. спасибо ещё раз |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |