← ClaudeAtlas

form-patternslisted

Паттерны модуля формы (клиент-серверное взаимодействие). Этот навык учит агента ��равильно писать код модулей управляемых форм 1С.
SteelMorgan/1c-agent-based-dev-framework · ★ 65 · API & Backend · score 73
Install: claude install-skill SteelMorgan/1c-agent-based-dev-framework
# Паттерны модуля формы (клиент-серверное взаимодействие) **Ключевой принцип:** Минимизировать количество и объём серверных вызовов. Каждый вызов `&НаСервере` — сетевой round-trip + сериализация полного контекста формы. --- ## Правило 1: Иерархия директив — предпочитайте безконтекстные вызовы ### Порядок предпочтения (от лучшего к худшему) ``` 1. &НаКлиентеНаСервереБезКонтекста — чистые вычисления, обе среды 2. &НаСервереБезКонтекста — обращение к БД, без контекста формы 3. &НаСервере — нужен доступ к реквизитам формы 4. &НаКлиенте — интерактивная логика (диалоги, навигация) ``` ### Правило принятия решения ``` Нужно ли обращаться к базе данных? ├── Нет → &НаКлиенте или &НаКлиентеНаСервереБезКонтекста └── Да → Нужен ли доступ к реквизитам формы? ├── Нет → &НаСервереБезКонтекста (передаём только параметры) └── Да → &НаСервере (передаётся весь контекст) ``` ```bsl // Чистое вычисление — обе среды &НаКлиентеНаСервереБезКонтекста Функция РассчитатьСумму(Количество, Цена, СтавкаНДС) СуммаБезНДС = Количество * Цена; СуммаНДС = СуммаБезНДС * СтавкаНДС / 100; Возврат СуммаБезНДС + СуммаНДС; КонецФункции // Нужны данные из БД, но НЕ нужны реквизиты формы &НаСервереБезКонтекста Функция ПолучитьДанныеНоменклатуры(НоменклатураСсылка) Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта( НоменклатураСсылка, "Наименование, ЕдиницаИзмерения, СтавкаНДС, Цена"); КонецФункции // Нужен