|
Программное заполнение контактной инф. в УНФ | ☑ | ||
---|---|---|---|---|
0
PinkiBosh
09.04.15
✎
14:21
|
Здравствуйте.
Понятно, что: Клиент = Справочники.Контрагенты.СоздатьЭлемент(); Контакт = Клиент.КонтактнаяИнформация.Добавить(); Контакт.Вид = Справочники.ВидыКонтактнойИнформации.АдресДоставкиКонтрагета; Контакт.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; Контакт.Представление = "тут типо пишется типо адрес"; Вопрос: как заполнить поля (Город, улица...) по отдельности?? З.ы. я работаю в УНФ и в ней ОТСУТСТВУЕТ РегистрСведений.КонтактнаяИнформация. |
|||
1
Ganiev
09.04.15
✎
14:39
|
К сожалению не помню УНФ, посмотри как хоронится адрес в строке или может просто по другому регистр называется, если в строке, то скорее всего через разделитель пишется!
|
|||
2
PinkiBosh
09.04.15
✎
19:28
|
Спасибо!!
С разделителями сработало! Вот: Контакт = Клиент.КонтактнаяИнформация.Добавить(); Контакт.Вид = Справочники.ВидыКонтактнойИнформации.АдресДоставкиКонтрагета; Контакт.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; Контакт.ЗначенияПолей = "Город = Томск" + Символы.ПС + "Улица = Кирова" + Символы.ПС + "Дом = 10" + Символы.ПС + "Квартира = 7"; А так же нарыл ещё пару вариантов: 1) Контакт = Клиент.КонтактнаяИнформация.Добавить(); Контакт.Вид = Справочники.ВидыКонтактнойИнформации.АдресДоставкиКонтрагета; Контакт.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; Контакт.ЗначенияПолей = "<КонтактнаяИнформация 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=""АдресРФ""><СубъектРФ></СубъектРФ><СвРайМО><Район/></СвРайМО><Город>Томск</Город><НаселПункт/><Улица>Кирова</Улица><ДопАдрЭл><Номер Тип=""2020"" Значение=""1""/></ДопАдрЭл><ДопАдрЭл><Номер Тип=""1060"" Значение=""2""/></ДопАдрЭл><ДопАдрЭл><Номер Тип=""1010"" Значение=""4А""/></ДопАдрЭл><ДопАдрЭл ТипАдрЭл=""10100000"" Значение=""""/></Состав></Состав></КонтактнаяИнформация>"; 2) Если ЮрЛицо Тогда ЗаполнитьКонтактнуюИнформациюАдрес(Партнер.КонтактнаяИнформация,ЮрОбласть,ЮрГород, ЮрУлица,ЮрНомерДома,ЮрНомерПомещения,ЮрПочтовыйИндекс, Справочники.ВидыКонтактнойИнформации.АдресПартнера); Иначе ЗаполнитьКонтактнуюИнформациюАдрес(Партнер.КонтактнаяИнформация,Область,Город, Улица,НомерДома,НомерПомещения,ПочтовыйИндекс, Справочники.ВидыКонтактнойИнформации.АдресПартнера); КонецЕсли; Если ЗначениеЗаполнено(НомерТелефона) Тогда ЗаполнитьКонтактнуюИнформациюТелефонИЛИEmail(Партнер.КонтактнаяИнформация,НомерТелефона, Справочники.ВидыКонтактнойИнформации.ТелефонПартнера); КонецЕсли; Если ЗначениеЗаполнено(ЭлектронныйАдрес) Тогда ЗаполнитьКонтактнуюИнформациюТелефонИЛИEmail(Партнер.КонтактнаяИнформация,ЭлектронныйАдрес, Справочники.ВидыКонтактнойИнформации.EmailПартнера); КонецЕсли; Попытка Если НЕ ПартнерНайден Тогда Партнер.УстановитьНовыйКод(); КонецЕсли; Партнер.Записать(); Исключение Ошибка = ИнформацияОбОшибке(); Возврат 0; КонецПопытки; Результат = СоздатьПодчененногоКонтрагента(Партнер.Ссылка,Имя,Фамилия,Отчество,НомерТелефона, ЭлектронныйАдрес,Область,Город,Улица,НомерДома,НомерПомещения,ПочтовыйИндекс,ЮрЛицо,НаименованиеКомпании, ЮрОбласть,ЮрГород,ЮрУлица,ЮрНомерДома,ЮрНомерПомещения,ЮрПочтовыйИндекс, КПП,БИК,ИНН,РасчетныйСчет,ПартнерНайден); Возврат Результат; КонецФункции &НаСервере Процедура ЗаполнитьКонтактнуюИнформациюАдрес(КонтактнаяИнформация,Область,Город, Улица,НомерДома,НомерПомещения,ПочтовыйИндекс,Вид); НСКонтактнойИнформации = КонтактнаяИнформация.Добавить(); НСКонтактнойИнформации.Тип = Вид.Тип; НСКонтактнойИнформации.Вид = Вид; НСКонтактнойИнформации.ЗначенияПолей = ПолучитьЗначениеПолейКонтактнойИнформации(ПочтовыйИндекс,Область,Город, Улица,НомерДома,НомерПомещения,Вид); СтруктураАдреса = ПолучитьСтруктуруАдреса(ПочтовыйИндекс,Область,Город,Улица,НомерДома,НомерПомещения); СформироватьПредставлениеКонтактнойИнформации("кв.",НСКонтактнойИнформации.Представление,СтруктураАдреса); НСКонтактнойИнформации.Представление = СтрЗаменить(НСКонтактнойИнформации.Представление,"РОССИЯ,",""); НСКонтактнойИнформации.Страна= "РОССИЯ"; НСКонтактнойИнформации.Регион = Область; НСКонтактнойИнформации.Город = Город; КонецПроцедуры &НаСервере Функция ПолучитьЗначениеПолейКонтактнойИнформации(ПочтовыйИндекс,Область,Город, Улица,НомерДома,НомерПомещения,Вид) СтрокаПолей = "Индекс="+ПочтовыйИндекс+" |Регион= "+Область+" |Город="+Город+" |Улица="+Улица+" |Дом="+НомерДома+" |Квартира="+НомерПомещения+" |Страна=РОССИЯ |КодСтраны=643 |ТипДома=дом |ТипКвартиры=кв."; Структура = УправлениеКонтактнойИнформациейКлиентСервер.СтруктураЗначенийПолей(СтрокаПолей,Вид); Данные = КонтактнаяИнформацияСлужебный.ДесериализацияАдреса(СтрокаПолей); Пред = ""; Представление = УправлениеКонтактнойИнформациейКлиентСервер.СформироватьПредставлениеАдреса(Структура,Пред,Строка(Вид)); Данные.Представление = Пред; ЗначениеПолей = КонтактнаяИнформацияСлужебный.СериализацияКонтактнойИнформации(Данные); Возврат ЗначениеПолей; КонецФункции &НаСервере Функция ПолучитьЗначениеПолейДляТелефона(СтрокаПолей,Вид) Структура = УправлениеКонтактнойИнформациейКлиентСервер.СтруктураЗначенийПолей(СтрокаПолей,Вид); Данные = КонтактнаяИнформацияСлужебный.ДесериализацияТелефона(СтрокаПолей); Пред = ""; Представление = УправлениеКонтактнойИнформациейКлиентСервер.СформироватьПредставлениеТелефона(Структура.КодСтраны,Структура.КодГорода,Структура.НомерТелефона,Структура.Добавочный,Структура.Комментарий); Данные.Представление = Структура.НомерТелефона; ЗначениеПолей = КонтактнаяИнформацияСлужебный.СериализацияКонтактнойИнформации(Данные); Возврат ЗначениеПолей; КонецФункции &НаСервере Функция ПолучитьЗначениеПолейДляЕмайл(СтрокаПолей,Вид) Данные = КонтактнаяИнформацияСлужебный.ДесериализацияПрочейКонтактнойИнформации(СтрокаПолей,СтрокаПолей,Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); Данные.Представление = СтрокаПолей; ЗначениеПолей = КонтактнаяИнформацияСлужебный.СериализацияКонтактнойИнформации(Данные); Возврат ЗначениеПолей; КонецФункции &НаСервере Функция ПолучитьСтруктуруАдреса(Индекс,Регион,Город,Улица,Дом,Квартира) Район = ""; НаселенныйПункт = ""; Корпус = ""; СтруктураАдреса = Новый Структура(); СтруктураАдреса.Вставить("Индекс", Индекс); СтруктураАдреса.Вставить("Регион", Регион); СтруктураАдреса.Вставить("Район", Район); СтруктураАдреса.Вставить("Город", Город); СтруктураАдреса.Вставить("НаселенныйПункт", НаселенныйПункт); СтруктураАдреса.Вставить("Улица", Улица); СтруктураАдреса.Вставить("Дом", Дом); СтруктураАдреса.Вставить("Корпус", Корпус); СтруктураАдреса.Вставить("Квартира", Квартира); Возврат СтруктураАдреса; КонецФункции &НаСервере Процедура СформироватьПредставлениеКонтактнойИнформации(ТипКвартиры,Представление,СтруктураАдреса) Представление = ""; НаименованиеСтраны = "РОССИЯ"; НаименованиеВида = "Адрес"; СтруктураАдреса.Вставить("Страна", Справочники.СтраныМира.НайтиПоНаименованию("РОССИЯ")); СтруктураАдреса.Вставить("НаименованиеСтраны", НаименованиеСтраны); СтруктураАдреса.Вставить("ТипДома", "дом"); СтруктураАдреса.Вставить("ТипКорпуса", ""); СтруктураАдреса.Вставить("ТипКвартиры", ТипКвартиры); СтруктураАдреса.Вставить("НаименованиеВида", "Адрес"); СтруктураАдреса.Вставить("Представление", Представление); ПредставлениеСВидом = УправлениеКонтактнойИнформациейКлиентСервер.СформироватьПредставлениеАдреса(СтруктураАдреса , Представление, НаименованиеВида); КонецПроцедуры &НаСервере Процедура ЗаполнитьКонтактнуюИнформациюТелефонИЛИEmail(КонтактнаяИнформация,Данные,Вид) НСКонтактнойИнформации = КонтактнаяИнформация.Добавить(); НСКонтактнойИнформации.Тип = Вид.Тип; НСКонтактнойИнформации.Вид = Вид; Если НСКонтактнойИнформации.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Тогда НСКонтактнойИнформации.Представление = СокрЛП(Данные); НСКонтактнойИнформации.ЗначенияПолей = "НомерТелефона="+СокрЛП(Данные); НСКонтактнойИнформации.ЗначенияПолей = ПолучитьЗначениеПолейДляТелефона(НСКонтактнойИнформации.ЗначенияПолей,Вид); НСКонтактнойИнформации.НомерТелефона = СокрЛП(Данные); НСКонтактнойИнформации.НомерТелефонаБезКодов = СокрЛП(Данные); Иначе НСКонтактнойИнформации.Представление = СокрЛП(Данные); НСКонтактнойИнформации.ЗначенияПолей = "ЭлектроннаяПочта="+СокрЛП(Данные); НСКонтактнойИнформации.ЗначенияПолей = ПолучитьЗначениеПолейДляЕмайл(Данные,Вид); НСКонтактнойИнформации.АдресЭП = СокрЛП(Данные); КонецЕсли; КонецПроцедуры вариант №2 не проверял!! З.ы. по-моему вариант с разделителями самый приятный, надеюсь в дальнейшем не выйдет из-за него проблем!!) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |