Выбрать: Spec1C или правка BSL
Как решить, описывать изменение на Spec1C или править код BSL напрямую, — для нового файла, для загруженной обработки и для логики вне языка.
Перед чтением
- Естественный язык, Spec1C и BSL Понятие
На этой странице
В Studio изменение можно описать двумя способами: спецификацией Spec1C, по которой при сборке генерируется запрос, или прямой правкой кода BSL на этапе Source. Они не взаимозаменяемы. Эта страница помогает выбрать способ под задачу; общие различия языков — Естественный язык, Spec1C и BSL.
Когда это нужно#
- Вы начинаете задачу и не знаете, с какого этапа — Spec1C или Source — начать.
- Вы загрузили готовую обработку и хотите её доработать.
- Спецификация не даёт нужного результата, и непонятно, можно ли его добиться языком.
Перед началом#
Вспомните, что умеет Spec1C в облачной сборке:
- описать источники данных, поля, соединения и отбор по периоду — и получить по ним запрос в модуле формы собранного файла;
- при
target: ordinary— процедуру, которая выполняет запрос и сообщает число строк; вывод, макет и выгрузку в Excel нужно дописывать самостоятельно (Настроить вывод); - остатки и обороты регистров в облачной среде не собираются (Ограничения реализации).
Чего Spec1C не делает: не описывает бизнес-логику, обработчики событий, проведение, формы и их элементы; не восстанавливается из кода загруженного файла. Неподдерживаемые конструкции — Неподдерживаемые конструкции.
Шаги#
- Определите, с каким файлом вы работаете: новый, созданный в Studio кнопкой «Создать с нуля», или существующий, загруженный кнопкой «Открыть файл».
- Определите, что меняете: запрос к данным или логику и интерфейс.
- Найдите свою ситуацию в таблице ниже и выберите способ.
- Если выбрали правку BSL — откройте модуль на этапе Source, измените и сохраните его кнопкой «Сохранить BSL» (Сохранить изменения BSL), затем соберите файл.
- Если выбрали Spec1C — опишите данные (Создать спецификацию с нуля), соберите файл (Собрать файл по спецификации) и доработайте сгенерированный запрос в Конфигураторе.
| Ситуация | Что выбрать | Почему |
|---|---|---|
| Существующая обработка: исправить текст, условие, процедуру | Правка BSL | Надёжный путь: меняется именно ваш код, сборка упаковывает его как есть |
| Существующая обработка: добавить новый запрос к данным | Правка BSL (запрос можно набросать в Spec1C в отдельном новом файле и перенести вручную) | Генерация в существующий файл добавляет отдельную зону, не связанную с кнопками вашей формы (см. ниже) |
| Новый файл: запрос по справочникам и регистрам сведений, соединение, период | Spec1C | Studio сгенерирует черновик запроса; доработка вывода — в Конфигураторе |
| Новый файл: остатки или обороты регистра накопления | Правка BSL или Конфигуратор | В облачной среде сборка с balance / turnovers останавливается |
| Любой файл: обработчики событий, проведение, обмен, работа с формой | Правка BSL или Конфигуратор | Этого нет в языке |
| Новый файл: запрос по Spec1C плюс свой код | Оба способа | Код вне зоны генерации сохраняется при сборке; зону между маркерами не правьте |
Результат#
Вы выбрали способ, который даёт предсказуемый результат для вашего файла.
Что происходит при генерации в существующий файл#
Если в загруженной обработке описать в спецификации блок data и собрать файл, Studio:
- покажет окно подтверждения: модель неполная относительно загруженного файла, будет сгенерирован код в модуль формы;
- допишет в собранный файл зону сгенерированного кода в модуль формы с именем «Форма»; если маркеров зоны в модуле нет, зона добавляется в конец модуля;
- не свяжет сгенерированную процедуру
Сформироватьс кнопками вашей формы — вызывать её нужно самостоятельно; - не изменит исходники на этапе Source — зона появится только в собранном файле (Генерация BSL и зоны генерации).
Отсюда риски: если в модуле формы уже есть процедура Сформировать, в 1С ожидаема ошибка компиляции из-за повторного имени; если формы с именем «Форма» в файле нет, сборка с источниками данных может не выполниться. Поэтому для существующих файлов надёжнее правка BSL.
Если не получилось#
| Что видно | Что сделать |
|---|---|
| На этапе Spec1C загруженного файла баннер «МОДЕЛЬ НЕПОЛНАЯ» | Это не ошибка загрузки: спецификация из кода файла не восстанавливается. Для доработки существующего кода используйте правку BSL |
| После сборки в Source нет сгенерированного кода | Так и должно быть: код есть только в собранном файле |
| Нужной конструкции нет в языке | Посмотрите Неподдерживаемые конструкции; если её там нет и в справочнике тоже — реализуйте правкой BSL |
| Не уверены, что изменение работает | Studio не проверяет компиляцию и выполнение. Проверьте файл в 1С — Проверить результат в 1С |
См. также
- Неподдерживаемые конструкции Справочник
- Сохранить изменения BSL Руководство
- Генерация BSL и зоны генерации Понятие
- Естественный язык, Spec1C и BSL Понятие
- Ограничения реализации Справочник
Сверено с продуктом: 27.10.2026