8.х Пересчитать сумму в проводке (КА 1.1.57.2)

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

  1. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    Добрый день, подскажите, пожалуйста, есть операция бухгалтерский учет, в ней проводка, у меня есть дополнительное поле ставка, и если она изменяется, то нужно пересчитывать сумму проводки, а как можно изменить только сумму, у меня такой код, но он не изменяет сумму, хочет изменить всю проводку целиком, как можно иначе сделать?

    Код:
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
    
        Проводка= НаборЗаписей.Добавить();
       
           
        Проводка.Сумма = ((ЭтотОбъект.Основание.СуммаДокумента*ЭтотОбъект.Ставка)/100)/365*ЭтотОбъект.Срок;
       
        Движения.Хозрасчетный.Записывать=Истина;
        НаборЗаписей.Записывать=Истина;
    
        НаборЗаписей.Записать();
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    ОперацияБух не умеет проводится, поэтому у него нет движений. Вам необходимо сперва прочитать набор записей, найти в нем нужную строку и пересчитать в ней сумму.
    bluntschi нравится это.
  3. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    аа! типо такого

    Код:
    
    НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
      
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
    
    
    Запись.Сумма = ((ЭтотОбъект.Основание.СуммаДокумента*ЭтотОбъект.Ставка)/100)/365*ЭтотОбъект.Срок;
    
    КонецЦикла;
      
    НаборЗаписей.Записать();
    
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
  5. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    у меня в регистре меняется все хорошо, в самом документе прежняя сумма, не подскажите как можно обновить и в документе?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Набор записей выгрузить в ТЗ и сделать ТЗ.Итог("Сумма").
    bluntschi нравится это.
  7. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    а если вот так сделать:
    Код:
    ТЗ = НаборЗаписей.Выгрузить();
      
        ЭтотОбъект.Движения.Хозрасчетный.Загрузить(ТЗ);
    после
    Код:
    НаборЗаписей.Записать();
    , без итога, будет правильно?
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Без разницы. Это все равно, что сделать НаборЗаписей.Загрузить(НаборЗаписей.Выгрузить()), реквизит документа от этого не заполниться новым значением.

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