Администрирование · 9 мин
Что такое хранилище в 1С и как с ним работать
Что такое хранилище в 1С: хранилище конфигурации, хранилище значений и хранилище настроек. Устройство, настройка, типичные ошибки и практические советы.
Термин «хранилище» в экосистеме 1С употребляется в нескольких разных смыслах, и это часто путает начинающих специалистов. Чаще всего под хранилищем понимают хранилище конфигурации — серверное хранилище версий прикладного решения, через которое организуется коллективная разработка. Реже речь идёт о хранилище значений — объекте встроенного языка для сохранения произвольных данных в базе, или о хранилище настроек, где платформа держит пользовательские варианты отчётов и настройки форм.
Понимание различий между этими механизмами важно на практике: хранилище конфигурации администрирует разработчик или внедренец, хранилище значений используется при написании кода, а хранилище настроек иногда приходится чистить, когда у пользователя «слетают» отчёты. Ниже разобраны все три смысла, способы подключения, типовые операции и ограничения.
Хранилище конфигурации: зачем нужно и как устроено
Хранилище конфигурации — это централизованное хранилище истории изменений прикладного решения. Оно решает две задачи: позволяет нескольким разработчикам работать над одной конфигурацией без взаимных потерь изменений и сохраняет версии конфигурации, к которым можно вернуться при ошибке.
Принцип работы строится на захвате объектов. Разработчик захватывает нужные объекты метаданных (справочники, документы, модули) в хранилище, изменяет их локально, а затем помещает обратно. Пока объект захвачен одним разработчиком, другие не могут его изменить — это исключает конфликты версий. Каждое помещение создаёт новую версию конфигурации с комментарием.
Физически хранилище может располагаться в файловом каталоге (для небольших команд) или публиковаться через сервер хранилища 1С (для распределённых команд и большего контроля доступа). Файловый вариант проще в развёртывании, но требует общего сетевого ресурса с корректными правами.
Как создать и подключить хранилище конфигурации
Создание хранилища выполняется из конфигуратора под учётной записью с правами администратора. Конфигурация при этом должна быть закрыта для редактирования всеми пользователями, а сама процедура создаёт структуру каталогов и первую версию.
- 1Откройте конфигуратор и убедитесь, что конфигурация никем не редактируется
- 2Выполните «Конфигурация → Хранилище конфигурации → Создать хранилище» и укажите пустой каталог
- 3Задайте пользователей хранилища через «Администрирование → Пользователи хранилища»
- 4На рабочих местах разработчиков выполните «Подключиться к хранилищу» с указанием того же каталога
- 5Проверьте: в окне конфигурации у объектов появились пиктограммы захвата, а история версий открывается
При подключении важно, чтобы каталог хранилища был доступен по сети всем участникам с правами на чтение и запись. Если хранилище размещается на сервере хранилища 1С, подключение выполняется по адресу сервера и имени хранилища, а не по файловому пути.
После подключения конфигурация переходит в режим «на поддержке хранилища»: прямое редактирование объектов без захвата блокируется. Это нормальное поведение, а не ошибка.
Основные операции: захват, помещение, обновление
Ежедневная работа с хранилищем сводится к трём действиям. Захват (Ctrl при выборе объекта или контекстное меню «Захватить в хранилище») резервирует объект за разработчиком. Помещение фиксирует изменения и создаёт новую версию — всегда пишите осмысленный комментарий, по нему потом ищут причину изменений. Обновление из хранилища подтягивает чужие изменения в локальную базу.
Полезные дополнительные возможности: сравнение версий между собой и с текущей конфигурацией, откат к конкретной версии, просмотр истории объекта. Если два разработчика изменили взаимосвязанные объекты, при помещении платформа проверяет ссылочную целостность и может потребовать захватить связанные объекты.
Помещайте изменения небольшими порциями с понятными комментариями, а не одним массивным пакетом в конце недели: при откате крупной версии вы потеряете и рабочие доработки, и проблемный участок вместе с ними.
Хранилище значений в коде 1С
Второй смысл термина — объект ХранилищеЗначения встроенного языка. Он предназначен для сохранения в базе данных произвольных данных: картинок, файлов, таблиц значений, результатов сериализации. Тип реквизита «ХранилищеЗначения» есть у справочников, документов, регистров сведений и других объектов.
Запись и чтение выполняются через конструктор и метод Получить():
// Запись файла в реквизит типа ХранилищеЗначения
Объект.ДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
Объект.Записать();
// Чтение обратно
ДвоичныеДанные = Объект.ДанныеФайла.Получить();Данные внутри хранилища значений сериализуются и могут дополнительно сжиматься. Важное ограничение: по содержимому хранилища нельзя строить запросы и отборы — платформа видит его как непрозрачный бинарный блок. Если по данным нужно искать, их следует хранить в обычных реквизитах, а в хранилище помещать только «тяжёлую» часть.
Хранилище настроек: где живут настройки пользователей
Третий смысл — системное хранилище настроек. Платформа автоматически сохраняет туда варианты отчётов, настройки форм, историю ввода и прочие пользовательские предпочтения. По умолчанию используется стандартное хранилище, в типовых конфигурациях часто задействовано хранилище настроек на базе регистра сведений или справочника.
Администратору этот механизм важен в двух случаях: перенос настроек между пользователями (например, раздать всем типовой вариант отчёта) и очистка настроек, когда форма «сломалась» после обновления и не открывается у конкретного пользователя. Очистка выполняется через «Администрирование → Пользователи и права → Персональные настройки пользователей» в типовых решениях или программно через менеджеры хранилищ настроек.
Сравнение вариантов и типичные ошибки
| Механизм | Что хранит | Кто использует | Ключевое ограничение |
|---|---|---|---|
| Хранилище конфигурации | Версии метаданных и модулей | Разработчики | Один объект — один захватчик |
| Хранилище значений | Произвольные данные в реквизитах | Код конфигурации | Нет поиска по содержимому |
| Хранилище настроек | Настройки отчётов и форм | Платформа, пользователи | Привязка к конкретному пользователю |
Как выбрать действие
FAQ: частые вопросы о хранилищах в 1С
Обязательно ли использовать хранилище конфигурации, если разработчик один?
Нет, но это полезно: хранилище даёт историю версий и возможность отката, что заменяет ручное резервное копирование конфигураций. Для одиночной разработки достаточно файлового хранилища на локальном диске.
Можно ли восстановить объект, удалённый из конфигурации?
Да, если конфигурация подключена к хранилищу: найдите версию, где объект ещё существовал, и загрузите конфигурацию из этой версии или перенесите объект через сравнение и объединение. Без хранилища восстановление возможно только из резервной копии базы.
Что делать, если хранилище конфигурации недоступно?
Проверьте доступность сетевого каталога и права на него. Если хранилище повреждено, можно создать новое из актуальной конфигурации базы — история версий будет потеряна, но сама конфигурация сохранится.
Замедляет ли работу базы хранение файлов в хранилище значений?
Само по себе нет, но большие объёмы бинарных данных увеличивают размер базы и время резервного копирования. Для массового хранения файлов рассмотрите тома хранения файлов, если конфигурация их поддерживает.
Как перенести настройки отчёта другому пользователю?
В типовых конфигурациях используйте механизм копирования настроек в разделе персональных настроек пользователей либо сохраните вариант отчёта как общий (доступный всем), если у вас есть соответствующие права.
Что важно запомнить
«Хранилище» в 1С — три разных механизма: хранилище конфигурации для командной разработки и версий, хранилище значений для произвольных данных в реквизитах, хранилище настроек для пользовательских настроек. Определите, о каком из них идёт речь в вашей задаче, и применяйте соответствующие инструменты: захват и помещение объектов, конструктор ХранилищеЗначения или администрирование настроек.