8.х Заполнение поля в табличной части документа

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем FlameKet, 9 июл 2009.

  1. TopicStarter Overlay
    FlameKet
    Offline

    FlameKet

    Регистрация:
    9 июл 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Есть более 300 документов КадровоеПеремещениеОрганизаций с незаполненым полем ГрафикРаботы в табличной части РаботникиОрганизации.
    Внешняя обработка имеет вид:

    Код:
    Процедура ааа()
    Док=Документы.КадровоеПеремещениеОрганизаций.Выбрать();
    Пока Док.Следующий() Цикл
    если Док.РаботникиОрганизации.Количество()>0 тогда
    i=Док.РаботникиОрганизации[0];
    Для Каждого i Из Док.РаботникиОрганизации Цикл
    i.ГрафикРаботы =Справочники.ГрафикиРаботы.НайтиПоНаименованию("Основной график");
    КонецЦикла;
    конецесли;
    КонецЦикла;
    КонецПроцедуры
    
    
    На уровне исполнения строки i.ГрафикРаботы ="Основной график" выдается сообщение "Поле объекта недоступно для записи".

    В чем я ошибаюсь. Подскажите как заполнить поля табличной части. Если можно поподробнее - я новичек.

    Заранее спасибо за дельные советы.
  2. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Надо получить объект сначала.

    Код:
    Процедура ббб()
    Док=Документы.КадровоеПеремещениеОрганизаций.Выбрать();
    Пока Док.Следующий() Цикл
    ОбработкаПрерыванияПользователя();//для того чтобы прервать выполнение обработки нажатием Ctrl+Break
    если Док.РаботникиОрганизации.Количество()>0 тогда
    Если Док.ПометкаУдаления Или Не Док.Проведен Тогда 
    Продолжить; 
    КонецЕсли;//отбрасываем все удаленные и непроведенные
    Об = Док.ПолучитьОбъект();//получаем объект
    //i=Док.РаботникиОрганизации[0]; вот это вообще не надо
    Для Каждого ТекСтрока Из Об.РаботникиОрганизации Цикл
    Если Не ТекСтрока.ГрафикРаботы = Справочники.ГрафикиРаботы.ПустаяСсылка() Тогда 
    Продолжить; 
    КонецЕсли; //когда график установлен, пропускаем
    ТекСтрока.ГрафикРаботы =Справочники.ГрафикиРаботы.НайтиПоНаименованию("Основной график");
    КонецЦикла;
    Попытка
    Об.Записать();//запись производим в попытке, чтобы выполнение не прервалось
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    конецесли;
    КонецЦикла;
    КонецПроцедуры
    

Поделиться этой страницей