Книга знаний

1С:Предприятие / v8 / Объекты конфигурации / Документы

v8: Допроведение документа

Простой способ добавить или переделать движения документаАвтор статьи: Гений 1С | Редакторы:
Последняя редакция №2 от 19.04.06 | История
URL: http://kb.mista.ru/article.php?id=163

Ключевые слова: проведение,документ,регистр,набор записей


Однажды мне поставили задачу - нужно обработать стандартные проводки, сделанные документом и некоторые из них изменить. Также изменения должны коснуться некоторых регистров. Я вставлял свой код коррекции в конец процедуры ОбработкаПроведения.

Но дело в том, что при проведении документа движения могут быть сохранены в коллекции Движения или непосредственно записаны в регистр.

Я долго парился по этому поводу, пока не понял, что можно проверить свойство Модифицированность() у конкретного регистра в коллекции Движения, если оно истина - то движения находятся в коллекции и ждут автоматической записи в конце проведения, если ложь - то движения уже записаны в регистр или не записывались вообще.

Короче, набор движений для корректировки я получал функцией:

Функция НаборДвиженийДокументаПолучить(П, Регистр, ИзОбъекта=истина)
    ИмяРегистра = Метаданные.НайтиПоТипу(ТипЗнч(Регистр)).Имя;
    //Если модифицирован
    Если НЕ П.Объект.Движения[ИмяРегистра].Модифицированность() Тогда
        НЗ=П.Объект.Движения[ИмяРегистра];
        НЗ.Отбор.Регистратор.Установить(П.Ссылка);
        НЗ.Прочитать();
    КонецЕсли;
    
    Возврат П.Объект.Движения[ИмяРегистра];
КонецФункции


А записывать ничего не нужно. Изменения сами запишутся в конце работы процедуры ОбработкаПроведения.
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2021 | Mista.ru

Яндекс.Метрика