Получить контактную информацию контрагента 1с
Функция ПолучитьКонтактнуюИнформацию(Объект,Параметр)
СтрВозврата = "";
Для Каждого СтрКИ ИЗ Объект.КонтактнаяИнформация Цикл
Если СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон И Параметр = "Телефон" Тогда
СтрВозврата = СтрКИ.Представление;
Прервать;
ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Параметр = "Адрес" Тогда
СтрВозврата = СтрКИ.Представление;
Прервать;
ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Параметр = "ПочтовыйАдрес" Тогда
ВКИ=Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Почтовый адрес");
Если СтрКИ.Вид=ВКИ Тогда
СтрВозврата = СтрКИ.Представление;
Прервать;
КонецЕсли;
ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты И Параметр= "АдресЭП" Тогда
СтрВозврата = СтрКИ.Представление;
Прервать;
ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Факс И Параметр = "Факс" Тогда
СтрВозврата = СтрКИ.Представление;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат СтрВозврата;
КонецФункции
Вызывает сомнение выбор "Почтовый адрес"
Может как то можно более элегантно сделать?
(0) это что, шутка такая?
А все остальное не вызывает сомнений?
Наверное все можно получить 1 запросом.
В SQL так бы и сделал.
Я не понимаю, как соединить контрагенты и контрагенты.контактнаяинформация
Может не так гуглил, но ничего не нашел.
Про получение контактной информации выборкой есть, но везде контактная информация в регистре сведений. А в БУ она табличная часть контрагента.
Подскажите запрос.
дополню (1) и ни в коем случае не используй штатный функционал конфигурации
(4) Я знаю, что я плохо знаю 1С.
В (1) хотя бы намек был на выборку.
Но уж больно для меня они необычны)
Пытаюсь разобраться.
А вот что за штатный функционал мне может помочь, даже не догадываюсь.
(9) Спасибо. Вот она прелесть открытого кода)
Ищет.
(8) Спасибо.
(7) Это наверное частность. Но буду знать. Спасибо)
(6) с SQL знаком. И с Linq знаком. А вот с взаимодействием объектов 1С. пока не понимаю.
КонтактнаяИнформация - Ну по идее FK должен быть.
Но как я только не подставлял, не искал, сплошь ошибки.
Что то косячу с непривычным синтаксисом.)))
и
ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресКонтрагента))
Глядя на структуру Справочник.ВидыКонтактнойИнформации. понимаю, что я ничего не понимаю!
Видимо это какие то предопределенные записи?
Я ни как не могу научиться думать по 1С. Мыслю таблицами, или объектами. Но тут как то своеобразно(
Подскажите, как увидеть весь список предопределенных значений Справочник.ВидыКонтактнойИнформации
Преимущества использования консоли запросов в любой задаче Программиста 1С
В 1с Предприятии запустим обработку "Консоль запросов". консоль позволяет конструировать и отлаживать запросы прямо в режиме 1с Предприятие, без Конфигуратора. Это очень полезно. Любые разработки я начинаю с тестирования данных с помощью запросов. Это позволяет решить сразу несколько задач:
- Получить выборки данных по интересующим меня критериям
- Отладить запрос, сделать его рабочим, выполняющим возложенную задачу
- Быть уверенным в работе запроса, что он получает нужные данные от Базы Данных.
- Быть уверенным, что в базе данных нужные данные содержатся. Бывает так, что запрос работает, а данных для него просто нет. Вот такие ситуации сразу отслеживаются.
- После отладки запроса его можно сразу применить в отчете, модуле, в конфигураторе.
Отладка запросов и получение данных в режиме 1с Предприятие
Итак, в консоли запросов я создаю новую строку, запускаю конструктор запросов (в последнее время иногда пишу руками - так проще) и формирую текст запроса. После задания параметров запроса прямо в консоли запросов, его можно выполнить и получить таблицу-результат.
1. Запрос по юридическим и фактическим адресам Контрагентов.jpg В результатах запроса мы видим таблицу с колонками "Контрагент", "Тип", "Вид", "Адрес". |
1.1. Запрос по юридическим и фактическим адресам - Параметры запроса |
Текст запроса ( УБРАЛ параметры, как просили комментаторы статьи ):
2. Запрос по телефонам физических лиц |
2.1. Запрос по телефонам физических лиц - параметры запроса |
Текст запроса ( УБРАЛ параметры, как просили комментаторы статьи ) :
3. Запрос Юр. и Факт. адрес контрагента + телефон |
3.1. Параметры Запроса Юр. и Факт. адрес контрагента + телефон |
Текст запроса ( УБРАЛ параметры, как просили комментаторы статьи ) :
4. Запрос Юр. Факт. Адрес Контрагента + телефон + Почт. Адрес |
Текст запроса ( УБРАЛ параметры, как просили комментаторы статьи) :
Оформление запроса в виде отчета в консоли СКД
После этого запрос можно красиво оформить в виде отчета в Конфигураторе и предоставить в пользование. Чаще всего, я пользуюсь СКД (Система кмпоновки данных), для оформления простых запросов в виде отчетов. Я зашел в конфигуратор, написал простейший отчет на СКД, с использованием запроса, описанного выше.
Контактная информация корреспондентов
Как устроен справочник корреспонденты и его контактная информация
Справочник Корреспонденты содержит в себе основные и вспомогательные реквизиты, а также таблицы контактной информации и дополнительных реквизитов. Весьма важным реквизитом корреспондента является Вид корреспондента , который может принимать такие значения как "Юридическое лицо", "Физическое лицо", "Индивидуальный предприниматель" и "Юридическое лицо за пределами РФ". В зависимости от вида, у корреспондента меняются определенные реквизиты, контактная информация и контактные лица.
Таблица справочника Контактная информация хранит в себе всю контактную информацию по корреспонденту в виде ссылки на свойство (это значение отдельного справочника "Вид контактной информации") и значения этого свойства. Таким образом, всю контактную информацию о корреспонденте можно получить из данной таблицы.
Сами виды контактной информации задаются в справочнике Виды контактной информации в разделе Нормативно-справочная информация . В нем есть предопределенные элементы, такие как Email, "Телефон", "Почтовый адрес" и пр. Но пользователи могут добавлять и свои элементы. При этом важным реквизитом вида контактной информации является "Тип", который может принимать один из шести значений: "Адрес", "Телефон", "Адрес электронной почты", "Веб-страница", "Факс" и "Другое". В зависимости от этого типа, программа понимает, как обрабатывать поле данного типа в карточке корреспондента. Например, для типа "Адрес" автоматически подключается адресный классификатор, а для "Телефона" специальная форма ввода телефонов.
Виды контактной информации справочника Корреспонденты :
У справочника Корреспонденты есть подчиненный справочник Контактные лица , который содержит контактные данные контактных лиц корреспондента, например, мобильный телефон директора или электронную почту менеджера. Контактная информация контактных лиц также содержится в одноименной таблице справочника.
Получение контактной информации корреспондента
Рассмотрим примеры получения контактной информации по корреспонденту.
Данный запрос вернет таблицу всей контактной информации искомого корреспондента.
Получение контактной информации по корреспонденту и всем его контактным лицам
Данный код вернет таблицу всей контактной информации искомого корреспондента и всех его контактных лиц:
Получение контактной информации с помощью стандартных процедур
Помимо запросов, описанных выше, для работы с контактной информацией в программе можно воспользоваться и стандартными процедурами и функциями. Все такие процедуры расположены в общих модулях УправлениеКонтактнойИнформациейКлиентСервер , УправлениеКонтактнойИнформацией , УправлениеКонтактнойИнформациейКлиент .
Например, рассмотрим следующую функцию:
Функция получает значение "Телефона" и "Email адреса" корреспондента. При этом основана она на общей функции УправлениеКонтактнойИнформацией.ПолучитьКонтактнуюИнформацияОбъекта (Ссылка, ВидКонтактнойИнформации) , с помощью которой можно получить любой тип контактной информации по любому объекту, содержащем контактную информацию.
Также полезной может быть функция КонтактнаяИнформацияОбъектов (МассивОбъектов, ТипыКИ = Неопределено, ВидыКИ = Неопределено) — предназначена для получения контактной информации для нескольких объектов.
У правлениеКонтактнойИнформациейКлиентСервер. СформироватьПредставлениеАдреса(СтруктураАдреса, Представление, НаименованиеВида = Неопределено) — формирует представление контактной информации с видом для формы ввода адреса.
Вывод контактной информации в отчет
Контактную информацию также можно выводить в отчеты СКД. Например, в типовой конфигурации есть отчет "Договоры", в котором есть вариант "Договоры с истекающим сроком действия". В нем выводится контактная информация контакта корреспондента, указанного в документе. Посмотрим "листинг скд запроса":
Как видно из запроса, с помощью левого соединения с таблицей Контактной информации справочника Контактные лица мы получаем "Телефон" и "Email адрес" контакта. Применяя подобный метод, мы можем получать и любую другую контактную информацию, как контактных лиц, так и самого корреспондента. Например, можно в отчет вывести юридический адрес корреспондента:
Комбинируя приведенные выше методы можно найти широкое применение контактной информации объектов системы. Например, контактную информацию можно выводить в отчеты или использовать для автозаполнения шаблонов файлов. Также можно добавлять ее в превью документов, либо выводить в динамические списки объектов.
Рассмотрена подсистема Контактная информация из библиотеки стандартных подсистем (БСП) 3.1.3.
Примеры приведены на конфигурации Управление торговлей 11.4.13.
В пользовательском режиме
Виды контактной информации
Виды контактной информации настраиваются в разделе НСИ и администрирование -> Общие настройки -> Контактная информация -> Виды контактной информации:
Здесь перечислены те объекты, у которых можно добавлять контактную информацию и возможные виды для каждого объекта:
С помощью стрелок можно регулировать последовательность расположения контактной информации:
Также можно создать новый вид контактной информации:
Для каждого вида нужно указать тип контактной информации. Всего есть 7 типов:
- Адрес
- Телефон
- Адрес электронной почты
- Skype
- Веб страница
- Факс
- Другое
Настройки видов контактной информации
Большинство настроек понятны из названия, рассмотрим основные:
Для адреса можно ввести произвольный комментарий, а также показать адрес на гугл или яндекс картах:
Контактную информацию можно выводить в формах списка или в отчетах через поле Ссылка. Для этого нужно выбрать в меню Еще -> Изменить форму и добавить нужную контактную информацию:
В конфигураторе
Получение контактной информации
Для получения контактной информации объекта можно использовать функцию ПредставлениеКонтактнойИнформацииОбъекта из общего модуля УправлениеКонтактнойИнформацией. Данная функция вернет контактную информацию в виде строки:
Читайте также: