|
Заполнение электронного адреса программно | ☑ | ||
---|---|---|---|---|
0
yyyuuu
01.11.18
✎
03:25
|
Здравствуйте.
1С:Предприятие 8.3 (8.3.12.1595) Зарплата и управление персоналом, редакция 3.1 (3.1.8.113) Программно хочу заполнить вкладку личные данные в карточки сотрудника а именно электронный адрес. Сообщить(ИмяФамилия); Сотрудники123 = Справочники.ФизическиеЛица.НайтиПоНаименованию(НайденныйСотрудник).ПолучитьОбъект(); КонтактнаяИнформация = Сотрудники123.КонтактнаяИнформация.Добавить(); КонтактнаяИнформация.Вид = Справочники.ВидыКонтактнойИнформации.EmailПользователя; КонтактнаяИнформация.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; КонтактнаяИнформация.Представление = Майл; КонтактнаяИнформация.ЗначенияПолей = Майл; КонтактнаяИнформация.ДоменноеИмяСервера = "@mail"; КонтактнаяИнформация.АдресЭП = майл; Сотрудники123.Записать(); В карточке сотрудника в физическом лице пусто. Но если обратится запросом то вижу что адреса присвоились. Почему в интерфейсе невижу, или что то делаю не так? ВЫБРАТЬ ФизическиеЛицаКонтактнаяИнформация.АдресЭП КАК АдресЭП, ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Ссылка ИЗ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация [url=https://radikal.ru][img]https://c.radikal.ru/c36/1811/4e/6995c43dc8e1.jpg[/img][/url] Может Я не там смотрю, или не там заполняю? Но хочу заполнить как поле электронный адрес |
|||
1
Случайный прохожий
01.11.18
✎
04:49
|
Что-то было подобное. Вроде реквизит ЗначенияПолей заполнять еще нужно
|
|||
2
yyyuuu
01.11.18
✎
05:00
|
Заполнил
|
|||
3
Случайный прохожий
01.11.18
✎
05:09
|
(2) И? Как заполнил?
|
|||
4
Случайный прохожий
01.11.18
✎
05:14
|
Заполни какой-нибудь email ручками в программе и через консольку сравни значения реквизитов с теми, которые программно заполняешь
|
|||
5
yyyuuu
01.11.18
✎
05:28
|
(3)
На отвали. КонтактнаяИнформация.ЗначенияПолей = Майл; майл это параметр с функции приходит |
|||
6
yyyuuu
01.11.18
✎
05:31
|
(4)
Бахнул ручками, в консоле вижу, в интерфейсе вижу, что програмнно пишу не вижу) |
|||
7
Случайный прохожий
01.11.18
✎
05:37
|
(5) это неправильное заполнение. Там строку в xml раскладывать нужно. Через консоль глянь какое значение принимает этот реквизит у правильно созданной КИ.
|
|||
8
yyyuuu
01.11.18
✎
08:44
|
(7) Строка
Есть пример глянуть как это должно быть в идеале? |
|||
9
Cyberhawk
01.11.18
✎
08:53
|
Кончай уже *овнокодить. Пользуйся программным интерфейсом нужной подсистемы БСП.
|
|||
10
yyyuuu
01.11.18
✎
09:04
|
(9)
Ну мне уже прям хочется разобраться как оно все таки делаеться. Ну или подскажи как пользоваться БСП) |
|||
11
Cyberhawk
01.11.18
✎
09:07
|
Документацию на ИТС открой, раздел 4 - программный интерфейс. Найди там нужную подсистему и посмотри.
|
|||
12
yyyuuu
02.11.18
✎
03:33
|
(11)
Что то Я прям толкового не нашел ничего |
|||
13
yyyuuu
02.11.18
✎
03:58
|
Но сделал так, и заработало
КонтактнаяИнформация.Вид = Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица; |
|||
14
yyyuuu
02.11.18
✎
03:58
|
Пользуйтесь ребята :))
Может кому поможет |
|||
15
yyyuuu
02.11.18
✎
04:20
|
Нашел кое что.
Оказывается КонтактнаяИнформация.Представление = Должно заполняться в формате ХМЛ. Вопрос, как мне майл раскидать на ХМЛ и вообще по тегам как это будет выглядить? |
|||
16
yyyuuu
02.11.18
✎
05:29
|
<КонтактнаяИнформация 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" Представление="[email protected]"><Состав xsi:type="ЭлектроннаяПочта" Значение="[email protected]"/></КонтактнаяИнформация>
Если руками бахнуть вот так заполняеться. Ну на костылях можно вставить строку да туда переменных напихать. Мысли по умнее есть ребят?) |
|||
17
Cyberhawk
02.11.18
✎
07:33
|
Херово искал
|
|||
18
dnab
02.11.18
✎
08:11
|
КИ = УправлениеКонтактнойИнформацией.НоваяКонтактнаяИнформация(Ложь);
Нов = КИ.Добавить(); Нов.Вид = Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица; Нов.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; Нов.Представление = Мейл; УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(ФЛ,КИ, Истина); |
|||
19
yyyuuu
02.11.18
✎
10:31
|
(18)
{ОбщийМодуль.УправлениеКонтактнойИнформацией.Модуль(498)}: Добавление контактной информации невозможно, у объекта нет таблицы с контактной информацией. ВызватьИсключение НСтр("ru = 'Добавление контактной информации невозможно, у объекта нет таблицы с контактной информацией.'");; Сама функция Процедура УстановитьКонтактнуюИнформациюОбъекта(СсылкаИлиОбъект, Знач КонтактнаяИнформация, Замещать = Истина) Экспорт ЭтоСсылка = ОбщегоНазначения.ЗначениеСсылочногоТипа(СсылкаИлиОбъект); Объект =?(ЭтоСсылка, СсылкаИлиОбъект.ПолучитьОбъект(), СсылкаИлиОбъект); МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(СсылкаИлиОбъект)); Если МетаданныеОбъекта = Неопределено Или МетаданныеОбъекта.ТабличныеЧасти.Найти("КонтактнаяИнформация") = Неопределено Тогда ВызватьИсключение НСтр("ru = 'Добавление контактной информации невозможно, у объекта нет таблицы с контактной информацией.'");; КонецЕсли; // Очистка контактной информации пустой таблицей. Если КонтактнаяИнформация.Количество() = 0 Тогда Если Замещать Тогда Объект.КонтактнаяИнформация.Очистить(); Если ЭтоСсылка Тогда Объект.Записать(); КонецЕсли; КонецЕсли; Возврат; КонецЕсли; Периодическая = МетаданныеОбъекта.ТабличныеЧасти.КонтактнаяИнформация.Реквизиты.Найти("ДействуетС") <> Неопределено; Для каждого СтрокаКонтактнойИнформации Из КонтактнаяИнформация Цикл ВосстановитьПустыеЗначениеПредставление(СтрокаКонтактнойИнформации); КонецЦикла; Если Замещать Тогда Если Периодическая Тогда Для каждого СтрокаКонтактнойИнформацииОбъекта Из КонтактнаяИнформация Цикл НайденныеСтроки = НайтиСтрокиКонтактнойИнформации(СтрокаКонтактнойИнформацииОбъекта.Вид, СтрокаКонтактнойИнформацииОбъекта.Дата, Объект.КонтактнаяИнформация); Для каждого Строка Из НайденныеСтроки Цикл Объект.КонтактнаяИнформация.Удалить(Строка); КонецЦикла; КонецЦикла; Иначе Объект.КонтактнаяИнформация.Очистить(); КонецЕсли; КонецЕсли; Для каждого СтрокаКонтактнойИнформацииОбъекта Из КонтактнаяИнформация Цикл ХранитьИсториюИзменений = Периодическая И СтрокаКонтактнойИнформацииОбъекта.Вид.ХранитьИсториюИзменений; Если Замещать Тогда Если ЗапрещенВводНесколькихЗначений(СтрокаКонтактнойИнформацииОбъекта.Вид, Объект.КонтактнаяИнформация, СтрокаКонтактнойИнформацииОбъекта.Дата) Тогда Продолжить; КонецЕсли; СтрокаКонтактнойИнформации = Объект.КонтактнаяИнформация.Добавить(); Иначе Отбор = Новый Структура(); Отбор.Вставить("Вид", СтрокаКонтактнойИнформацииОбъекта.Вид); Если ХранитьИсториюИзменений Тогда Отбор.Вставить("ДействуетС", СтрокаКонтактнойИнформацииОбъекта.Дата); НайденныеСтроки = Объект.КонтактнаяИнформация.НайтиСтроки(Отбор); ИначеЕсли ЗначениеЗаполнено(СтрокаКонтактнойИнформацииОбъекта.Значение) Тогда Отбор.Вставить("Значение", СтрокаКонтактнойИнформацииОбъекта.Значение); НайденныеСтроки = Объект.КонтактнаяИнформация.НайтиСтроки(Отбор); Иначе Отбор.Вставить("ЗначенияПолей", СтрокаКонтактнойИнформацииОбъекта.ЗначенияПолей); НайденныеСтроки = Объект.КонтактнаяИнформация.НайтиСтроки(Отбор); КонецЕсли; Если НЕ ХранитьИсториюИзменений И ЗапрещенВводНесколькихЗначений(СтрокаКонтактнойИнформацииОбъекта.Вид, Объект.КонтактнаяИнформация, СтрокаКонтактнойИнформацииОбъекта.Дата) ИЛИ НайденныеСтроки.Количество() > 0 Тогда Продолжить; КонецЕсли; СтрокаКонтактнойИнформации = Объект.КонтактнаяИнформация.Добавить(); КонецЕсли; ЗаполнитьКонтактнуюИнформациюОбъектаИзСтроки(СтрокаКонтактнойИнформацииОбъекта, ХранитьИсториюИзменений, СтрокаКонтактнойИнформации); КонецЦикла; Если ЭтоСсылка Тогда Объект.Записать(); КонецЕсли; КонецПроцедуры |
|||
20
yyyuuu
08.11.18
✎
03:47
|
Сам пока не разобрался, но разбираюсь. Как что решу, сразу напишу. Если когда нибудь кто то наткнется на мои темы и останутся вопросы. То пишите https://t.me/Nikitaje
|
|||
21
Случайный прохожий
08.11.18
✎
07:46
|
(19) В первый параметр что передаешь? Есть у него табличная часть "КонтактнаяИнформация"?
|
|||
22
bolder
08.11.18
✎
07:50
|
(0) Тест на знание БСП не прошёл.
|
|||
23
yyyuuu
08.11.18
✎
10:38
|
(21) На мысль натолкнул, передавал параметр функции (ИмяФамилия) а не :
НайденныйСотрудник = Справочники.ФизическиеЛица.НайтиПоНаименованию(ИмяФамилия); УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(НайденныйСотрудник,КИ, Истина); Передал, заработало) |
|||
24
yyyuuu
08.11.18
✎
10:40
|
(22)
Похоже что да) В общем вроде сделал. Работает хмл заполняется |
|||
25
yyyuuu
08.11.18
✎
10:45
|
Детально все посмотрел, очень все хорошо работает. Всего то передать надо, ссылку на сотрудника и таблицу значений а функция сама уже все что надо сделает)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |