Обработка Проведения

  • Автор темы Doubleagent
  • Дата начала
D

Doubleagent

Гость
#1
Здравствуйте Уважаемые!
Помогите начинающему программисту.
Вопрос такого плана. Есть справочник «студенты» с реквизитами «ФИО», «НомерПриказаДва» . И документ с реквизитом «НомерПриказа» и тб Опереводе с перечислением ФИО. Нужно при проведении документа чтобы искал в справочнике ФИО и присваивал значение в справочник НомерПриказа из документа . Или подскажите как получить объект и записать его:

Код:
 Для int = 0 по Опереводе.Количество()-1 Цикл
стр = ОПереводе.Получить(int);
прс = стр.Студент;
ккр = справочники.Студент.НайтиПоНаименованию(прс);		
ккр.НомерПриказаДва = НомерПриказа;
КонецЦикла;
При таком коде выдает ошибку:
Ошибка при выполнении обработчика - '{Документ.ОПереводе(8)}: Поле объекта недоступно для записи (НомерПриказаДва)'
по причине:
{Документ.ОПереводе(8)}: Поле объекта недоступно для записи (НомерПриказаДва)
 

evgenyatam

Well-Known Member
07.09.2007
175
0
#2
почему опять язык не указан???????????????????????????
ну я и так вижу что восьмерка.
ккр = справочники.Студент.НайтиПоНаименованию(прс);
так ты получаешь ссылку. а писать можно только в объект. рабочий код:
ккр = справочники.Студент.НайтиПоНаименованию(прс).ПолучитьОбъект();

а еще более правильно (с учетом того что НайтиПоНаименованию() может не найти:
ккр = справочники.Студент.НайтиПоНаименованию(прс);
Если ЗначениеЗаполнено(ККР) Тогда
объект = ккр.ПолучитьОбъект();
Объект.НомерПриказаДва = НомерПриказа;
Объект.записать();
КонецЕсли;
кстати где Записать() в твоем коде??