Программное добавление строк в табличную часть справочника.
Добрый день! Нужна помощь такого плана: 1С Розница 2.1. Пишу обработку, в которой требуется создать новый элемент справочника "ФизическиеЛица". С этим проблем нет и основные реквизиты, а также подчиненные данные из регистров сведений тоже. А вот при попытке программно добавить значение в табличную часть "КонтактнаяИнформация", а именно телефон - ничего не выходит. При этом система не выдает ошибку и при открытии карточки созданного элемента поле телефон пустое. Вот код:
&НаСервере
Функция СохранитьДКНаСервере(НовоеФЛ, НоваяДК)
Перем СоздаваемоеФЛ, СоздаваемаяДК, КодВозврата;
КодВозврата = 0;
СоздаваемоеФЛ = Справочники.ФизическиеЛица.СоздатьЭлемент();
СоздаваемоеФЛ.Наименование = НовоеФЛ.Фамилия + " " + НовоеФЛ.Имя + " " + НовоеФЛ.Отчество;
СоздаваемоеФЛ.ДатаРождения = НовоеФЛ.ДатаРождения;
СоздаваемоеФЛ.Пол = НовоеФЛ.Пол;
СоздаваемоеФЛ.СогласенНаРассылку = НовоеФЛ.СогласенНаРассылку;
СоздаваемоеФЛ.Родитель = Справочники.ФизическиеЛица.НайтиПоНаименованию("Клиенты", Истина).Ссылка;
НоваяСтрока = СоздаваемоеФЛ.КонтактнаяИнформация.Добавить();
НоваяСтрока.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрока.НомерТелефона = НовоеФЛ.Телефон;
НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Телефон", Истина, Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Контактная информация справочника ""Физические лица"""));
НоваяСтрока.Представление = НовоеФЛ.Телефон;
Попытка
СоздаваемоеФЛ.Записать();
КодВозврата = 1;
Исключение
Возврат 0;
КонецПопытки;
НаборФИО = РегистрыСведений.ФИОФизЛиц.СоздатьНаборЗаписей();
ФИО = НаборФИО.Добавить();
ФИО.ФизЛицо = СоздаваемоеФЛ.Ссылка;
ФИО.Фамилия = НовоеФЛ.Фамилия;
ФИО.Имя = НовоеФЛ.Имя;
ФИО.Отчество = НовоеФЛ.Отчество;
ФИО.Период = ТекущаяДата();
Отказ = Ложь;
Если Не Отказ Тогда
Попытка
НаборФИО.Записать();
Исключение
Сообщить(ОписаниеОшибки());
Возврат 0;
КонецПопытки;
КонецЕсли;
Возврат КодВозврата;
КонецФункции
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) MaximusCompera, общий модуль управление контактной информацией есть? Если есть посмотри как там все организованно, или привяжись к функциям из него.
или попробуй так:
НоваяСтрока = Контр.КонтактнаяИнформация.Добавить() ;
НоваяСтрока .Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрока .Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Телефон");
Сообщить("телефон вид" + НоваяСтрока .Вид);
НоваяСтрока .Представление = 02;
или попробуй так:
НоваяСтрока = Контр.КонтактнаяИнформация.Добавить() ;
НоваяСтрока .Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
НоваяСтрока .Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Телефон");
Сообщить("телефон вид" + НоваяСтрока .Вид);
НоваяСтрока .Представление = 02;
Может быть создается строка, но её не видно при открытии карточки физлица.
Можно попробовать в консоли запросов посмотреть и сравнить табчасти их двух карточек: одна в которой виден телефон, другая - которую создаете программно. Чем они отличаются.
Можно попробовать в консоли запросов посмотреть и сравнить табчасти их двух карточек: одна в которой виден телефон, другая - которую создаете программно. Чем они отличаются.
Друзья, всем спасибо за реальную помощь! Всему ошибка - моя невнимательность. Когда я задавал ВидКИ, я использовал вот такой способ:
НО! допустил ошибку - надо было искать не "телефон", а "телефоны". И у меня не проставлялся тип КИ, а по нему и заполняется форма. По совету Alex_E и не без помощи alwiz3 переписал эту строку вот так:
Теперь все Гуд.
НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Телефон", Истина, Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Контактная информация справочника ""Физические лица"""));
НО! допустил ошибку - надо было искать не "телефон", а "телефоны". И у меня не проставлялся тип КИ, а по нему и заполняется форма. По совету Alex_E и не без помощи alwiz3 переписал эту строку вот так:
НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонФизическогоЛица;
Теперь все Гуд.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот