8.х Запись в регистр накоплений

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

  1. TopicStarter Overlay
    D-503
    Offline

    D-503

    Регистрация:
    16 апр 2010
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Вопрос такой:
    В документе (например ПриходнаяНакладная) при формировании движения в регистре накопления (например ОстаткиМатериалов) c помощью конструктора движений, конструктор генерирует код:

    Код:
    Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
    // регистр ОстаткиМатериалов Приход
    Движение = Движения.ОстаткиМатериалов.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.Материал = ТекСтрокаМатериалы.Материал;
    Движение.Склад = Склад;
    Движение.Количество = ТекСтрокаМатериалы.Количество;
    КонецЦикла;
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    КонецПроцедуры
    
    
    В коде отсутствует строчка: Движения.ОстаткиМатериалов.Записать(); И при этом все равно записи в регистре появляются!!! Что за фигня? И в чем тогда назначение метода Записать?

    З.Ы. Не ругайте, я пока новичок :unsure:
  2. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Если я не ошибаюсь, метод "Записать()" для любых регистров, которые присутствуют в списке движений документа не обязателен, ибо документ при проведении сам вызывает его.
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Верно выше описано.
    Движения записываются автоматом в обработке проведения.
    Иначе два раза будет запись происходить, что негативно влияет на производительность.

    В некоторых случаях (например, по РР) - запись делается принудительно, что бы собрать, к примеру, базу расчета.
    Вообще - это рассказывают на обычных курсах
  4. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Ненормальные, вроде меня, книжек умных не читали и курсы не посещали: просто однажды резко понадобилось что-то сделать в 1С.

    Кстати, уважаемый Searje, предупреждая дальнейшие вопросы, которые могут возникнуть: так же, для всех регистров, указанных в движениях, при отмене проведения происходит затирание записей. Если вы вдруг вручную добавили регистр, неуказанный в движениях, и при проведении делаете по нему записи, вам надо дать линейкой по рукам и либо написать процедуру отката записей, либо мудро добавить регистр в движения. (Не повторяйте ошибок моей ветренной неопытности).

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