Имя: Пароль:
1C
1С v8
"Поле объекта недоступно для записи"
🠗 (Волшебник 16.08.2017 09:49)
0 alexshape
 
16.08.17
09:48
Привет Всем. Создаю программно Элемент справочника, Далее заполняю его реквизиты. а потом он мне выдает такую Вещь:

{Обработка.ЗагрузкаПриемаСотрудников.Форма.Форма.Форма(66)}: Поле объекта недоступно для записи (ДатаРождения)
                    СотрудникСсылка.ДатаРождения = СтрокаСотрудникXDTO.Сотрудник.ДатаРождения;

Фрагмент кода:

    СотрудникСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СтрокаСотрудникXDTO.Сотрудник.ФИО);                
                Если  НЕ ЗначениеЗаполнено(СотрудникСсылка) Тогда
                    
                    СотрдуникСсылка = Справочники.Сотрудники.СоздатьЭлемент();
                    СотрдуникСсылка.Наименование = СтрокаСотрудникXDTO.Сотрудник.ФИО;
                    СотрудникСсылка.ДатаРождения = СтрокаСотрудникXDTO.Сотрудник.ДатаРождения;
                    Если СтрокаСотрудникXDTO.Сотрудник.Пол = "МужскойПол"  Тогда
                        СотрудникСсылка.Пол = Перечисления.Пол.ПолМужской;
                    ИначеЕсли СтрокаСотрудникXDTO.Сотрудник.Пол = "ЖенскийПол"  Тогда
                        СотрудникСсылка.Пол = Перечисления.Пол.ПолЖенский;        
                    КонецЕсли;
                    
                    
                    СотрдуникСсылка.Записать();
                    СотрдуникСсылка= СотрдуникСсылка .Ссылка;        
                КонецЕсли;
1 Волшебник
 
модератор
16.08.17
09:49
Сотрудник = Ссылка.ПолучитьОбъект();
Сотрудник.Реквизит = Значение;
Сотрудник.Записать();
3 Волшебник
 
модератор
16.08.17
09:50
Вот объясни, как ты смог добраться до XDTO, если не можешь записывать элементы справочника? Как это может быть, Карл?!
5 alexshape
 
16.08.17
09:53
6 alexshape
 
16.08.17
09:54
(3) Справочники.Сотрудники.СоздатьЭлемент() Возвращает СправочникОбъект
8 aleks_default
 
16.08.17
09:56
вот это что?

СотрдуникСсылка.Записать();                  
СотрдуникСсылка= СотрдуникСсылка .Ссылка;
9 aleks_default
 
16.08.17
09:57
после записи присваиваешь объекту какую-то ссылку? Зачем
10 alexshape
 
16.08.17
09:58
(7) (8) Я не логично немного записал Переменные вот поэтому получается путанница вот так будет понятнее. Но ошибка все же остается

СотрудникСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СтрокаСотрудникXDTO.Сотрудник.ФИО);                
                Если  НЕ ЗначениеЗаполнено(СотрудникСсылка) Тогда
                    
                    СотрдуникОбъект = Справочники.Сотрудники.СоздатьЭлемент();
                    СотрдуникОбъект.Наименование = СтрокаСотрудникXDTO.Сотрудник.ФИО;
                    СотрдуникОбъект.ДатаРождения = СтрокаСотрудникXDTO.Сотрудник.ДатаРождения;
                    Если СтрокаСотрудникXDTO.Сотрудник.Пол = "МужскойПол"  Тогда
                        СотрдуникОбъект.Пол = Перечисления.Пол.ПолМужской;
                    ИначеЕсли СтрокаСотрудникXDTO.Сотрудник.Пол = "ЖенскийПол"  Тогда
                        СотрдуникОбъект.Пол = Перечисления.Пол.ПолЖенский;        
                    КонецЕсли;
                    
                    
                    СотрдуникОбъект.Записать();
                    СотрдуникСсылка= СотрдуникОбъект.Ссылка;        
                КонецЕсли;
11 Альбатрос
 
16.08.17
09:58
(3) Чтение ХМЛ через ХДТО не такая уж и сложная задача.
12 Альбатрос
 
16.08.17
10:00
(10) Это у тебя прям в коде написано так или ты только в сообщении здесь исправил? Смотри (2)
13 h-sp
 
16.08.17
10:00
(10) дата рождения - это у физлица. у сотрдуника не может быть даты рождения.

поэтому пиши в справочник ФизЛица это дело.
14 aleks_default
 
16.08.17
10:00
СоТРУдникСсылка и соТРДУникСсылка - это две большие разницы.
15 alexshape
 
16.08.17
10:06
(14) Спасибо, невнимателен оказался
16 aleks_default
 
16.08.17
10:15
(15) (8) тоже убирай.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.