Разработка под 1С 7.7 (1c77-dev)
SkillAI & modelsDevelopment and customization for 1C:Enterprise 7.7 (also known as "77", "семерка"): editing and creating code modules (.1s, CP1251 encoding), forms (.frm), configuration objects (1Cv7.MD), external data processors and reports (.ert), plus decompiling and assembling .ert / 1Cv7.MD via GComp. ALWAYS
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Разработка под 1С 7.7 (1c77-dev) skill
What this skill tells your AI
The instructions your AI receives, as published by desko77/claude-code-skills-1c in skills/1c77-dev/SKILL.md and read by ahel’s review.
Доработка кода, форм, метаданных и внешних обработок 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 доработки
-
Понять объект. Метаданные и код существующих объектов конфигурации смотри через 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. -
Править код только через CP1251. Используй
scripts/cp1251_io.pyили Python напрямую (Path.read_text(encoding='cp1251')/write_text(..., encoding='cp1251', newline='')). Никогда не правь.1sинструментом, который пишет UTF-8 - сломаешь кодировку всего файла. Для повторяемых вставок (одинаковый блок в N мест) используйpatch_by_marker.py- он идемпотентен. -
Сверить синтаксис 7.7 ДО сборки. Прогони мысленно (или поиском) по чек-листу особенностей из
references/syntax-gotchas-77.md. Самая частая ошибка: голый вызов функции или число в условииЕсли/ИначеЕслибез операции сравнения. Проверка запросов -validate_queryMCP1c77-metadata. -
Собрать
.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).
Signals
- GitHub stars
- 61
- Forks
- 14
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
x-1c77-dev- Source
- github.com/desko77/claude-code-skills-1c