Имя: Пароль:
 
1C
1С v8
ЗУП 3.1. Запутался в дополнительных реквизитах справочника.
0 bvn-2005
 
18.12.17
14:47
Справочник ФизическиеЛица. Созданы 2 доп. реквизита. 1 - Удостоверение (выбирается из справочника Дополнительные значения, может принимать 2 значения, ВУ и УдосьоверениеМашиниста) 2- Дата выдачи (обычная дата).
Нужно заполнить эти реквизиты программно из экселевского файла (перенос из старой базы). Никак не разберусь, как это сделать. В справочнике есть таб. часть Дополнительные реквизиты... Но как в нее данные записать?
1 ildary
 
18.12.17
15:09
(0) Точно также, как и в табличную часть документа.
2 bvn-2005
 
18.12.17
15:32
Пытаюсь так:
            ФизЛицо=Справочники.ФизическиеЛица.НайтиПоКоду(КодФизЛицо);
СпрОбъект=ФизЛицо.ПолучитьОбъект();
            НоваяСтрока=СпрОбъект.ДополнительныеРеквизиты.Добавить();
НоваяСтрока.Свойство="Удостоверение";
            НоваяСтрока.Значение=Лист.Cells(к,4).Value;

Значения свойств в базу записаны, а само свойство - нет...
Здесь надо ПланВидовХарактеристик использовать, только не пойму как...
3 Быдло замкадное
 
18.12.17
15:56
ну явно не так ="Удостоверение";

Получи ПВХ сначала, хотя бы в отладчике. Потом его подставляй
4 ildary
 
18.12.17
15:57
(2) я делаю примерно так (хотя большинство программистов смотрит на такое косо):

Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию( "Не снимать резерв автоматом (Список заказов клиентов)", Истина );
5 Pro1001C
 
18.12.17
15:59
проблема в этой строчке
НоваяСтрока.Свойство="Удостоверение";

должна быть ссылка на свойство из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
6 hhhh
 
18.12.17
16:13
(4) надо не

Свойство =

а

НоваяСтрока.Свойство =
7 bvn-2005
 
19.12.17
09:16
КодФизЛицо=Лист.Cells(к,2).Value;
            ФизЛицо=Справочники.ФизическиеЛица.НайтиПоКоду(КодФизЛицо);
            Если ФизЛицо=Справочники.ФизическиеЛица.ПустаяСсылка() Тогда
                Продолжить;
            КонецЕсли;
            СпрОбъект=ФизЛицо.ПолучитьОбъект();
            НоваяСтрока=СпрОбъект.ДополнительныеРеквизиты.Добавить();
            НоваяСтрока.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию( "Удостоверение", Истина );
            НоваяСтрока.Значение=Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(Лист.Cells(к,4).Value);
            НоваяСтрока=СпрОбъект.ДополнительныеРеквизиты.Добавить();
            НоваяСтрока.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Дата выдачи", Истина );
            НоваяСтрока.Значение=Лист.Cells(к,5).Value;
            СпрОбъект.Записать();    

Смотрю запросом табличную часть: Свойство - пусто; Значение - ВУ. А при ручном заполнении:Свойство - Удостоверение, Значение - ВУ.
Что-то не доробатывает...
8 Vakhrin
 
19.12.17
09:19
(7) нету свойства с наименованием "Удостоверение", есть что-то типа "Удостоверение (Физические лица)" ))
9 bvn-2005
 
19.12.17
09:25
НоваяСтрока.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию( "Удостоверение(ФизическиеЛица)", Истина );

Отладчик показывает, что возвращается пустое значение типа ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения
10 Пес Барбос
 
19.12.17
09:34
Зачем так сложно с поиском в ПВХ.
Добавь 2 реквизита на форму с типом - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения и на форме руками выбирай (какие ты создал - удостоверение и и дату выдачи)
11 bvn-2005
 
19.12.17
09:35
"и на форме руками выбирай"
Мне надо закачать данные из файла, там 2000 человек...
12 Пес Барбос
 
19.12.17
09:40
А что изменится по сравнению с твоим кодом - зачем искать если проще выбрать руками

в (7)
НоваяСтрока.Свойство = Реквизит1 (в котором выбрал Удост)
...
...
НоваяСтрока.Свойство = Реквизит2 (в котором выбрал Дата выдачи)
13 bvn-2005
 
19.12.17
09:49
"Удостоверение(ФизическиеЛица)"
Блин, там пробелы...
Надо "Удостоверение (Физические Лица)"
14 hhhh
 
19.12.17
10:08
(13) полное отрешение по утрам?
15 zippygrill
 
19.12.17
10:44
У ПВХ реквизит Заголовок индексируется, поэтому можно писать так

ДополнительныйРеквизитСсылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок", "Удостоверение"); //"Удостоверение" - т.е. как ты на форме видишь в Предприятие

или

ДополнительныйРеквизитСсылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок", "Удостоверение машиниста"); //"Удостоверение машиниста" - т.е. как ты на форме видишь в Предприятие