Работаем с контактной информацией в конфигурациях на БСП

Публикация № 1260421 14.09.20

Приемы и методы разработки - БСП (Библиотека стандартных подсистем)

чтение получение запись контактная информация БСП

В статье приведены базовые работы с контактной информацией в конфигурациях, включающих в себя БСП.

 

Введение

Всем привет! Данный материал посвящен описанию базовых возможностей работы с контактной информацией в конфигурациях, содержащих "Библиотеку стандартных подсистем" (БСП). Данная статья будет полезна для разработчиков, программистов и всех тех, кто решился не придумывать свои "разработки - велосипеды" для работы с контактной информацией, а взять уже готовое. Статья призвана экономить ваше время и повысить эффективность разработки.

Итак, перехожу к разделу получения контактной информации объектов с помощью БСП:

 

Получение контактной информации объектов

Чтобы получить полную контактную информацию контрагента, организации, партнера можно воспользоваться функцией:

КонтактнаяИнформацияОбъекта(СсылкаИлиОбъект, ВидКонтактнойИнформации = Неопределено, Дата = Неопределено, ТолькоПредставление = Истина) Экспорт

Пример использования:

&НаСервере
Процедура ПолучитьНаСервере(ВыбСсылка)
	
	// Возвращаем таблицу значений (параметр ложь) с полной контактной информации объекта (контрагент, организация...)
	КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыбСсылка,"",ТекущаяДата(),Ложь);
	
КонецПроцедуры

В данном примере, получаем полную контактную информацию на текущую дату. При установленном параметре ложь, будет возвращаться ТаблицаЗначений со всей контактной информацией.

В следующем примере вернем фактический адрес контрагента строкой:

&НаСервере
Процедура ПолучитьНаСервере(ВыбСсылка)
	
	// Возвращаем строку (параметр истина) с фактическим адресом объекта (контрагент, организация...)
	КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыбСсылка,Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента,ТекущаяДата(),Истина);
	
КонецПроцедуры

Так же существует схожая функция, производящая получение контактной информации для нескольких ссылок или объектов одновременно:

Функция КонтактнаяИнформацияОбъектов(СсылкиИлиОбъекты, Знач ТипыКонтактнойИнформации = Неопределено, Знач ВидыКонтактнойИнформации = Неопределено, Дата = Неопределено) Экспорт

 

В данной функции ТипыКонтактнойИнформации и ВидыКонтактнойИнформации - массивы, содержащие необходимые типы и виды контактной информации. Функция возвращает таблицу значений по "фильтру" входящих параметров.

Пример использования такой:

&НаСервере
Процедура ПолучитьНаСервере()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","0461111101"));
 МассивСсылок.Добавить(Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","0012123456"));
 
 МассивВидов = Новый Массив;
 МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
 МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
 
 МассивТипов = Новый Массив;
 МассивТипов.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес);
 
 КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(МассивСсылок,МассивТипов,МассивВидов,ТекущаяДата());
	
КонецПроцедуры

Вышеперечисленные функции можно использовать в связке с "индивидуальными" функциями конфигураций по получению информации об организации и контрагентах. Частично об "индивидуальных" функциях я изложил материал вот здесь.

Теперь, давайте посмотрим немного глубже в результаты вышеуказанных функций. Строка возвращаемой таблицы значений выглядит вот так:

Рис.1. Строка таблицы значений контактной информации.

 

Обратим внимание на колонку Значение - это строка в формате json, выглядит она вот так:

Рис.2. Формат json в колонке Значение.

 

Сейчас, я хочу преобразовать эту json-строку в структуру для дальнейшего использования. Сделаю это стандартными методами БСП, воспользуюсь функцией:

Функция СтрокуJSONВСтруктуру(Значение) Экспорт

Доработанный код будет выглядеть вот так:

&НаСервере
Процедура ПолучитьНаСервере()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","0461111101"));
 МассивСсылок.Добавить(Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","0012123456"));
 
 МассивВидов = Новый Массив;
 МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
 МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
 
 МассивТипов = Новый Массив;
 МассивТипов.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес);
 
 КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(МассивСсылок,МассивТипов,МассивВидов,ТекущаяДата());
 
 //Передаем строку json
 ААА = УправлениеКонтактнойИнформациейСлужебный.СтрокуJSONВСтруктуру(КонтИнформация[0].Значение);
 
КонецПроцедуры

Переменная ААА - содержит структуру по входящей строке json. Выглядит это вот так:

Рис.3. Преобразованная  json в структуру.

 

Здесь, я ничего не придумываю, использую только типовые функции и процедуры БСП и получаю требуемую контактную информацию "по полям" в удобном виде.

Пожалуй, с базовыми вариантами получения контактной информации мы разобрались - можем смело применять. Теперь, перейдем к разделу преобразование контактной информации объектов в разные форматы.

 

Преобразование контактной информации объектов

В данном разделе рассмотрим несколько полезных функций, позволяющих стандартно конвертировать контактную информацию в разные форматы - xml, json.

Сначала рассмотрим функцию, которая позволяет получить контактную информацию в формате xml

Функция КонтактнаяИнформацияВXML(Знач ЗначенияПолей, Знач Представление = "", Знач ОжидаемыйВид = Неопределено) Экспорт

В качестве входящего параметра ЗначенияПолей, я обычно передаю структуру по заполненным ключам. Представление я не заполняю, а в качестве ожидаемого вида - перечисление с типом контактной информации.

Рассмотрим пример работы с данной функцией, предварительно доработав предыдущий пример:

&НаСервере
Процедура ПолучитьНаСервере()
	
 МассивСсылок = Новый Массив;
 МассивСсылок.Добавить(Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","0461111101"));
 МассивСсылок.Добавить(Справочники.Контрагенты.НайтиПоРеквизиту("ИНН","0012123456"));
 
 МассивВидов = Новый Массив;
 МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
 МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
 
 МассивТипов = Новый Массив;
 МассивТипов.Добавить(Перечисления.ТипыКонтактнойИнформации.Адрес);
 
 
 КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(МассивСсылок,МассивТипов,МассивВидов,ТекущаяДата());
  
 АдресСтруктура = Новый Структура;
    
 АдресСтруктура.Вставить("Представление",  КонтИнформация[0].Представление);
 АдресСтруктура.Вставить("Город",  "Москва");
 АдресСтруктура.Вставить("Улица",  "Арбатская пл");
 
 //119019, Москва г, Москва, Арбатская пл, дом № 1, корпус 2

 ККК = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(АдресСтруктура,КонтИнформация[0].Представление, Перечисления.ТипыКонтактнойИнформации.Адрес);
				 
КонецПроцедуры

В качестве результата в переменную ККК возвращается XML-структура, согласно схемы пакетов КонтактнаяИнформация или Адрес.

Рис.4. Преобразованная структура в XML-строку.

 

Еще один пример с телефоном:

&НаСервере
Процедура ПолучитьНаСервере()
	
 	ТелефонСтруктура = Новый Структура;
 
	ТелефонСтруктура.Вставить("Представление",  "+7 (123) 456-78-90");
	ТелефонСтруктура.Вставить("Комментарий",  "тестовый номер");
	ТелефонСтруктура.Вставить("КодСтраны",     "7");
	ТелефонСтруктура.Вставить("КодГорода",     "123");
	ТелефонСтруктура.Вставить("НомерТелефона", "456-78-90");
			
	ТелефонXML 	=  УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Телефон);
				 
 КонецПроцедуры

В переменную ТелефонXML возвращается XML строка вот такого содержания:

Рис.5. XML-строка с типом "Номер телефона".

 

Преобразование структуры "телефона" идет по такой типовой схеме:

Преобразователь.ЗагрузитьТаблицуСтилейXSLИзСтроки("
		|<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform""
		|  xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
		|  xmlns:tns=""http://v8.1c.ru/8.1/data/core""
		|  xmlns=""http://www.v8.1c.ru/ssl/contactinfo"" 
		|>
		|<xsl:output method=""xml"" omit-xml-declaration=""yes"" indent=""yes"" encoding=""utf-8""/>
		|  <xsl:template match=""/"">
		|
		|    <xsl:element name=""КонтактнаяИнформация"">
		|
		|      <xsl:attribute name=""Представление"">
		|        <xsl:value-of select=""tns:Structure/tns:Property[@name='Представление']/tns:Value/text()""/>
		|      </xsl:attribute> 
		|      <xsl:element name=""Комментарий"">
		|        <xsl:value-of select=""tns:Structure/tns:Property[@name='Комментарий']/tns:Value/text()""/>
		|      </xsl:element>
		|      <xsl:element name=""Состав"">
		|        <xsl:attribute name=""xsi:type"">" + ИмяXDTOТипа + "</xsl:attribute>
		|
		|        <xsl:attribute name=""КодСтраны"">
		|          <xsl:value-of select=""tns:Structure/tns:Property[@name='КодСтраны']/tns:Value/text()""/>
		|        </xsl:attribute> 
		|        <xsl:attribute name=""КодГорода"">
		|          <xsl:value-of select=""tns:Structure/tns:Property[@name='КодГорода']/tns:Value/text()""/>
		|        </xsl:attribute> 
		|        <xsl:attribute name=""Номер"">
		|          <xsl:value-of select=""tns:Structure/tns:Property[@name='НомерТелефона']/tns:Value/text()""/>
		|        </xsl:attribute> 
		|        <xsl:attribute name=""Добавочный"">
		|          <xsl:value-of select=""tns:Structure/tns:Property[@name='Добавочный']/tns:Value/text()""/>
		|        </xsl:attribute> 
		|
		|      </xsl:element>
		|    </xsl:element>
		|
		|  </xsl:template>
		|</xsl:stylesheet>
		|");

Теперь, преобразуем полученную строку XML в строку JSON, доработаем код процедуры:

&НаСервере
Процедура ПолучитьНаСервере()
	
 	ТелефонСтруктура = Новый Структура;
 
	ТелефонСтруктура.Вставить("Представление",  "+7 (123) 456-78-90");
	ТелефонСтруктура.Вставить("Комментарий",  "тестовый номер");
		
	ТелефонСтруктура.Вставить("КодСтраны",     "7");
	ТелефонСтруктура.Вставить("КодГорода",     "123");
	ТелефонСтруктура.Вставить("НомерТелефона", "456-78-90");
			
	ТелефонXML 	=  УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Телефон);
	
	ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонXML);
				 
КонецПроцедуры

Полученный ТелефонJSON  такой:

Рис.6. JSON-строка с типом "Номер телефона".

 

Его так же можно преобразовать в структуру с помощью вышеуказанной функции

Функция СтрокуJSONВСтруктуру(Значение) Экспорт

Так, базовые вещи с преобразованием контактной информации я описал. Теперь, переходим к разделу записи контактной информации объектов.

 

Запись контактной информации объектов

В данном разделе я рассмотрю базовую процедуру добавления контактной информации по ссылке

Процедура ДобавитьКонтактнуюИнформацию(СсылкаИлиОбъект, ЗначениеИлиПредставление, ВидКонтактнойИнформации, Дата = Неопределено, Замещать = Истина) Экспорт

Доработаем наш пример:

&НаСервере
Процедура ПолучитьНаСервере(ВыбСсылка)
	 
 	ТелефонСтруктура = Новый Структура;
 
	ТелефонСтруктура.Вставить("Представление",  "+7 (123) 456-78-95");
	ТелефонСтруктура.Вставить("Комментарий",  "тестовый номер 2");
		
	ТелефонСтруктура.Вставить("КодСтраны",     "7");
	ТелефонСтруктура.Вставить("КодГорода",     "123");
	ТелефонСтруктура.Вставить("НомерТелефона", "456-78-95");
			
	ТелефонXML 	=  УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Телефон);
	
	ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонXML);

	УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ВыбСсылка, ТелефонJSON, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента, ТекущаяДата(), Ложь);
				 
КонецПроцедуры

Данным кодом мы добавляем нужный нам телефон (Истина - замещает, Ложь - добавляет второй телефон). ТелефонJSON - ранее сформированная нами строка-json. Выглядит это вот так:

Рис.7. Результат добавления "Номера телефона" в карточку контрагента с помощью возможностей БСП.

 

В данном примере номер телефона "красиво разложен" по полям. Хорошо, переходим к заключению.

 

Заключение

В данной статье, я постарался обозначить основные правила и методы работы с контактной информацией в рамках библиотеки стандартных подсистем конфигурации. Я описал чтение, преобразование и запись контактной информации объектов.

Надеюсь, что данная информация будем вам полезна, применение данных стандартных методов позволит вам экономить ваше время на разработку ваших решений.

Примеры данной статьи я реализовывал на Платформе 1с 8.3.17.1549, конфигурации Розница 2.3.5 с включенной БСП 3.1.2.457.

Если вам интересен мой практический подход и информация, которую вы сможете реально использовать, если у вас есть желание, чтобы данный комплекс статей наполнялся практическими материалы для программистов - я не откажусь от поддержки как данной статьи, так и всего комплекса статей в целом.

Так же вы можете подписаться на мой телеграмм канал https://t.me/quazareline

 

Всем спасибо за прочтение, до новых встреч!

 

Предыдущие материалы

Так же, я прошу посмотреть мои предыдущие статьи, посвященные базовым возможностям типовых конфигураций:

Типовые методы конфигурации "Зарплата и управление персоналом", которые пригодятся каждому ЗУП программисту и не только

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. a.gorbachev 16.09.20 17:01 Сейчас в теме
Не понятно для кого данная статья была вообще написана?
Статья выглядит так, будто новичок зашел в общий модуль "УправлениеКонтактнойИнформацией", скопировал описание функций и процедур программного интерфейса и протестировал их.
Мне кажется программисту достаточно указать общий модуль, далее там и так всё понятно, описание функций очень подробное.
Таким же успехом можно написать статью "Работаем с дополнительными реквизитами и свойствами", открыть общий модуль "УправлениеСвойствами" и радоваться чтением доп. свойства объекта одной строчкой.
baracuda; Xershi; +2 7 Ответить
15. Xershi 972 15.07.21 22:57 Сейчас в теме
(1) зашел, посмотрел. Мусор.
Нужно было на клиенте заполнить КИ на форме.
Как итог просто посмотрел как это делает кнопка заполнить по ИНН и сделал также.
user5300; +1 Ответить
2. Fominro 19.09.20 07:23 Сейчас в теме
Зато структурировано и подойдет в качестве "шпаргалки".
grig_nv; Progerok; Korolev; Waleinfo; p_kuzmichev; Dozkni; rpgshnik; +7 Ответить
3. klaus38 16.10.20 22:24 Сейчас в теме
4. quazare 2620 17.10.20 10:45 Сейчас в теме
(3) спасибо, так же можете ознакомиться с другими возможностями БСП, которые я описываю в своих публикациях
5. rule6 24.11.20 10:49 Сейчас в теме
(1)
там и так всё понятно


Новички тоже это читают. Помогло.
6. vacony 30.12.20 21:48 Сейчас в теме
При добавлении своего вида контактной информации (например рост ) - строка поиска

КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыбСсылка,Справочники.ВидыКонтактнойИнформации.МОЙВИДИНФОРМАЦИИ_РОСТ,ТекущаяДата(),Истина);


разве будет работать ? )
7. vacony 30.12.20 21:59 Сейчас в теме
Отвечу сам - Справочники.ВидыКонтактнойИнформации.НАйтиПоНаименованию("МОЙВИДИНФОРМАЦИИ_РОСТ")
8. demetrius2003 53 06.01.21 16:02 Сейчас в теме
Господи! В сердце щемит от ностальгии! Ребята! А помните как в 7.7 можно было просто записать +79059991234 в реквизит и оно работало! Никаких XML файлов внутри реквизитов! Никаких лишних телодвижений! И никаких баз по 15Гб!
tdml; ixijixi; Yury1001; grig_nv; shu_vol; p_kuzmichev; gucci76; Tolpinski; Svasily; user1526087; Kaval88; RBS; Поручик; quazare; +14 Ответить
20. vvh74 18.11.21 07:58 Сейчас в теме
(8) А до этого можно было записать +79059991234 в *.txt и никаких тебе реквизитов! И весил файл с тысячью клиентов 100 килобайт!
9. opus70 73 18.02.21 10:41 Сейчас в теме
(8) совершенно верно абсолютно не нужная тяжелая и не поворотливая зараза
а потом еще говорят ваша 1с работает медленно конечно будет медленно если куда не посмотри все сделанно для того чтоб дать работу программистам а не людям кто пользуется программой
Svasily; user1035416; yaroslav_29; RBS; Nik_Vit; +5 Ответить
10. user1035416 23.06.21 14:03 Сейчас в теме
Спасибо от чайников! А не дополните ли все это доставанием контактных лиц контрагента, плз.
11. user1035416 23.06.21 14:11 Сейчас в теме
В 1С в сети ищу примеры того что мне нужно и ни разу не видел повторений. Это хорошо или плохо?
12. quazare 2620 23.06.21 14:16 Сейчас в теме
(10) Будет еще отдельная статья по контактной информации
pyrkin_vanya; +1 Ответить
13. user1035416 23.06.21 15:55 Сейчас в теме
(12) На 1С перешли недавно с другой устаревшей программы (не буду называть), так там в объектной модели есть готовые свойства и методы доставания практически любых нужных данных для документов и отчетов. А тут целый веер способов доставания. В частности интересует вопрос разделения функций и взаимодействие клиента и сервера. Это отдельная грустная песня. Например: можно ли из функции, выполняемой на сервере вернуть клиенту коллекцию или массив данных? Передать туда-сюда ссылку на объект точно нельзя.
19. HAMAZ 7 26.10.21 09:19 Сейчас в теме
(13)
Передать туда-сюда ссылку на объект точно нельзя
как это нельзя? ссылка вполне себе передается, объект нельзя
14. Bodrechkom 05.07.21 15:37 Сейчас в теме
Делаю так ничего не работает, не подскажете пожалуйста почему ? 1с Документооборот 8 ПРОФ, редакция 2.1 (2.1.22.8)

//вид контактной информации (адрес партнера, адрес контрагента, телефон партнера и т.д.)
			 ВидКИ = Справочники.ВидыКонтактнойИнформации.ЮридическийАдресКонтрагента;
			 //тип контактной информации (Адрес, Телефон, ЭлектроннаяПочта)
			 ТипКИ = ВидКИ.Тип;
			 
			 //получение объекта XDTO по представлению контактной информации
			 ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOПоПредставлению("" + стр.Значение, ТипКИ);
			 ЗначенияПолей =
			 //преобразование объекта XDTO в xml
			 УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);
			 //запись контактной информации в табличную часть объекта
			 //ПартнерОбъект - тип СправочникОбъект.ИмяСправочника
			 УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(Объект, ЗначенияПолей, ВидКИ, ТипКИ);
Показать
16. echo77 1592 24.08.21 14:23 Сейчас в теме
(0) Дополните статью, пожалуйста - обратное преобразование из строки XML в структуру
17. baracuda 2 08.10.21 19:46 Сейчас в теме
Странно у меня почему то не работает

Телефон = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Пациент,Справочники.ВидыКонтактнойИнформации.ТелефонПациента,,Истина);
18. baracuda 2 08.10.21 19:52 Сейчас в теме
(17) опытным путем выяснил, что первым параметром передавать нужно не ссылку на объект, а сам объект.


Пациент =  СсылкаПрием.Пациент.ПолучитьОбъект();
	Телефон = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Пациент, Справочники.ВидыКонтактнойИнформации.ТелефонПациента, ,Истина);
21. Поручик 4595 27.12.21 12:57 Сейчас в теме
(18) Зачем опытным. В модуль глянуть никак было?
// Параметры:
//  СсылкаИлиОбъект - ОпределяемыйТип.ВладелецКонтактнойИнформации
//                  - СправочникОбъект
//                  - ДокументОбъект - ссылка или объект-владелец контактной информации (организация,
//                                      контрагент, партнер и т.д.).
Функция КонтактнаяИнформацияОбъекта(СсылкаИлиОбъект, ВидИлиТипКонтактнойИнформации = Неопределено, Дата = Неопределено, ТолькоПредставление = Истина) Экспорт
22. baracuda 2 05.01.22 10:11 Сейчас в теме
(21)
СсылкаИлиОбъект - ОпределяемыйТип.ВладелецКонтактнойИнформации


Вас не смущает имя Параметра СсылкаИлиОбъект?
23. quazare 2620 05.01.22 11:32 Сейчас в теме
(22) очевидно имеется ввиду типа такого

СсылкаНаОбъект.ПолучитьОбъект()
24. ogursoft 13.01.22 11:18 Сейчас в теме
А не подскажете, как запросом получить доб. телефон?
25. quazare 2620 13.01.22 16:07 Сейчас в теме
(24) сразу - не подскажу - поиграйтесь с запросом с учетом типа и вида контактной информации
26. SGordon1 10.02.22 16:45 Сейчас в теме
А где посмотреть как когда значениеполей перезаполняется при записи объектов ( партнеры) ? Информация перенесен, до записи на форме нет, После перезаписи объекта все презаполняется...
27. vadim1011985 91 16.03.22 22:20 Сейчас в теме
Была задача изменить тип Адреса с Административно-территориального деления на Муниципальное. Вручную не комильфо так как много объектов в результате родился следующий вариант.



    ВидКИ = Справочники.ВидыКонтактнойИнформации.АдресМестонахожденияОсновныеСредства;	 
    ТипКИ = Перечисления.ТипыКонтактнойИнформации.Адрес;
	
	ИсходныйАдрес = объект.ПредставлениеАдреса; // Представление адреса строкой. Тут важно что  формат адреса должен быть как для административно-территориального деления даже если необходимо муниципальное деление.    
	
	КонтактнаяИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(ИсходныйАдрес, ТипКИ); // Получаем КИ в формате JSON
	
	Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(КонтактнаяИнформация) Тогда 
		ЗначенияПолей = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(КонтактнаяИнформация, ТипКИ) // Преобразуем JSON в Структуру
Иначе
Возврат;
	КонецЕсли;
	
	Если Объект.ТипАдреса = 1 Тогда   // Объект.ТипАдреса - переключатель на форме в зависимости от значения выбирает нужный формат адреса 
		ЗначенияПолей.AddressType = РаботаСАдресамиКлиентСервер.МуниципальныйАдрес();  //AddressType - поле в струкутуре отвечающее за тип адреса
	ИначеЕсли Объект.ТипАдреса = 2 Тогда 	
		ЗначенияПолей.AddressType = РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес();
	Иначе
		ЗначенияПолей.AddressType = РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес();
	КонецЕсли;	
	
	РаботаСАдресамиКлиентСервер.ОбновитьПредставлениеАдреса(ЗначенияПолей, ВидКИ.ВключатьСтрануВПредставление); // после смены типа адреса необходимо обновить его представление  
	
	КонтактнаяИнформацияJSON =  УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(ЗначенияПолей);  // Обратное преобразование структуры в JSON   

УправлениеКонтактнойИнформациейСлужебный.ДобавитьКонтактнуюИнформацию(ИзменяемыйОбъект,КонтактнаяИнформацияJSON,ВидКИ,Неопределено,Истина); // записываем измененную КИ в объект

 
Показать
28. taasha25 13 10.11.22 19:24 Сейчас в теме
Здравствуйте!
А как найти Контактное лицо по Адресу электронной почты, может кто-то подскажет?
29. xKIA 22.11.22 20:06 Сейчас в теме
Не очень понятна логика заполнения JSON телефон, на мой взгляд должно быть:
value +7 (916) 123 45-67
areaCode 7
countryCode 916
number 1234567
То есть, знаки форматирования, только в представлении, а в разбивке на части только значащая информация. У вас же number: 123-45-67, почему тогда areaCode не +7, а countryCode (916) ?
Аналогично, в XML. Как всегда, в 1С не знают что делают и зачем.
Оставьте свое сообщение

См. также

Библиотека стандартных подсистем (Механизм БСП) Промо

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Конфигурации в 1С пишутся для пользователей и по их «правилам» (клиент всегда прав), поэтому в основном все конфигурации разные, но достаточно часто в них используются одни и те же объекты, которые незначительно отличаются друг от друга. Действительно, сложно представить конфигурацию, где не фигурировали бы такие сущности как номенклатура, контрагенты, пользователи, валюта. И некоторые задачи являются типичными: возможность базового разграничения прав, работа с электронной почтой, задачи пользователям и т.д. Но...!

03.03.2017    90689    V.Stavinsky    24    

Использование типовых возможностей 1С и их расширение. Часть 1

Инструкции пользователю БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Инструкция пользователю системы 1С:Предприятие по способам использования и расширения возможностей типовых конфигураций и их практической реализации.

29.10.2022    3897    ixijixi    7    

Почему нельзя использовать ТекущаяДата()

БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

ИТС и ИС не ответили исчерпывающе, поэтому написал данную заметку.

23.08.2022    7622    Патриот    56    

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    3527    quazare    8    

Оценка производительности с помощью БСП

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье будут рассмотрены базовые возможности подсистемы "Оценка производительности" в библиотеке стандартных подсистем.

30.06.2022    2920    quazare    8    

Нюансы использования расширений применительно к процедурам, исполняющимся методом ВыполнитьВФоне (БСП)

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

Несколько нюансов при использовании расширений применительно к процедурам, исполняющимся методом ВыполнитьВФоне (БСП)

08.06.2022    955    sergathome    27    

Разработка конфигурации на основе Библиотеки стандартных подсистем 3.1.6.245

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, также БСП позволит достичь большей стандартизации конфигураций. В данной статье кратко разберем внедрение БСП 3.1.6.245 на пустую конфигурацию.

06.06.2022    3389    user1432326    5    

Базовые принципы работы с регламентными заданиями подсистем БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В очередной публикации рассмотрим некоторые базовые приемы работы с регламентными заданиями в рамках библиотеки стандартных подсистем

22.05.2022    5061    quazare    24    

Шаблоны сообщений пользователю - подсистема БСП

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Бесплатно (free)

В данной небольшой статье рассмотрим практические примеры создания шаблонов сообщений пользователю и их отправки с помощью типового функционала библиотеки стандартных подсистем.

15.05.2022    5784    quazare    4    

Еще раз о дополнительных реквизитах и дополнительных сведениях

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Дополнительные реквизиты и сведения существуют давно. Задумка очень хорошая. Суть этих механизмов понятна всем. По этому поводу написано много. Что тут можно сказать нового? Однако бес, как всегда, в деталях. Как создавали реквизиты в объектах типовых конфигураций, так и продолжаем это делать. Почему это происходит? За всех сказать не могу. Могу рассуждать только на своем примере. Являясь убежденным практиком, одно могу сказать вполне определенно. Если что-то на практике недостаточно удобно, то останется оно главным образом в теории... Если не приложить немного усилий.

11.05.2022    6335    user1374747    17    

Модули общего назначения - готовые полезные функции и процедуры конфигураций на БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье я рассматриваю несколько полезных "классических" функций и процедур для работы с данными, которые уже встроены в БСП и готовы к использованию.

25.04.2022    7219    quazare    11    

Правила регистрации объектов 1С:БСП

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Здравствуйте, коллеги! В статье рассмотрим работу с правилами регистрации объектов в библиотеке стандартных подсистем 1С.

20.04.2022    5480    Koder_Line    8    

Многопоточный режим выполнения процедуры с помощью методов БСП - примеры разработки

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статья я рассмотрю примеры использования выполнения функций и процедур в многопоточном режиме, используя возможности Библиотеки стандартных подсистем (БСП).

01.04.2022    5309    quazare    14    

Необычное решение для хранения настроек внешней обработки

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

При написании внешней обработки, например для импорта данных из сторонней базы данных используя HTTP-сервисы, необходимо сохранять настройки соединения с HTTP. Подсказали оригинальный способ сохранения настроек с БД. При использовании "ХранилищеОбщихНастроек" все сильно зависит от прав пользователя. Чтобы читать настройки, сохраненные другим пользователем, необходимы права: "АдминистрированиеДанных". Как-то не хочется раздавать всем пользователям права администратора. Помогает БСП.

25.03.2022    1205    AlexeyRaevsky    7    

Получение контактной информации из отбора

Адаптация типовых решений Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Универсальная функция получения контактной информации из отбора компоновки данных. Весь код в статье.

25.03.2022    1487    ixijixi    0    

Стандартные подсистемы БСП - параметры работы клиента и возможности диалогов

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной небольшой статье рассмотрим обработку параметров работы клиента и режим диалога (выбора вопроса) модулей "стандартные подсистемы" БСП.

22.03.2022    4629    quazare    9    

Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)

БСП (Библиотека стандартных подсистем) Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Мы все любим 1С, не так ли? Вот дает 1С прекрасный механизм возможности модификации макетов печатных форм в БСП. А из всех рекомендаций это получение макета и заполнение параметров областей. И вы спросите: "А что не так... ты печатные формы накодить не можешь без указаний сверху?". Да вот в том то и дело, что я могу все. А вот пользователям от такого механизма пользы 0, если из всех доступных изменений остаются только шрифты, да текст произвольный накинуть. А ведь можно больше, надо только соблюдать несколько правил при подготовке печатных форм...

07.03.2022    7027    vandalsvq    0    

Как поженить типовой RLS и новый документ

БСП (Библиотека стандартных подсистем) Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Создание доступа на уровне записей (RLS) для нового документа средствами библиотеки стандартных подсистем (БСП).

02.02.2022    2301    serg61    4    

Управление доступом - как быстро доработать RLS (БСП)

БСП (Библиотека стандартных подсистем) Роли и права Платформа 1С v8.3 Управление правами Конфигурации 1cv8 Бесплатно (free)

Ранее в своей статье - https://infostart.ru/1c/articles/1535498/, подробно описывал по процессу доработки производительного RLS. Для оперативной доработки RLS может потребоваться значительного времени разбора процесса RLS. Для таких случае 1С в своей поставки БСП разработала удобный помощник для доработки производительного RLS (данная доработка не требует глубокого понимания RLS). Как я увидел, многие не знакомы с данной обработкой, поэтому в данной статье хочу рассказать про данную обработку и её возможности.

31.01.2022    4790    Shining_ninja    4    

Использование отчетов в конфигурациях на базе БСП 3.1.5 на примере 1С: Комплексная автоматизация 2.4

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Библиотека стандартных подсистем (БСП) постоянно развивается. Разработчики типовых конфигураций постепенно будут переходить на новую версию Библиотеки 3.1.5. Например, пользователи 1С: Комплексная автоматизация (КА) уже заметили некоторые интерфейсные изменения в новой редакции 2.5. При этом не все изменения очевидны. В частности, изменился интерфейс формирования и настройки отчетов. Для тех, кто при пользовании типовыми отчетами умеет больше, чем простое нажатие кнопки Сформировать, будет полезным ознакомиться с основными изменениями.

20.12.2021    1257    Sergey1CSpb    5    

Подключение функционала "Присоединенные файлы" для нового объекта (БСП)

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Управляемые формы 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Данная статья поможет добавить "скрепку", т.е. возможность пользоваться функционалом БСП для присоединения файлов к любому документу.

24.11.2021    13186    kalyuzhnyyp    25    

Профили управления доступом к объектам в любой конфигурации на БСП

БСП (Библиотека стандартных подсистем) Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье рассмотрим механизмы стандартного управления профилями доступа к объектам в любой типовой конфигурации, в основе которой лежит БСП.

17.11.2021    5048    quazare    5    

Журнал регистрации - основные методы работы через БСП

Журнал регистрации БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной небольшой статье я привожу практические примеры работы с журналом регистрации средствами и методами библиотеки стандартных подсистем.

11.11.2021    12318    quazare    15    

Базовые приемы работы с кластером 1С при помощи БСП

Администрирование СУБД БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной публикации я рассматриваю базовые приемы работы с кластером серверных баз 1С, используя типовые типовые возможности библиотеки стандартных подсистем (БСП).

26.10.2021    5246    quazare    7    

Подключение нового справочника к подсистемам БСП (дополнительные реквизиты, файлы, запрет редактирования)

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье я привожу пример подключения нового справочника к подсистемам БСП. Статья будет применима как к самописным конфигурациям на базе БСП, так и к типовым УТ, ERP, БП и прочим конфигурациям на базе БСП.

17.08.2021    5186    maraty    13    

Запуск Wscript.Shell и Shell.Application. Заметки

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

Некоторые примечания по работе с запуском приложений.

10.08.2021    7500    Yashazz    0    

Префиксация объектов - полезный типовой функционал БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бухгалтерский учет Управленческий учет Бесплатно (free)

В данной публикации предлагаю рассмотреть основные типовые возможности библиотеки стандартных подсистем (БСП), касаемые префиксации объектов конфигураций.

21.06.2021    8953    quazare    4    

Обзор полезных методов БСП 3.1.4. Часть 2

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

Библиотека стандартных подсистем (далее - БСП) является частью любой типовой конфигурации, поэтому умение применять готовые процедуры и функции повышает качество разработки и избавляет от написания лишнего кода. К сожалению, не у всех есть время и упорство овладеть всей документацией, поэтому я собрал воедино наиболее популярный функционал.

27.04.2021    28162    rayastar    8    

Обзор полезных методов БСП 3.1.4

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Библиотека стандартных подсистем (далее - БСП) является частью любой типовой конфигурации, поэтому умение применять готовые процедуры и функции повышает качество разработки и избавляет от написания лишнего кода. К сожалению, не у всех есть время и упорство овладеть всей документацией, поэтому я собрал воедино наиболее популярный функционал.

25.03.2021    74010    rayastar    55    

Печать макета MS Word в любом документе с помощью БСП

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье рассмотрим типовой функционал вывода на печать макетов печатных форм MS Word (*.docx) для любого документа конфигурации, основанной на библиотеке стандартных подсистем. Вариант клиент-серверный.

23.02.2021    12258    quazare    19    

Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье рассмотрим базовое применение методов вывода на печать макетов печатных форм с помощью БСП любых типовых или собственных документов.

17.02.2021    17992    quazare    20    

Генерация штрихкодов с помощью БСП для программистов

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Управленческий учет Бесплатно (free)

В данной публикации рассмотрим базовый функционал библиотеки стандартных подсистем (БСП) формирования штрихкодов для вывода на печать.

09.01.2021    19027    quazare    24    

Асинхронное выполнение длительных операций

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Демонстрация использования функционала БСП для выполнения длительных операций. Механизм может быть полезен, например, при загрузке/выгрузке больших объемов данных.

28.12.2020    2855    prog_mayskiyse    8    

Сохранение настроек

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Делюсь еще одним не самым очевидным способом хранения настроек в базах на БСП без доработки конфигурации. Весь код в статье.

22.11.2020    7993    ixijixi    8    

Дополнительные реквизиты формы (простой вариант взаимодействия)

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Платформа 1С v8.3 Россия Бесплатно (free)

Упрощаем взаимодействия с дополнительными реквизитами на форме с помощью фиксированного соответствия.

14.11.2020    3833    samvani    0    

Запуск почти любых процедур и функции конфигураций в асинхронном режиме - БСП - Длительные операции [Часть 2]

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье я привожу описание рекомендуемых 1С функций к использованию в работе с длительными операциями в рамках БСП.

30.10.2020    11172    quazare    5