|
Выбрать контактную информацию контрагента | ☑ | ||
---|---|---|---|---|
0
asdor
16.04.16
✎
10:44
|
Требуется из Бухгалтерия предприятия, редакция 3.0 (3.0.43.174) УФ во вне передать контрагента.
В том числе Контактную информацию. Собираю контактную инфу след. образом Функция ПолучитьКонтактнуюИнформацию(Объект,Параметр) СтрВозврата = ""; Для Каждого СтрКИ ИЗ Объект.КонтактнаяИнформация Цикл Если СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон И Параметр = "Телефон" Тогда СтрВозврата = СтрКИ.Представление; Прервать; ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Параметр = "Адрес" Тогда СтрВозврата = СтрКИ.Представление; Прервать; ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Параметр = "ПочтовыйАдрес" Тогда ВКИ=Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Почтовый адрес"); Если СтрКИ.Вид=ВКИ Тогда СтрВозврата = СтрКИ.Представление; Прервать; КонецЕсли; ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты И Параметр= "АдресЭП" Тогда СтрВозврата = СтрКИ.Представление; Прервать; ИначеЕсли СтрКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Факс И Параметр = "Факс" Тогда СтрВозврата = СтрКИ.Представление; Прервать; КонецЕсли; КонецЦикла; Возврат СтрВозврата; КонецФункции Вызывает сомнение выбор "Почтовый адрес" Может как то можно более элегантно сделать? |
|||
1
ДенисЧ
16.04.16
✎
10:58
|
Самое главное - никогда не используй запрос!
|
|||
2
SadrArt
16.04.16
✎
11:10
|
(0) это что, шутка такая?
>Вызывает сомнение выбор "Почтовый адрес" А все остальное не вызывает сомнений? |
|||
3
asdor
16.04.16
✎
19:12
|
(1) Понял)
(2) Теперь вызывает)) Увы слабо знаком с 1С Наверное все можно получить 1 запросом. В SQL так бы и сделал. А в 1С очень редко работаю. Новичек, и то громко будет) Я не понимаю, как соединить контрагенты и контрагенты.контактнаяинформация Может не так гуглил, но ничего не нашел. Про получение контактной информации выборкой есть, но везде контактная информация в регистре сведений. А в БУ она табличная часть контрагента. Подскажите запрос. |
|||
4
Звездец
16.04.16
✎
19:15
|
дополню (1) и ни в коем случае не используй штатный функционал конфигурации
|
|||
5
asdor
16.04.16
✎
19:20
|
(4) Я знаю, что я плохо знаю 1С.
В (1) хотя бы намек был на выборку. (Я понимаю, для профи 1С выборки 1С как родные))) Но уж больно для меня они необычны) Пытаюсь разобраться... А вот что за штатный функционал мне может помочь, даже не догадываюсь. Подскажите. |
|||
6
hhhh
16.04.16
✎
19:23
|
(3) соединять не надо. Вообще-то
контрагент это КонтактнаяИнформация.Ссылка с SQL вообще не знаком? |
|||
7
Cyberhawk
16.04.16
✎
19:26
|
Вот это ВКИ=Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Почтовый адрес");
Замени на ВКИ = ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресКонтрагента") |
|||
8
Звездец
16.04.16
✎
19:28
|
(5) в общих модулях БП есть функции, возвращающие контактную информацию. Их и используй
|
|||
9
RomanYS
16.04.16
✎
19:29
|
(5) "А вот что за штатный функционал мне может помочь, даже не догадываюсь"
Если запустить поиск по конфигурации ".КонтактнаяИнформация", то с большой вероятностью найдешь в общих модулях нужную функцию |
|||
10
asdor
16.04.16
✎
19:44
|
(9) Спасибо. Вот она прелесть открытого кода)
Ищет. (8) Спасибо. (7) Это наверное частность. Но буду знать. Спасибо) (6) с SQL знаком. И с Linq знаком. А вот с взаимодействием объектов 1С... пока не понимаю. Если брать обычные реляционные данные Контрагент - у него есть РК КонтактнаяИнформация - Ну по идее FK должен быть. Но как я только не подставлял, не искал, сплошь ошибки. Что то косячу с непривычным синтаксисом.))) |
|||
11
b_ru
16.04.16
✎
20:06
|
>>Контрагент - у него есть РК
>>КонтактнаяИнформация - Ну по идее FK должен быть. Поле Ссылка в одной и в другой таблице. |
|||
12
asdor
17.04.16
✎
10:01
|
В результате изучения найденного кода, сочинил такую хрень)
"ВЫБРАТЬ | EmailКонтрагенты.Представление КАК Email, | ПочтовыйАдрес.Представление КАК ПочтовыйАдрес, | Контрагенты.Наименование КАК Наименование |ИЗ | Справочник.Контрагенты КАК Контрагенты | Левое СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК EmailКонтрагенты | ПО Контрагенты.Ссылка = EmailКонтрагенты.Ссылка | И (EmailКонтрагенты.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailКонтрагенты)) | Левое СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК ПочтовыйАдрес | ПО Контрагенты.Ссылка = ПочтовыйАдрес.Ссылка | И (ПочтовыйАдрес.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресКонтрагента)) |ГДЕ | (Контрагенты.Ссылка = &ПараметрТекущийОбъект)"; Оно конечно работает. Но хоть убей не пойму. Откуда взять ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailКонтрагенты)) и ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресКонтрагента)) Глядя на структуру Справочник.ВидыКонтактнойИнформации... понимаю, что я ничего не понимаю! Видимо это какие то предопределенные записи? Я ни как не могу научиться думать по 1С. Мыслю таблицами, или объектами. Но тут как то своеобразно( Подскажите, как увидеть весь список предопределенных значений Справочник.ВидыКонтактнойИнформации Хотелось бы понимать написанное. |
|||
13
hhhh
17.04.16
✎
10:06
|
правой кнопкой мыши щелкаешь по справочнику, выбираешь Открыть предопределенные данные
|
|||
14
asdor
17.04.16
✎
10:17
|
(13) Твою туда-сюда))) Спасибо))) Как все просто.
А я как дурак, циклом их перебирал, и выписывал нужные))) |
|||
15
Звездец
17.04.16
✎
10:23
|
Вот так всю жизнь и будешь велосипеды не едущие делать
|
|||
16
asdor
17.04.16
✎
10:25
|
(15) А что не так?
Вроде пока едет ) Профи виднее, может колесо восьмеркой?))) |
|||
17
asdor
17.04.16
✎
10:29
|
(8) Кажется понял. Это об этом?
Ну не смог найти такую функцию. Код подсмотрел, в общем разобрался. А вот что бы прямо функцию... увы, не получилось. |
|||
18
xReason
17.04.16
✎
13:35
|
Используй УправлениеКонтактнойИнформацией. КонтактнаяИнформацияОбъекта(Ссылка, ВидКонтактнойИнформации = Неопределено, , Дата = Неопределено)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |