Уважаемые форумчате, подскажите, пожалуйста, начинающему программисту 1С. Ситуация такова:
Есть справочник. При изменении или добавлении в него записей необходимо создавать записи в определенном регистре с полями: 1) действие (Создан, Изменен), 2) датой создания (изменения) и 3) ссылкой на объект. Чтоб не изменять и не снимать справочник с поддержки, я создала две подписки на события ПередЗаписью и ПриЗаписи.
В первой подписки (ПередЗаписью) я анализирую запись на Новая или не новая (переменной1 присваиваю ЛОЖЬ или ИСТИНА) и если запись не новая, то анализирую изменение всех реквизитов. Если не менялись, то переменной2 присваиваю Ложь, если менялись Истина.
А во второй подписке (При записи) мне надо в зависимости от этих переменных создать записи в регистре.
Вопрос состоит в том КАК ПЕРЕДАТЬ ЗНАЧЕНИЯ ЭТИХ ПЕРЕМЕННЫХ ВО ВТОРУЮ ПОДПИСКУ. Буду очень признательна за советы.
---
в первой подписке:

```1c
    Источник.ДополнительныеСвойства.Вставить("п1", Истина);
```

во второй подписке анализировать наличие:

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

Но сам объект у вас есть.
---
не совсем верно!

Для не записанного объекта можно получить ссылку, думаю гугл вам быстро поможет с кодом.
Ну а имея ссылку, думаю проблем у вас дальше не будет, чем ерунду кодить))
---
а потом кто-то добавит еще одну подписку ПередЗаписью, где будет проверяться нужность вообще записи элемента справочника. И реализуют Отказ.
Подписка проверки может запуститься позже. И в итоге имеем движение по регистру с убитой ссылкой.
Главное же потом долго будут искать, почему там ссылки битые.

Хотя нет. Этот случай не отработает. транзакция откатит.
Но делать движения в ПередЗаписью считаю не верным.
---
И реализуют Отказ
по Отказу откатится вся транзакция, в том числе и создание записей регистра.
или ПередЗаписью это еще не транзакция...
---
все верно. Откатится.
Вне транзакции это ПередЗаписью в модуле формы.
В модуле Объекта уже в транзакции, но до записи объекта.
---
а во второй подписке ПриЗаписи, невозможно проанализировать новый или не новый, т.к. объект уже записан и нельзя

В модуле:

Источник.ЭтоНовый() - В зависимости от результата можно проанализировать Новый или не новый и решить вопрос в одном событии (ПриЗаписи)
---
В подписки на событии ПриЗаписи Источник.ЭтоНовый() даже для нового элемента уже Ложь
---
Пардон.... сам ошибся... не туда посмотрел :(
---
ЕРЕДАТЬ ЗНАЧЕНИЯ ЭТИХ ПЕРЕМЕННЫХ - как вариант, можно передать через параметры сеанса, или можно через константы...
---
в первой подписке:

```1c
    Источник.ДополнительныеСвойства.Вставить("п1", Истина);
```

во второй подписке анализировать наличие:

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

```1c
    Если Источник.ДополнительныеСвойства.НовыйДок = Истина тогда
    //
    КонецЕсли;

    Если Источник.ДополнительныеСвойства.ПризнакИзмененияДанных = Истина тогда
    //
    КонецЕсли;
```
---
надо же
иногда достаточно просто прочитать справку
но миссия невыполнима, пока есть и-старт