СТАНДАРТ ВС 2
Стандарт: Именование файлов корпоративного архива ПО
Дата введения: 2026-04-07
Дата ревизии: 2026-04-07
1 Назначение
Настоящий стандарт устанавливает правила формирования унифицированных имён файлов (УИФ) для программного обеспечения, драйверов, утилит, конфигурационных данных, образов операционных систем и спецификаций сборок, используемых в компании А3.
УИФ обеспечивает:
- однозначную идентификацию файла без обращения к метаданным или sidecar-файлам;
- детерминированный парсинг имени файла простыми строковыми операциями (
split('.')); - совместимость с системами автоматического развёртывания (SCCM, PDQ, Ansible, PowerShell);
- масштабируемость структуры при добавлении новых типов ПО, архитектур и редакций;
- читаемость человеком при сохранении машинной интерпретируемости.
2 Термины и общие положения
2.1 Унифицированное имя файла (УИФ) — строковое обозначение файла в корпоративном архиве, состоящее из фиксированного набора сегментов, разделённых точками, где каждый сегмент несёт определённую семантическую нагрузку.
2.2 Сегмент УИФ — атомарный элемент имени, отделённый точками, соответствующий одному из предопределённых полей: тип, архитектура, наименование, редакция, версия, язык, расширение.
2.3 Нормализованная версия — представление номера версии, в котором внутренние разделители заменены с точки (.) на дефис (-) для избежания коллизии с разделителями сегментов УИФ.
2.4 Атомарный парсинг — метод извлечения метаданных из имени файла посредством операции split('.') без использования регулярных выражений или внешних манифестов.
2.5 Контекст развёртывания — совокупность условий (ОС, архитектура, группа пользователей), определяющих применимость файла, закодированная в сегментах УИФ.
3 Общие положения
3.1 УИФ применяется ко всем файлам, размещаемым в корпоративном архиве компании А3, включая программы, драйверы, утилиты, конфигурации, документацию, образы операционных систем и спецификации сборок.
3.2 Запись УИФ осуществляется строго в нижнем регистре латинского алфавита, за исключением случаев, когда требуется точное сохранение идентификатора вендора (например, IBM, HP — допускается верхний регистр).
3.3 Разделителем сегментов УИФ является точка (.). Внутри сегментов допускаются только следующие символы: строчные латинские буквы (a–z), цифры (0–9), нижнее подчёркивание (_), дефис (-).
3.4 Поле <версия> обязательно использует дефис (-) в качестве внутреннего разделителя компонентов версии. Точка внутри этого поля запрещена.
Пример: v24-2-1-446, v1-0-0-rc1, v2024-04-15.
3.5 Если в поле <наименование> или <редакция> используется несколько слов, они разделяются нижним подчёркиванием (_).
Пример: yandex_browser, laserjet_pro.
3.6 Расширение файла (.exe, .msi, .zip и т.д.) остаётся неизменным и соответствует реальному формату файла. Псевдорасширения не допускаются.
3.7 УИФ не должен превышать 255 символов для совместимости с файловыми системами Windows и Linux.
4 Структура УИФ
Общий вид структуры УИФ:
<тип>.<arch>.<vendor_product>.<edition>.<version>.<lang>.<ext>
4.1 Описание сегментов
| № | Сегмент | Обязательность | Допустимые значения | Пример |
|---|---|---|---|---|
| 1 | тип | ✅ | prg — программаdrv — драйверutl — утилита (одноразовая)cfg — конфигурация/профильdoc — документацияimg — образ ОСspc — спецификация сборки | prg |
| 2 | arch | ✅ | win64, win32, winarm, mac, linux, any | win64 |
| 3 | vendor_product | ✅ | Строка в формате vendor_product, слова через _, без спецсимволов | corel_draw, hp_laserjet_pro |
| 4 | edition | ✅ | std, pro, corporate, portable, trial, any | corporate |
| 5 | version | ✅ | Формат: v<версия> или YYYY-MM-DD[-BUILD], компоненты версии разделены - | v24-2-1-446, v2024-04-15 |
| 6 | lang | ✅ | ru, en, multi | ru |
| 7 | ext | ✅ | Реальное расширение файла: exe, msi, zip, iso, json, inf, pdf | msi |
4.2 Правила валидации
- Все сегменты, кроме
<version>, не должны содержать точек. <version>должен начинаться сvилиYYYY(для дат).- Внутри
<version>разрешены только цифры и дефисы. <vendor_product>не должен содержать пробелов, точек или дефисов (только_для разделения слов).<lang>и<arch>должны соответствовать предопределённому справочнику.
4.3 Исключения и особые случаи
- Для файлов, не имеющих версии (например, шаблоны, статические конфиги), в поле
<version>указываетсяv0илиstatic. - Для мультиязычных пакетов в
<lang>указываетсяmulti. - Для кроссплатформенных файлов в
<arch>указываетсяany. - Для типа
img(образ ОС) семантика сегментов 3–4 изменяется (см. п. 5.6). - Для типа
spc(спецификация) семантика сегментов 3–4 изменяется (см. п. 5.7).
5 Примеры использования
5.1 Программное обеспечение
prg.win64.corel_draw.corporate.v24-2-1-446.ru.msi
prg.win32.adobe_reader.std.v2024-01-15.ru.exe
prg.any.libreoffice.portable.v7-6-4.multi.zip
5.2 Драйверы
drv.win64.hp_laserjet_pro.any.v87-8-33.ru.exe
drv.win32.canon_mf_drivers.std.v5-12-0.ru.msi
drv.any.epson_generic.any.v1-0-0.multi.inf
5.3 Утилиты и инструменты
utl.win64.ccleaner.portable.v6-08-99.multi.zip
utl.win64.antipampersprof.corporate.v2-0-6.ru.exe
utl.any.7zip.portable.v24-06.multi.7z
5.4 Конфигурации и профили
cfg.any.yandex_browser.corporate.v14-2.ru.json
cfg.win64.windows10_hardening.corporate.v2024-03.reg
cfg.any.vscode_settings.dev.v1-85-2.multi.json
5.5 Документация
doc.any.corel_draw_license.corporate.v24-2.ru.pdf
doc.win64.hp_dj500plus_manual.any.v87-8.ru.pdf
5.6 Образы операционных систем
Для типа img структура сегментов:
img.<arch>.<os>.<build_edition>.<version>.<lang>.<ext>
| № | Сегмент | Описание | Пример |
|---|---|---|---|
| 1 | тип | img — образ ОС | img |
| 2 | arch | Архитектура процессора: amd64, x86, arm | amd64 |
| 3 | os | Операционная система: windows, linux | windows |
| 4 | build_edition | Редакция сборки А3: 10_a3_universal, 10_a3_checkout, 10_a3_client, 7_a3_universal | 10_a3_universal |
| 5 | version | Версия сборки: v1, v2026-06-01 | v1 |
| 6 | lang | Язык интерфейса | ru |
| 7 | ext | Реальное расширение файла образа | wim, iso, esd |
Примеры:
img.amd64.windows.10_a3_universal.v1.ru.iso
img.amd64.windows.7_a3_universal.v1.ru.wim
img.amd64.windows.10_a3_checkout.v1.ru.iso
img.amd64.windows.10_a3_client.v1.ru.esd
5.7 Спецификации сборок
Для типа spc структура сегментов:
spc.<arch>.<redaction>.<version>.<lang>.<ext>
| № | Сегмент | Описание | Пример |
|---|---|---|---|
| 1 | тип | spc — спецификация сборки | spc |
| 2 | arch | Целевая архитектура | any, win64 |
| 3 | redaction | Редакция сборки: 10_a3_universal, 10_a3_checkout, 10_a3_client, 7_a3_universal | 10_a3_universal |
| 4 | version | Версия спецификации в нотации v<ISO8601> | v2026-06-01 |
| 5 | lang | Язык документа | ru |
| 6 | ext | Реальное расширение файла | md, pdf, docx |
Примечание: Для типа
spcполеeditionопущено — структура содержит 6 сегментов. Для сохранения 7-сегментной схемы вставьтеanyв 4-ю позицию:
spc.any.<redaction>.any.<version>.<lang>.<ext>
Примеры:
spc.any.10_a3_universal.v2026-06-01.ru.md
spc.any.10_a3_checkout.v2026-06-09.ru.md
spc.any.7_a3_universal.v2026-07-01.ru.md
6 Приложение
6.1 Справочник допустимых значений
Типы (тип):
| Код | Описание | Пример сценария |
|---|---|---|
prg | Прикладное ПО для установки | Офисные пакеты, графические редакторы |
drv | Драйверы оборудования | Принтеры, сканеры, сетевые адаптеры |
utl | Утилиты одноразового запуска | Очистка, диагностика, миграция |
cfg | Конфигурационные файлы, политики, реестры | Настройки браузера, GPO-экспорты |
doc | Документация, лицензии, инструкции | Руководства, EULA, сканы лицензий |
img | Образ операционной системы | WIM/ISO/ESD-файлы установки |
spc | Спецификация сборки | Документы с составом редакции |
Архитектуры (arch):
| Код | Описание |
|---|---|
win64 | Windows x64 |
win32 | Windows x86 |
winarm | Windows on ARM |
mac | macOS (универсальный или с уточнением в названии) |
linux | Linux (дистрибутив указывается в vendor_product) |
any | Кроссплатформенный или не зависящий от ОС |
amd64 | Архитектура x86-64 (для образов ОС, тип img) |
x86 | Архитектура x86 (для образов ОС, тип img) |
arm | Архитектура ARM (для образов ОС, тип img) |
Редакции (edition / build_edition):
| Код | Описание |
|---|---|
std | Стандартная редакция |
pro | Профессиональная / расширенная |
corporate | Корпоративная сборка с предустановленными настройками |
portable | Портативная версия, не требующая установки |
trial | Пробная / демонстрационная версия |
any | Редакция не применима или универсальна |
a3_universal | Универсальная сборка А3 (Клиент/Менеджер) |
a3_checkout | Сборка А3 для кассы |
a3_checkout_ext | Расширенная сборка А3 для кассы |
a3_client | Урезанная сборка А3 — только клиентские места |
a3_base | Базовая сборка А3 |
Языки (lang):
| Код | Описание |
|---|---|
ru | Русский интерфейс / документация |
en | Английский |
multi | Мультиязычный пакет или язык не применим |
6.2 Алгоритм парсинга УИФ (PowerShell)
function Parse-UiF {
param([string]$Filename)
$parts = $Filename.Split('.')
if ($parts.Count -ne 7) {
throw "Неверное количество сегментов: ожидается 7, получено $($parts.Count)"
}
return [PSCustomObject]@{
Type = $parts[0]
Arch = $parts[1]
Name = $parts[2]
Edition = $parts[3]
Version = $parts[4].TrimStart('v') # "24-2-1-446"
Language = $parts[5]
Ext = $parts[6]
}
}
# Пример:
# Parse-UiF "prg.win64.corel_draw.corporate.v24-2-1-446.ru.msi"
# → Version = "24-2-1-446" (готово к сравнению через -split('-'))6.3 Скрипт нормализации версии при загрузке
function Normalize-Version {
param([string]$RawVersion)
# Преобразует "24.2.1.446" → "v24-2-1-446"
$clean = $RawVersion -replace '[^\d.]', ''
$parts = $clean -split '\.' | Where-Object { $_ }
return 'v' + ($parts -join '-')
}6.4 Контрольные суммы и манифест
Каждый файл в архиве должен сопровождаться записью в manifest.csv со следующей структурой:
filename,type,arch,version,edition,lang,sha256,silent_args,license_ref,owner,last_verified
prg.win64.corel_draw.corporate.v24-2-1-446.ru.msi,prg,win64,v24-2-1-446,corporate,ru,a1b2c3...,/qn /norestart,LIC-CD-2024,ivanov@corp.ru,2026-04-01Генерация SHA256:
Get-FileHash -Path ".\file.msi" -Algorithm SHA256 | Select-Object -ExpandProperty HashПримечание: Настоящий стандарт является развитием принципов, заложенных в стандарте R 5.1, и специализирован для задач управления корпоративным архивом программного обеспечения. При возникновении коллизий приоритет имеют положения ВС 2 в части именования файлов архива.