История версий в 1С: хранилище конфигурации и версии документов

· 9 мин

Содержание

Версионирование в 1С работает на двух уровнях. Версии кода и метаданных хранит хранилище конфигурации (Конфигуратор → Конфигурация → Хранилище конфигурации). Версии данных, то есть документов и справочников, хранит история изменений: в БП 3.0 и других типовых её включают в Администрирование → Общие настройки → История изменений.

Первое нужно разработчикам: кто и когда поменял модуль, как откатить неудачную доработку. Второе нужно бухгалтеру и аудитору: кто исправил сумму в проведённом документе и какой она была до правки. Механизмы не связаны, настраиваются в разных местах и решают разные задачи.

Два механизма под одним названием

Путаница начинается с того, что оба механизма называют «версионированием». Разница видна сразу, если поставить их рядом.

Хранилище конфигурацииИстория изменений объектов
📦 Что хранитМодули, формы, макеты, реквизиты метаданныхСостояние документов и справочников после записи
👤 Кто пользуетсяРазработчики, администратор 1СБухгалтеры, руководители, аудит
🛠 Где настраиваетсяКонфигураторРежим 1С:Предприятие
💾 Где лежат версииОтдельный каталог или сервер хранилищаВнутри самой информационной базы
↩️ ОткатПолучить или откатить версию конфигурацииПерейти на старую версию объекта

Если вопрос звучит как «кто исправил накладную», это история изменений. Если «кто сломал обработку после обновления», это хранилище конфигурации.

Хранилище конфигурации: версии кода и метаданных

Хранилище — общая копия конфигурации, к которой подключаются разработчики. Каждый работает в своей базе, а изменения проходят через хранилище по схеме «захватил — изменил — поместил».

Как создать хранилище

  1. Откройте базу в Конфигураторе с правами администратора.
  2. Выберите Конфигурация → Хранилище конфигурации → Создать хранилище.
  3. Укажите каталог (локальный путь или сетевая папка) либо адрес сервера хранилища.
  4. Задайте имя и пароль администратора хранилища.

После создания база становится первым подключённым клиентом. Остальные разработчики подключаются командой Подключиться к хранилищу из того же меню.

Как появляется новая версия

  • 🔒 Захват. Разработчик захватывает объект, например модуль документа. Пока объект захвачен, другие его менять не могут.
  • ✏️ Правка. Изменения делаются в своей базе и проверяются там же.
  • 📤 Помещение. Команда «Поместить в хранилище» создаёт новую версию. Номер версии растёт на единицу, рядом сохраняются автор, время и комментарий.

Пишите осмысленный комментарий при каждом помещении. Через полгода список из 300 версий с пустыми комментариями не поможет найти, где появилась ошибка.

Правила работы командой

Хранилище не мешает двум разработчикам, пока они правят разные объекты. Проблемы начинаются с общих модулей и форм, которые нужны всем. Несколько привычек снимают большую часть конфликтов:

  • ⏱ Захватывайте объект прямо перед правкой, а не «на всякий случай» на неделю вперёд.
  • 📌 Помещайте изменения небольшими порциями: одна задача — одно помещение.
  • 🔄 Перед помещением обновите свою конфигурацию из хранилища, чтобы проверять доработку на актуальном коде.
  • 🧩 Если правку нужно продолжить, при помещении оставьте объекты захваченными, а не отпускайте и не захватывайте их снова.

Рабочую базу к хранилищу не подключайте. Разработка идёт в копии, а в рабочую базу переносят проверенную версию через файл .cf или обновление конфигурации .

История хранилища

Окно открывается командой Конфигурация → Хранилище конфигурации → История хранилища. В нём видно, какие объекты менялись в каждой версии. Здесь же можно:

  • сравнить две версии или версию с текущей конфигурацией;
  • получить старую версию объекта в свою базу;
  • сохранить версию конфигурации в файл .cf;
  • установить метку, например «Релиз от 01.10, передан в рабочую базу»;
  • откатить хранилище к выбранной версии.

Откат хранилища удаляет из истории все версии после выбранной. Перед ним сохраните последнюю версию в .cf и предупредите всех, кто подключён к хранилищу.

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

Полная и неполная история изменений документов

История изменений объектов хранит слепок объекта после каждой записи. Открыв версию, вы видите документ таким, каким он был в тот момент: шапку, табличные части, реквизиты.

Когда история полная

Полная история получается, если учёт версий включили до создания объекта. Тогда первая версия — момент создания, а дальше идут все исправления по порядку. По такой истории можно восстановить любую промежуточную редакцию.

Когда история неполная

На практике история почти всегда начинается не с нуля. Неполная она в трёх случаях:

  • 🕒 Версионирование включили позже. Для документа, созданного раньше, первая версия появится только при следующей записи. Как он выглядел при создании, программа уже не покажет.
  • 🧹 Сработал срок хранения. Если задан срок, например «за последний месяц», более старые версии становятся устаревшими и удаляются при очистке.
  • ⚙️ Объект менялся без записи через форму. Обработка, которая пишет данные в обход стандартной записи объекта, может не создать версию.

Для документа есть ещё одно различие: версию можно создавать при каждой записи или только при проведении. Во втором случае черновые сохранения в историю не попадают. Это экономит место, но правки непроведённого документа вы не увидите.

Нужна история для аудита — включайте учёт версий в начале периода и не ставьте короткий срок хранения на первичные документы.

Как включить и настроить версионирование объектов

В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11, КА 2) механизм называется одинаково и включается в одном месте.

КонфигурацияГде включить
Бухгалтерия 3.0Администрирование → Общие настройки → История изменений
ЗУП 3.1Администрирование → Общие настройки → История изменений
УТ 11, КА 2НСИ и администрирование → Администрирование → Общие настройки → История изменений

Порядок настройки

  1. Откройте раздел из таблицы и установите флажок «Хранить историю изменений».
  2. Перейдите по ссылке настройки хранения рядом с флажком.
  3. В списке типов объектов выберите правило для каждого: не хранить версии, хранить при записи или (для документов) при проведении.
  4. Задайте срок хранения версий. Для справочников обычно хватает года, для первичных документов лучше хранить без ограничения.
  5. Сохраните настройки. Версии начнут создаваться с ближайшей записи объектов.

Какое правило выбрать

Тип объектаРекомендуемое правилоПочему
Первичные документы (реализация, поступление, банк)При проведении, без срокаВажны итоговые суммы, черновики не нужны
Кадровые документыПри проведенииНужно видеть, кто менял даты и оклады
Справочники контрагентов и номенклатурыПри записи, 1 годЧасто правят ИНН, реквизиты, ставки НДС
Регламентные и технические документыНе хранитьТолько раздувают базу

Сколько места это займёт

Версии лежат внутри базы, в регистре сведений ВерсииОбъектов. Каждая версия — полный слепок объекта, а не разница с предыдущей. Документ с табличной частью на 500 строк, который пересохраняли 40 раз, даёт 40 полных копий.

В форме настройки хранения видно, сколько места занимают устаревшие версии, и есть команда их очистки. Проверяйте эту цифру раз в квартал: при агрессивных настройках регистр версий легко становится самой большой таблицей базы.

Встроенная история данных платформы

Начиная с платформы 8.3.11 у самой платформы есть механизм «История данных». Он включается разработчиком в свойствах объекта метаданных в Конфигураторе и работает независимо от БСП. В типовых конфигурациях пользователь обычно имеет дело с подсистемой БСП из раздела выше, поэтому начинать стоит с неё.

Права доступа: кто видит версии и кто может их менять

Права в хранилище конфигурации

Пользователи хранилища не совпадают с пользователями информационной базы. Их заводит администратор хранилища: Конфигурация → Хранилище конфигурации → Администрирование, вкладка пользователей.

Каждому пользователю назначают права:

  • Захват объектов — можно захватывать и помещать изменения;
  • Изменение состава версий — можно ставить метки, менять комментарии, откатывать версии;
  • Административные функции — управление пользователями и настройками хранилища.

Для безопасности:

  • 🔑 Не работайте всей командой под одним логином: в истории пропадёт автор изменения.
  • 🔐 Права на откат и администрирование — у одного-двух человек.
  • 📁 Каталог файлового хранилища закройте правами Windows от всех, кроме служебной учётной записи и разработчиков. Удалённый файл из каталога хранилища испортит его целиком.
  • 🌐 Для работы через интернет используйте сервер хранилища или его публикацию на веб-сервере, а не общую папку.

Права на историю изменений объектов

В режиме 1С:Предприятие доступ к версиям задают профили групп доступа. Администратор видит историю всегда. Обычному пользователю нужна роль на чтение версий объектов: её проще найти в составе профиля поиском по слову «версий».

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

Восстановление данных из версии

Вернуть документ или справочник

  1. Откройте объект, который нужно восстановить.
  2. В меню формы Ещё выберите «История изменений».
  3. В списке версий найдите нужную по дате и автору.
  4. Выделите две версии и нажмите «Сравнить», чтобы увидеть, какие поля и строки менялись.
  5. Откройте нужную версию и выполните команду перехода на неё.
  6. Если это документ, проверьте движения и при необходимости проведите его заново.

Переход на версию не удаляет историю. Программа записывает объект в старом состоянии, и это само становится новой версией. Поэтому ошибочный откат тоже можно отменить.

Если после правки документа на его основании создавались другие документы (оплата, счёт-фактура, возврат), откат не исправит их. Суммы в связанных документах придётся сверить вручную.

Восстановить удалённый объект

История изменений не заменяет резервную копию. Объект, помеченный на удаление, ещё можно вернуть, сняв пометку. Объект, удалённый окончательно, из версий не восстановить: нужна копия базы на дату до удаления, из которой его выгружают обработкой переноса данных.

Вернуть код из хранилища

Неудачную доработку откатывают без потери остальной работы:

  1. В истории хранилища найдите версию до ошибки.
  2. Сравните её с текущей и выберите только изменённые объекты.
  3. Получите их старое состояние в свою базу, захватите, проверьте и поместите как новую версию.

Такой путь безопаснее, чем откат всего хранилища: история остаётся целой, а в комментарии видно, почему изменения вернули.

Сбои версионирования и что с ними делать

Диагностика: выберите симптом

Как не потерять хранилище

Хранилище конфигурации — это файлы в каталоге. Сбой диска или прерванное помещение по сети могут повредить его. Чтобы откат всегда был возможен:

  • 💾 копируйте каталог хранилища по расписанию, когда в него никто не помещает изменения;
  • 🏷 перед каждой выкладкой в рабочую базу ставьте метку и сохраняйте версию в .cf;
  • 🔁 раз в месяц проверяйте, что копия хранилища открывается, а не просто лежит на диске.

Частые вопросы

Хранит ли 1С историю изменений документов по умолчанию?
Нет. Учёт версий нужно включить вручную в общих настройках администрирования и задать правила для типов объектов.
Видно ли в версии, кто изменил документ?
Да. У каждой версии есть дата, время и пользователь, под которым объект записали. Если вся бухгалтерия работает под одним логином, автора не определить.
Можно ли хранить версии только для части документов?
Да. Правило задаётся отдельно для каждого типа объектов. Для остальных выберите вариант без хранения версий.
Влияет ли версионирование на скорость работы?
Запись объекта становится немного дольше, потому что сохраняется ещё и его копия. Заметно это только на документах с тысячами строк, которые пересохраняют много раз за день.
Нужно ли хранилище конфигурации, если программист один?
Да, если он дорабатывает рабочую базу. Хранилище даёт историю изменений кода и быстрый возврат к версии до неудачной правки.