Имя: Пароль:
1C
1С v8
Загрузка контактной информации в справочник контрагентов. (Бухгалтерия 3.0)
0 sx55
 
24.08.21
16:00
Здравствуйте гуру 1С, у меня вопрос.
Как при создании контрагента в базе 1С Бухгалтерия (Базовая), передать контактную информацию?

В табличной части элемента, есть таблица с именем "КонтактнаяИнформация". Она содержит колонки "Вид", "Тип", "Представление" и т.д.
Прямая запись не помогает.

Может кто помочь разобраться с данным вопросом?
1 1Сергей
 
24.08.21
16:03
>>Прямая запись не помогает.

Прямая это как? И что значит не помогает?
2 Garykom
 
гуру
24.08.21
16:03
>Может кто помочь разобраться с данным вопросом?

сколько платишь?
3 Garykom
 
гуру
24.08.21
16:04
(1) имхо Вид КИ и прочее незаполнил правильно
4 sx55
 
24.08.21
16:06
(1) - Запись значений в таблицу.
(2) - А что, в Ру сегменте за ответы на поставленные вопросы уже нужно платить?
5 1Сергей
 
24.08.21
16:07
(4) что-то не так делаете
6 Fish
 
24.08.21
16:07
(0) "Прямая запись не помогает." - показывай код, как делал. Должна помогать.
7 Garykom
 
гуру
24.08.21
16:07
(4) зависит от вопроса
8 agntosha
 
24.08.21
16:08
найди метод .. который туда данные кладет .. там структура с неких пор хитровыевые
9 Garykom
 
гуру
24.08.21
16:08
(8) структура это если методами из БСП
напрямую там все просто кроме адреса
10 agntosha
 
24.08.21
16:09
(9) там все равно есть поле которые хранит представлние в каком то неизвестном мне формаете ..ну точнее так какая то хмл разметка ..
так что проще как раз через бсп вызвать метод .. один вызов и все на место попадает
11 sx55
 
24.08.21
16:13
(8) - Пробовал следующее.

МойКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию("НаименованиеМоегоКонтрагента");
НовыйАдрес = "Тут реальный корректный адрес";
Вид = Справочники.ВидыКонтактнойИНформации.ЮрАдресКонтрагента;
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(МойКонтрагент, НовыйАдрес, Вид, ТекущаяДата(), Ложь);
12 Garykom
 
гуру
24.08.21
16:14
(11) гугли как адреса по фиасу добавлять
13 sx55
 
24.08.21
16:16
(12) - Спасибо, вы очень полезны, всего вам наилучшего.
14 agntosha
 
24.08.21
16:16
(11) я не знаю имени метода, когда мне был нужен я его там быстро нашел .. все добавляется хорошо ..
буквально на входе структура параметров , вид и куда .. а все остальное само делается ..
иначе там мозг взорвешь .. у них там особо головастые такое видимо делают
15 sx55
 
24.08.21
16:18
Как обычно, миста "помогла" ))))
Не трудитесь, завтра сам разберусь. Сегодня просто уже лень. ;)
16 agntosha
 
24.08.21
16:20
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(
ну да .. этот метод
17 agntosha
 
24.08.21
16:21
но не факт что адрес это добавляет)  короче ужас нах
18 sx55
 
25.08.21
13:37
Как и обещал, со всем разобрался. Вот рабочий код на примере установки/замены адреса электронной почты.


<!><!><!> Код актуален для БП3.0 <!><!><!>
>>> Код для добавления контактной информации:

Спр = Справочники.Контрагенты.Выбрать();
//Тут у меня цикл по всему справочнику.
        МойКонтрагент = Спр.ПолучитьОбъект();
        КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(МойКонтрагент,,ТекущаяДата(),Ложь);
        Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
        Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтрагенты;
        ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOПоПредставлению(АдресЭлектроннойПочты, Тип);
        ЗначенияПолей = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);
        УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(МойКонтрагент, ЗначенияПолей, Вид, Тип);


>>> Код для замены контактной информации:

        МойКонтрагент = Спр.ПолучитьОбъект();
        КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(МойКонтрагент,,ТекущаяДата(),Ложь);
        Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
        Вид = Справочники.ВидыКонтактнойИнформации.EmailКонтрагенты;
        ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOПоПредставлению(АдресЭлектроннойПочты, Тип);
        Для каждого ТекСтрока ИЗ КонтИнформация Цикл
            Если Строка(ТекСтрока.Вид) = "Email" Тогда
                ТекСтрока.Представление = АдресЭлектроннойПочты;
                ТекСтрока.ЗначенияПолей = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);
                УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(МойКонтрагент, КонтИнформация);
            КонецЕсли;
        КонецЦикла;

<!><!><!> Ну и не забываем записать изменения в элемент справочника. <!><!><!>
МойКонтрагент.Записать();

p.s. На будущее тем, кто будет искать ответ на подобные вопросы, а то на мисте море ЧСВ-шников последнее время развелось, а простой ответ на простой вопрос дать не могут. XD
19 ДенисЧ
 
25.08.21
13:46
Как бЭ... В модули *Служебный 1с не рекомендует лазать. И вызывать их снаружи тоже. Потому что это внутренняя кухнЯ, которая всегда может измениться.
20 sx55
 
25.08.21
13:51
(19) - Не флуди.
21 ildary
 
25.08.21
13:54
(20) Вы с дуба упали? Вам полезный совет дают (но похоже что зря).
22 d4rkmesa
 
25.08.21
14:21
(18) В XML значения полей уже не кошерно хранить, лучше в json. И КонтактнаяИнформацияXDTOПоПредставлению работает нормально, скорее всего, только для простых случаев, навроде адресов email. Потому вопросы и задавали, что не все там так просто.
23 Garykom
 
гуру
25.08.21
14:45
(18) наконец то нагуглил https://forum.infostart.ru/forum8/topic153140/ да?
24 sx55
 
25.08.21
14:59
(23) - А тебе в падлу было сразу дать ссылку, ну или правильный ответ дать в данной ветке? Фу таким быть. Вот за это, я русскоязычные форумы и не люблю, одни Д'Артаньяны, а по делу сказать, религия не позволяет. Тфу на вас.
25 Garykom
 
гуру
25.08.21
15:07
(24) настоящий 1С всегда жадный
26 Garykom
 
гуру
25.08.21
15:07
(25) *настоящий 1Сник
27 sx55
 
25.08.21
15:29
(25)
На заданный вопрос ты дал ответ? (НЕТ)
Ты предоставил ссылку на похожий ответ? (НЕТ)
Сопли пузырём, пальцы веером? (ДА)

1С, для меня лишь хобби, т.к. вы 1СнЫки, в край обозрели. За обновление типовой базы 1С баз, с пользователей трясёте 1800 руб/час (всем франчайзерам 1С, ковыряющим у себя в ... при обновлении, привет!), за написание обработки, от 2000 руб/час, до (фантазия разработчика).
Я же, за обновление любой стандартной базы, которая не обновлялась (любое количество времени), всего 500 рублей.
За написание обработки, я беру лишь символические 1000 рублей. (А то и даром.)

p.s. А ещё, я пишу так называемые "кряки", которые позволяют не покупать лицензии от 1С. (Ну, то такое, чисто по фану.)
28 ДенисЧ
 
25.08.21
15:30
"Я же, за обновление любой стандартной базы, всего 500 рублей"

Лох должен страдать, что желать.
29 sx55
 
25.08.21
15:33
(25) -Ты он и есть. ^_^
30 sx55
 
25.08.21
15:34
Всем удачи, тема закрыта, а то знаю я вас, только трепать языком можете. ;)
Независимо от того, куда вы едете — это в гору и против ветра!