---
name: onec-epf-query-string-quote-escape
description: BSL-текст запроса — одиночная кавычка внутри строкового литерала запроса ломает модуль (не удвоена ""), а onec-build-agent HTTP 200 / epf.sh roundtrip это НЕ ловят
metadata:
  type: feedback
  originSessionId: 85f4587e-428a-46ca-ac3b-1a1f2fc0a491
  modified: 2026-07-23T06:20:49.886Z
---

Текст запроса в BSL обычно один строковый литерал вида `"ВЫБРАТЬ\n\t|...\n\t|";`. Любая
одиночная `"` внутри него (в `//`-комментарии самого текста запроса, в значении вроде
`Значение = "конс"`) обязана быть удвоена (`""`) — иначе преждевременно закрывает литерал,
и весь текст после становится «голым» BSL-кодом → `Ожидается ключевое слово 'КонецФункции'`
при попытке ПОДКЛЮЧИТЬ обработку в реальном клиенте пользователя.

**Почему:** ошибся именно в этом на правке `РеализацияУслугиПоступлениеБайко` (DEVACC-780,
23.07.2026) — добавил комментарий с обычными `"промежуточные"` внутри текста запроса. `onec-build-agent`
дал HTTP 200, `epf.sh roundtrip` прошёл чисто — ни один из них не компилирует BSL-модуль
(`/build` вызывает `DESIGNER /LoadExternalDataProcessorOrReportFromFiles`, который просто
упаковывает XML в `.epf`; roundtrip сверяет байты/JSON). Реальная компиляция происходит
только при подключении обработки в живом клиенте — где пользователь и получил ошибку.

**Как применять:** перед сдачей ЛЮБОЙ правки текста запроса — `grep '"' file.bsl | grep -v '""'`
по всему файлу (должны остаться только обычные короткие BSL-строки вида `"Текст"` с парной
кавычкой на той же строке) + сверка баланса `Функция/КонецФункции`, `Процедура/КонецПроцедуры`.
Для пояснительного текста внутри запроса безопаснее вообще не использовать `"` — брать
кавычки-ёлочки «». HTTP 200 от build-agent — недостаточное доказательство синтаксической
валидности содержимого строковых литералов. Закреплено в `~/.claude/skills/1c-epf/reference/xml_build_from_scratch.md`
раздел «Грабли». См. также [[onec-epf-greenfield-marker]].
