Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 июл 2024, 04:52

Программная запись в табличную часть справочника

Автор Kolovrat, 10 дек 2023, 17:38

0 Пользователей и 1 гость просматривают эту тему.

Kolovrat

Здравствуйте, вопрос таков: у меня есть документ "Приемы" в нем заполняются данные, далее мне нужно после записи данного документа записать некоторые данные в табличную часть справочника "Пациенты". Вроде бы все просто, но не тут то было программа при записи документа выдает ошибку "Объект недоступен для записи" и ругается на строку которую я помечу ! в листинге:
Процедура ЗаписьПриема(ФИО, Врач, Кабинет, ОбщаяСтоимость, ДатаПриема) Экспорт 
Пациент = Справочники.Пациенты.НайтиПоНаименованию(ФИО);
! НоваяСтрока = Пациент.ИсторияПриемов.Добавить();   

НоваяСтрока.Врач = Врач;
НоваяСтрока.ДатаПриема = ДатаПриема;
НоваяСтрока.Кабинет = Кабинет;
НоваяСтрока.ОбщаяСтоимость = ОбщаяСтоимость;   

Пациент.Записать();

КонецПроцедуры

Эта процедура хранится в общем модуле "ЗаписьПриемов", а вызывается из процедуры "ПередЗаписью" хранящийся в Форме документа "Приемы", помогите пожалуйста!

bsn-chita

ЦитироватьНайтиПоНаименованию (FindByDescription)
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>, Неопределено.
Ссылка на найденный элемент справочника.
Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка.
Если для справочника наименование не задано (длина = 0) и поиск выполняется по полному соответствию, то будет возвращено Неопределено.
У вас в лучшем случае будет ссылка, а то что вы делаете далее доступно у объекта. Нужно от ссылки получить объект.
Процедура ЗаписьПриема(ФИО, Врач, Кабинет, ОбщаяСтоимость, ДатаПриема) Экспорт 
ПациентСсылка = Справочники.Пациенты.НайтиПоНаименованию(ФИО);
ПациентОбъет = ПациентСсылка.ПолучитьОбъект();
НоваяСтрока = ПациентОбъет.ИсторияПриемов.Добавить();   
НоваяСтрока.Врач = Врач;
НоваяСтрока.ДатаПриема = ДатаПриема;
НоваяСтрока.Кабинет = Кабинет;
НоваяСтрока.ОбщаяСтоимость = ОбщаяСтоимость;   
ПациентОбъет.Записать();
КонецПроцедуры

Kolovrat


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск