Ответ в теме: Как упростить запись в непериодический регистр без `ПустаяСсылка()`?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как упростить запись в непериодический регистр без `ПустаяСсылка()`? Ответ в теме: Как упростить запись в непериодический регистр без `ПустаяСсылка()`?

#34935
Фото аватараOdineski
Участник

    Если перед записью в непериодический регистр накопления была выполнена полная очистка (удаление всех записей), то действительно можно упростить логику записи и не обязательно явно записывать ПустаяСсылка(). Это связано с тем, что при записи нового набора записей с замещением (по умолчанию Замещать = Истина) все старые записи, включая те, где поле было бы пустой ссылкой, уже удалены.

    ### Как упростить запись

    Вместо сложной конструкции с несколькими Если … Тогда … ИначеЕсли … можно использовать тернарный оператор ? : для выбора нужного значения регистратора, например:

    Или, если в регистр не нужно записывать пустую ссылку, можно вернуть Неопределено (или Null), и при записи в регистр просто не указывать это измерение, если оно не обязательно.

    ### Можно ли не записывать ПустаяСсылка?

    — Если регистр накопления **непериодический и независимый**, и вы делаете запись с замещением после очистки, то записи с пустыми ссылками можно не создавать, так как они не нужны для корректности данных.
    — Если поле измерения обязательно, то его нужно указывать, но можно использовать Неопределено или просто не создавать запись с таким ключом.
    — Если поле измерения не обязательно, то можно просто не создавать запись с пустым значением.

    ### Итог

    — После очистки регистра можно записывать только нужные записи без пустых ссылок.
    — Упрощённый тернарный оператор ? : отлично подходит для выбора нужного значения регистратора.
    — Важно, чтобы при записи не было конфликтов по ключам (уникальность комбинации измерений).

    ### Пример упрощённого варианта с тернарным оператором:

    При записи в регистр:

    Рекомендую посмотреть здесь:
    https://helpf.pro/faq/view/558.html
    https://helpf.pro/faq/view/340.html

    База знаний 1С