![]() |
|
Загрузить адреса в БП 3.0 | ☑ | ||
---|---|---|---|---|
0
zak555
12.08.15
✎
12:42
|
Есть на входе в структуре
индекс регион Район .. как ранее хранился адрес в БП 2.0 какой функцией или процедурой из общих модулей бп 3.0 преобразовать его в нужный вид контактной информации ? не могу найти |
|||
1
lubitelxml
12.08.15
✎
12:45
|
(0) может проще новую версию классификатора скачать?
|
|||
2
asady
12.08.15
✎
12:46
|
(0) я прикручивал форму "ВводАдреса" из типовой обработки "ВводКонтактнойИнформации"
где-то 95% адресов перенес |
|||
3
zak555
12.08.15
✎
12:47
|
(1) данные так извне предоставляются
|
|||
4
zak555
12.08.15
✎
12:47
|
(2) там чёрт ногу сломит
|
|||
5
asady
12.08.15
✎
12:49
|
(4) ну дык БСП - ептыть
|
|||
6
Aleksey
12.08.15
✎
12:52
|
это в модуле обновления искать надо
|
|||
7
Otkr
12.08.15
✎
12:52
|
(4) Посмотри перенос контактной информации из ЗиУП 2.5 в 3.0.
Там используется УправлениеКонтактнойИнформацией.ЗаполнитьКонтактнуюИнформациюОбъектов(ДанныеЗаполнения), в БП 3.0 она тоже есть |
|||
8
zak555
12.08.15
✎
12:53
|
(6) нашёл ПереносКИПриОбновленииС20()
|
|||
9
Aleksey
12.08.15
✎
12:54
|
УправлениеКонтактнойИнформацией
// Преобразует все входящие форматы контактной информации в XML. // // Параметры: // ЗначенияПолей - Строка, Структура, Соответствие, СписокЗначений - описание полей контактной информации. // Представление - Строка - представления. Используется, если невозможно определить представление из параметра. // ЗначенияПолей (отсутствие поля "Представление"). // ОжидаемыйВид - СправочникСсылка.ВидыКонтактнойИнформации, ПеречислениеСсылка.ТипыКонтактнойИнформации - // Используется для определения типа, если его невозможно вычислить по полю ЗначенияПолей. // // Возвращаемое значение: // Строка - XML данные контактной информации. // Функция КонтактнаяИнформацияВXML(Знач ЗначенияПолей, Знач Представление = "", Знач ОжидаемыйВид = Неопределено) Экспорт Результат = УправлениеКонтактнойИнформациейСлужебный.ПривестиКонтактнуюИнформациюXML(Новый Структура( "ЗначенияПолей, Представление, ВидКонтактнойИнформации", ЗначенияПолей, Представление, ОжидаемыйВид)); Возврат Результат.ДанныеXML; КонецФункции |
|||
10
zak555
12.08.15
✎
12:54
|
(7) там уже представление должно быть сформировано
|
|||
11
Otkr
12.08.15
✎
12:56
|
(10) В чем проблема? Все значения для формирования представления есть, формируй и передавай
|
|||
12
zak555
12.08.15
✎
12:59
|
(11) значит представление самому, ЗначенияПолей тоже
я то думал, что есть какая-то функция , в которую передал структура например и полукчить всё, что тебе нужно а её нет ((( |
|||
13
Otkr
12.08.15
✎
13:02
|
(12) Посмотри говорю правила из 2.5 в 3.0, дернешь оттуда нужный код, там просто)
|
|||
14
zak555
12.08.15
✎
13:05
|
(13) нет по рукой
|
|||
15
zak555
12.08.15
✎
13:05
|
представление в какой последовательности должно быть ?
индекс, регион |
|||
16
zak555
12.08.15
✎
13:07
|
Представление = "Индекс, Регион, Район, Город, НаселенныйПункт, Улица, Дом, Корпус, Квартира";
|
|||
17
zak555
12.08.15
✎
13:08
|
Представление в таком виде хранится в бп 2.0 ?
|
|||
18
zak555
12.08.15
✎
13:38
|
походу надо из ЗначенияПолей получать предславление
|
|||
19
zak555
12.08.15
✎
13:46
|
хотя нет\
ЗначенияПолей -- это же чьд |
|||
20
zak555
12.08.15
✎
13:47
|
*xml
|
|||
21
zak555
12.08.15
✎
14:25
|
что-то не могу найти, где идёт преобразование Представление в ЗначенияПолей ?
|
|||
22
zak555
12.08.15
✎
22:15
|
ап
|
|||
23
Otkr
12.08.15
✎
22:16
|
(22) Наоборот, представление собирается из значения полей. Посмотри форму ввода адреса
|
|||
24
zak555
12.08.15
✎
22:20
|
(23)
ага Контекст = КонтекстФормыКлиент(); Результат = РезультатаВыбораПоОбновлениюФлагов(Контекст, ВозвращатьСписокЗначений); вот это уже вынос мозга |
|||
25
zak555
12.08.15
✎
23:46
|
Функция ПолучитьАдрес(Представление)
ВидКИ = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; ////Нормализуем представление для использования в парсере КИ //Пока Лев(Представление, 1) = "," Цикл // Представление = Сред(Представление, 2); //КонецЦикла; // ////Парсим строку и удаляем пустые значения. //МногострочныйТекст = СтрЗаменить(Представление, ",", Символы.ПС); //Представление = ""; //Для А = 1 По СтрЧислоСтрок(МногострочныйТекст) Цикл // Подстрока = СокрЛП(СтрПолучитьСтроку(МногострочныйТекст, А)); // Если ЗначениеЗаполнено(Подстрока) Тогда Представление = Представление + Подстрока + ", "; КонецЕсли; //КонецЦикла; //Для А = 1 По ////Обрезаем лишнее //Представление = Лев(Представление, СтрДлина(Представление) - 2); //если поле Страна не заполнять, то программа при редактировании всё равно подставит Россию. СтруктураСтроки = Новый Структура("Тип, Страна, Вид, Представление, Регион, Город, ЗначенияПолей", Перечисления.ТипыКонтактнойИнформации.Адрес, "Россия", ВидКИ, Представление, "", "", ""); //Пытаемся привести представление КИ в объект XDTO для последующего преобразования в XML-представление ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.АдресXMLВXDTO("", СтруктураСтроки.Представление, СтруктураСтроки.Тип); Если НЕ УправлениеКонтактнойИнформациейСлужебный.АдресВведенВСвободнойФорме(ОбъектXDTOКИ) Тогда АдресРФ = УправлениеКонтактнойИнформациейСлужебный.РоссийскийАдрес(ОбъектXDTOКИ); Если АдресРФ <> Неопределено Тогда СтруктураСтроки.Город = АдресРФ.Город; СтруктураСтроки.Регион = АдресРФ.СубъектРФ; КонецЕсли; СтруктураСтроки.Представление = УправлениеКонтактнойИнформациейСлужебный.СформироватьПредставлениеКонтактнойИнформации(ОбъектXDTOКИ, ВидКИ); //Запишем уточнённое представление контактной информации УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(ОбъектXDTOКИ, СтруктураСтроки.Представление); КонецЕсли; //При необходимости можно принудительно установить флаг корректной информации УправлениеКонтактнойИнформациейСлужебный.АдресВведенВСвободнойФорме(ОбъектXDTOКИ, Ложь); Возврат УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ); КонецФункции |
|||
26
zak555
12.08.15
✎
23:46
|
||||
27
zak555
12.08.15
✎
23:47
|
а именно Поручик
|
|||
28
zak555
12.08.15
✎
23:48
|
код 25 вернёт адрес в нужно представлении, если загружен соответствующий классификатор региона
|
|||
29
zak555
12.08.15
✎
23:48
|
вводить по типу 9 запятых
//Представление = "Индекс, Регион, Район, Город, НаселенныйПункт, Улица, Дом, Корпус, Квартира"; |
|||
30
zak555
13.08.15
✎
00:37
|
(13) там тупо идёт копирование РС в ТЧ
|
|||
31
Otkr
13.08.15
✎
01:43
|
(30) Спасибо, поржал) Структуру РС и ТЧ хотя бы сравнил чтоли
|
|||
32
Aleksey
13.08.15
✎
02:01
|
(31) В том смысле что он хочет вновоможном формате XML, а при конвертации из ЗУП в ЗУП там старый формат в виде структуры, т.е. тупо копирование РС в структуру
|
|||
33
zak555
13.08.15
✎
07:40
|
(31) какой ты не понятливый =)
|
|||
34
Otkr
13.08.15
✎
07:46
|
(32) (33) Ну да, а (7) я туть для себя писал, да?)
|
|||
35
zak555
13.08.15
✎
07:50
|
(34) но не преобразует в хмл
|
|||
36
Otkr
13.08.15
✎
07:58
|
(35) Ндя... Все она делает, смотри внимательнее
|
|||
37
zak555
13.08.15
✎
10:12
|
(36) действительно, работает
|
|||
38
zak555
13.08.15
✎
10:13
|
АдресСтруктура = Новый Структура;
АдресСтруктура.Вставить("Представление", "");//СтрокаКИ.Представление); АдресСтруктура.Вставить("Страна", "РОССИЯ"); АдресСтруктура.Вставить("КодСтраны", "643"); АдресСтруктура.Вставить("Индекс", СокрЛП(Объект.Индекс));//СтрокаКИ.Поле1); АдресСтруктура.Вставить("Регион", СокрЛП(Объект.Регион));//СтрокаКИ.Поле2); АдресСтруктура.Вставить("КодРегиона", ""); АдресСтруктура.Вставить("РегионСокращение", ""); АдресСтруктура.Вставить("Район", СокрЛП(Объект.Район));//СтрокаКИ.Поле3); АдресСтруктура.Вставить("РайонСокращение", ""); АдресСтруктура.Вставить("Город", СокрЛП(Объект.Город));//СтрокаКИ.Поле4); АдресСтруктура.Вставить("ГородСокращение", ""); АдресСтруктура.Вставить("НаселенныйПункт", СокрЛП(Объект.НаселенныйПункт));//СтрокаКИ.Поле5); АдресСтруктура.Вставить("НаселенныйПунктСокращение", ""); АдресСтруктура.Вставить("Улица", СокрЛП(Объект.Улица));//СтрокаКИ.Поле6); АдресСтруктура.Вставить("УлицаСокращение", ""); АдресСтруктура.Вставить("ТипДома", "Владение"); АдресСтруктура.Вставить("Дом", СокрЛП(Объект.Дом));//СтрокаКИ.Поле7); АдресСтруктура.Вставить("ТипКорпуса", "Сооружение"); АдресСтруктура.Вставить("Корпус", СокрЛП(Объект.Корпус));//СтрокаКИ.Поле8); АдресСтруктура.Вставить("ТипКвартиры", "Помещение"); АдресСтруктура.Вставить("Квартира", СокрЛП(Объект.Квартира));//СтрокаКИ.Поле9); АдресСтруктура.Вставить("Комментарий", "");//СтрокаКИ.Комментарий); Результат = ""; Для Каждого КлючИЗначение Из АдресСтруктура Цикл Если ПустаяСтрока(КлючИЗначение.Значение) = 1 Тогда Продолжить; КонецЕсли; Результат = Результат + ?(Результат = "", "", Символы.ПС) + КлючИЗначение.Ключ + "=" + СтрЗаменить(КлючИЗначение.Значение, Символы.ПС, Символы.ПС + Символы.Таб); КонецЦикла; ДанныеЗаполнения = Новый ТаблицаЗначений; ДанныеЗаполнения.Колонки.Добавить("Приемник"); ДанныеЗаполнения.Колонки.Добавить("ВидКИ"); ДанныеЗаполнения.Колонки.Добавить("СтруктураКИ"); ДанныеЗаполнения.Колонки.Добавить("КлючСтроки"); ВидКИ = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; //Для Каждого КИ Из Объект.КонтактнаяИнформация Цикл СтрокаЗаполнения = ДанныеЗаполнения.Добавить(); СтрокаЗаполнения.Приемник = Справочники.Контрагенты.СоздатьЭлемент(); СтрокаЗаполнения.ВидКИ = ВидКИ; СтрокаЗаполнения.СтруктураКИ = УправлениеКонтактнойИнформациейКлиентСервер.СтруктураЗначенийПолей(Результат, ВидКИ); //КонецЦикла; УправлениеКонтактнойИнформацией.ЗаполнитьКонтактнуюИнформациюОбъектов(ДанныеЗаполнения); |
|||
39
zak555
13.08.15
✎
10:13
|
НО не заполняется представление адреса
|
|||
40
zak555
13.08.15
✎
10:15
|
и всё же структура различная
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |