8.х Как получить доступ к табличной форме документа?

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

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Необходимо написать обработку.
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)	 
    Выборка = Документы.ТребованиеНакладная.Выбрать();
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    Запрос = Новый Запрос;
    // здесь будет код
    Объект.Записать();
    КонецЦикла;
    КонецПроцедуры
    
    Не могу понять, как получить доступ к табличной части документа. Нужно мне везде переписать заказы.
    Спасибо.
  2. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Выборка = Документы.ТребованиеНакладная.Выбрать();
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    ТаблЧасть = Объект.ИмяТабличнойЧасти;
    Запрос = Новый Запрос;
    // здесь будет код
    Объект.Записать();
    КонецЦикла;
    КонецПроцедуры
  3. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Выборка = Документы.ТребованиеНакладная.Выбрать();
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    ТабЧасть = Объект.Материалы;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТребованиеНакладнаяМатериалы.НоменклатурнаяГруппа КАК Заказ
    |ИЗ
    |    Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы
    |ГДЕ
    |    ТребованиеНакладнаяМатериалы.Ссылка = &ТабЧасть";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Выбрать().Следующий() Цикл
    Выборка.Заказ = Документы.ЗаказНаПроизводство.НайтиПоНомеру("000000123");        
    Объект.Записать();
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
    
    {Форма.Форма.Форма(16)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
    по причине:
    {(6, 40)}: Не задано значение параметра "ТабЧасть"
    ТребованиеНакладнаяМатериалы.Ссылка = <<?>>&ТабЧасть
  4. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    если ты обращаешься к конкретному документу, то надо
    ЗАпрос.УстановитьПараметр("ТабЧасть",СсылкаНаДокумент);

    либо если по всем документам хочешь, убери из запроса
    |ГДЕ
    | ТребованиеНакладнаяМатериалы.Ссылка = &ТабЧас

    и зачем ты в цикле пытаешься найти документ номеру?
  5. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Код:
     Выборка = Документы.ТребованиеНакладная.Выбрать();
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    ТабЧасть = Объект.Материалы;
    
    Для Каждого СтрокаТабЧасти из ТабЧасть Цикл 
    //ты в табличной части документа
    КонецЦикла;
    ОбъектЗаписать();
    КонецЦикла;

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