Имя: Пароль:
1C
1С v8
Заполнение контактной информации контрагента
,
0 ДЕнЕнЕн
 
26.10.16
11:18
Привет всем кто заглянул. Помогите нубу понять в чем причина. В модуле справочника контрагенты есть следующий код:

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

НомерТелефона = "89999999999";
        
Объект.НаименованиеПолное = НомерТелефона;
Объект.Комментарий = НомерТелефона;
        
ВидКИ = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
        
НовыйТелефон = Объект.КонтактнаяИнформация.Добавить();
НовыйТелефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НовыйТелефон.Вид = ВидКИ;
НовыйТелефон.Представление = НомерТелефона;
НовыйТелефон.ЗначенияПолей = "НомерТелефона="+СокрЛП(НомерТелефона);
НовыйТелефон.НомерТелефона = НомерТелефона;
НовыйТелефон.НомерТелефонаБезКодов = НомерТелефона;


При создании контрагента заполняются номером "89999999999" только поля "Заметки" и "Компания". Поле Контактной информации "Телефон" ни как не хочет заполняться.
Отдельно если написать: Объект.НомерТелефона = НомерТелефона также ничего не заполняет. Пожалуйста помогите понять в чем причина.
1 Базис
 
naïve
26.10.16
11:20
В какую таблицу ты пишешь и из какой таблицы ожидаешь увидеть?
Как они связаны?
2 ДЕнЕнЕн
 
26.10.16
11:45
Не совсем понял вопрос про таблицы. Цель всего этого следующая - есть форма создания контрагента, прописав Объект.Комментарий = "111"; в Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) я могу автоматически заполнить поле "Заметка" когда создаю контрагента в режиме предприятия. А если прописать Объект.НомерТелефона = "111" то поле "Телефон" не заполняется.
Нашел в гугле что поле "Телефон" нужно заполнять примерно следующим образом:
НомерТелефона = "89999999999";
Объект.КонтактнаяИнформация.Добавить();
Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
Представление = НомерТелефона;
ЗначенияПолей = "НомерТелефона="+СокрЛП(НомерТелефона);
НомерТелефона = НомерТелефона;
НомерТелефонаБезКодов = НомерТелефона;
3 ДЕнЕнЕн
 
26.10.16
11:46
Но и в этом случае поле "Телефон" не заполняется.
4 Fish
 
26.10.16
11:48
(2) А ты в каком месте процедуры этот код пишешь? До или после вызова обработчика подсистемы "Контактная информация"?
5 Базис
 
naïve
26.10.16
11:50
(2) Перечитай (1) до понимания. Не гугли, подумай сам. В конфигураторе посмотри структуру данных и сформулируй, что куда ты хочешь писать.
6 ДЕнЕнЕн
 
26.10.16
12:16
Я так понимаю что я заполняю реквизит "НомерТелефона" Табличной части справочника "Контрагенты"
7 ДЕнЕнЕн
 
26.10.16
12:17
В самом начале процедуры ПриСозданииНаСервере
8 ДЕнЕнЕн
 
26.10.16
12:22
В форме создания Контрагента нет поля "Телефон" по аналогии с полем "Заметка" путь к данным в котором указан ОбъектКоментарий. Но есть команда ДобавитьКонтактнуюИнформациюКонтрагента.
9 Базис
 
naïve
26.10.16
12:32
В какой таблице есть поле "НомерТелефона"?
10 shadow_sw
 
26.10.16
12:40
контактная информация всегда хранилась в РС, в карточке контрагента выглядит как ТабЧасть, так что нужно писать НаборДвижений
11 Базис
 
naïve
26.10.16
12:48
(10) Молодец, правильно. Но (0) так и не научится. Теперь следи за его вопросами и разжёвывай :)
12 shadow_sw
 
26.10.16
12:49
(11) типа давай зачетку 5 :))
я(0) вроде как все пояснил, ничего сложного тут нет
13 Мойдодыр
 
26.10.16
12:51
запиши руками из формы и посмотри что там лежит
14 Мойдодыр
 
26.10.16
12:52
Там какой то жесткий xml лежит в значениях полей
15 Fish
 
26.10.16
13:08
(10) (11) Уже нет. В конфигурациях на БСП контактная информация хранится в ТЧ объекта.
16 ДЕнЕнЕн
 
26.10.16
13:24
(9) В таблице КонтактнаяИнформация?
17 ДЕнЕнЕн
 
26.10.16
13:38
(10) Не могли бы вы рассказать подробнее или ткнуть меня носом в какую нибудь статью по этой теме. Если честно я ничего не понимаю.
18 Fish
 
26.10.16
13:39
(17) Давай сначала. Что за конфигурация? Используется БСП или нет?
19 catena
 
26.10.16
13:41
в (1) правильный вопрос был. Код не ругается, значит ТЧ такая у объекта есть. Теперь вопрос, где результат смотрят, что не видят.
20 ДЕнЕнЕн
 
26.10.16
13:51
(18) Используется УНФ 1.6.2.20
Проверил на УНФ 1.4.8.7, там все работает нормально - я нажимаю создать контрагента и поле номера телефона там заполняется тем что я указал в кавычках
21 newbling
 
26.10.16
13:54
Контактная информация часто меняется. Помню одно время они пытались XDTO пакеты к ней прикрутить. Вообще тихий ужас.

Тебе надо сначала понять что там такое этот телефон - реквизит ли он табличной части или может он отображается как набор записей регистра, например.
22 ДЕнЕнЕн
 
26.10.16
14:04
(19) Я хочу заполнить поле "Телефон" при создании контрагента.
http://screenshot.ru/upload/image/ZTwh
23 ДЕнЕнЕн
 
26.10.16
14:12
(21) В форме справочника нет поля "Телефон" Но есть команда ДобавитьКонтактнуюИнформациюКонтрагента, из этого я делаю вывод что мне нужно заполнять именно контактну информацию контрагента. В 1.4.8.7 все также и там все работает.
http://screenshot.ru/upload/image/ZTwy
Поправьте если я что то не так понимаю.
24 Lexey_
 
26.10.16
14:17
(23) а почему ты делаешь вывод на основании имени команды, а не на основании кода, который она выполняет?
25 ДЕнЕнЕн
 
26.10.16
14:55
(21) "Тебе надо сначала понять что там такое этот телефон - реквизит ли он табличной части или может он отображается как набор записей регистра, например."
Вы не подскажите как мне это выяснить?
26 ДЕнЕнЕн
 
26.10.16
15:02
(24) Дело в том что в форме справочника на месте где должно быть поле "Телефон" есть только "+телефон, адрес" который ссылается на "ДобавитьКонтактнуюИнформациюКонтрагента"
http://screenshot.ru/upload/image/ZTBb
Да и в этом блоке "Компания" есть "КонтактнаяИнформация".
27 ДЕнЕнЕн
 
26.10.16
15:06
(18) БСП как я понял используется
28 Мойдодыр
 
26.10.16
15:13
Ты уже посмотрел, что в тч у ручных контрагентов пишется?
29 ДЕнЕнЕн
 
26.10.16
15:29
(28) Я так понимаю что вы рекомендуете мне добавить контрагента и заполнить необходимые мне поля руками, это сделано. А вот не могли бы вы уточнить где я могу посмотреть в каком месте и какие записи лежат?
30 Базис
 
naïve
26.10.16
15:45
Консоль запросов, select * from Справочник.Контрагенты where Справочник.Контрагенты.Код = "123"
31 Мойдодыр
 
26.10.16
15:53
(30) Только нужно
32 Мойдодыр
 
26.10.16
15:53
from Справочник.Контрагенты.КонтактнаяИнформация
33 ДЕнЕнЕн
 
27.10.16
15:22
(30) Спасибо за подсказку такого удобного инструмента, я и не подозревал о его существовании.
(31) Заполнил нужное мне поле руками, создал контрагента, после чего сделал запрос и выяснил что заполнив его я заполнил КонтактнуюИнформацию. Значением номера заполняются поля "Представление", "НомерТелефона" и "НомерТелефонаБезКодов". Поле "Вид" имеет значение - http://screenshot.ru/upload/image/ZTfq
Поле "Тип" - http://screenshot.ru/upload/image/ZTfv

Я так понимаю что я заполнял то что нужно. Но автоматическое заполнение все равно не работает.
34 Базис
 
naïve
27.10.16
15:40
Уже лучше. Теперь думай - ты создал контакт. Хочешь, чтобы он был виден у всех контрагентов?
35 ДЕнЕнЕн
 
27.10.16
15:47
(34) Для начала мне бы просто научиться заполнять данное поле чем то в кавычках "" а потом можно и присваивать ему переменные значения которых можно менять в коде как душе угодно и тд и тп.
Так что да, сейчас мне бы хотелось чтобы один контакт был на всех создаваемых контрагентов.
36 Мойдодыр
 
27.10.16
15:48
вот такой xml тебе нужно писать в реквизит ЗначениеПолей
37 Базис
 
naïve
27.10.16
15:50
(35) Противоестественное желание, которое не укладывается в реализованную структуру данных.

Упростим ситуацию:
Ты хочешь, чтобы один номер телефона был у всех твоих женщин?
38 Мойдодыр
 
27.10.16
15:57
УправлениеКонтактнойИнформацией.ЗаполнитьКонтактнуюИнформациюОбъекта
39 ДЕнЕнЕн
 
28.10.16
11:24
(36) Теперь все заполняю так:
Процедура ПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
НомерТелефона = "89999999999";
Объект.НаименованиеПолное = НомерТелефона;
Объект.Комментарий = НомерТелефона;
ВидКИ = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
        
НовыйТелефон = Объект.КонтактнаяИнформация.Добавить();
НовыйТелефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НовыйТелефон.Вид = ВидКИ;
НовыйТелефон.Представление = НомерТелефона;
НовыйТелефон.ЗначенияПолей = "<КонтактнаяИнформация 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=""НомерТелефона"" КодСтраны="""" КодГорода="""" Номер="""+НомерТелефона+""" Добавочный=""""/></КонтактнаяИнформация>";
НовыйТелефон.НомерТелефона = НомерТелефона;
НовыйТелефон.НомерТелефонаБезКодов = НомерТелефона;

Но все равно нет ожидаемого результата, номер телефона не заполняется при создании контрагента.
40 ДЕнЕнЕн
 
28.10.16
11:28
(37) Не совсем удачный пример вы привели.
Допустим можно средствами activex получить номер телефона звонящего из АТС и отправить его в 1С. Допустим номер звонящего в 1С будет присвоен какой то переменной "НомерТелефона". Возможностей много.
41 Базис
 
naïve
28.10.16
12:03
Ничо так студент пошёл.
Ну, расскажи, какие у МЕНЯ трудности. Астериск читает номер, в базу его опа, сперва проверяем по стоплисту, потом ищем в индексированной ТЗ, находим - видим, чей клиент, если этот менеджер не занят, то просим астериск отправить звонок менеджеру, открываем у него же документ и подбираем клиента.

Да, это на древней 1С77.

Но тебе достаточно понять, как связаны контактные данные и один контрагент.
42 ДЕнЕнЕн
 
28.10.16
13:09
(41) Не понимаю к чему вы мне это говорите. На профессионала в какой то области я не претендую. И работу астериска обсуждать не хочу, я хочу узнать почему не работает код который я написал, хотя по логике все должно работать. К примеру в 1.4.8.7 все работает.

"Но тебе достаточно понять, как связаны контактные данные и один контрагент."
Не могли бы вы подсказать конкретнее как мне это понять, где почитать?
43 ДЕнЕнЕн
 
31.10.16
16:56
(38) Не подскажите как пользоваться?
44 MaxS
 
31.10.16
17:00
Бывает, что нужно дублировать информацию у партнера
45 newbling
 
31.10.16
17:05
(37) > Ты хочешь, чтобы один номер телефона был у всех твоих женщин?

Для некоторых частных случаев такая архитектура подходит :D
46 newbling
 
31.10.16
17:07
(23) Ну а код-то какой.
47 ДЕнЕнЕн
 
31.10.16
17:15
(44) это УНФ, тут нет партнеров, только контрагенты и контактные лица
48 Мимохожий Однако
 
31.10.16
17:39
(43) Включи отладчик и поставь точку останова в начале этой процедуры. Дальше иди по шагам и изучай.
49 СамыйУмный
 
31.10.16
17:50
Если на БСП то вот
ТвойПользователь.КонтактнаяИнформация.Найти(Справочники.ВидыКонтактнойИнформации.МобильныйТелефонПользователя,"Вид").Представление
50 ДЕнЕнЕн
 
01.11.16
10:52
(48) Ее нужно вызывать из модуля справочника Контрагенты? из ПриСозданииНаСервере? Куда в эту процедуру добавлять необходимое мне значение?