История версий в 1С: хранилище конфигурации и версии документов
Содержание
Версионирование в 1С работает на двух уровнях. Версии кода и метаданных хранит хранилище конфигурации (Конфигуратор → Конфигурация → Хранилище конфигурации). Версии данных, то есть документов и справочников, хранит история изменений: в БП 3.0 и других типовых её включают в Администрирование → Общие настройки → История изменений.
Первое нужно разработчикам: кто и когда поменял модуль, как откатить неудачную доработку. Второе нужно бухгалтеру и аудитору: кто исправил сумму в проведённом документе и какой она была до правки. Механизмы не связаны, настраиваются в разных местах и решают разные задачи.
Два механизма под одним названием
Путаница начинается с того, что оба механизма называют «версионированием». Разница видна сразу, если поставить их рядом.
| Хранилище конфигурации | История изменений объектов | |
|---|---|---|
| 📦 Что хранит | Модули, формы, макеты, реквизиты метаданных | Состояние документов и справочников после записи |
| 👤 Кто пользуется | Разработчики, администратор 1С | Бухгалтеры, руководители, аудит |
| 🛠 Где настраивается | Конфигуратор | Режим 1С:Предприятие |
| 💾 Где лежат версии | Отдельный каталог или сервер хранилища | Внутри самой информационной базы |
| ↩️ Откат | Получить или откатить версию конфигурации | Перейти на старую версию объекта |
Если вопрос звучит как «кто исправил накладную», это история изменений. Если «кто сломал обработку после обновления», это хранилище конфигурации.
Хранилище конфигурации: версии кода и метаданных
Хранилище — общая копия конфигурации, к которой подключаются разработчики. Каждый работает в своей базе, а изменения проходят через хранилище по схеме «захватил — изменил — поместил».
Как создать хранилище
- Откройте базу в Конфигураторе с правами администратора.
- Выберите
Конфигурация → Хранилище конфигурации → Создать хранилище. - Укажите каталог (локальный путь или сетевая папка) либо адрес сервера хранилища.
- Задайте имя и пароль администратора хранилища.
После создания база становится первым подключённым клиентом. Остальные разработчики подключаются командой Подключиться к хранилищу из того же меню.
Как появляется новая версия
- 🔒 Захват. Разработчик захватывает объект, например модуль документа. Пока объект захвачен, другие его менять не могут.
- ✏️ Правка. Изменения делаются в своей базе и проверяются там же.
- 📤 Помещение. Команда «Поместить в хранилище» создаёт новую версию. Номер версии растёт на единицу, рядом сохраняются автор, время и комментарий.
Пишите осмысленный комментарий при каждом помещении. Через полгода список из 300 версий с пустыми комментариями не поможет найти, где появилась ошибка.
Правила работы командой
Хранилище не мешает двум разработчикам, пока они правят разные объекты. Проблемы начинаются с общих модулей и форм, которые нужны всем. Несколько привычек снимают большую часть конфликтов:
- ⏱ Захватывайте объект прямо перед правкой, а не «на всякий случай» на неделю вперёд.
- 📌 Помещайте изменения небольшими порциями: одна задача — одно помещение.
- 🔄 Перед помещением обновите свою конфигурацию из хранилища, чтобы проверять доработку на актуальном коде.
- 🧩 Если правку нужно продолжить, при помещении оставьте объекты захваченными, а не отпускайте и не захватывайте их снова.
Рабочую базу к хранилищу не подключайте. Разработка идёт в копии, а в рабочую базу переносят проверенную версию через файл .cf или обновление конфигурации
.
История хранилища
Окно открывается командой Конфигурация → Хранилище конфигурации → История хранилища. В нём видно, какие объекты менялись в каждой версии. Здесь же можно:
- сравнить две версии или версию с текущей конфигурацией;
- получить старую версию объекта в свою базу;
- сохранить версию конфигурации в файл
.cf; - установить метку, например «Релиз от 01.10, передан в рабочую базу»;
- откатить хранилище к выбранной версии.
Откат хранилища удаляет из истории все версии после выбранной. Перед ним сохраните последнюю версию в .cf и предупредите всех, кто подключён к хранилищу.
Метки — простой способ связать номер версии хранилища с тем, что сейчас стоит в рабочей базе. Ставьте метку при каждой выкладке.
Полная и неполная история изменений документов
История изменений объектов хранит слепок объекта после каждой записи. Открыв версию, вы видите документ таким, каким он был в тот момент: шапку, табличные части, реквизиты.
Когда история полная
Полная история получается, если учёт версий включили до создания объекта. Тогда первая версия — момент создания, а дальше идут все исправления по порядку. По такой истории можно восстановить любую промежуточную редакцию.
Когда история неполная
На практике история почти всегда начинается не с нуля. Неполная она в трёх случаях:
- 🕒 Версионирование включили позже. Для документа, созданного раньше, первая версия появится только при следующей записи. Как он выглядел при создании, программа уже не покажет.
- 🧹 Сработал срок хранения. Если задан срок, например «за последний месяц», более старые версии становятся устаревшими и удаляются при очистке.
- ⚙️ Объект менялся без записи через форму. Обработка, которая пишет данные в обход стандартной записи объекта, может не создать версию.
Для документа есть ещё одно различие: версию можно создавать при каждой записи или только при проведении. Во втором случае черновые сохранения в историю не попадают. Это экономит место, но правки непроведённого документа вы не увидите.
Нужна история для аудита — включайте учёт версий в начале периода и не ставьте короткий срок хранения на первичные документы.
Как включить и настроить версионирование объектов
В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11, КА 2) механизм называется одинаково и включается в одном месте.
| Конфигурация | Где включить |
|---|---|
| Бухгалтерия 3.0 | Администрирование → Общие настройки → История изменений |
| ЗУП 3.1 | Администрирование → Общие настройки → История изменений |
| УТ 11, КА 2 | НСИ и администрирование → Администрирование → Общие настройки → История изменений |
Порядок настройки
- Откройте раздел из таблицы и установите флажок «Хранить историю изменений».
- Перейдите по ссылке настройки хранения рядом с флажком.
- В списке типов объектов выберите правило для каждого: не хранить версии, хранить при записи или (для документов) при проведении.
- Задайте срок хранения версий. Для справочников обычно хватает года, для первичных документов лучше хранить без ограничения.
- Сохраните настройки. Версии начнут создаваться с ближайшей записи объектов.
Какое правило выбрать
| Тип объекта | Рекомендуемое правило | Почему |
|---|---|---|
| Первичные документы (реализация, поступление, банк) | При проведении, без срока | Важны итоговые суммы, черновики не нужны |
| Кадровые документы | При проведении | Нужно видеть, кто менял даты и оклады |
| Справочники контрагентов и номенклатуры | При записи, 1 год | Часто правят ИНН, реквизиты, ставки НДС |
| Регламентные и технические документы | Не хранить | Только раздувают базу |
Сколько места это займёт
Версии лежат внутри базы, в регистре сведений ВерсииОбъектов. Каждая версия — полный слепок объекта, а не разница с предыдущей. Документ с табличной частью на 500 строк, который пересохраняли 40 раз, даёт 40 полных копий.
В форме настройки хранения видно, сколько места занимают устаревшие версии, и есть команда их очистки. Проверяйте эту цифру раз в квартал: при агрессивных настройках регистр версий легко становится самой большой таблицей базы.
Встроенная история данных платформы
Начиная с платформы 8.3.11 у самой платформы есть механизм «История данных». Он включается разработчиком в свойствах объекта метаданных в Конфигураторе и работает независимо от БСП. В типовых конфигурациях пользователь обычно имеет дело с подсистемой БСП из раздела выше, поэтому начинать стоит с неё.
Права доступа: кто видит версии и кто может их менять
Права в хранилище конфигурации
Пользователи хранилища не совпадают с пользователями информационной базы. Их заводит администратор хранилища: Конфигурация → Хранилище конфигурации → Администрирование, вкладка пользователей.
Каждому пользователю назначают права:
- Захват объектов — можно захватывать и помещать изменения;
- Изменение состава версий — можно ставить метки, менять комментарии, откатывать версии;
- Административные функции — управление пользователями и настройками хранилища.
Для безопасности:
- 🔑 Не работайте всей командой под одним логином: в истории пропадёт автор изменения.
- 🔐 Права на откат и администрирование — у одного-двух человек.
- 📁 Каталог файлового хранилища закройте правами Windows от всех, кроме служебной учётной записи и разработчиков. Удалённый файл из каталога хранилища испортит его целиком.
- 🌐 Для работы через интернет используйте сервер хранилища или его публикацию на веб-сервере, а не общую папку.
Права на историю изменений объектов
В режиме 1С:Предприятие доступ к версиям задают профили групп доступа. Администратор видит историю всегда. Обычному пользователю нужна роль на чтение версий объектов: её проще найти в составе профиля поиском по слову «версий».
Вернуть объект к старой версии может только тот, у кого есть право изменять сам объект. Если документ попадает в закрытый период, переход на версию упрётся в дату запрета изменения данных так же, как обычная правка.
Восстановление данных из версии
Вернуть документ или справочник
- Откройте объект, который нужно восстановить.
- В меню формы
Ещёвыберите «История изменений». - В списке версий найдите нужную по дате и автору.
- Выделите две версии и нажмите «Сравнить», чтобы увидеть, какие поля и строки менялись.
- Откройте нужную версию и выполните команду перехода на неё.
- Если это документ, проверьте движения и при необходимости проведите его заново.
Переход на версию не удаляет историю. Программа записывает объект в старом состоянии, и это само становится новой версией. Поэтому ошибочный откат тоже можно отменить.
Если после правки документа на его основании создавались другие документы (оплата, счёт-фактура, возврат), откат не исправит их. Суммы в связанных документах придётся сверить вручную.
Восстановить удалённый объект
История изменений не заменяет резервную копию. Объект, помеченный на удаление, ещё можно вернуть, сняв пометку. Объект, удалённый окончательно, из версий не восстановить: нужна копия базы на дату до удаления, из которой его выгружают обработкой переноса данных.
Вернуть код из хранилища
Неудачную доработку откатывают без потери остальной работы:
- В истории хранилища найдите версию до ошибки.
- Сравните её с текущей и выберите только изменённые объекты.
- Получите их старое состояние в свою базу, захватите, проверьте и поместите как новую версию.
Такой путь безопаснее, чем откат всего хранилища: история остаётся целой, а в комментарии видно, почему изменения вернули.
Сбои версионирования и что с ними делать
Как не потерять хранилище
Хранилище конфигурации — это файлы в каталоге. Сбой диска или прерванное помещение по сети могут повредить его. Чтобы откат всегда был возможен:
- 💾 копируйте каталог хранилища по расписанию, когда в него никто не помещает изменения;
- 🏷 перед каждой выкладкой в рабочую базу ставьте метку и сохраняйте версию в
.cf; - 🔁 раз в месяц проверяйте, что копия хранилища открывается, а не просто лежит на диске.