Документ получает из регистра сведений последний Статус документа в реквизит формы документа
Если у данного документа последний статус не соответствует записи регистра(например пользователь изменил статус), то при проведении документа должна появиться запись в регистре
Статус в документе- это реквизит формы, не знаю как правильно проверить его и записать
Этот код работал в модуле объекта, если статус сделать реквизитом документа, но статус должен быть реквизитом формы

```1c
    &НаСервере
    Процедура ПриЗаписи(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если Статус <> ОбщийМодуль1.ПолучитьСтатусДокумента1(Объект.Ссылка) Тогда
    ОбщийМодуль1.ЗаписатьСтатусДокумента(Объект.Ссылка);
    КонецЕсли;
    КонецПроцедуры
```
---
А Зачем Вы убрали Второй параметр Статус из процедуры ЗаписатьСтатусДокумента ?
Верните его немедленно:) И все будет работать
Но можно статус из модуля формы передать в модуль объекта через Дополнительные свойства в ПередЗаписью

```1c
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.ДополнительныеСвойства.Вставить("Статус",Статус);
    КонецПроцедуры
```

А в модуле объекта

```1c
    Процедура ПриЗаписи(Отказ)
    Перем Статус;
    Если ДополнительныеСвойства.Свойство("Статус",Статус)
    И не Статус = Неопределено
    и не Статус = ОбщийМодуль1.ПолучитьСтатусДокумента1(Ссылка) Тогда
    //Пишем в регистр
    ОбщийМодуль1.ЗаписатьСтатусДокумента(Ссылка, Статус);
    КонецЕсли;
    КонецПроцедуры
```
---
На мой взгляд Вам необходимо выполнять запись в регистр из события Формы ПередЗаписью()

```1c
    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    // Тут записываем в регистр значение из реквизита Формы
    КонецПроцедуры
```
---
А Зачем Вы убрали Второй параметр Статус из процедуры ЗаписатьСтатусДокумента ?
Верните его немедленно:) И все будет работать
Но можно статус из модуля формы передать в модуль объекта через Дополнительные свойства в ПередЗаписью

```1c
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.ДополнительныеСвойства.Вставить("Статус",Статус);
    КонецПроцедуры
```

А в модуле объекта

```1c
    Процедура ПриЗаписи(Отказ)
    Перем Статус;
    Если ДополнительныеСвойства.Свойство("Статус",Статус)
    И не Статус = Неопределено
    и не Статус = ОбщийМодуль1.ПолучитьСтатусДокумента1(Ссылка) Тогда
    //Пишем в регистр
    ОбщийМодуль1.ЗаписатьСтатусДокумента(Ссылка, Статус);
    КонецЕсли;
    КонецПроцедуры
```
---
Спасибо, дополнительные свойства что то новое для меня)
Все работает)))
---
И чтобы записать документ в регистр я написала такой код

```1c
    Менеджер = РегистрыСведений.СтатусыДокументов.СоздатьМенеджерЗаписи();
    Менеджер.Период = ТекущаяДата();
    Менеджер.Документ = Документ.Ссылка;
    Менеджер.Статус = Документ.Статус;
    Менеджер.Записать();
```

Документ передается в параметрах, я так понимаю Документ.Статус не запишется, это же реквизит формы, как можно передать в общий модуль реквизит формы?
---
Фигня какая-то. Судя по коду записи в регистр вы пытаетесь использовать регистр в качестве лога изменения реквизита документа. Но при этом отказываетесь от реквизита документа. Ничего не понимаю.
---
Если речь в самом деле о хранении истории изменений реквизита (а иначе непонятно, почему регистр независимый и периодом выступает текущая дата), то достаточно в "перед записью" в модуле объекта сравнить старое значение реквизита документа (из СУБД) с записываемым. Если отличаются - делать там же (в "перед записью") запись в регистр. Это будет работать даже при программном изменении реквизита.