Добавил подсистему администрирования

- Добавил обработку начального заполнения
- Настройки бота вынес в подсистему администрирования
This commit is contained in:
2025-07-02 10:58:30 +03:00
parent 82272234bf
commit be339ebdda
11 changed files with 318 additions and 9 deletions

View File

@@ -50,9 +50,6 @@
</Type> </Type>
<MainAttribute>true</MainAttribute> <MainAttribute>true</MainAttribute>
<SavedData>true</SavedData> <SavedData>true</SavedData>
<UseAlways>
<Field>НаборКонстант.ТелеграмВебХук</Field>
</UseAlways>
</Attribute> </Attribute>
<Attribute name="КэшЗначений" id="2"> <Attribute name="КэшЗначений" id="2">
<Title> <Title>

View File

@@ -11,14 +11,17 @@
&НаКлиенте &НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если НаборКонстант.ТелеграмИспользоватьВебХук И НЕ ЗначениеЗаполнено(НаборКонстант.ТелеграмВебХук) Тогда НужноУказатьВебхух = НаборКонстант.ТелеграмИспользоватьВебХук И НЕ ЗначениеЗаполнено(НаборКонстант.ТелеграмВебХук);
Если НужноУказатьВебхух Тогда
Сообщение = Новый СообщениеПользователю; Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не заполнен адрес вебхука"; Сообщение.Текст = "Не заполнен адрес вебхука";
Сообщение.Поле = "НаборКонстант.ТелеграмВебХук"; Сообщение.Поле = "НаборКонстант.ТелеграмВебХук";
Сообщение.Сообщить(); Сообщение.Сообщить();
ПараметрыЗаписи.Вставить("Модифицированность");
КонецЕсли; КонецЕсли;
Если Модифицированность Тогда Если Модифицированность ИЛИ НужноУказатьВебхух Тогда
ПараметрыЗаписи.Вставить("Модифицированность"); ПараметрыЗаписи.Вставить("Модифицированность");
КонецЕсли; КонецЕсли;
@@ -28,7 +31,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КэшЗначений = Новый Структура; КэшЗначений = Новый Структура;
КэшЗначений.Вставить("ТелеграмИспользоватьВебХук", Константы.ТелеграмИспользоватьВебХук.Получить()); КэшЗначений.Вставить("ТелеграмИспользоватьВебХук", ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук"));
КонецПроцедуры КонецПроцедуры

View File

@@ -247,6 +247,7 @@
<Language>Русский</Language> <Language>Русский</Language>
<Subsystem>ТелеграмБот</Subsystem> <Subsystem>ТелеграмБот</Subsystem>
<Subsystem>Обновления</Subsystem> <Subsystem>Обновления</Subsystem>
<Subsystem>Администрирование</Subsystem>
<CommonPicture>КартинкаБот</CommonPicture> <CommonPicture>КартинкаБот</CommonPicture>
<CommonModule>HttpОбщегоНазначенияВызовСервера</CommonModule> <CommonModule>HttpОбщегоНазначенияВызовСервера</CommonModule>
<CommonModule>БотОбщегоНазначения</CommonModule> <CommonModule>БотОбщегоНазначения</CommonModule>
@@ -267,6 +268,7 @@
<Constant>ТелеграмВебХук</Constant> <Constant>ТелеграмВебХук</Constant>
<Constant>ЛогироватьHttpЗапросы</Constant> <Constant>ЛогироватьHttpЗапросы</Constant>
<Constant>ТелеграмИспользоватьВебХук</Constant> <Constant>ТелеграмИспользоватьВебХук</Constant>
<Constant>НачальноеЗаполнениеВыполнено</Constant>
<CommonForm>Настройки</CommonForm> <CommonForm>Настройки</CommonForm>
<Catalog>ТелеграмПользователь</Catalog> <Catalog>ТелеграмПользователь</Catalog>
<Catalog>ТелеграмСообщение</Catalog> <Catalog>ТелеграмСообщение</Catalog>
@@ -279,6 +281,7 @@
<Enum>ВидыДанныхКоллбэков</Enum> <Enum>ВидыДанныхКоллбэков</Enum>
<DataProcessor>РаботаССообщениями</DataProcessor> <DataProcessor>РаботаССообщениями</DataProcessor>
<DataProcessor>РаботаСОбновлениями</DataProcessor> <DataProcessor>РаботаСОбновлениями</DataProcessor>
<DataProcessor>НачальноеЗаполнениеДанных</DataProcessor>
<InformationRegister>ТелеграмСообщения</InformationRegister> <InformationRegister>ТелеграмСообщения</InformationRegister>
<InformationRegister>ОтслеживаниеВерсийКонфигураций</InformationRegister> <InformationRegister>ОтслеживаниеВерсийКонфигураций</InformationRegister>
<InformationRegister>УведомленияОНовыхВерсиях</InformationRegister> <InformationRegister>УведомленияОНовыхВерсиях</InformationRegister>

View File

@@ -0,0 +1,58 @@
<?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.19">
<Constant uuid="443664ab-523b-44a0-bd39-3bdfba215113">
<InternalInfo>
<xr:GeneratedType name="ConstantManager.НачальноеЗаполнениеВыполнено" category="Manager">
<xr:TypeId>daee5ccf-9121-4c23-9f60-1e96fc9edbe5</xr:TypeId>
<xr:ValueId>294e80f1-f93d-4bee-98b4-b7e41f72b54d</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ConstantValueManager.НачальноеЗаполнениеВыполнено" category="ValueManager">
<xr:TypeId>0db0a252-b2e0-4689-9b34-0ce61b8ddc3a</xr:TypeId>
<xr:ValueId>649d5178-b02c-4425-bc5c-a0d4b431d2e7</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ConstantValueKey.НачальноеЗаполнениеВыполнено" category="ValueKey">
<xr:TypeId>40ee8abe-1064-4ca4-9e1a-c2086fcfa797</xr:TypeId>
<xr:ValueId>980981e0-7957-48bb-9485-d0533ab0611e</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>НачальноеЗаполнениеВыполнено</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Начальное заполнение выполнено</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm/>
<ExtendedPresentation/>
<Explanation/>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<DataLockControlMode>Managed</DataLockControlMode>
<DataHistory>DontUse</DataHistory>
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
</Properties>
</Constant>
</MetaDataObject>

View File

@@ -0,0 +1,34 @@
<?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.19">
<DataProcessor uuid="155c92fe-5a0f-4b5a-9251-8f7187b8f8a6">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.НачальноеЗаполнениеДанных" category="Object">
<xr:TypeId>f6d22c74-3f20-4aec-81c6-a9f6dceea5f0</xr:TypeId>
<xr:ValueId>ee8a7198-3478-4b4c-b421-23f2818fad0b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.НачальноеЗаполнениеДанных" category="Manager">
<xr:TypeId>b721b5f6-2068-4461-8368-e63a275a5f61</xr:TypeId>
<xr:ValueId>9d497305-5abe-42e2-8945-bccfa03998bd</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>DataProcessor.НачальноеЗаполнениеДанных.Form.Форма</DefaultForm>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>
<Explanation/>
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</DataProcessor>
</MetaDataObject>

View File

@@ -0,0 +1,22 @@
<?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.19">
<Form uuid="2357a0a6-0f8a-4b97-ada8-ee23eae78138">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.19">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<Button name="ПровестиИнициализацию" id="1">
<Type>UsualButton</Type>
<CommandName>Form.Command.ПровестиИнициализацию</CommandName>
<ExtendedTooltip name="ПровестиИнициализациюРасширеннаяПодсказка" id="2"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.НачальноеЗаполнениеДанных</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
<Commands>
<Command name="ПровестиИнициализацию" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Провести инициализацию</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Провести инициализацию</v8:content>
</v8:item>
</ToolTip>
<Action>ПровестиИнициализацию</Action>
</Command>
</Commands>
</Form>

View File

@@ -0,0 +1,132 @@
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПровестиИнициализацию(Команда)
Если НачальноеЗаполнениеВыполнено() И СлужебныеСтруктурыПроинициализированы() Тогда
СообщениеПользователю("Данные уже проинициализированы.");
Возврат;
ИначеЕсли СлужебныеСтруктурыПроинициализированы() Тогда
СообщениеПользователю("Данные уже проинициализированы.");
НачальноеЗаполнениеВыполненоУстановить(Истина);
Возврат;
КонецЕсли;
ПровестиИнициализациюНаСервере();
СообщениеПользователю("Данные проинициализированы успешно.");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура ПровестиИнициализациюНаСервере()
НачатьТранзакцию();
ЗаполнитьСправочникКонфигурацииНачальнымиДанными();
НачальноеЗаполнениеВыполненоУстановить(Истина);
ЗафиксироватьТранзакцию();
КонецПроцедуры
&НаСервереБезКонтекста
Функция СлужебныеСтруктурыПроинициализированы()
Результат = Ложь;
Если СправочникКонфигурацииЗаполненНачальнымиДанными() Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция СправочникКонфигурацииЗаполненНачальнымиДанными()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Конфигурации.Имя КАК Имя
|ИЗ
| Справочник.Конфигурации КАК Конфигурации
|ГДЕ
| Конфигурации.Имя В(&ИменаКонфигураций)";
ИменаКонфигураций = Новый Массив;
ИменаКонфигураций.Добавить("Accounting");
ИменаКонфигураций.Добавить("HRM");
ИменаКонфигураций.Добавить("ARAutomation");
ИменаКонфигураций.Добавить("SmallBusiness");
Запрос.УстановитьПараметр("ИменаКонфигураций", ИменаКонфигураций);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Возврат ВыборкаДетальныеЗаписи.Количество() = ИменаКонфигураций.Количество();
КонецФункции
&НаСервереБезКонтекста
Процедура ЗаполнитьСправочникКонфигурацииНачальнымиДанными()
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Комплексная автоматизация";
НовыйСправочник.Имя = "ARAutomation";
НовыйСправочник.Код = "000000001";
НовыйСправочник.Записать();
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Зарплата и управление персоналом";
НовыйСправочник.Имя = "HRM";
НовыйСправочник.Код = "000000002";
НовыйСправочник.Записать();
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Бухгалтерия предприятия";
НовыйСправочник.Имя = "Accounting";
НовыйСправочник.Код = "000000003";
НовыйСправочник.Записать();
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Управление нашей фирмой";
НовыйСправочник.Имя = "SmallBusiness";
НовыйСправочник.Код = "000000004";
НовыйСправочник.Записать();
КонецПроцедуры
&НаКлиенте
Процедура СообщениеПользователю(ТекстСообщения)
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru = '%1'"), ТекстСообщения);
Сообщение.Сообщить();
КонецПроцедуры
&НаСервереБезКонтекста
Функция НачальноеЗаполнениеВыполнено()
Возврат Константы.НачальноеЗаполнениеВыполнено.Получить();
КонецФункции
&НаСервереБезКонтекста
Процедура НачальноеЗаполнениеВыполненоУстановить(Признак)
Константы.НачальноеЗаполнениеВыполнено.Установить(Признак);
КонецПроцедуры
#КонецОбласти

View File

@@ -2,7 +2,6 @@
Функция ШаблонURL1PostGetUpdate(Запрос) Функция ШаблонURL1PostGetUpdate(Запрос)
Попытка Попытка
//ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку()); БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
Ответ = HttpОбщегоНазначенияВызовСервера.ОтветУспех(); Ответ = HttpОбщегоНазначенияВызовСервера.ОтветУспех();
Возврат Ответ; Возврат Ответ;

View File

@@ -0,0 +1,25 @@
<?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.19">
<Subsystem uuid="191ccf7b-8705-44d7-a181-a6cfe9eee132">
<Properties>
<Name>Администрирование</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Администрирование</v8:content>
</v8:item>
</Synonym>
<Comment/>
<IncludeHelpInContents>true</IncludeHelpInContents>
<IncludeInCommandInterface>true</IncludeInCommandInterface>
<UseOneCommand>false</UseOneCommand>
<Explanation/>
<Picture/>
<Content>
<xr:Item xsi:type="xr:MDObjectRef">CommonForm.Настройки</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.НачальноеЗаполнениеДанных</xr:Item>
</Content>
</Properties>
<ChildObjects/>
</Subsystem>
</MetaDataObject>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<VERSION>22</VERSION> <VERSION>23</VERSION>