8.х Как записать в записанный документ информацию из другого документа?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Medvedzhonok, 16 окт 2008.

  1. TopicStarter Overlay
    Medvedzhonok
    Offline

    Medvedzhonok

    Регистрация:
    16 окт 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Помогите пожалуйста.
    У меня такая ситуация. Я создаю документ "Направление", записываю в него данные, сохраняю, но не провожу. Затем, в документе "Чек", выбираю данные из этого документа. При проведении чека мне необходимо сохранить пометки об оплате услуг в направлении.

    Вот пример программного кода:

    Код:
    ДокументНаправление.Направление.Получить(Счетчик1).Оплачено = Истина; 
    
    В ответ я получаю ошибку, что поле "Оплачено" не доступно для записи

    (Поле "Оплачено" находится в табличной части)
  2. GvH
    Offline

    GvH Опытный в 1С

    Регистрация:
    12 авг 2008
    Сообщения:
    179
    Симпатии:
    0
    Баллы:
    26
    Код:
    ОбъектНаправление = СсылкаНаДокументНаправление.ПолучитьОбъект();
    ТабличнаяЧастьНаправления = ОбъектНаправление.ИмяТабличнойЧасти;
    ТабличнаяЧастьНаправления[0].Оплачено = Истина;
    ОбъектНаправление.Записать();
    
    
    Примерно, так...
  3. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Кто такой ДокументНаправление в Вашем коде?

    Попробую стелепатировать:

    Вместо:
    Код:
    ДокументНаправление.Направление.Получить(Счетчик1).Оплачено = Истина; 
    
    
    Пишем:
    Код:
     
    ДокОбъект = ДокументНаправление.Направление.Получить(Счетчик1).Ссылка.ПолучитьОбъект();
    ДокОбъект.Оплачено = Истина;
    ДокОбъект.Записать(); // вот здесь нужно уточнить с режимом проведения
    
    
    Если сеанс телепатии не удался - пишите код полностью.
  4. TopicStarter Overlay
    Medvedzhonok
    Offline

    Medvedzhonok

    Регистрация:
    16 окт 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура ОКНажатие(Элемент)
    //Объявляем строковую переменную для кода направления
    КодНаправления = "";
    //Пробегаем по всем услугам выбранным в нашем чеке
    Для Счетчик = 0 По ТабличнаяЧастьЧек.Количество()-1 Цикл
    //При оплате в чек вводят код направления и по этому коду будут отмечаться 
    //услуги, из этого направления, что они оплачены
    Если ТабличнаяЧастьЧек.Получить(Счетчик).НаправлениеНомер <> Null Тогда
    КодНаправления = ТабличнаяЧастьЧек.Получить(Счетчик).НаправлениеНомер;
    КонецЕсли;
    //ДокументНаправление - это тот документ, в который необходимо внести изменения
    ДокументНаправление = Документы.ДокументНаправление.НайтиПоНомеру(КодНаправления);
    Если ДокументНаправление <> Null Тогда
    //Покупатель может оплатить не все услуги, поэтому пробегаем по оплаченным в чеке
    //услугам и говорим, что они оплачены
    //только проблема в том, что поле оплачено ДокументаНапавление доступно 
    //только для чтения
    Для Счетчик1 = 0 По ДокументНаправление.Направление.Количество()-1 Цикл
    Если ДокументНаправление.Направление.Получить(Счетчик1).Услуга =
    ТабличнаяЧастьЧек.Получить(Счетчик).Услуга Тогда
    ДокументНаправление.Направление.Получить(Счетчик1).Оплачено = Истина;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;	
    ПровестиИРаспечататьЧек(Истина,Истина,ЭтаФорма);			
    КонецПроцедуры
    
    
    Данный код находится в Документе ЧекККМ.

    Я пробовал код, предложенный Вами,
    Код:
    ДокОбъект = ДокументНаправление.Направление.Получить(Счетчик1).Ссылка.ПолучитьОбъект();
    ДокОбъект.Оплачено = Истина;
    ДокОбъект.Записать();
    
    
    но к сожалению,
    Код:
    ДокументНаправление.Направление.Получить(Счетчик1)
    
    не имеет аттрибута Ссылка
  5. TopicStarter Overlay
    Medvedzhonok
    Offline

    Medvedzhonok

    Регистрация:
    16 окт 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Большое-пребольшое спасибо, код работает, оказывается, просто с типами напутал.

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