diff --git a/Form.inc.xml b/Form.inc.xml
new file mode 100644
index 0000000..c44a8ab
--- /dev/null
+++ b/Form.inc.xml
@@ -0,0 +1,26 @@
+
+
+
+
diff --git a/Form/Adaptor.cls.xml b/Form/Adaptor.cls.xml
new file mode 100644
index 0000000..a9c0fbe
--- /dev/null
+++ b/Form/Adaptor.cls.xml
@@ -0,0 +1,152 @@
+
+
+
+
+Базовый класс-адаптер для форм
+1
+Form.Info
+Form
+Form.Field
+64090,75147.034342
+Form.Info
+
+
+
+Имя формы: латиница, менее 500 символов, в нижнем регистре
+%String
+
+
+
+
+Отображаемое имя формы
+%String
+
+
+
+
+Сгенерировать метаданные для формы
+1
+objectgenerator
+onFormCompile
+%Status
+
+
+
+
+
+Выводит объект Id в формате JSON на текущее устройство
+Переопределите этот метод для конкретной формы, если есть какие-то особенности её обработки
+Возможно: заменить метод на генератор, который будет генерить код для формы
+Подразумевается, что форма хранимая
+1
+id:%Integer=""
+%Status
+
+
+
+
+
+Открывает объект по Id и перезаписывает все его свойства
+соответствующими значениями из object
+После чего сохраняет объект
+1
+id:%Integer="",object=""
+%Status
+
+
+
+
+
+Устанавливает все поля текущего объекта из переданного объекта
+Это может быть динамический объект или объект того же класса
+objectgenerator
+object
+%Status
+
+
+
+
+1
+1
+id:%Integer
+%Object
+
+
+
+
+1
+list:%ListOfDataTypes
+%Array
+
+
+
+
diff --git a/Form/Field.cls.xml b/Form/Field.cls.xml
new file mode 100644
index 0000000..c79348c
--- /dev/null
+++ b/Form/Field.cls.xml
@@ -0,0 +1,15 @@
+
+
+
+
+Form field properties
+1
+64090,75443.892382
+
+
+
+Field display name
+%String
+
+
+
diff --git a/Form/Info.cls.xml b/Form/Info.cls.xml
new file mode 100644
index 0000000..8b454ab
--- /dev/null
+++ b/Form/Info.cls.xml
@@ -0,0 +1,58 @@
+
+
+
+1
+Form
+64090,75344.051371
+
+
+
+Получить список всех форм
+1
+%Array
+
+
+
+
+
+Check that form with this classname exist
+1
+class:%String
+%Boolean
+
+
+
+
+
+Check that form with this classname exist
+1
+class:%String
+%Status
+
+
+
+
+1
+class:%String=""
+%String
+
+
+
+
diff --git a/Form/Property.cls.xml b/Form/Property.cls.xml
new file mode 100644
index 0000000..56b6d61
--- /dev/null
+++ b/Form/Property.cls.xml
@@ -0,0 +1,161 @@
+
+
+
+1
+Form
+64090,75759.538379
+
+
+
+Сгенерировать метаданные для поля формы
+1
+property:%Dictionary.PropertyDefinition
+%Object
+
+
+
+
+
+Определить тип класса
+1
+className:%String=""
+%String
+
+
+
+
+
+Добавить свойство класса
+className - класс
+name - имя свойства
+type - класс свойства
+collection - коллекция
+displayName - отобразжаемое имя
+required - обязательное свойство
+1
+className:%String="",name:%String,type:%String="%String",collection:%String(VALUELIST=",list,array")="",displayName:%String="",required:%Boolean=$$$NO
+%Status
+
+
+
+
+
+Изменить свойство класса
+className - класс
+name - имя свойства
+type - класс свойства
+collection - коллекция
+displayName - отобразжаемое имя
+required - обязательное свойство
+1
+className:%String="",name:%String,type:%String="%String",collection:%String(VALUELIST=",list,array")="",displayName:%String="",required:%Boolean=$$$NO
+%Status
+
+
+
+
+
+Удалить свойство класса
+className - класс
+name - имя свойства
+1
+className:%String="",name:%String
+%Status
+
+
+
+
+
+Скомпилировать класс, вернуть статус.
+Не выводить ничего на устройство.
+1
+expression
+className:%String=""
+%Status
+
+
+
+
+
+Получить DISPLAYNAME свойства
+w ##class(Form.Property).getPropertyDisplayName("Form.TestForm", "Text")
+1
+className:%String="",name:%String
+%String
+
+
+
+
diff --git a/Form/TestForm.cls.xml b/Form/TestForm.cls.xml
new file mode 100644
index 0000000..a742349
--- /dev/null
+++ b/Form/TestForm.cls.xml
@@ -0,0 +1,44 @@
+
+
+
+%Persistent,Form.Adaptor,%Populate
+64090,75943.393938
+
+
+Тестовая форма
+
+
+
+%String
+
+
+
+
+
+do ##class(Form.TestForm).recreate()
+1
+count:%Integer=10,verbose:%Boolean=$$$NO
+
+
+
+
+%Library.CacheStorage
+^Form.TestFormD
+TestFormDefaultData
+^Form.TestFormD
+^Form.TestFormI
+^Form.TestFormS
+
+
+%%CLASSNAME
+
+
+Text
+
+
+
+
+
diff --git a/sc-list.txt b/sc-list.txt
new file mode 100644
index 0000000..ccd2f41
--- /dev/null
+++ b/sc-list.txt
@@ -0,0 +1,2 @@
+Form.inc
+Form.pkg