# 1c Bsl Dev

> Разработка на языке 1С (BSL) — модули, запросы, проведение, клиент-сервер, расширения. Используй при написании и рефакторинге кода 1С, отладке, code review BSL, оптимизации запросов, работе с регистрами и документами.

- Skill: `romancola-glitch/1c-bsl-dev` (Agent Skill)
- Install (CLI): `npx skillmds@latest add romancola-glitch/1c-bsl-dev`
- Raw SKILL.md: https://api.skillmd.com/api/skills/romancola-glitch/1c-bsl-dev/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: romancola-glitch (https://skillmd.com/u/romancola-glitch)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/romancola-glitch/1c-bsl-dev

---


# Разработка 1С (BSL)

## Стиль и структура

- Разделяй клиентский и серверный код (`&НаКлиенте`, `&НаСервере`, `&НаСервереБезКонтекста`).
- Тяжёлые операции и запросы — только на сервере.
- Имена процедур/функций — PascalCase, переменные — CamelCase (или по конвенции проекта).
- Избегай запросов в циклах; используй пакетные операции и временные таблицы.

## Запросы

- Явно указывай поля вместо `SELECT *`.
- Для больших выборок — `ПЕРВЫЕ N`, индексы по измерениям регистров.
- Проверяй `ВЫБРАТЬ РАЗРЕШЕННЫЕ` при работе с RLS.
- Виртуальные таблицы регистров — с явными параметрами периода и отборов.

## Проведение и транзакции

- `НачатьТранзакцию()` / `ЗафиксироватьТранзакцию()` / `ОтменитьТранзакцию()` — только при необходимости.
- Блокировки данных — осознанно, минимальный scope.
- Движения регистров — в `ОбработкаПроведения` или через общие модули проведения.

## Перед коммитом

1. Синтаксический контроль (`1c-platform-tools.test.syntaxCheck` или BSL LS).
2. Нет отладочного кода (`Сообщить`, лишних `Предупреждение`).
3. Новые объекты метаданных согласованы с аналитиком.
4. Инкрементальная загрузка в тестовую ИБ при наличии проекта Platform Tools.

## Связанные skills

- Платформа: `1c-platform-tools`, `1c-platform-tools-test`, `1c-platform-tools-configuration`
- XML/метаданные: skills из cc-1c-skills (если установлены)
- Контекст проекта: `1c-project-context`

