К статье
Практический материал

Администрирование · 9 мин

Что такое хранилище в 1С и как с ним работать

Что такое хранилище в 1С: хранилище конфигурации, хранилище значений и хранилище настроек. Устройство, настройка, типичные ошибки и практические советы.

Термин «хранилище» в экосистеме 1С употребляется в нескольких разных смыслах, и это часто путает начинающих специалистов. Чаще всего под хранилищем понимают хранилище конфигурации — серверное хранилище версий прикладного решения, через которое организуется коллективная разработка. Реже речь идёт о хранилище значений — объекте встроенного языка для сохранения произвольных данных в базе, или о хранилище настроек, где платформа держит пользовательские варианты отчётов и настройки форм.

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

Хранилище конфигурации: зачем нужно и как устроено

Хранилище конфигурации — это централизованное хранилище истории изменений прикладного решения. Оно решает две задачи: позволяет нескольким разработчикам работать над одной конфигурацией без взаимных потерь изменений и сохраняет версии конфигурации, к которым можно вернуться при ошибке.

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

Физически хранилище может располагаться в файловом каталоге (для небольших команд) или публиковаться через сервер хранилища 1С (для распределённых команд и большего контроля доступа). Файловый вариант проще в развёртывании, но требует общего сетевого ресурса с корректными правами.

Как создать и подключить хранилище конфигурации

Создание хранилища выполняется из конфигуратора под учётной записью с правами администратора. Конфигурация при этом должна быть закрыта для редактирования всеми пользователями, а сама процедура создаёт структуру каталогов и первую версию.

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

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

После подключения конфигурация переходит в режим «на поддержке хранилища»: прямое редактирование объектов без захвата блокируется. Это нормальное поведение, а не ошибка.

Основные операции: захват, помещение, обновление

Ежедневная работа с хранилищем сводится к трём действиям. Захват (Ctrl при выборе объекта или контекстное меню «Захватить в хранилище») резервирует объект за разработчиком. Помещение фиксирует изменения и создаёт новую версию — всегда пишите осмысленный комментарий, по нему потом ищут причину изменений. Обновление из хранилища подтягивает чужие изменения в локальную базу.

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

Помещайте изменения небольшими порциями с понятными комментариями, а не одним массивным пакетом в конце недели: при откате крупной версии вы потеряете и рабочие доработки, и проблемный участок вместе с ними.
ПЗ
Практическое замечание

Хранилище значений в коде 1С

Второй смысл термина — объект ХранилищеЗначения встроенного языка. Он предназначен для сохранения в базе данных произвольных данных: картинок, файлов, таблиц значений, результатов сериализации. Тип реквизита «ХранилищеЗначения» есть у справочников, документов, регистров сведений и других объектов.

Запись и чтение выполняются через конструктор и метод Получить():

bsl
// Запись файла в реквизит типа ХранилищеЗначения
Объект.ДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
Объект.Записать();

// Чтение обратно
ДвоичныеДанные = Объект.ДанныеФайла.Получить();

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

Хранилище настроек: где живут настройки пользователей

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

Администратору этот механизм важен в двух случаях: перенос настроек между пользователями (например, раздать всем типовой вариант отчёта) и очистка настроек, когда форма «сломалась» после обновления и не открывается у конкретного пользователя. Очистка выполняется через «Администрирование → Пользователи и права → Персональные настройки пользователей» в типовых решениях или программно через менеджеры хранилищ настроек.

Сравнение вариантов и типичные ошибки

МеханизмЧто хранитКто используетКлючевое ограничение
Хранилище конфигурацииВерсии метаданных и модулейРазработчикиОдин объект — один захватчик
Хранилище значенийПроизвольные данные в реквизитахКод конфигурацииНет поиска по содержимому
Хранилище настроекНастройки отчётов и формПлатформа, пользователиПривязка к конкретному пользователю
Типичные ошибки
01
Работа нескольких разработчиков без хранилища через копии баз — изменения неизбежно перезаписывают друг друга
02
Помещение в хранилище без комментария — через месяц невозможно понять, зачем делалось изменение
03
Хранение больших файлов в реквизите типа Строка вместо ХранилищеЗначения — раздувание базы и ошибки при выгрузке
04
Очистка всех настроек пользователя вместо точечного удаления проблемной настройки — пропадают рабочие варианты отчётов
05
Ручное редактирование файлов каталога хранилища — повреждение истории версий
Маршрут решения

Как выбрать действие

Над конфигурацией работает больше одного разработчикаСоздайте хранилище конфигурации и переведите разработку на захват объектов
Нужно сохранить файл или картинку в базеИспользуйте реквизит типа ХранилищеЗначения, а не строковые поля
У пользователя не открывается отчёт после обновленияОчистите его настройки отчёта в хранилище настроек, а не всю учётную запись
Нужно найти данные запросомХраните их в обычных реквизитах — по содержимому хранилища значений поиск невозможен

FAQ: частые вопросы о хранилищах в 1С

Обязательно ли использовать хранилище конфигурации, если разработчик один?

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

Можно ли восстановить объект, удалённый из конфигурации?

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

Что делать, если хранилище конфигурации недоступно?

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

Замедляет ли работу базы хранение файлов в хранилище значений?

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

Как перенести настройки отчёта другому пользователю?

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

Итог

Что важно запомнить

«Хранилище» в 1С — три разных механизма: хранилище конфигурации для командной разработки и версий, хранилище значений для произвольных данных в реквизитах, хранилище настроек для пользовательских настроек. Определите, о каком из них идёт речь в вашей задаче, и применяйте соответствующие инструменты: захват и помещение объектов, конструктор ХранилищеЗначения или администрирование настроек.