Skip to content

Commit

Permalink
Запоздалый пуш
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivanchenko Nikita committed Oct 10, 2022
1 parent 2356718 commit 75cdee9
Show file tree
Hide file tree
Showing 16 changed files with 2,425 additions and 1 deletion.
60 changes: 59 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,59 @@
# formhelper
# formhelper

Библиотека для программного управления элементами формы.

В составе расширение, и файл с шаблонами кода.

Вот небольшой пример.

```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РаботаСФормамиСервер.НовыйПостроительФорм(ЭтаФорма)
// Реквизит строковый
.РеквизитСтрока("РеквизитСтрока", 150)
// ПолеВвода реквизита строка
.ПолеВвода("РеквизитСтрока")
.Заголовок("Реквизит строка")
.ПутьКДанным("РеквизитСтрока")
// Кнопка привет
.Кнопка("КнопкаПривет")
.Заголовок("Привет")
.ИмяКоманды("Приветствие")
.Команда("Приветствие", "ПриветствиеКлиент")
// Еще кнопка
.Кнопка("ЕщеКонманда")
.Заголовок("Еще команда")
.ИмяКоманды("ЕщеКонманда")
.Команда("ЕщеКонманда", "ЕщеКомандаНаКлиенте")
// Строковый реквизит с полем ввода
.РеквизитСтрока("ЕщеСтроковыйРеквизит", 100)
.ПолеВвода("ЕщеСтроковыйРеквизит")
.Заголовок("Еще один строковый реквизит")
.ПутьКДанным("ЕщеСтроковыйРеквизит")
// Финализируем изменения
.Применить();
КонецПроцедуры
&НаКлиенте
Процедура ЕщеКомандаНаКлиенте(Команда)
Сообщить("Очень полезная команда выполнена");
КонецПроцедуры
&НаКлиенте
Процедура ПриветствиеКлиент(Команда)
Сообщить(СтрШаблон("Привет %1", ЭтотОбъект["РеквизитСтрока"]));
КонецПроцедуры
```

Вообще я люблю хорошую документацию, по этому примеров будет больше.
23 changes: 23 additions & 0 deletions src/CommonModules/РаботаСФормамиСервер.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.11">
<CommonModule uuid="a016d440-740a-42ed-908f-6ff4f9a24eb9">
<Properties>
<Name>РаботаСФормамиСервер</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Работа с формами сервер</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

Функция НовыйПостроительФорм(Форма) Экспорт
Обработка = Обработки.рсф_ПостроительФорм.Создать();
Обработка.Инициализация(Форма);
Возврат Обработка;
КонецФункции

Функция ОписаниеТаблицы(Имя, Представление, Родитель, ПереопределитьКоманднуюПанель = Ложь) Экспорт

Возврат Обработки.рсф_Таблицы.ОписаниеТаблицы(Имя, Представление, Родитель, ПереопределитьКоманднуюПанель);

КонецФункции // ОписаниеТаблицы()

Функция ОписаниеРеквизитаТаблицы(Имя, Представление, Тип) Экспорт

Возврат Обработки.рсф_Таблицы.ОписаниеРеквизитаТаблицы(Имя, Представление, Тип);

КонецФункции // ОписаниеРеквизитаТаблицы()

75 changes: 75 additions & 0 deletions src/Configuration.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.11">
<Configuration uuid="e46d6b82-3044-45f2-a889-f14d76df276e">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
<xr:ObjectId>281576ad-1dfe-4b8b-8b50-bd3a5ec1b5c9</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
<xr:ObjectId>ec9920e5-3b8e-45ad-9c74-e3598fa7b2ef</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
<xr:ObjectId>9887b7eb-57ae-4940-bcf3-2ee089884a5d</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
<xr:ObjectId>ba77e792-3c39-4b54-99a8-4fff9b14e7a3</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
<xr:ObjectId>57302e08-c0c8-4fa2-be5d-99b9b6f5ed06</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
<xr:ObjectId>389f3e19-c34f-4340-8ec5-7bef88544080</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
<xr:ObjectId>72651841-e9df-49a7-830b-f002a0e915a8</xr:ObjectId>
</xr:ContainedObject>
</InternalInfo>
<Properties>
<Name>formhelper</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Помогатор</v8:content>
</v8:item>
</Synonym>
<Comment/>
<ConfigurationExtensionPurpose>Customization</ConfigurationExtensionPurpose>
<ObjectBelonging>Adopted</ObjectBelonging>
<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
<NamePrefix>рсф_</NamePrefix>
<ConfigurationExtensionCompatibilityMode>Version8_3_18</ConfigurationExtensionCompatibilityMode>
<DefaultRunMode>ManagedApplication</DefaultRunMode>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
</UsePurposes>
<ScriptVariant>Russian</ScriptVariant>
<DefaultRoles>
<xr:Item xsi:type="xr:MDObjectRef">Role.рсф_ОсновнаяРоль</xr:Item>
</DefaultRoles>
<Vendor/>
<Version>0.1.0</Version>
<BriefInformation/>
<DetailedInformation/>
<Copyright/>
<VendorInformationAddress/>
<ConfigurationInformationAddress/>
<InterfaceCompatibilityMode>Taxi</InterfaceCompatibilityMode>
</Properties>
<ChildObjects>
<Language>Русский</Language>
<Subsystem>РаботаСФормами</Subsystem>
<Role>рсф_ОсновнаяРоль</Role>
<CommonModule>РаботаСФормамиСервер</CommonModule>
<DataProcessor>рсф_ПостроительФорм</DataProcessor>
<DataProcessor>рсф_Таблицы</DataProcessor>
<DataProcessor>рсф_ДинамическиеСписки</DataProcessor>
</ChildObjects>
</Configuration>
</MetaDataObject>
32 changes: 32 additions & 0 deletions src/DataProcessors/рсф_ДинамическиеСписки.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.11">
<DataProcessor uuid="05f17437-c3df-4188-82ae-247e4d4b8772">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.рсф_ДинамическиеСписки" category="Object">
<xr:TypeId>08840aa8-ce6a-49d1-8d48-f6203e03f5e8</xr:TypeId>
<xr:ValueId>baa69464-e223-4e94-a5fe-98f5b7f02ae5</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.рсф_ДинамическиеСписки" category="Manager">
<xr:TypeId>5bce5fca-af9a-4b13-8bca-2f324e7a5b8f</xr:TypeId>
<xr:ValueId>594398ec-1912-4e8e-9ccb-8eb41124b238</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>рсф_ДинамическиеСписки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Динамические списки</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<DefaultForm/>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>
<Explanation/>
</Properties>
<ChildObjects/>
</DataProcessor>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
Перем ПостроительФорм;
Перем Отборы;
Перем Параметры;
Перем ОсновнаяТаблица;
Перем ПроизвольныйЗапрос;
Перем ИмяРеквизита;
Перем ТекстЗапроса;
Перем ПараметрыЗапроса;

#Область Инициализация

Процедура Инициализация(_ПостроительФорм) Экспорт

ПостроительФорм = _ПостроительФорм;

ИнициализацияПеременных();

КонецПроцедуры

Процедура ИнициализацияПеременных()
Отборы = Новый Массив;
Параметры = Новый Массив;
ПроизвольныйЗапрос = Ложь;
ИмяРеквизита = "";
ОсновнаяТаблица = "";
ТекстЗапроса = "";
ПараметрыЗапроса = Новый Структура;
КонецПроцедуры

#КонецОбласти

Функция Применить() Экспорт

ПостроительФорм.РеквизитДинамическийСписок(ИмяРеквизита).Применить();

ТекущийДС = ПостроительФорм.Форма()[ИмяРеквизита];
ТекущийДС.ПроизвольныйЗапрос = ПроизвольныйЗапрос;
ТекущийДС.ОсновнаяТаблица = ОсновнаяТаблица;

Если ПроизвольныйЗапрос = Истина Тогда
ТекущийДС.ТекстЗапроса = ТекстЗапроса;
КонецЕсли;

Для Каждого ТекОтбор из Отборы Цикл
Отбор = ТекущийДС.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ТекОтбор.ВидСравнения;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ТекОтбор.Поле);
Отбор.ПравоеЗначение = ТекОтбор.Значение;
КонецЦикла;

Для Каждого ТекПараметр из ПараметрыЗапроса Цикл
ТекущийДС.Параметры.УстановитьЗначениеПараметра(ТекПараметр.Ключ, ТекПараметр.Значение);
КонецЦикла;

ИнициализацияПеременных();

Возврат ПостроительФорм;

КонецФункции // Применить()

Функция ИмяРеквизита(Реквизит) Экспорт

ИмяРеквизита = Реквизит;

Возврат ЭтотОбъект;

КонецФункции // ИмяРеквизита()

Функция ПроизвольныйЗапрос(ФлагЗапроса) Экспорт

ПроизвольныйЗапрос = ФлагЗапроса;

Возврат ЭтотОбъект;

КонецФункции // ПроизвольныйЗапрос()

Функция ОсновнаяТаблица(ИмяТаблицы) Экспорт

ОсновнаяТаблица = ИмяТаблицы;

Возврат ЭтотОбъект;

КонецФункции // ОсновнаяТаблица()

Функция Отбор(Поле, Значение, _ВидСравнения = Неопределено) Экспорт

Если _ВидСравнения = Неопределено Тогда
_ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
КонецЕсли;

Отборы.Добавить(Новый Структура("Поле, Значение, ВидСравнения", Поле, Значение, _ВидСравнения));

Возврат ЭтотОбъект;

КонецФункции // Отбор()

Функция ТекстЗапроса(_ТекстЗапроса) Экспорт

ТекстЗапроса = _ТекстЗапроса;

Возврат ЭтотОбъект;

КонецФункции // ИмяРеквизита()

Функция Параметр(ИмяПараметра, ЗначениеПараметра) Экспорт

ПараметрыЗапроса.Вставить(ИмяПараметра, ЗначениеПараметра);

Возврат ЭтотОбъект;

КонецФункции // Параметр()


32 changes: 32 additions & 0 deletions src/DataProcessors/рсф_ПостроительФорм.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.11">
<DataProcessor uuid="07936d47-d796-44dc-ba07-fe2982b2c64e">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.рсф_ПостроительФорм" category="Object">
<xr:TypeId>33b2dfa6-ad30-4bce-8f71-484f31eac13f</xr:TypeId>
<xr:ValueId>0b2e02a2-8786-46da-a3c8-13d70f1c42e5</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.рсф_ПостроительФорм" category="Manager">
<xr:TypeId>b7a7c03f-8589-470d-9e73-170c4823cf7d</xr:TypeId>
<xr:ValueId>a1b3d94f-9b06-412b-8ccf-566c3ea1ed4f</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>рсф_ПостроительФорм</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Построитель форм</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<DefaultForm/>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>
<Explanation/>
</Properties>
<ChildObjects/>
</DataProcessor>
</MetaDataObject>
Loading

0 comments on commit 75cdee9

Please sign in to comment.