Skip to content

Commit

Permalink
Merge branch 'develop' into Переработать-подсистемы-требующие-использ…
Browse files Browse the repository at this point in the history
…ования-предопределенных-значений-
  • Loading branch information
denisushakov authored Apr 9, 2024
2 parents 853d3b3 + 0b203c1 commit 78032eb
Show file tree
Hide file tree
Showing 5 changed files with 197 additions and 68 deletions.
48 changes: 0 additions & 48 deletions src/Catalogs/__ПользовательскиеФункции.xml
Original file line number Diff line number Diff line change
Expand Up @@ -533,54 +533,6 @@
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="396a05ae-111d-4bd7-9eba-6c2daf5ece99">
<Properties>
<Name>КаталогИсходногоКодаКонфигурации</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Каталог исходного кода конфигурации</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Configuration source code directory</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<TabularSection uuid="0a574910-1e7e-4640-9a1d-3eeb0cf89cde">
<InternalInfo>
<xr:GeneratedType name="CatalogTabularSection.__ПользовательскиеФункции.ПараметрыФункции" category="TabularSection">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<Event name="BeforeWrite">ПередЗаписью</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
<Event name="BeforeWriteAtServer">ПередЗаписьюНаСервере</Event>
<Event name="OnWriteAtServer">ПриЗаписиНаСервере</Event>
</Events>
<ChildItems>
<InputField name="Родитель" id="5">
Expand Down Expand Up @@ -71,6 +72,16 @@
<Event name="OnChange">КонтекстПриИзменении</Event>
</Events>
</InputField>
<InputField name="КаталогИсходногоКодаКонфигурации" id="145">
<DataPath>КаталогИсходногоКодаКонфигурации</DataPath>
<ChoiceButton>true</ChoiceButton>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="КаталогИсходногоКодаКонфигурацииКонтекстноеМеню" id="146"/>
<ExtendedTooltip name="КаталогИсходногоКодаКонфигурацииРасширеннаяПодсказка" id="147"/>
<Events>
<Event name="StartChoice">КаталогИсходногоКодаКонфигурацииНачалоВыбора</Event>
</Events>
</InputField>
<UsualGroup name="ГруппаПараметры" id="143">
<Title>
<v8:item>
Expand Down Expand Up @@ -866,6 +877,22 @@
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="КаталогИсходногоКодаКонфигурации" id="20">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Каталог исходного кода конфигурации</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<SavedData>true</SavedData>
</Attribute>
</Attributes>
<Commands>
<Command name="ВвестиУсловноеВыражение" id="1">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@
КонецЕсли;
КонецЕсли;

// Получение каталога исходного кода конфигурации
Каталог = ПолучитьКаталогИсходногоКодаКонфигурации();
Если ЗначениеЗаполнено(Каталог) Тогда
КаталогИсходногоКодаКонфигурации = Каталог;
КонецЕсли;

ПолучитьНазваниеПодпрограммыСПараметрамиСервер();

УправлениеЭлементамиФормы();
Expand Down Expand Up @@ -129,6 +135,22 @@

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

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Если Отказ Тогда
Возврат;
КонецЕсли;

КаталогИсходногоКода = ПолучитьКаталогИсходногоКодаКонфигурации();

Если ЗначениеЗаполнено(КаталогИсходногоКодаКонфигурации)
И КаталогИсходногоКода <> КаталогИсходногоКодаКонфигурации Тогда
СохранитьКаталогИсходногоКодаКонфигурации(КаталогИсходногоКодаКонфигурации);
КонецЕсли;

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

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

#Область ОбработчикиСобытийЭлементовШапкиФормы
Expand All @@ -147,6 +169,22 @@

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

&НаКлиенте
Асинх Процедура КаталогИсходногоКодаКонфигурацииНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Диалог.МножественныйВыбор = Ложь;

Результат = Ждать Диалог.ВыбратьАсинх();
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;

Модифицированность = Истина;
КаталогИсходногоКодаКонфигурации = Результат[0];

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыПараметрыФункции
Expand Down Expand Up @@ -555,6 +593,37 @@

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

&НаСервере
Функция ПолучитьКаталогИсходногоКодаКонфигурации()

// ++ Обход ошибки отстутствия модуля БСП, не переносить
ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
// -- Обход ошибки отстутствия модуля БСП, не переносить

Результат = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(),
"__ПользовательскиеФункции_КаталогИсхКода", "");

Возврат Результат;

КонецФункции

&НаСервере
Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог)

// ++ Обход ошибки отстутствия модуля БСП, не переносить
ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
// -- Обход ошибки отстутствия модуля БСП, не переносить

ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта(),
"__ПользовательскиеФункции_КаталогИсхКода", Каталог);

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

&НаСервере
Функция КлючОбъекта()
Возврат "Справочник.__ПользовательскиеФункции.Форма.ФормаЭлемента";
КонецФункции

#Область ОбработчикиСобытийПоляРедактора

&НаКлиенте
Expand Down Expand Up @@ -904,15 +973,15 @@
КонецПроцедуры

&НаКлиенте
Функция ПолучитьМодульИзИсходников(ПолноеИмяФайла)
Асинх Функция ПолучитьМодульИзИсходников(ПолноеИмяФайла)

СмещениеИмениВПути = 3;

Путь = СтрРазделить(ПолноеИмяФайла, РазделительПути, Ложь);
ИмяМодуля = Путь[Путь.Количество() - СмещениеИмениВПути];

Текст = Новый ТекстовыйДокумент();
Текст.Прочитать(ПолноеИмяФайла);
Ждать Текст.ПрочитатьАсинх(ПолноеИмяФайла);
ТекстМодуля = Текст.ПолучитьТекст();

Возврат Новый Структура("Имя, Текст", ИмяМодуля, ТекстМодуля);
Expand All @@ -935,7 +1004,7 @@
&НаКлиенте
Функция ПолучитьКаталогИсходногоКода()

КаталогИсходногоКода = Объект.КаталогИсходногоКодаКонфигурации;
КаталогИсходногоКода = КаталогИсходногоКодаКонфигурации;
Если ЗначениеЗаполнено(КаталогИсходногоКода) Тогда
КаталогИсходногоКода = НормализоватьПуть(КаталогИсходногоКода);
КонецЕсли;
Expand All @@ -945,12 +1014,12 @@
КонецФункции

&НаКлиенте
Процедура ВопросЗагрузкиОбщихМодулейЗавершение(Ответ, ДопПараметры) Экспорт
Асинх Процедура ВопросЗагрузкиОбщихМодулейЗавершение(Ответ, ДопПараметры) Экспорт

Если Ответ = КодВозвратаДиалога.Да Тогда

Состояние("Загрузка общих модулей...");
Файлы = НайтиФайлы(ДопПараметры.КаталогМодулей, "Ext" + РазделительПути + "*.bsl", Истина);
Файлы = Ждать НайтиФайлыАсинх(ДопПараметры.КаталогМодулей, "Ext" + РазделительПути + "*.bsl", Истина);

Для Каждого Файл Из Файлы Цикл
ОбщийМодуль = ПолучитьМодульИзИсходников(Файл.ПолноеИмя);
Expand All @@ -963,7 +1032,7 @@
КонецПроцедуры

&НаКлиенте
Функция ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Глобальный)
Асинх Функция ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Глобальный)

ЗагруженоФункций = 0;

Expand All @@ -978,8 +1047,9 @@

ФайлНаДиске = Новый Файл(ФайлМодуля);

Если ФайлНаДиске.Существует() Тогда
ОбщийМодуль = ПолучитьМодульИзИсходников(ФайлНаДиске.ПолноеИмя);
Существует = Ждать ФайлНаДиске.СуществуетАсинх();
Если Существует Тогда
ОбщийМодуль = Ждать ПолучитьМодульИзИсходников(ФайлНаДиске.ПолноеИмя);
ЗагруженоФункций = View().parseCommonModule(ОбщийМодуль.Имя, ОбщийМодуль.Текст, Глобальный);
КонецЕсли;

Expand All @@ -988,7 +1058,7 @@
КонецФункции

&НаКлиенте
Функция ЗагрузитьМодульМенеджераИлиОбъектаПоИмени(КаталогИсходногоКода, СтруктураВыгрузки)
Асинх Функция ЗагрузитьМодульМенеджераИлиОбъектаПоИмени(КаталогИсходногоКода, СтруктураВыгрузки)

ЗагруженоФункций = 0;
ТипМодуля = СтруктураВыгрузки.ТипМодуля;
Expand All @@ -1000,7 +1070,8 @@

ФайлНаДиске = Новый Файл(ФайлМодуля);

Если ФайлНаДиске.Существует() Тогда
Существует = Ждать ФайлНаДиске.СуществуетАсинх();
Если Существует Тогда
Модуль = ПолучитьМодульИзИсходников(ФайлНаДиске.ПолноеИмя);
ИмяКоллекции = ПолучитьИмяКоллекцииМетаданныхПоТипу(СтруктураВыгрузки.ТипМетаданных);
АдресЗагрузки = СтрШаблон("%1.items.%2.%3", ИмяКоллекции, СтруктураВыгрузки.ИмяОбъектаМетаданных, ТипМодуля);
Expand All @@ -1012,7 +1083,7 @@
КонецФункции

&НаКлиенте
Процедура ЗагрузитьГлобальныеМодули()
Асинх Процедура ЗагрузитьГлобальныеМодули()

КаталогИсходногоКода = ПолучитьКаталогИсходногоКода();
ЕстьГлобальныеМодули = (ГлобальныйМодули <> Неопределено И 0 < ГлобальныйМодули.Количество());
Expand All @@ -1022,7 +1093,8 @@
КаталогМодулей = КаталогИсходногоКода + "CommonModules";

КаталогНаДиске = Новый Файл(КаталогМодулей);
Если КаталогНаДиске.Существует() Тогда
Существует = Ждать КаталогНаДиске.СуществуетАсинх();
Если Существует Тогда

Индекс = 0;

Expand All @@ -1037,7 +1109,7 @@
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьСтруктуруОбщегоМодуляПоЗапросу(ЧастиЗапроса)
Асинх Процедура ЗагрузитьСтруктуруОбщегоМодуляПоЗапросу(ЧастиЗапроса)

КаталогИсходногоКода = ПолучитьКаталогИсходногоКода();
КоличествоЧастейЗапроса = 2;
Expand All @@ -1046,7 +1118,7 @@

ИмяМодуля = ЧастиЗапроса[1];

ЗагруженоФункций = ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Ложь);
ЗагруженоФункций = Ждать ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Ложь);
Если 0 < ЗагруженоФункций Тогда
View().triggerSuggestions();
КонецЕсли;
Expand Down
Loading

0 comments on commit 78032eb

Please sign in to comment.