Skip to content
Back to skills

1c77 Dev

ASecurity

Разработка и доработка под 1С:Предприятие 7.7 (она же "77", "семерка"): правка и создание модулей кода (.1s, кодировка CP1251), форм (.frm), объектов конфигурации (1Cv7.MD), внешних обработок и отчетов (.ert), плюс разбор и сборка .ert / 1Cv7.MD через GComp. Используй ВСЕГДА, когда задача касается 1С 7.7: файлы .1s / .ert / .frm / .mdp / 1Cv7.MD; глобальный модуль, модули проведения и формы 7.7; синтаксис 7.7 (нет типа Булево; ПустаяСтрока; СоздатьОбъект; тернарник ?(); ошибка компиляции "Выр...

  • 73 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentspythongoshellbash

Works with

  • mcp

Security analysis

A100/100

Pro scans all 10 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add Desko77/claude-code-skills-1c --skill 1c77-dev --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1c77 Dev?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1c77 Dev
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/desko77-1c77-dev/badge)](https://www.skillsdirectory.com/skills/desko77-1c77-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 1c77-dev
description: >-
  Разработка и доработка под 1С:Предприятие 7.7 (она же "77", "семерка"): правка и создание модулей
  кода (.1s, кодировка CP1251), форм (.frm), объектов конфигурации (1Cv7.MD), внешних обработок и
  отчетов (.ert), плюс разбор и сборка .ert / 1Cv7.MD через GComp. Используй ВСЕГДА, когда задача
  касается 1С 7.7: файлы .1s / .ert / .frm / .mdp / 1Cv7.MD; глобальный модуль, модули проведения и
  формы 7.7; синтаксис 7.7 (нет типа Булево; ПустаяСтрока; СоздатьОбъект; тернарник ?(); ошибка
  компиляции "Выражение должно иметь логический тип"); обход справочников и документов 7.7, выгрузка
  через ТаблицаЗначений или FileSystemObject; сборка или разбор внешних обработок 7.7 (gcomp);
  миграция данных с 7.7; поиск и правка кириллицы в .1s (обычный grep ее не находит из-за CP1251).
  Применяй даже без явного "7.7", если речь о старой конфигурации с файлами .1s/.ert/.md или о
  ТиС / Торговле / Бухгалтерии 7.7 / УПП 7.7. НЕ использовать для 1С 8.x: EDT, .bsl, .mdo, .epf, .erf,
  .cf, .cfe, управляемые формы, расширения конфигурации (CFE), СКД, Конвертация данных (КД) 2.x,
  конфигурации УНФ / ERP / ЗУП / УТ / БП 3.x - для них есть отдельные 1c-* скиллы. Не применять и к
  общим задачам с кодировкой CP1251 вне 1С 7.7 (например конвертация csv-файлов).
---

# Разработка под 1С 7.7 (1c77-dev)

Доработка кода, форм, метаданных и внешних обработок 1С:Предприятия 7.7. Версия 7.7 кардинально
отличается от 8.x, и привычные для 8.x приемы тут ломаются. Этот скилл собирает рабочие приемы,
особенности синтаксиса и готовые скрипты.

## Чем 7.7 отличается (читать обязательно)

- **Нет EDT и .bsl/.mdo.** Конфигурация хранится в бинарном `1Cv7.MD`, внешние обработки - в бинарном `.ert`.
  Редактируемые исходники получают разбором через **GComp** (текстовые `.1s`, `.frm`, `.mdp`, `.mxl`).
- **Кодировка везде CP1251.** Файлы `.1s`/`.frm`/`.mdp` - не UTF-8. Инструмент Grep (ищет по UTF-8-байтам)
  кириллицу в них **не находит**. Read показывает кракозябры. Читать/править - только через Python с
  `encoding='cp1251'` (см. `scripts/cp1251_io.py`) либо через MCP-сервер `1c77-metadata`.
- **Синтаксис строже и беднее 8.x.** Нет типа Булево; число в условии `Если` не приводится к логическому;
  многих функций 8.x (`ЗначениеЗаполнено`, штатной `ПустаяСтрока` как Булево) нет или ведут себя иначе.
  Это источник большинства ошибок компиляции. Подробно: `references/syntax-gotchas-77.md`.

## Карта навигации

Читай нужный файл по ситуации, не загружай все сразу:

| Когда | Файл |
|-------|------|
| Пишешь/правишь BSL-код 7.7, ловишь ошибку компиляции "Выражение должно иметь логический тип" и т.п. | `references/syntax-gotchas-77.md` |
| Нужно понять структуру `.1s` / `.frm` / `.mdp` / `.mxl` / `.ert`, что внутри обработки | `references/file-formats-77.md` |
| Надо разобрать `.ert` в исходники или собрать обратно | `references/gcomp.md` |
| Анализ метаданных конфигурации, поиск реквизита, проверка запроса 7.7, окружение | `references/mcp-and-tools.md` |

Скрипты в `scripts/` (запуск с `--help`):
- `cp1251_io.py` - чтение/запись/grep по `.1s` в CP1251 (когда обычный Grep слеп).
- `analyze_module.py` - инвентаризация модуля: `СоздатьОбъект`, типы метаданных, глобальные `гл*`-функции, обращения к реквизитам.
- `patch_by_marker.py` - идемпотентная вставка блока кода по маркеру-якорю (для повторяемых правок).
- `build_ert.py` / `unpack_ert.py` - обертки GComp (сборка/разбор `.ert`) через PowerShell.

## Базовый workflow доработки

1. **Понять объект.** Метаданные и код существующих объектов конфигурации смотри через MCP `1c77-metadata`
   (`get_object`, `get_module`, `search_field`, `validate_query`) - это быстрее и точнее ручного парсинга.
   Для внешней обработки `.ert` сначала разбери ее GComp (`unpack_ert.py`), затем работай с `.1s`/`.frm`.
   Детали: `references/mcp-and-tools.md`, `references/gcomp.md`.

2. **Править код только через CP1251.** Используй `scripts/cp1251_io.py` или Python напрямую
   (`Path.read_text(encoding='cp1251')` / `write_text(..., encoding='cp1251', newline='')`).
   Никогда не правь `.1s` инструментом, который пишет UTF-8 - сломаешь кодировку всего файла.
   Для повторяемых вставок (одинаковый блок в N мест) используй `patch_by_marker.py` - он идемпотентен.

3. **Сверить синтаксис 7.7 ДО сборки.** Прогони мысленно (или поиском) по чек-листу особенностей из
   `references/syntax-gotchas-77.md`. Самая частая ошибка: голый вызов функции или число в условии
   `Если`/`ИначеЕсли` без операции сравнения. Проверка запросов - `validate_query` MCP `1c77-metadata`.

4. **Собрать `.ert` и проверить.** Сборка - только рабочим GComp через PowerShell (`build_ert.py`).
   Перед сборкой - бэкап `.ert`. После - убедиться, что timestamp/размер изменились (GComp молча
   не пересобирает при битых аргументах). Финальная компиляция BSL и проверка - при открытии в самой 7.7.

## Самопроверка перед сборкой .ert

Чек-лист прогонять по СВОЕМУ сгенерированному коду ДО вызова gcomp:

- [ ] В условиях `Если`/`Пока` нет голых вызовов функций или чисел - каждое сравнение явное
  и в скобках: `(Ф(х)=1) И (у=2)`.
- [ ] `ПустаяСтрока`/`ПустоеЗначение` сравнивать с 1/0.
- [ ] Каждая вызываемая процедура/функция объявлена ВЫШЕ точки вызова или в глобальном
  модуле - проверить греп-поиском определения.
- [ ] `Симв()`, не `Символ()`; тернарник `?(усл,а,б)` с явными сравнениями.
- [ ] Нет обращений к несуществующим у 7.7 методам 8.x.

Детали и полный список - `references/syntax-gotchas-77.md`.

Типовые ошибки компиляции ("Выражение должно иметь логический тип", "Процедура не обнаружена",
"Плохой тип переменной") - сначала прогнать этот чек-лист, потом лезть в отладку.

## Критические правила (ключевые отличия синтаксиса, детали в references)

- **Логический тип в `Если`.** `Если ПустаяСтрока(Х) Тогда` -> ошибка "Выражение должно иметь логический тип".
  Нужно сравнение: `Если ПустаяСтрока(Х) = 1 Тогда`, а `НЕ ПустаяСтрока(Х)` -> `ПустаяСтрока(Х) = 0`.
  То же для тернарника: `?(ПустоеЗначение(Х) = 1, "", ...)`. Полный список - `references/syntax-gotchas-77.md`.
- **CP1251.** Grep по кириллице в `.1s` молчит (UTF-8 vs CP1251). Не делай вывод "совпадений нет" по Grep -
  ищи через `cp1251_io.py grep` или MCP.
- **GComp запускать только из PowerShell.** Из Bash кириллица в путях бьется, gcomp молча выходит с ложным
  успехом и ничего не собирает. Рабочий exe - в `C:\Program Files\GComp\Release\` (с `GComp.dll` рядом),
  "голый" exe из каталогов проекта не запускается. Детали - `references/gcomp.md`.
- **Минимальный diff при багфиксе.** Правь только код, связанный с багом. Не переформатируй CP1251-файл
  целиком - рискуешь кодировкой и шумным diff.

## Проверка качества

После правки BSL 7.7 - прогон через MCP `1c-naparnik` (`ask_1c_ai`) для оценки и `validate_query`
(`1c77-metadata`) для запросов. EDT-валидация и `bsl-platform-help` к 7.7 неприменимы (это 8.x).

Files in this skill

  • SKILL.md10.4 KB
  • references/file-formats-77.md9.2 KB
  • references/gcomp.md6 KB
  • references/mcp-and-tools.md6.7 KB
  • references/syntax-gotchas-77.md10.7 KB
  • scripts/analyze_module.py6.3 KB
  • scripts/build_ert.py4.9 KB
  • scripts/cp1251_io.py4.8 KB
  • scripts/patch_by_marker.py4.8 KB
  • scripts/unpack_ert.py3.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.