diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md
new file mode 100644
index 00000000..ecfe146e
--- /dev/null
+++ b/documentation/docs/cook-book/Forms/form-on-server.md
@@ -0,0 +1,115 @@
+---
+tags: [Формы, НаСервере]
+sidebar_position: 2
+---
+
+# Тестирование Серверных методов по работе с Формой
+
+Иногда нам хочется протестировать серверный метод, который предназначен для работы с формой, например, добавление элементов на форму.  
+Основная проблема в таком тесте, это получить форму на сервере, т.к. создать форму на сервере не получиться и с клиента ее нельзя передать.
+
+Вот один из способов реализовать такой тест:
+<details>
+<summary>Код целиком</summary>
+
+Тест:
+```bsl
+Процедура ДействияНадФормой(Форма = Неопределено) Экспорт
+#Если Клиент Тогда
+    ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(ЭтотОбъект)");
+    Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы);
+    Форма.Закрыть();
+#Иначе
+    Результат = НашТестируемыйМетод(Форма);
+    ЮТест.ОжидаетЧто(Результат, "Создание декорации надпись")
+        .Свойство("Вид").Равно(ВидДекорацииФормы.Надпись);
+#КонецЕсли
+КонецПроцедуры
+```
+
+Форма:
+```bsl
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+    Выполнить(Параметры.Метод);
+КонецПроцедуры
+```
+</details>
+
+----
+
+## Подготовка
+1. Создаем клиент-серверный тестовый модуль
+2. Регистрируем наш тестовый метод как **Клиентский тест**.
+
+```bsl
+Процедура ИсполняемыеСценарии() Экспорт
+    
+    ЮТТесты.ДобавитьКлиентскийТест("ДействияНадФормой");
+КонецПроцедуры
+```
+
+2. Добавляем экспортный метод который будет реализовывать тест, в качестве входного параметра укажем **Форму**.
+
+```bsl
+Процедура ДействияНадФормой(Форма = Неопределено) Экспорт
+КонецПроцедуры
+```
+
+3. Создаем в расширении **Общую форму** на которой мы будем проверять наш метод, в модуль формы добавляем обработчик события **ПриСозданииНаСервере**.
+
+## Реализация
+
+Работа нашего нашего теста будет состоять из 3-х шагов:
+```mermaid
+sequenceDiagram
+    participant Тест
+    participant Форма
+    rect rgb(191, 223, 255)
+    note right of Тест: Клиент
+    Тест->>+Форма: Открываем форму и передаем адрес теста
+    end
+    rect rgb(191, 255, 223)
+    note left of Форма: Сервер
+    Форма-->>-Тест: ПриСозданииНаСервере.Вызываем тест с передачей формы в параметре
+    Тест->>Тестируемый метод: Выполнение тест с формой
+    Тестируемый метод -->> Тест: Результат
+    Тест ->>Тест: Проверка
+    end
+    rect rgb(191, 223, 255)
+    note right of Тест: Клиент
+    Тест->>+Форма: Закрытие формы
+    end
+```
+
+1. Сначала мы открываем форму и передаем в параметрах адрес нашего тестового метода.
+2. В обработчике модуля формы **ПриСозданииНаСервере**  делаем обратный вызов нашего теста с передачей этой формы в качестве параметра.
+3. Вызываем тестируемый метод с нашей формой и проверяем результат.
+
+```bsl
+Процедура ДействияНадФормой(Форма = Неопределено) Экспорт
+#Если Клиент Тогда // Шаг 1
+    // указываем путь к нашему тестовому методу в качестве параметра открытия формы
+    ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(ЭтотОбъект)");
+    // открываем форму
+    Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы);
+    Форма.Закрыть();
+#Иначе // Шаг 3
+// в эту ветку мы попадаем уже после вызова тестового метода из обработчика модуля формы ПриСозданииНаСервере и имеем в своем распоряжении Форму
+    // вызываем метод который мы хотим протестировать
+    Результат = НашТестируемыйМетод(Форма);
+    // Проверяем результат:
+    // Допустим наш метод добавляет на форму Декорацию надпись и возвращает созданный элемент формы.
+    ЮТест.ОжидаетЧто(Результат, "Создание декорации надпись")
+        .Свойство("Вид").Равно(ВидДекорацииФормы.Надпись);
+#КонецЕсли
+КонецПроцедуры
+```
+
+В модуле формы в обработчике **ПриСозданииНаСервере** прописываем обратный вызов переданного в форму теста:
+```bsl
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+    Выполнить(Параметры.Метод); // Шаг 2
+КонецПроцедуры
+```
\ No newline at end of file