1. Общие механизмы, понятия и термины
#77

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

Что нужно сделать, чтобы использовать механизм платформы 1С «История данных» (версионирование) для объектов (например, справочников и документов)?

Настроить версионирование в конфигураторе: включить историю для нужного объекта метаданных и при необходимости уточнить, какие его части (реквизиты/табличные части) нужно версионировать.
Неправильно: Такой способ действительно существует и часто используется как «настройка по умолчанию» для решения. Но он не является обязательным, потому что историю данных можно включать и управлять ею без изменения метаданных - программно, средствами встроенного языка.
Выполнить включение и настройку истории данных программно (например, обработкой/кодом на встроенном языке), без обязательной правки метаданных в конфигураторе.
Неправильно: Программный способ тоже возможен, но он не единственный необходимый: во многих случаях достаточно включить историю для объекта в конфигураторе, и механизм начнет сохранять версии без дополнительного кода. Поэтому утверждение, что требуется именно настройка кодом, неверно.
Сделать и то и другое одновременно: и настроить объект в конфигураторе, и обязательно выполнить настройку из встроенного языка.
Неправильно: Одновременное выполнение обоих шагов не является обязательным условием работы механизма - это два альтернативных подхода управления настройками. Иногда их комбинируют (например, конфигуратор - базовые настройки, код - временное включение/выключение), но «требуется всегда» - неверно.
Достаточно выбрать один из способов: либо настроить в конфигураторе, либо включать/управлять настройками программно из встроенного языка.
Правильно: Механизм «История данных» можно включать и отключать как на уровне метаданных (в конфигураторе), так и динамически - средствами встроенного языка. Поэтому для использования версионирования достаточно одного из этих подходов, в зависимости от задач и ограничений проекта.

Пояснение

«История данных» (версионирование) - это механизм платформы, который сохраняет версии данных объекта во времени и позволяет просматривать список изменений, сравнивать версии и при необходимости восстанавливать состояние объекта на выбранную дату/версию (если это предусмотрено интерфейсом и правами). Есть два равноправных способа включить и управлять этим механизмом: 1) Через конфигуратор (метаданные) - Разработчик для конкретного объекта (справочник/документ и т.п.) включает ведение истории. - Часто можно дополнительно уточнить «глубину» версионирования: хранить историю не всего объекта целиком, а только выбранных реквизитов или отдельных частей (например, важных полей, табличных частей). - Такой подход удобен, когда нужно постоянное версионирование как стандарт поведения системы. 2) Программно, средствами встроенного языка (без обязательной правки конфигурации) - Настройки можно менять динамически: включать/отключать историю для объектов по ситуации, в отдельных базах, для конкретных пользователей/ролей или на период расследования инцидента. - Это особенно полезно, когда конфигурация на поддержке и нежелательно вносить изменения в метаданные, либо когда версионирование нужно временно (например, на месяц для контроля изменений в справочнике цен). Практический пример: - Ситуация А (постоянный контроль): для «Номенклатуры» включают историю в конфигураторе и задают хранение только ключевых реквизитов (наименование, артикул, группа, единица измерения). Тогда при каждом изменении этих данных можно увидеть, кто и когда исправил значение. - Ситуация Б (временное расследование): после серии ошибок в документах продаж администратор запускает служебную обработку, которая программно включает историю для нужных документов на 1-2 недели, чтобы потом сравнить версии и понять, на каком шаге и кем внесены правки. Лучшие практики: - Включайте историю точечно: только для действительно критичных объектов и данных - это уменьшит рост базы и нагрузку. - Продумывайте срок хранения/регламент очистки версий, чтобы история не разрасталась бесконтрольно. - Проверяйте права доступа: просмотр истории обычно требует отдельных прав, иначе пользователи могут видеть версии там, где это нежелательно.