Хранилище конфигурации 1С через пакетный запуск платформы: отчет по версиям, захват и снятие захвата, обновление, помещение, выгрузка в CF, подключение и отключение базы. Триггеры - 'хранилище конфигурации', 'захвати объекты', 'помести в хранилище', 'сними захват', 'обнови из хранилища', 'подключи базу к хранилищу', 'отключи от хранилища', 'отчет по версиям хранилища'. НЕ для git: это другой механизм.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add Desko77/claude-code-skills-1c --skill 1c-storage-ops --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of 1c Storage Ops?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/desko77-1c-storage-ops)More formats (shields.io, HTML) on the badges page.
---
name: 1c-storage-ops
description: "Хранилище конфигурации 1С через пакетный запуск платформы: отчет по версиям, захват и снятие захвата, обновление, помещение, выгрузка в CF, подключение и отключение базы. Триггеры - 'хранилище конфигурации', 'захвати объекты', 'помести в хранилище', 'сними захват', 'обнови из хранилища', 'подключи базу к хранилищу', 'отключи от хранилища', 'отчет по версиям хранилища'. НЕ для git: это другой механизм."
---
# Операции с хранилищем конфигурации 1С
Хранилище конфигурации это механизм платформы, а не git. Совместная работа идет через захват объектов,
история версий хранится на стороне хранилища. Скил закрывает ту часть, которая выполняется пакетным
запуском платформы.
## Usage
```powershell
powershell.exe -NoProfile -File skills/1c-storage-ops/scripts/storage-ops.ps1 -Operation <операция> [параметры]
```
## Операции
| Операция | Что делает | Список объектов |
|----------|------------|-----------------|
| `status` | Отчет по версиям хранилища в файл. Самая дешевая проверка всей связки: платформа, база, хранилище, учетные данные | неприменим |
| `lock` | Захватить объекты для редактирования | обязателен |
| `update` | Обновить локальную конфигурацию из хранилища | обязателен |
| `commit` | Поместить изменения в хранилище | обязателен |
| `unlock` | Отменить захват | обязателен |
| `dump` | Выгрузить конфигурацию хранилища в CF, целиком или конкретную версию | неприменим |
| `bind` | Подключить информационную базу к хранилищу | неприменим |
| `unbind` | Отключить информационную базу от хранилища | неприменим |
## Параметры
| Параметр | Обязательный | Описание |
|----------|:------------:|----------|
| `-Operation <имя>` | да | Одна из операций выше |
| `-V8Path <путь>` | нет | Каталог bin платформы или полный путь к 1cv8.exe |
| `-InfoBasePath <путь>` | * | Файловая база |
| `-InfoBaseServer <сервер>` | * | Сервер 1С |
| `-InfoBaseRef <имя>` | * | Имя базы на сервере |
| `-UserName <имя>` | нет | Пользователь базы |
| `-Password <пароль>` | нет | Пароль пользователя базы |
| `-RepositoryPath <путь>` | да | Каталог хранилища конфигурации |
| `-RepositoryUser <имя>` | нет | Пользователь хранилища |
| `-RepositoryPassword <пароль>` | нет | Пароль пользователя хранилища |
| `-Objects "имя,имя"` | ** | Полные имена объектов через запятую |
| `-IncludeChildObjects` | нет | Захватывать вместе с подчиненными объектами |
| `-Comment <текст>` | *** | Комментарий помещения |
| `-KeepLocked` | нет | Оставить объекты захваченными после помещения |
| `-OutputFile <путь>` | **** | Файл отчета для `status`, CF-файл для `dump` |
| `-Version <номер>` | нет | Номер версии для `dump`; без него берется последняя |
| `-Extension <имя>` | нет | Работать с хранилищем расширения |
| `-Force` | нет | Принудительный режим, за двумя воротами (см. ниже) |
| `-ConfirmForce` | нет | Подтверждение принудительного режима |
| `-ConfirmDiscardChanges` | нет | Подтверждение принудительной отмены захвата с потерей изменений |
| `-ConfirmUnbind` | нет | Подтверждение отключения базы от хранилища |
| `-BindAlreadyBoundUser` | нет | Подключить, даже если этот пользователь уже подключен другой базой |
| `-ReplaceLocalConfiguration` | нет | При подключении заменить локальную конфигурацию конфигурацией из хранилища |
| `-ConfirmReplaceLocalConfiguration` | нет | Подтверждение такой замены |
| `-StrictLog` | нет | Отказ в журнале поднимает код возврата до 1, даже если платформа вернула 0 |
> `*` - нужен либо `-InfoBasePath`, либо пара `-InfoBaseServer` + `-InfoBaseRef`
> `**` - обязателен для `lock`, `update`, `commit`, `unlock`; для `status` и `dump` отклоняется
> `***` - обязателен для `commit`
> `****` - обязателен для `status` и `dump`
## Гарды
Каждый отказ происходит ДО запуска платформы.
| Гард | Почему |
|------|--------|
| Операция над объектами без `-Objects` отклоняется | Платформа без списка применяет операцию ко ВСЕЙ конфигурации |
| Маски (`*`, `?`) в перечне отклоняются | Список только явный: маска раскрывается на стороне, которую не видно из вызова |
| Корень конфигурации отклоняется | Операция над корнем захватывает все |
| Имя без точки отклоняется | Ожидается полное имя вида `Справочник.Валюты` |
| Дубли в перечне отклоняются | Признак ошибки составления списка |
| `commit` без комментария отклоняется | Комментарий это связь изменения с задачей |
| `-Force` требует разрешения в проекте И подтверждения в вызове | Долговременное разрешение - ключ `repositoryAllowForce` в `.v8-project.json`; подтверждение - `-ConfirmForce`, а для отмены захвата отдельный `-ConfirmDiscardChanges`, потому что она теряет несохраненные изменения |
## Подключение и отключение: что надо знать до запуска
**Привязка регистрируется на стороне хранилища, а не внутри файла базы.** Замерено: отключение, выполненное с
файловой КОПИИ базы, сняло привязку и у исходной базы - хранилище регистрирует связь по пользователю.
Отсюда два следствия:
- проверять отключение на копии бесполезно и опасно: копия и оригинал делят одну привязку;
- прежде чем отключать, надо понимать, кто еще работает с хранилищем через эту связку.
**Обратное подключение требует пустой локальной конфигурации.** На непустой платформа отвечает
`Конфигурация не пустая!` и отказывает. Рабочий путь - `-ReplaceLocalConfiguration`, но он заменяет
локальную конфигурацию конфигурацией из хранилища: несохраненные локальные правки при этом теряются.
Поэтому ключ закрыт отдельным подтверждением.
Последовательность восстановления после отключения, проверенная целиком: подключение с заменой
конфигурации, затем отчет по версиям, затем захват и снятие - все с нулевым кодом.
## Формат файла со списком объектов
Скрипт собирает его сам, но формат стоит знать - он замерен на платформе, а не взят из описания.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Objects xmlns="http://v8.1c.ru/8.3/config/objects" version="1.0">
<Object fullName="Справочник.Валюты" includeChildObjects="false"/>
</Objects>
```
Замеры на 8.3.27.1859:
- простой текст со списком имен платформа отвергает разбором XML: `Document is empty`;
- атрибут называется `includeChildObjects`. На `includeChildren` платформа отвечает прямо:
`читаемый тег не соответствует ожидаемым. Текущий includeChildren, ожидаемые includeChildObjects`;
- имя пользователя хранилища с кириллицей платформой принимается.
## Примеры
```powershell
# Проверить связку и получить отчет по версиям
powershell.exe -NoProfile -File skills/1c-storage-ops/scripts/storage-ops.ps1 `
-Operation status -InfoBasePath "C:\Bases\MyDB" `
-RepositoryPath "C:\Repo" -RepositoryUser "Администратор" -OutputFile "report.mxl"
# Захватить объекты
powershell.exe -NoProfile -File skills/1c-storage-ops/scripts/storage-ops.ps1 `
-Operation lock -InfoBasePath "C:\Bases\MyDB" -RepositoryPath "C:\Repo" `
-Objects "Справочник.Валюты,Справочник.Склады"
# Поместить с комментарием и оставить захват
powershell.exe -NoProfile -File skills/1c-storage-ops/scripts/storage-ops.ps1 `
-Operation commit -InfoBasePath "C:\Bases\MyDB" -RepositoryPath "C:\Repo" `
-Objects "Справочник.Валюты" -Comment "ЗАДАЧА-123: добавлен реквизит" -KeepLocked
# Отключить базу от хранилища
powershell.exe -NoProfile -File skills/1c-storage-ops/scripts/storage-ops.ps1 `
-Operation unbind -InfoBasePath "C:\Bases\MyDB" -RepositoryPath "C:\Repo" -ConfirmUnbind
# Подключить обратно, заменив локальную конфигурацию конфигурацией из хранилища
powershell.exe -NoProfile -File skills/1c-storage-ops/scripts/storage-ops.ps1 `
-Operation bind -InfoBasePath "C:\Bases\MyDB" -RepositoryPath "C:\Repo" `
-ReplaceLocalConfiguration -ConfirmReplaceLocalConfiguration
```
## Диагностика
| Сообщение платформы | Что значит |
|---------------------|------------|
| `Хранилище конфигурации по адресу ... не обнаружено` | Неверный `-RepositoryPath` либо каталог недоступен |
| `Неклассифицированная ошибка работы с хранилищем конфигурации` | База не подключена к хранилищу либо отказ на его стороне |
| `Объекты, отсутствующие в обеих конфигурациях` | Имя в перечне не разрешилось: опечатка либо объекта нет |
| `Объект уже захвачен пользователем ...` | Захват держит другой разработчик. Это отчет пользователю и остановка, а не повод снимать чужой захват |
| `Информационная база не связана с хранилищем конфигурации` | Привязки нет: подключить операцией `bind` |
| `Конфигурация не пустая!` при подключении | Подключение требует пустой локальной конфигурации либо `-ReplaceLocalConfiguration` |
Отчет операции `status` платформа отдает в формате MXL (табличный документ), а не текстом.
Вердикт операции строится по четырем сигналам, а не по коду возврата - `designer-batch-verdict.md`.
Пароли базы и хранилища маскируются в печатаемой командной строке.
## Связанное
- `docs/build-spec.md`, раздел про хранилище конфигурации - ключи командной строки.
- `designer-batch-verdict.md` - как читается результат пакетного запуска.
- `1c-db-dump-cf` - выгрузка конфигурации базы, а не хранилища.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!