8.х Помогите получить имя и значение реквизита

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем b7music, 5 июл 2017.

  1. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    120
    Симпатии:
    5
    Баллы:
    29
    Добрый вечер, коллеги! Ситуация такая, конфа на основе УНФ. При создании приходной накладной с операцией возврат от покупателя, если проставить себестоимость, она рассчитывается только при закрытии месяца(если есть документ основания - расходная накладная - продажа покупателю). Если документ основания убрать, то считается сразу правильно. Пытаюсь сделать чтобы рассчитывалась сразу и без удаления дока основания, начальство хочет видеть прибыль в режиме реал-тайма.
    Нашел движение по регистру в модуле объекта. Сделал свой общий модуль с экспортной процедурой,
    Код:
    // Выполняет движения регистра накопления ДоходыИРасходы.
    //
    Процедура ОтразитьДоходыИРасходыНБС(ДополнительныеСвойства, Движения, Отказ) Экспорт
    
    В самом объекте накручу логику через Если, по какому регистру делать движения.
    Суть в том чтобы получить значение табличной части каждой позиции - себестоимость. И уже ее затолкать в расходы в этом самом движении.
    Нагуглил
    Код:
    ТекущийДокумент = ДополнительныеСвойства.ДляПроведения.Ссылка;
        Если ДополнительныеСвойства.ДляПроведения.Ссылка.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПриходнаяНакладная.ВозвратОтПокупателя") Тогда
     
        ПереченьТабЧастей = Метаданные.Документы.ПриходнаяНакладная.ТабличныеЧасти; //определяем перечень имен табличных частей
            
            Для каждого ТекТабличнаяЧасть Из ПереченьТабЧастей Цикл     //перебираем имена табличных частей
              
                ТекВыборкаТабЧасть=ТекущийДокумент[ТекТабличнаяЧасть.Имя];  //получаем всю табличную часть текущего документа. Тип=ДокументТабличнаяЧасть
              
                Для каждого ТекСтрокаДокумента Из ТекВыборкаТабЧасть  Цикл  //Перебираем строки текущей табличной части текущего документа
                    Для каждого ТекРеквизитМетаданные Из ТекТабличнаяЧасть.Реквизиты Цикл //Перебираем имена реквизитов текущей табличной части
                        ИмяРеквизита=ТекРеквизитМетаданные.Имя;     //Имя реквизита текущей табличной части
                        ЗначениеРеквизита=ТекСтрокаДокумента[ИмяРеквизита];  //Значение реквизита текущей табличной части
                
                    КонецЦикла;    
                КонецЦикла;       
            КонецЦикла;    
           
        КонецЕсли;
    
    Этим кодом я получаю сначала наименование реквизита, а уже затем его значение, подскажите, как получить
    Имя
    Себестоимость
    Значение
    1600 (например)
  2. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    120
    Симпатии:
    5
    Баллы:
    29
    С этим я разобрался.
    Сделал пр другому
    Код:
     
        ТекущийДокумент = ДополнительныеСвойства.ДляПроведения.Ссылка;
     
         
        Если ДополнительныеСвойства.ДляПроведения.Ссылка.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПриходнаяНакладная.ВозвратОтПокупателя") Тогда
         
     
        ТаблицаЗапасы = ТекущийДокумент.Запасы.Выгрузить(,);
     
        ТаблицаЗапасы.Колонки.Добавить("СебестоимостьДокумента");
     
    
    
    Подскажите, как правильно составить цикл, чтобы каждую себестоимость плюсовать и записывать в СебестоимостьДокумента?
    Последнее редактирование: 6 июл 2017
  3. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.222
    Симпатии:
    15
    Баллы:
    29
    что такое "себестоимость" и "СебестоимостьДокумента" ?

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