\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/release/Catalogs/__\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
deleted file mode 100644
index 4fd0edcc..00000000
--- "a/release/Catalogs/__\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
deleted file mode 100644
index 4aa314a9..00000000
--- "a/release/Catalogs/__\320\230\320\275\321\202\320\265\320\263\321\200\320\270\321\200\321\203\320\265\320\274\321\213\320\265\320\241\320\270\321\201\321\202\320\265\320\274\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml"
deleted file mode 100644
index 7e167e67..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml"
+++ /dev/null
@@ -1,1077 +0,0 @@
-
-
-
-
-
- 52d0220e-6aa0-4129-abc5-9303d1f261a9
- fe923372-3c68-4c2b-8788-79272a63ec28
-
-
- 88f89e96-88a3-41ef-aca7-a996f02882fa
- 9bbe1e69-4a4c-48cf-827c-880f3832ad3e
-
-
- f5e99bc6-e0d8-4535-92f3-beff45d6020c
- 99c122a8-7f32-4351-a23c-637e62b9ff15
-
-
- e0768510-5d57-4c4d-ba9b-33e3b906295a
- 94d36a77-a599-44aa-ba0d-63a6059937ed
-
-
- 744f61d1-7e3e-4114-90fc-2eb8009e2afb
- a7a9e0c0-d78d-4ed1-b8dc-f8ccd35b0be3
-
-
-
- __ИсторияИнтеграции
-
-
- ru
- История интеграции
-
-
-
- false
- HierarchyFoldersAndItems
- false
- 2
- true
- true
-
- ToItems
- 36
- 0
- String
- Variable
- WholeCatalog
- false
- false
- AsCode
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- ru
- Идентификатор
-
-
-
- Use
-
-
-
-
-
-
-
- Auto
- InDialog
- false
- BothWays
-
- Catalog.__ИсторияИнтеграции.StandardAttribute.Code
-
- Begin
- DontUse
- Directly
- Catalog.__ИсторияИнтеграции.Form.ФормаЭлемента
-
- Catalog.__ИсторияИнтеграции.Form.ФормаСписка
-
-
-
-
-
-
-
- false
-
-
- Managed
- Use
-
-
- ru
- Событие интеграции
-
-
-
-
- ru
- Событие интеграции
-
-
-
-
- ru
- История интеграции
-
-
-
-
- ru
- История интеграции
-
-
-
- Use
- Auto
- DontUse
- false
- false
-
-
-
-
- ДатаИнтеграции
-
-
- ru
- Дата интеграции
-
-
-
-
- xs:dateTime
-
- DateTime
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ДатаИнтеграцииВМиллисекундах
-
-
- ru
- Дата интеграции (м/с)
-
-
-
-
- xs:decimal
-
- 20
- 0
- Any
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ИнтегрируемаяСистема
-
-
- ru
- Интегрируемая система
-
-
-
-
- cfg:CatalogRef.__ИнтегрируемыеСистемы
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- Статус
-
-
- ru
- Статус
-
-
-
-
- cfg:EnumRef.__СтатусыИнтеграции
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- Index
- Use
- Use
-
-
-
-
- ФорматЗапросаИнтеграции
-
-
- ru
- Формат запроса интеграции
-
-
-
-
- cfg:EnumRef.__ФорматыЗапросовИнтеграции
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ЗапросИсходящий
-
-
- ru
- Запрос исходящий
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ЗапросВходящий
-
-
- ru
- Запрос входящий
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ОписаниеОшибки
-
-
- ru
- Описание ошибки
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ПротоколОбмена
-
-
- ru
- Протокол обмена
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- МетодИнтеграции
-
-
- ru
- Метод интеграции
-
-
-
-
- cfg:CatalogRef.__МетодыИнтеграции
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- Ошибка
-
-
- ru
- Ошибка
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- Пользователь
-
-
- ru
- Пользователь
-
-
-
-
- cfg:CatalogRef
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ДлительностьОбмена
-
-
- ru
- Длительность обмена (сек)
-
-
-
-
- xs:decimal
-
- 5
- 0
- Any
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ДлительностьВызова
-
-
- ru
- Длительность вызова (сек)
-
-
-
-
- xs:decimal
-
- 5
- 0
- Any
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
-
- 87d72b37-a640-4045-8e4b-a88596ec65bd
- 07d4d37a-0968-4cfc-b9fc-ff3c8b5c6885
-
-
- 78f069ef-55f3-45e6-9965-f52fb1dc5689
- 0d51b968-5270-4dc4-bb8a-a986dc6d6b23
-
-
-
- ОбъектыИнтеграции
-
-
- ru
- Объекты интеграции
-
-
-
-
- DontCheck
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
-
-
-
-
- ОбъектИнтеграции
-
-
- ru
- Объект интеграции
-
-
-
-
- cfg:AnyRef
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
- СозданОбновлен
-
-
- ru
- Создан/обновлен
-
-
-
-
- cfg:EnumRef.__СозданОбновлен
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
deleted file mode 100644
index 7f254d27..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
+++ /dev/null
@@ -1,79 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
-
-#Область ПрограммныйИнтерфейс
-
-//Процедура очищает записи в справочнике старше чем установленное в предопределенном значении количество дней
-Процедура ОчиститьИсториюИнтеграции() Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ЖурналРегистрации = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ИсторияИнтеграции.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.__ИсторияИнтеграции КАК ИсторияИнтеграции
- |ГДЕ
- | (ИсторияИнтеграции.Ошибка
- | И ИсторияИнтеграции.ДатаИнтеграции < ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, -&ДнейХраненияОшибок)
- | ИЛИ НЕ ИсторияИнтеграции.Ошибка
- | И ИсторияИнтеграции.ДатаИнтеграции < ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, -&ДнейХранения))";
-
- Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса()));
- Запрос.УстановитьПараметр("ДнейХранения", __ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение("КолДнейХраненияИсторииИнтеграции"));
- Запрос.УстановитьПараметр("ДнейХраненияОшибок", __ОбщегоНазначенияСервер.ПолучитьПредопределенноеЗначение("КолДнейХраненияОшибокИсторииИнтеграции"));
-
- РезультатЗапроса = Запрос.Выполнить();
-
- ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
-
- Попытка
-
- Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
-
- ЗаписьИсторииОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
- ЗаписьИсторииОбъект.Удалить();
-
- КонецЦикла;
-
- Исключение
-
- ИмяСобытия = НСтр("ru = 'Очистка истории интеграции'");
- ЗаголовокОшибки = СтрШаблон("Не удалось удалить запись истории интеграции %1", ВыборкаДетальныеЗаписи.Ссылка);
-
- ТекстОшибки = __ОбщегоНазначенияСервер.ПолучениеПолногоТекстаОшибкиПриИсключении(ЗаголовокОшибки,
- ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), ПолучитьСообщенияПользователю(Истина));
- ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ВыборкаДетальныеЗаписи.Ссылка, ТекстОшибки);
-
- КонецПопытки;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#КонецЕсли
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
deleted file mode 100644
index 5bd94124..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl"
+++ /dev/null
@@ -1,43 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
-
-#Область ОбработчикиСобытий
-
-Процедура ПередУдалением(Отказ)
-
- Если ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ОбменДанными.Загрузка = Истина;
- ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов", Истина);
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытий
-
-#Иначе
-ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'; en = 'Invalid object call on client.'");
-#КонецЕсли
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
deleted file mode 100644
index ce8fc0d6..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
deleted file mode 100644
index 20d389f8..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,234 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 5dd831f4..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,118 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- РегламентноеЗадание = ПолучитьРегламентноеЗадание();
- РасписаниеРегламентногоЗадания = РегламентноеЗадание.Расписание;
- ИспользоватьРегламентноеЗадание = РегламентноеЗадание.Использование;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПриОткрытии(Отказ)
-
- НастроитьДоступностьСсылкиНастройкиРасписания();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ИспользоватьРегламентноеЗаданиеПриИзменении(Элемент)
-
- НастроитьДоступностьСсылкиНастройкиРасписания();
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытийФормы
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура НастроитьРасписаниеРегламентногоЗадания(Команда)
-
- Диалог = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеРегламентногоЗадания);
- ОписаниеОповещения = Новый ОписаниеОповещения("РедактированиеРасписанияРегламентногоЗаданияЗавершение", ЭтотОбъект);
- Диалог.Показать(ОписаниеОповещения);
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиКомандФормы
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Функция ПолучитьРегламентноеЗадание()
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- РегламентныеЗаданияСервер = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ПараметрыЗадания = Новый Структура;
- ПараметрыЗадания.Вставить("Ключ" , "__ОчисткаИсторииИнтеграции");
- ПараметрыЗадания.Вставить("Метаданные" , Метаданные.РегламентныеЗадания.__ОчисткаИсторииИнтеграции);
- МассивРегламентныхЗаданий = РегламентныеЗаданияСервер.НайтиЗадания(ПараметрыЗадания);
-
- Если МассивРегламентныхЗаданий.Количество() Тогда
- РегламентноеЗадание = МассивРегламентныхЗаданий[0];
- Иначе
- ПараметрыЗадания.Вставить("Использование" , Истина);
- ПараметрыЗадания.Вставить("Расписание" , Новый РасписаниеРегламентногоЗадания());
-
- РегламентноеЗадание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
- КонецЕсли;
-
- Возврат РегламентноеЗадание;
-
-КонецФункции
-
-&НаКлиенте
-Процедура НастроитьДоступностьСсылкиНастройкиРасписания()
-
- Элементы.НастроитьРасписаниеРегламентногоЗадания.Доступность = ИспользоватьРегламентноеЗадание;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура РедактированиеРасписанияРегламентногоЗаданияЗавершение(Расписание, ДополнительныеПараметры) Экспорт
-
- Если Расписание <> Неопределено Тогда
- РасписаниеРегламентногоЗадания = Расписание;
- ЗаписатьРегламентноеЗаданиеПослеИзмененияРасписания();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаписатьРегламентноеЗаданиеПослеИзмененияРасписания()
-
- РегламентноеЗадание = ПолучитьРегламентноеЗадание();
- РегламентноеЗадание.Расписание = РасписаниеРегламентногоЗадания;
- РегламентноеЗадание.Использование = ИспользоватьРегламентноеЗадание;
- РегламентноеЗадание.Записать();
-
-КонецПроцедуры
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
deleted file mode 100644
index 5094f79f..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
deleted file mode 100644
index d0190d36..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,560 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 8b2ddac2..00000000
--- "a/release/Catalogs/__\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,311 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОписаниеПеременных
-
-&НаКлиенте
-Перем ДокументВнешнийОбъектИсходящий, ДокументВнешнийОбъектВходящий;
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- ЭтоЗагрузка = Объект.Статус = Перечисления.__СтатусыИнтеграции.Загружено
- ИЛИ Объект.Статус = Перечисления.__СтатусыИнтеграции.ОшибкаЗагрузки;
- Элементы.ГруппаОбъектыОбмена.Заголовок = ?(ЭтоЗагрузка, "Загруженные объекты", "Выгруженные объекты");
-
- Если НЕ Объект.Ошибка Тогда
- Элементы.ГруппаТекстОшибки.Видимость = Ложь;
- Элементы.Ошибка.Видимость = Ложь;
- КонецЕсли;
-
- Если Объект.ФорматЗапросаИнтеграции <> Перечисления.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат Тогда
- Элементы.ГруппаФорматированиеТекстаЗапроса.Видимость = Истина;
- Элементы.ВидОтображенияЗапроса.Видимость = Объект.ФорматЗапросаИнтеграции = Перечисления.__ФорматыЗапросовИнтеграции.JSON;
- Элементы.ЗапросИсходящий.Вид = ВидПоляФормы.ПолеHTMLДокумента;
- Элементы.ЗапросВходящий.Вид = ВидПоляФормы.ПолеHTMLДокумента;
- Элементы.ЗапросИсходящий.УстановитьДействие("ДокументСформирован", "ЗапросИсходящийДокументСформирован_Подключаемый");
- Элементы.ЗапросВходящий.УстановитьДействие("ДокументСформирован", "ЗапросВходящийДокументСформирован_Подключаемый");
- Иначе
- Элементы.ГруппаФорматированиеТекстаЗапроса.Видимость = Ложь;
- Если ЗначениеЗаполнено(Объект.ЗапросВходящий) Тогда
- ЗапросВходящийОтформатированный = ОтформатироватьСообщениеИнтеграции(Объект.ЗапросВходящий);
- КонецЕсли;
- Если ЗначениеЗаполнено(Объект.ЗапросИсходящий) Тогда
- ЗапросИсходящийОтформатированный = ОтформатироватьСообщениеИнтеграции(Объект.ЗапросИсходящий);
- КонецЕсли;
- КонецЕсли;
-
- Для Каждого Строка Из Объект.ОбъектыИнтеграции Цикл
- Строка.ЗагруженныйОбъектТипЗначения = ТипЗнч(Строка.ОбъектИнтеграции);
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПриОткрытии(Отказ)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = __ВспомогательныйМодульНеПереноситьКлиент;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если ЗначениеЗаполнено(Объект.ФорматЗапросаИнтеграции) И Объект.ФорматЗапросаИнтеграции <> ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.ПроизвольныйФормат") Тогда
- ИнициализироватьБазовыйФайлРедактора(ПолучитьФорматИнтеграции(Объект.ФорматЗапросаИнтеграции));
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВидОтображенияЗапросаПриИзменении(Элемент)
-
- Если ВидОтображенияЗапроса Тогда
- ИнициализироватьИЗаполнитьТекстомОбъектJSON("tree");
- Иначе
- ИнициализироватьИЗаполнитьТекстомОбъектJSON("code");
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗапросИсходящийДокументСформирован_Подключаемый(Элемент)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда
- ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Исходящий");
- Иначе
- ИнициализироватьИЗаполнитьТекстомОбъектXML("Исходящий");
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗапросВходящийДокументСформирован_Подключаемый(Элемент)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.JSON") Тогда
- ИнициализироватьИЗаполнитьТекстомОбъектJSON("code", "Входящий");
- Иначе
- ИнициализироватьИЗаполнитьТекстомОбъектXML("Входящий");
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытийФормы
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура РазвернутьВсе(Команда)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда
- Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true);
- Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true);
- Иначе
- Если ВидОтображенияЗапроса Тогда
- ДокументВнешнийОбъектИсходящий.expandAll();
- ДокументВнешнийОбъектВходящий.expandAll();
- Иначе
- ДокументВнешнийОбъектИсходящий.format();
- ДокументВнешнийОбъектВходящий.format();
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура СвернутьВсе(Команда)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Объект.ФорматЗапросаИнтеграции = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.__ФорматыЗапросовИнтеграции.XML") Тогда
- Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false);
- Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false);
- Иначе
- Если ВидОтображенияЗапроса Тогда
- ДокументВнешнийОбъектИсходящий.collapseAll();
- ДокументВнешнийОбъектВходящий.collapseAll();
- Иначе
- ДокументВнешнийОбъектИсходящий.compact();
- ДокументВнешнийОбъектВходящий.compact();
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура КопироватьВБуферОбмена(Команда)
-
- #Если НЕ ВебКлиент Тогда
- СистемнаяИнформация = Новый СистемнаяИнформация();
- Если НЕ СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Или ТипПлатформы.Linux_x86_64 Тогда
- ОбъектКопирования = Новый COMОбъект("htmlfile");
- Если Элементы.ГруппаСтраницы.ТекущаяСтраница.Имя = "ГруппаЗапросВходящий" Тогда
- ПолеКопирования = Объект.ЗапросВходящий;
- ИначеЕсли Элементы.ГруппаСтраницы.ТекущаяСтраница.Имя = "ГруппаЗапросИсходящий" Тогда
- ПолеКопирования = Объект.ЗапросИсходящий;
- Иначе
- Возврат;
- КонецЕсли;
- ОбъектКопирования.ParentWindow.ClipboardData.SetData("Text", ПолеКопирования);
- КонецЕсли;
- #КонецЕсли
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиКомандФормы
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Функция ОтформатироватьСообщениеИнтеграции(ТекстСообщенияИнтеграции)
-
- Если Объект.ФорматЗапросаИнтеграции = Перечисления.__ФорматыЗапросовИнтеграции.XML И СтрНайти(ТекстСообщенияИнтеграции, "xml") <> 0 Тогда
- Запрос = __ИнтеграцииСервер.ОтформатироватьXMLЧерезDOM(ТекстСообщенияИнтеграции, Истина);
- Иначе
- Запрос = ТекстСообщенияИнтеграции;
- КонецЕсли;
-
- Возврат Запрос;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ИнициализироватьБазовыйФайлРедактора(ФорматИнтеграции)
-
- #Если ВебКлиент Тогда
- ВызватьИсключение НСтр("ru = 'Редактор " + ФорматИнтеграции + " не предназначен для веб-клиента'");
- #Иначе
- Если ФорматИнтеграции = "JSON" Тогда
- ЗапросИсходящийОтформатированный = ПолучитьБазовыйФайлРедактора(ФорматИнтеграции);
- ЗапросВходящийОтформатированный = ЗапросИсходящийОтформатированный;
- Иначе
- ЗапросИсходящийОтформатированный = ПолучитьБазовыйФайлРедактора(ФорматИнтеграции, "Out");
- ЗапросВходящийОтформатированный = ПолучитьБазовыйФайлРедактора(ФорматИнтеграции, "In");
- КонецЕсли;
- #КонецЕсли
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПолучитьБазовыйФайлРедактора(ФорматИнтеграции, Дополнение = "")
-
- #Если НЕ ВебКлиент Тогда
- КаталогКомпоненты = КаталогВременныхФайлов() + ФорматИнтеграции + "Editor" + Дополнение;
- КаталогНаДиске = Новый Файл(КаталогКомпоненты);
- ДвоичныеДанные = ДвоичныеДанныеМакета(ФорматИнтеграции);
-
- Чтение = Новый ЧтениеДанных(ДвоичныеДанные);
- Файл = Новый ЧтениеZipФайла(Чтение.ИсходныйПоток());
- Файл.ИзвлечьВсе(КаталогКомпоненты);
-
- БазовыйФайлРедактора = КаталогКомпоненты + ПолучитьРазделительПути() + "index.html";
-
- Возврат БазовыйФайлРедактора;
- #КонецЕсли
-
-КонецФункции
-
-&НаКлиенте
-Процедура ИнициализироватьИЗаполнитьТекстомОбъектJSON(ВидОтображения, ТипЗапроса = "")
-
- Если ТипЗапроса = "Исходящий" Тогда
- Если ДокументВнешнийОбъектИсходящий <> Неопределено Тогда
- ДокументВнешнийОбъектИсходящий.destroy();
- КонецЕсли;
-
- ДокументВнешнийОбъектИсходящий = Элементы.ЗапросИсходящий.Документ.defaultView.Init(ВидОтображения);
- ДокументВнешнийОбъектИсходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
- ДокументВнешнийОбъектИсходящий.setText(Объект.ЗапросИсходящий);
-
- ИначеЕсли ТипЗапроса = "Входящий" Тогда
- Если ДокументВнешнийОбъектВходящий <> Неопределено Тогда
- ДокументВнешнийОбъектВходящий.destroy();
- КонецЕсли;
-
- ДокументВнешнийОбъектВходящий = Элементы.ЗапросВходящий.Документ.defaultView.Init(ВидОтображения);
- ДокументВнешнийОбъектВходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
- ДокументВнешнийОбъектВходящий.setText(Объект.ЗапросВходящий);
- Иначе
- Если ДокументВнешнийОбъектИсходящий <> Неопределено Тогда
- ДокументВнешнийОбъектИсходящий.destroy();
- КонецЕсли;
-
- ДокументВнешнийОбъектИсходящий = Элементы.ЗапросИсходящий.Документ.defaultView.Init(ВидОтображения);
- ДокументВнешнийОбъектИсходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
- ДокументВнешнийОбъектИсходящий.setText(Объект.ЗапросИсходящий);
-
- Если ДокументВнешнийОбъектВходящий <> Неопределено Тогда
- ДокументВнешнийОбъектВходящий.destroy();
- КонецЕсли;
-
- ДокументВнешнийОбъектВходящий = Элементы.ЗапросВходящий.Документ.defaultView.Init(ВидОтображения);
- ДокументВнешнийОбъектВходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
- ДокументВнешнийОбъектВходящий.setText(Объект.ЗапросВходящий);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ИнициализироватьИЗаполнитьТекстомОбъектXML(ТипЗапроса)
-
- Если ТипЗапроса = "Исходящий" Тогда
- Элементы.ЗапросИсходящий.Документ.defaultView.start(ОтформатироватьСообщениеИнтеграции(Объект.ЗапросИсходящий), "nerd");
- Иначе
- Элементы.ЗапросВходящий.Документ.defaultView.start(ОтформатироватьСообщениеИнтеграции(Объект.ЗапросВходящий), "nerd");
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Функция ДвоичныеДанныеМакета(ФорматИнтеграции)
-
- Возврат ПолучитьОбщийМакет("__" + ФорматИнтеграции + "Editor");
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьФорматИнтеграции(ФорматЗапросаИнтеграции)
-
- ИндексЗначенияПеречисления = Перечисления.__ФорматыЗапросовИнтеграции.Индекс(ФорматЗапросаИнтеграции);
- ФорматИнтеграции = Метаданные.Перечисления.__ФорматыЗапросовИнтеграции.ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
-
- Возврат ФорматИнтеграции;
-
-КонецФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml" "b/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml"
deleted file mode 100644
index 9d3361df..00000000
--- "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml"
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-
- 27e4477a-30c0-46c0-99d5-1662d5278fbf
- 950612ee-2c6e-4a4a-a7ae-02716a74d3fa
-
-
- a43f4bad-6139-42b3-9f28-c55d60b71fb8
- 59d0a00d-ee1c-48e5-8e2b-3949a70cc3c1
-
-
- a19a8ac0-76a9-4657-981e-7e53c430f242
- fd8a81a3-26c0-4982-96f9-ab40d9fad50b
-
-
- 30e79f29-fec1-4060-af9d-0bde4238e4c9
- 5e4ead15-4199-4d03-8ec9-e6d666e1cfde
-
-
- f9fd23df-8010-4128-8546-9a3c88ce3dcd
- 9a054a13-ab52-4669-9039-fb486e762445
-
-
-
- __МетодыИнтеграции
-
-
- ru
- Методы интеграции
-
-
-
- false
- HierarchyFoldersAndItems
- false
- 2
- true
- true
-
- ToItems
- 9
- 100
- String
- Variable
- WholeCatalog
- true
- true
- AsDescription
-
- Auto
- InDialog
- false
- BothWays
-
- Catalog.__МетодыИнтеграции.StandardAttribute.Description
- Catalog.__МетодыИнтеграции.StandardAttribute.Code
-
- Begin
- DontUse
- Directly
- Catalog.__МетодыИнтеграции.Form.ФормаЭлемента
-
- Catalog.__МетодыИнтеграции.Form.ФормаСписка
-
-
-
-
-
-
-
- false
-
-
- Managed
- Use
-
-
- ru
- Метод интеграции
-
-
-
-
-
- ru
- Методы интеграции
-
-
-
-
- Use
- Auto
- DontUse
- false
- false
-
-
-
-
- Метод
-
-
- ru
- Метод
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- НастройкаИнтеграции
-
-
- ru
- Настройка интеграции
-
-
-
-
- cfg:CatalogRef.__НастройкиИнтеграции
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/Predefined.xml" "b/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/Predefined.xml"
deleted file mode 100644
index d73b0eb7..00000000
--- "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/Predefined.xml"
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- МетодИнтеграцииСистемыN
- 000000001
- Метод интеграции системы N
- false
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
deleted file mode 100644
index e6a6e8fd..00000000
--- "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
deleted file mode 100644
index 81020f3a..00000000
--- "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,137 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
deleted file mode 100644
index f6e9b13c..00000000
--- "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
deleted file mode 100644
index 56aad21f..00000000
--- "a/release/Catalogs/__\320\234\320\265\321\202\320\276\320\264\321\213\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml"
deleted file mode 100644
index 0b85f4ef..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270.xml"
+++ /dev/null
@@ -1,468 +0,0 @@
-
-
-
-
-
- c9c9780f-d144-4691-ba6e-a200cce8938a
- 385b7b26-512c-4bfa-b906-e3276dad0ec5
-
-
- 17942a54-d2d7-45d6-8f39-8d8dd58fbaea
- e44f6572-0e8d-4eeb-bd89-0057e050280f
-
-
- f19bb6d3-e973-4d04-9b3b-329b42018042
- 4812e62c-600e-442a-872f-b6d2848c97fa
-
-
- 6e021eab-19ec-4659-8acc-526873d79925
- 5cbbcbd4-26e2-42a3-8c55-0b3889b28d57
-
-
- e3f2c94b-d883-415d-9857-f9fd2ee480b4
- 4bde6e03-ce45-4be1-b550-c2671645b6ce
-
-
-
- __НастройкиИнтеграции
-
-
- ru
- Настройки интеграции
-
-
-
- false
- HierarchyFoldersAndItems
- false
- 2
- true
- true
-
- ToItems
- 9
- 100
- String
- Variable
- WholeCatalog
- true
- true
- AsDescription
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- Auto
- InDialog
- false
- BothWays
-
- Catalog.__НастройкиИнтеграции.StandardAttribute.Description
- Catalog.__НастройкиИнтеграции.StandardAttribute.Code
-
- Begin
- DontUse
- Directly
- Catalog.__НастройкиИнтеграции.Form.ФормаЭлемента
-
- Catalog.__НастройкиИнтеграции.Form.ФормаСписка
-
-
-
-
-
-
-
- false
-
-
- Managed
- Use
-
-
- ru
- Настройка интеграции
-
-
-
-
-
- ru
- Настройки интеграции
-
-
-
-
- Use
- Auto
- DontUse
- false
- false
-
-
-
-
- Порт
-
-
- ru
- Порт
-
-
-
-
- xs:string
-
- 8
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- Сервер
-
-
- ru
- Сервер
-
-
-
-
- xs:string
-
- 100
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- ShowError
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ИнтегрируемаяСистема
-
-
- ru
- Интегрируемая система
-
-
-
-
- cfg:CatalogRef.__ИнтегрируемыеСистемы
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- ShowError
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
deleted file mode 100644
index 5f282702..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/ManagerModule.bsl"
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/Predefined.xml" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/Predefined.xml"
deleted file mode 100644
index f6a2d51e..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Ext/Predefined.xml"
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- ИнтеграцияССистемойN
- 000000001
- Интеграция с системой N
- false
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
deleted file mode 100644
index a73f6cf9..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
deleted file mode 100644
index 2f73f098..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
deleted file mode 100644
index 72e1dbf0..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
deleted file mode 100644
index 9b8d60cc..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 88bfa1d8..00000000
--- "a/release/Catalogs/__\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,152 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
- Возврат;
- КонецЕсли;
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- Если ОбщегоНазначения <> Неопределено Тогда
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УстановитьПривилегированныйРежим(Истина);
- СтруктураНастроек = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка);
-
- Если СтруктураНастроек = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- УстановитьПривилегированныйРежим(Ложь);
-
- Для Каждого КлючИЗначение Из СтруктураНастроек Цикл
- НоваяСтрока = СписокНастроек.Добавить();
- ЗаполнитьЗначенияСвойств(НоваяСтрока, КлючИЗначение.Значение);
- КонецЦикла;
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- КонецЕсли;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- Если ОбщегоНазначения <> Неопределено Тогда
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УстановитьПривилегированныйРежим(Истина);
-
- СтруктураНастроек = Новый Структура();
-
- Для Каждого ТекСтрока Из СписокНастроек Цикл
-
- Если Не ЗначениеЗаполнено(ТекСтрока.Значение) Тогда
- Продолжить;
- КонецЕсли;
-
- Настройка = Новый Структура("ИмяНастройки, Значение");
- ЗаполнитьЗначенияСвойств(Настройка, ТекСтрока);
- СтруктураНастроек.Вставить(ТекСтрока.ИмяНастройки, Настройка);
- КонецЦикла;
-
- ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, СтруктураНастроек);
-
- УстановитьПривилегированныйРежим(Ложь);
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- КонецЕсли;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытийФормы
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура ДобавитьОбщие(Команда)
-
- ОбщиеЗначения = ПолучитьОбщиеЗначения();
-
- Если СписокНастроек.Количество() Тогда
- ПроизвестиПроверкуСуществованияРеквизитов(ОбщиеЗначения);
- КонецЕсли;
-
- Для Каждого ТекЭлемент Из ОбщиеЗначения Цикл
-
- НоваяСтрока = СписокНастроек.Добавить();
- НоваяСтрока.ИмяНастройки = ТекЭлемент;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПоказатьЗначения(Команда)
-
- Пометка = НЕ Элементы.СписокНастроекПоказатьЗначения.Пометка;
- Элементы.СписокНастроекПоказатьЗначения.Пометка = Пометка;
- Элементы.СписокНастроекЗначениеПредставление.Видимость = Пометка;
- Элементы.СписокНастроекЗначение.Видимость = НЕ Пометка;
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиКомандФормы
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция ПолучитьОбщиеЗначения()
-
- Массив = Новый Массив;
- Массив.Добавить("Логин");
- Массив.Добавить("Пароль");
-
- Возврат Массив;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПроизвестиПроверкуСуществованияРеквизитов(ПроверяемыеЗначения)
-
- Сч = ПроверяемыеЗначения.Количество() - 1;
-
- Пока Сч >= 0 Цикл
- НайденныеСтроки = СписокНастроек.НайтиСтроки(Новый Структура("ИмяНастройки", ПроверяемыеЗначения[Сч]));
- Если НайденныеСтроки.Количество() Тогда
- ПроверяемыеЗначения.Удалить(Сч);
- КонецЕсли;
- Сч = Сч - 1;
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml"
deleted file mode 100644
index 1b93bc6e..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml"
+++ /dev/null
@@ -1,989 +0,0 @@
-
-
-
-
-
- 229f908d-2a9d-4ff4-a5ee-ce6508e8ae8a
- fe7727fc-6acc-4582-ab94-f11ac2656d6b
-
-
- a0158c25-4c14-48e4-94a2-c81e8b6297ed
- 3cac73ea-5878-40a3-b578-9999c8a6202b
-
-
- a9c98a0f-3726-4c44-b970-ccbf830f9c80
- 4f58098b-10d4-4d26-84ce-15f46f39aa9a
-
-
- fc9defba-1950-40b3-94f3-fda0a6b03673
- 4dcf8be3-b9e6-4574-baca-66c93bf36907
-
-
- 95ffbbb7-d841-4add-b718-c2088c808f7c
- 0a676d99-f9eb-4dd6-b242-c8b70e3108bc
-
-
-
- __ПользовательскиеФункции
-
-
- ru
- Пользовательские функции
-
-
- en
- User Functions
-
-
-
- true
- HierarchyFoldersAndItems
- false
- 2
- true
- true
-
- ToItems
- 15
- 100
- String
- Fixed
- WholeCatalog
- true
- true
- AsDescription
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- ru
- Группа
-
-
- en
- Group
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- Auto
- InDialog
- false
- BothWays
-
- Catalog.__ПользовательскиеФункции.StandardAttribute.Description
- Catalog.__ПользовательскиеФункции.StandardAttribute.Code
-
- Begin
- DontUse
- Directly
- Catalog.__ПользовательскиеФункции.Form.ФормаЭлемента
- Catalog.__ПользовательскиеФункции.Form.ФормаГруппы
- Catalog.__ПользовательскиеФункции.Form.ФормаСписка
- Catalog.__ПользовательскиеФункции.Form.ФормаВыбора
-
-
-
-
-
-
- true
-
-
- Automatic
- Use
-
-
- ru
- Пользовательская функция
-
-
- en
- User Function
-
-
-
-
-
-
- Use
- Auto
- DontUse
- false
- false
-
-
-
-
- КодПодпрограммы
-
-
- ru
- Код подпрограммы
-
-
- en
- Subroutine Code
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- Описание
-
-
- ru
- Описание
-
-
- en
- Description
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- ТипВозвращаемогоЗначения
-
-
- ru
- Тип возвращаемого значения
-
-
- en
- Return Value Type
-
-
-
-
- xs:string
-
- 200
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- Контекст
-
-
- ru
- Контекст
-
-
- en
- Context
-
-
-
-
- cfg:EnumRef.__КонтекстыВыполненияПользовательскихФункций
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- ShowError
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
- КаталогИсходногоКодаКонфигурации
-
-
- ru
- Каталог исходного кода конфигурации
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
-
- DontIndex
- Use
- Use
-
-
-
-
-
- 313e427b-fa73-4bf8-a890-477759b0f69a
- a932f280-2c88-4600-9d8b-1f3b5715a085
-
-
- 156b24ec-36df-4390-bd27-24e50761b474
- 820701b6-ff17-44ef-904a-d7a81cc64e74
-
-
-
- ПараметрыФункции
-
-
- ru
- Параметры функции
-
-
- en
- Function Parameters
-
-
-
-
- DontCheck
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
-
-
-
-
- Наименование
-
-
- ru
- Наименование
-
-
-
-
- xs:string
-
- 200
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- ShowError
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
- ТипПараметра
-
-
- ru
- Тип параметра
-
-
- en
- Parameter Type
-
-
-
-
- v8:ValueStorage
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
- НеОбязательныйДляЗаполнения
-
-
- ru
- Не обязательный
-
-
- en
- Not Required
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
- ЗначениеПоУмолчанию
-
-
- ru
- Значение по умолчанию
-
-
- en
- Default Value
-
-
-
-
- xs:boolean
- xs:string
- xs:dateTime
- xs:decimal
- cfg:AnyRef
-
- 10
- 0
- Any
-
-
- 10
- Variable
-
-
- Date
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
-
-
-
- e071dfe3-1b49-43fe-8e24-66660e7e70cd
- 63969f55-f63a-4fe2-837e-e2b2b44da63b
-
-
- 0afb400a-adab-4749-8955-ff4cba25cc53
- 4ec7c8d4-38ec-4554-927b-050a9c58a018
-
-
-
- Переменные
-
-
- ru
- Переменные
-
-
- en
- Variables
-
-
- Переменные
-
- DontCheck
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
-
-
-
-
- Имя
-
-
- ru
- Имя
-
-
- en
- FName
-
-
- Имя
-
- xs:string
-
- 150
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- ShowError
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
- Значение
-
-
- ru
- Значение
-
-
- en
- Value
-
-
- Значение
-
- xs:boolean
- xs:string
- xs:dateTime
- xs:decimal
- cfg:AnyRef
-
- 19
- 6
- Any
-
-
- 250
- Variable
-
-
- DateTime
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
-
-
-
-
-
-
- НастройкиПоУмолчанию
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/Help.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/Help.xml"
deleted file mode 100644
index 4294b565..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/Help.xml"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- ru
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/Help/ru.html" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/Help/ru.html"
deleted file mode 100644
index a2dcb5f0..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/Help/ru.html"
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
Справочник «Пользовательские функции»
-
-
Пользовательские функции предназначены для классификации и хранения, часто повторяющихся фрагментов кода при настройке шаблонов проводок хозяйственных операций. Создание пользовательских функций производится в справочнике«Пользовательские функции».
-
-
Следует помнить, что созданные функции являются глобальными.
-
-
Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение. Главным условием, является то, что сформированное значение должно быть помещено в переменную «Результат».
-
-
При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров необходимых для выполнения функции. Количество входных параметров может быть произвольным. Тип параметров - произвольный. Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров. Если они не указаны при вызове функции, то значение будет «Не определено».
-
-
В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой «Конструктор запроса» на панели инструментов редактора кода.
-
-
В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой «Выполнить» на панели инструментов редактора кода. Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом.
-
-
Если у функции указаны входные параметры, перед проверкой выполнения может потребоваться указания значений этих параметров. Для данной операции следует нажать на кнопку панели инструментов редактора кода.
-
-
Для каждой пользовательской функции возможно составить описание. Описание представляет текстовый блок с краткой информацией о назначении функции и пр. Форма ввода описания функции вызывается при нажатии на кнопку «Добавить описание подпрограммы» панели инструментов редактора кода.
-
-
Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария. В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит.
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl"
deleted file mode 100644
index 917bf067..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl"
+++ /dev/null
@@ -1,200 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-// Обновляет тексты предопределенных элементов справочника пользовательские функции.
-//
-Процедура ОбновитьПредопределенныеЭлементы(Знач Макет = Неопределено, РежимСообщений = "Все") Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ВыводитьОшибки = ?(РежимСообщений = "Все" Или РежимСообщений = "Ошибки", Истина, Ложь);
- ВыводитьИнформацию = ?(РежимСообщений = "Все", Истина, Ложь);
-
- Если Макет = Неопределено Тогда
- Макет = Справочники.__ПользовательскиеФункции.ПолучитьМакет("НастройкиПоУмолчанию");
- КонецЕсли;
-
- ТекстМакета = Макет.ПолучитьТекст();
- СтруктураТаблиц = Новый Структура;
-
- КоличествоТаблиц = 0;
- Пока Истина Цикл
- НомерПервойПозиции = Найти(ТекстМакета, "");
-
- Если НомерПервойПозиции = 0
- Или НомерПоследнейПозиции = 0
- Или КоличествоТаблиц > 99 Тогда
-
- Прервать;
- КонецЕсли;
-
- ТекстОписанияТаблицы = Сред(ТекстМакета, НомерПервойПозиции, НомерПоследнейПозиции+7);
- ТекстМакета = СтрЗаменить(ТекстМакета, ТекстОписанияТаблицы, "");
-
- Структура = __ОбщегоНазначенияСервер.ПрочитатьXMLВТаблицу(ТекстОписанияТаблицы);
- СтруктураТаблиц.Вставить(Структура.ИмяТаблицы, Структура.Данные);
-
- КоличествоТаблиц = КоличествоТаблиц + 1;
- КонецЦикла;
-
- Ном = 0;
- // Обработка данных макета.
- Для Каждого ОписаниеЭлемента Из СтруктураТаблиц.ТаблицаПредопределенныеЭлементы Цикл
-
- Если ЗначениеЗаполнено(ОписаниеЭлемента.ИмяПредопределенного) Тогда
- Попытка
- СправочникСсылка = Справочники.__ПользовательскиеФункции[ОписаниеЭлемента.ИмяПредопределенного];
- Исключение
- СправочникСсылка = Неопределено;
-
- Если ВыводитьОшибки Тогда
-
- ОбщегоНазначения.СообщитьПользователю(СтрШаблон(
- НСтр("ru='Не удалось найти предопределенный элемент справочника ""Пользовательские функции"" по имени %1';
- |en='Failed to find a predefined element of the directory ""User-defined functions"" named %1'"),
- ОписаниеЭлемента.ИмяПредопределенного));
- КонецЕсли;
-
- КонецПопытки;
- Иначе
- СправочникСсылка = Неопределено;
- КонецЕсли;
-
- Если СправочникСсылка = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- КонецЦикла;
-
- Если ВыводитьИнформацию Тогда
-
- ОбщегоНазначения.СообщитьПользователю(СтрШаблон(
- НСтр("ru='Выполнена проверка версий предопределенных элементов справочника ""Пользовательские функции"". Обновлено %1 элементов.';
- |en='Successfully checked the versions of predefined elements of the directory ""User functions"". %1 elements updated.'"),
- Строка(Ном)));
- КонецЕсли;
-
-КонецПроцедуры
-
-// Формирует структуру заголовков для элемента справочника.
-//
-Функция ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка) Экспорт
-
- // Значения элементов структуры:
- //
- // - ЗаголовокФункции: Функция МояФункция(Параметр1, Параметр2).
- // - НазваниеСПараметрами: МояФункция(Параметр1, Параметр2).
- // - ОписаниеПараметров: // Типы входных параметров:
- // // Параметр1 - 'Число'.
- // // Параметр2 - 'Строка'.
- СтруктураПараметров = Новый Структура("ЗаголовокФункции, НазваниеСПараметрами, ОписаниеПараметров");
-
- ТекстНазвания = СтрШаблон("%1(", СокрЛП(Ссылка.Наименование));
- ТекстКомментария = "// Типы входных параметров: ";
-
- Для Каждого Параметр Из Ссылка.ПараметрыФункции Цикл
-
- ТекстНазвания = ТекстНазвания + СокрЛП(Параметр.Наименование);
-
- Если Параметр.НеОбязательныйДляЗаполнения Тогда
- ТекстНазвания = СтрШаблон("%1 = Неопределено", ТекстНазвания);
- КонецЕсли;
-
- Если ТипЗнч(Ссылка) = Тип("ДанныеФормыСтруктура") Тогда
- ОписаниеТипаПараметра = "";
- Иначе
- ОписаниеТипаПараметра = СокрЛП(Параметр.ТипПараметра.Получить());
- КонецЕсли;
-
- ТекстКомментария = СтрШаблон("%1%2// %3 - '%4'",
- ТекстКомментария, Символы.ПС, СокрЛП(Параметр.Наименование), ОписаниеТипаПараметра);
-
- Если Не Параметр.НомерСтроки = Ссылка.ПараметрыФункции.Количество() Тогда
- ТекстНазвания = СтрШаблон("%1, ", ТекстНазвания);
- КонецЕсли;
- КонецЦикла;
-
- ТекстНазвания = СтрШаблон("%1)", ТекстНазвания);
-
- СтруктураПараметров.ЗаголовокФункции = СтрШаблон("Функция %1", ТекстНазвания);
- СтруктураПараметров.НазваниеСПараметрами = ТекстНазвания;
- СтруктураПараметров.ОписаниеПараметров = ТекстКомментария;
-
- Возврат СтруктураПараметров;
-
-КонецФункции
-
-// Заполняет параметры функции для переданного объекта.
-//
-// Параметры:
-// Объект - ДанныеФормыСтруктура, СправочникОбъект.__ПользовательскиеФункции.
-//
-Процедура ЗаполнитьПараметры(Объект) Экспорт
-
- Если Объект.Контекст = Перечисления.__КонтекстыВыполненияПользовательскихФункций.ЗагрузкаЭксель Тогда
- Объект.ПараметрыФункции.Очистить();
- ДобавитьПараметрыЗагрузкаЭксель(Объект);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Выполняет добавляет параметр при отсутствии.
-//
-// Параметры:
-// ИмяПараметра - Строка.
-//
-Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра)
-
- ДанныеПоиска = Объект.ПараметрыФункции.НайтиСтроки(
- Новый Структура("Наименование", ИмяПараметра));
-
- Если Не ДанныеПоиска.Количество() Тогда
- НоваяСтрока = Объект.ПараметрыФункции.Добавить();
- НоваяСтрока.Наименование = ИмяПараметра;
- КонецЕсли;
-
-КонецПроцедуры
-
-// Добавляет параметры, необходимые для контекста ЗагрузкаЭксель.
-//
-Процедура ДобавитьПараметрыЗагрузкаЭксель(Объект)
-
- НайтиДобавитьПараметр(Объект, "СтрокаЗагрузки");
- НайтиДобавитьПараметр(Объект, "ДанныеЗагрузки");
- НайтиДобавитьПараметр(Объект, "СтрокаПравил");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецЕсли
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl"
deleted file mode 100644
index d1db5c67..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ObjectModule.bsl"
+++ /dev/null
@@ -1,108 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
-
-#Область ОбработчикиСобытий
-
-Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
-
- Если Не ЭтоГруппа Тогда
- Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
- ДанныеЗаполнения.Свойство("Наименование", Наименование);
- ДанныеЗаполнения.Свойство("Контекст", Контекст);
- ДанныеЗаполнения.Свойство("КодПодпрограммы", КодПодпрограммы);
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(Контекст) Тогда
- Контекст = Перечисления.__КонтекстыВыполненияПользовательскихФункций.Произвольный;
- КонецЕсли;
-
- Если ПустаяСтрока(КодПодпрограммы) Тогда
- КодПодпрограммы = СтрШаблон("Результат = %1", КодПодпрограммы + Символы.ПС);
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- СтруктураПараметров = Новый Структура;
-
- Для Каждого СтрокаТаблицы Из Переменные Цикл
-
- НомерСтроки = СтрокаТаблицы.НомерСтроки - 1;
-
- Попытка
- СвойствоДоступно = СтруктураПараметров.Свойство(СтрокаТаблицы.Имя);
- Исключение
- СвойствоДоступно = Ложь;
- КонецПопытки;
-
- Если Не СвойствоДоступно Тогда
-
- Попытка
- СтруктураПараметров.Вставить(СтрокаТаблицы.Имя);
- Исключение
-
- ТекстСообщения = СтрШаблон(НСтр("ru='Обнаружено некорректное имя ""%1"" в таблице ""Переменные"".';
- |en='Found an incorrect name ""%1"" in table ""Variables.""'"),СтрокаТаблицы.Имя);
- ОбщегоНазначения.СообщитьПользователю(
- ТекстСообщения, ЭтотОбъект, СтрШаблон("Переменные[%1].Имя", НомерСтроки),, Отказ);
- КонецПопытки;
- Иначе
-
- ТекстСообщения = СтрШаблон(НСтр("ru='Обнаружено дублирующееся имя ""%1"" в таблице ""Переменные"".';
- |en='Found a duplicate name ""%1"" in the table ""Variables.""'"), СтрокаТаблицы.Имя);
- ОбщегоНазначения.СообщитьПользователю(
- ТекстСообщения, ЭтотОбъект, СтрШаблон("Переменные[%1].Имя", НомерСтроки),, Отказ);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ПередЗаписью(Отказ)
-
- Если ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПриЗаписи(Отказ)
-
- Если ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Иначе
- ВызватьИсключение НСтр("ru='Недопустимый вызов объекта на клиенте.';en='Invalid object call on client'");
-#КонецЕсли
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200.xml"
deleted file mode 100644
index a930480f..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200.xml"
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200/Ext/Form.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200/Ext/Form.xml"
deleted file mode 100644
index 13941cbe..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200/Ext/Form.xml"
+++ /dev/null
@@ -1,281 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200/Ext/Form/Module.bsl"
deleted file mode 100644
index eb9215ca..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\243\321\201\320\273\320\276\320\262\320\275\321\213\320\271\320\236\320\277\320\265\321\200\320\260\321\202\320\276\321\200/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,149 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Параметры.Свойство("Режим", Режим);
-
- Если Параметры.Свойство("Переменные") Тогда
- Для Каждого ТекущаяПеременна Из Параметры.Переменные Цикл
- СписокПеременных.Добавить(ТекущаяПеременна.Значение);
- КонецЦикла;
- КонецЕсли;
-
- НадписьСинтаксис = НСтр("ru = '?(<ЛогическоеВыражение>,<ВыражениеЕслиИстина>,<ВыражениеЕслиЛожь>)';
- |en = '?(,,)'");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовШапкиФормы
-
-&НаКлиенте
-Процедура ЛогическоеВыражениеПриИзменении(Элемент)
-
- ОбновитьВыражениеРезультат();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЛогическоеВыражениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
-
- ОткрытьФормуВыбораПоля("ЛогическоеВыражение");
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВыражениеИстинаПриИзменении(Элемент)
-
- ОбновитьВыражениеРезультат();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВыражениеИстинаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
-
- ОткрытьФормуВыбораПоля("ВыражениеИстина");
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВыражениеЛожьПриИзменении(Элемент)
-
- ОбновитьВыражениеРезультат();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВыражениеЛожьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
-
- ОткрытьФормуВыбораПоля("ВыражениеЛожь");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура КомандаОК(Команда)
-
- ОбновитьВыражениеРезультат();
- Закрыть(ВыражениеРезультат);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Выполняет обновление результирующего выражения.
-//
-&НаКлиенте
-Процедура ОбновитьВыражениеРезультат()
-
- ВыражениеРезультат = СтрШаблон("?(%1, %2, %3);", ЛогическоеВыражение, ВыражениеИстина, ВыражениеЛожь);
-
-КонецПроцедуры
-
-// Открывает помошник для выбора поля.
-//
-&НаКлиенте
-Процедура ОткрытьФормуВыбораПоля(ИмяПриемника)
-
- ПараметрыФормы = Новый Структура;
-
- ПараметрыФормы.Вставить("Режим", Режим);
-
- Если СписокПеременных.Количество() Тогда
- ПараметрыФормы.Вставить("Переменные", СписокПеременных.ВыгрузитьЗначения());
- КонецЕсли;
-
- ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля",
- ПараметрыФормы, ЭтотОбъект,,,,
- Новый ОписаниеОповещения("ВыборПоляЗавершение", ЭтотОбъект, Новый Структура("ИмяПриемника", ИмяПриемника)),
- РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
-
- КонецПроцедуры
-
-// Обработчик оповещения "ВыборПоляЗавершение".
-//
-// Параметры:
-// РезСтруктура - КодВозвратаДиалога.
-// ДополнительныеДанные - Структура.
-//
-&НаКлиенте
-Процедура ВыборПоляЗавершение(Результат, ДополнительныеДанные) Экспорт
-
- Если ТипЗнч(Результат) = Тип("Структура") Тогда
- Элементы[ДополнительныеДанные.ИмяПриемника].ВыделенныйТекст = Результат.Имя;
- ОбновитьВыражениеРезультат();
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.xml"
deleted file mode 100644
index 62b5106d..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260.xml"
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml"
deleted file mode 100644
index 97846312..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,368 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 88fbbc36..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,110 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
-
-&НаКлиенте
-Процедура СписокПриАктивизацииСтроки(Элемент)
-
- ПодключитьОбработчикОжидания("ПоказатьОписаниеФункции", 0.1, Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Формирует описание функции или группы функций.
-//
-// Параметры:
-// Ссылка - СправочникСсылка.__ПользовательскиеФункции.
-//
-&НаСервере
-Процедура ПоказатьОписаниеФункцииСервер(Ссылка)
-
- Если Ссылка.ЭтоГруппа Тогда
-
- ТекстОписания = СтрШаблон(НСтр("ru='#В группе: %1';en='#In Group: %1'"), Символы.ПС);
-
- Выборка = Справочники.__ПользовательскиеФункции.Выбрать(Ссылка);
- Пока Выборка.Следующий() Цикл
-
- Если Выборка.ЭтоГруппа Тогда
- Продолжить;
- КонецЕсли;
-
- ОписаниеСКомментариями = СтрЗаменить(СокрЛП(Выборка.Описание), Символы.ПС, СтрШаблон("%1// ", Символы.ПС));
- Если СокрЛП(Выборка.Описание) = "" Тогда
- ОписаниеФункции = НСтр("ru='// <нет описания>';en='// '");
- Иначе
- ОписаниеФункции = СтрШаблон("// %1", ОписаниеСКомментариями);
- КонецЕсли;
-
- __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, ОписаниеФункции);
- СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Выборка.Ссылка);
- __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, СтруктураЗаголовка.ЗаголовокФункции + Символы.ПС);
- КонецЦикла;
-
- ПолеОписания = ТекстОписания;
- Иначе
- СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка);
-
- Элементы.ДекорацияНазваниеСПараметрами.Заголовок = СтруктураЗаголовка.НазваниеСПараметрами;
- ПолеОписания = СтрШаблон("%1%2%3", СтруктураЗаголовка.ОписаниеПараметров, Символы.ПС, СокрЛП(Ссылка.КодПодпрограммы));
- КонецЕсли;
-
- Элементы.Описание.Видимость = Не Ссылка.ЭтоГруппа;
- Элементы.ГруппаШапкаФункции.Видимость = Не Ссылка.ЭтоГруппа;
- Элементы.ГруппаПодвалФункции.Видимость = Не Ссылка.ЭтоГруппа;
-
-КонецПроцедуры
-
-// Обработчик ожидания активизации строки.
-//
-&НаКлиенте
-Процедура ПоказатьОписаниеФункции()
-
- ТекущиеДанные = Элементы.Список.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ПоказатьОписаниеФункцииСервер(ТекущиеДанные.Ссылка);
-
-КонецПроцедуры
-
-#КонецОбласти
-
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213.xml"
deleted file mode 100644
index da6234c9..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213.xml"
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form.xml"
deleted file mode 100644
index c58855cb..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form.xml"
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form/Module.bsl"
deleted file mode 100644
index a9b309fd..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,36 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml"
deleted file mode 100644
index fbb176e2..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml"
deleted file mode 100644
index 4b914093..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml"
+++ /dev/null
@@ -1,210 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl"
deleted file mode 100644
index 327bf423..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,136 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- ПараметрыФункции = Параметры.ПараметрыФункции;
- ЗначенияПараметров = Параметры.ЗначенияПараметров;
-
- ТаблицаПараметров.Очистить();
-
- Для Каждого Параметр Из ПараметрыФункции Цикл
-
- ОписаниеТипа = Новый ОписаниеТипов(Параметр.фТипПараметра);
-
- Стр = ЗначенияПараметров.Получить(Параметр.Наименование);
- Если Стр = Неопределено Тогда
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Параметр = Параметр.Наименование;
- НоваяСтрока.Значение = ОписаниеТипа.ПривестиЗначение();
- Иначе
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Параметр = Параметр.Наименование;
-
- МассивТиповЗначения = Новый Массив;
- МассивТиповЗначения.Добавить(ТипЗнч(Стр));
-
- ОписаниеТипаЗначения = Новый ОписаниеТипов(МассивТиповЗначения);
-
- Если ОписаниеТипа = ОписаниеТипаЗначения Тогда
- НоваяСтрока.Значение = Стр;
- Иначе
- НоваяСтрока.Значение = ОписаниеТипа.ПривестиЗначение();
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
-
- ЗаполнитьКэшЗначений(фКэшЗначений);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаПараметров
-
-&НаКлиенте
-Процедура ТаблицаПараметровЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
-
- ТекущиеДанные = Элементы.ТаблицаПараметров.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- СписокВыбора = фКэшЗначений.ДоступныеТипыЗначенияПараметра;
- __РаботаСДиалогамиКлиент.НачалоВыбораСоставного(
- ЭтотОбъект, Элемент, ТекущиеДанные, "Значение", СписокВыбора, СтандартнаяОбработка);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ТаблицаПараметровЗначениеОчистка(Элемент, СтандартнаяОбработка)
-
- Элементы.ТаблицаПараметровЗначение.ВыбиратьТип = Истина;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура ОК(Команда)
-
- ВернутьПараметрыИЗакрыть();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Процедура ЗаполнитьКэшЗначений(КэшированныеЗначения)
-
- КэшированныеЗначения = Новый Структура;
-
- МассивТипов = ТаблицаПараметров.Выгрузить().Колонки.Значение.ТипЗначения.Типы();
- СписокТипов = __ОбщегоНазначенияСервер.ПодготовитьСписокВыбораТипа(МассивТипов);
-
- КэшированныеЗначения.Вставить("ДоступныеТипыЗначенияПараметра", СписокТипов);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВернутьПараметрыИЗакрыть(ПараметрыФормы = Ложь)
-
- СоответствиеПараметров = Неопределено;
-
- Если Не ПараметрыФормы Тогда
-
- СоответствиеПараметров = Новый Соответствие;
- Для Каждого Параметр Из ТаблицаПараметров Цикл
- СоответствиеПараметров.Вставить(Параметр.Параметр, Параметр.Значение);
- КонецЦикла;
- КонецЕсли;
-
- Закрыть(СоответствиеПараметров);
-
-КонецПроцедуры
-
-#КонецОбласти
-
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
deleted file mode 100644
index 28bbc708..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
deleted file mode 100644
index ba8a5ae8..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 3c18ab3d..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,110 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры // ПриСозданииНаСервере()
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
-
-&НаКлиенте
-Процедура СписокПриАктивизацииСтроки(Элемент)
-
- ПодключитьОбработчикОжидания("ПоказатьОписаниеФункции", 0.1, Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Формирует описание функции или группы функций.
-//
-// Параметры:
-// Ссылка - СправочникСсылка.__ПользовательскиеФункции.
-//
-&НаСервере
-Процедура ПоказатьОписаниеФункцииСервер(Ссылка)
-
- Если Ссылка.ЭтоГруппа Тогда
-
- ТекстОписания = СтрШаблон(НСтр("ru='#В группе: %1';en='#In Group: %1'"), Символы.ПС);
-
- Выборка = Справочники.__ПользовательскиеФункции.Выбрать(Ссылка);
- Пока Выборка.Следующий() Цикл
-
- Если Выборка.ЭтоГруппа Тогда
- Продолжить;
- КонецЕсли;
-
- ОписаниеСКомментариями = СтрЗаменить(СокрЛП(Выборка.Описание), Символы.ПС, СтрШаблон("%1// ", Символы.ПС));
- Если СокрЛП(Выборка.Описание) = "" Тогда
- ОписаниеФункции = НСтр("ru='// <нет описания>';en='// '");
- Иначе
- ОписаниеФункции = СтрШаблон("// %1", ОписаниеСКомментариями);
- КонецЕсли;
-
- __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, ОписаниеФункции);
- СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Выборка.Ссылка);
- __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, СтруктураЗаголовка.ЗаголовокФункции + Символы.ПС);
- КонецЦикла;
-
- ПолеОписания = ТекстОписания;
- Иначе
- СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка);
-
- Элементы.ДекорацияНазваниеСПараметрами.Заголовок = СтруктураЗаголовка.НазваниеСПараметрами;
- ПолеОписания = СтрШаблон("%1%2%3", СтруктураЗаголовка.ОписаниеПараметров, Символы.ПС, СокрЛП(Ссылка.КодПодпрограммы));
- КонецЕсли;
-
- Элементы.Описание.Видимость = Не Ссылка.ЭтоГруппа;
- Элементы.ГруппаШапкаФункции.Видимость = Не Ссылка.ЭтоГруппа;
- Элементы.ГруппаПодвалФункции.Видимость = Не Ссылка.ЭтоГруппа;
-
-КонецПроцедуры
-
-// Обработчик ожидания активизации строки.
-//
-&НаКлиенте
-Процедура ПоказатьОписаниеФункции()
-
- ТекущиеДанные = Элементы.Список.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ПоказатьОписаниеФункцииСервер(ТекущиеДанные.Ссылка);
-
-КонецПроцедуры
-
-#КонецОбласти
-
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
deleted file mode 100644
index e3576267..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
deleted file mode 100644
index edd89132..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,1115 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 7123b6c2..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,1906 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОписаниеПеременных
-
-#КонецОбласти
-
-#Область ОписаниеПеременных
-
-&НаКлиенте
-Перем мПредИмя; // Хранит имя переменной до его изменения
-
-&НаКлиенте
-Перем мЗначенияПараметров; // Хранит соответствие параметров и их значений для отладки.
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриЧтенииНаСервере(ТекущийОбъект)
-
- ПрочитатьТипыПараметров(ТекущийОбъект);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
- // Заполнение параметров
- Если Параметры.Ключ.Пустая() Тогда
- Если ЗначениеЗаполнено(Параметры.ЗначенияЗаполнения) Тогда
- Если Параметры.ЗначенияЗаполнения.Свойство("ПараметрыФункции") Тогда
- СправочникОбъект = РеквизитФормыВЗначение("Объект");
- Для Каждого ТекущийПараметр Из Параметры.ЗначенияЗаполнения.ПараметрыФункции Цикл
- НовыйПараметр = СправочникОбъект.ПараметрыФункции.Добавить();
- НовыйПараметр.Наименование = ТекущийПараметр.Ключ;
- ЗаполнитьЗначенияСвойств(НовыйПараметр, ТекущийПараметр.Значение);
- КонецЦикла;
-
- ЗначениеВДанныеФормы(СправочникОбъект, Объект);
- ПрочитатьТипыПараметров(СправочникОбъект);
- Иначе
- ДобавитьПараметры();
- КонецЕсли;
- Иначе
- ДобавитьПараметры();
- КонецЕсли;
- КонецЕсли;
-
- ПолучитьНазваниеПодпрограммыСПараметрамиСервер();
-
- УправлениеЭлементамиФормы();
-
- АдресМакета = ПоместитьВоВременноеХранилище(ПолучитьОбщийМакет("__BSLEditor"), Новый УникальныйИдентификатор());
-
- КоллекцияОбщихМодулей = ПолучитьКоллекциюОбщихМодулей();
- АдресОбщихМодулей = СохранитьОбщиеМодулиВХранилище(КоллекцияОбщихМодулей);
- ЗаполнитьИменаОбщихМодулей(КоллекцияОбщихМодулей);
-
- БыстрыеПодсказки = Истина;
- ВидимостьКартыКода = Истина;
- ПодсвечиватьЗапросы = Истина;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПриОткрытии(Отказ)
-
- мЗначенияПараметров = Новый Соответствие;
-
- Оповещение = Новый ОписаниеОповещения("ПослеПодключенияРасширенияДляРаботыСФайлами", ЭтотОбъект);
- НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
- ОпределитьРазделительПути();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
-
- ОбновитьИсполняемыйКод();
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
-
- Для Каждого ТекущийПараметр Из Объект.ПараметрыФункции Цикл
-
- СтруктураОтбора = Новый Структура;
- СтруктураОтбора.Вставить("Наименование", ТекущийПараметр.Наименование);
-
- ДанныеПоиска = ТекущийОбъект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора);
- Если ДанныеПоиска.Количество() Тогда
- ДанныеПоиска.Получить(0).ТипПараметра = Новый ХранилищеЗначения(ТекущийПараметр.фТипПараметра);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
-
- ПрочитатьТипыПараметров(ТекущийОбъект);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовШапкиФормы
-
-&НаКлиенте
-Процедура НаименованиеПриИзменении(Элемент)
-
- ПолучитьНазваниеПодпрограммыСПараметрамиСервер();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура КонтекстПриИзменении(Элемент)
-
- КонтекстПриИзмененииСервер();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыПараметрыФункции
-
-&НаКлиенте
-Процедура ПараметрыФункцииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
-
- ТекущиеДанные = Элементы.ПараметрыФункции.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Если НоваяСтрока Тогда
- ТекущиеДанные.Наименование = СтрШаблон("П%1", Строка(ТекущиеДанные.НомерСтроки));
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПараметрыФункцииПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
-
- ПолучитьНазваниеПодпрограммыСПараметрамиСервер();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПараметрыФункцииПослеУдаления(Элемент)
-
- ПолучитьНазваниеПодпрограммыСПараметрамиСервер();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыПеременные
-
-&НаКлиенте
-Процедура ПеременныеПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
-
- ТекущиеДанные = Элементы.Переменные.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- мПредИмя = ТекущиеДанные.Имя;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПеременныеИмяПриИзменении(Элемент)
-
- ТекущиеДанные = Элементы.Переменные.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Если Не ПустаяСтрока(мПредИмя) И Не ПустаяСтрока(ТекущиеДанные.Имя) Тогда
-
- ПоказатьВопрос(Новый ОписаниеОповещения("ПеременныеИмяПриИзмененииЗавершение", ЭтотОбъект, ТекущиеДанные),
- СтрШаблон(НСтр("ru='Выполнить замену в коде имени ""%1"" на имя ""%2""?';
- |en='Change name code ""%1"" for ""%2""?'"), мПредИмя, ТекущиеДанные.Имя),
- РежимДиалогаВопрос.ДаНет, 15, КодВозвратаДиалога.Да);
- Иначе
- мПредИмя = ТекущиеДанные.Имя;
- КонецЕсли;
-
-КонецПроцедуры
-
-// Обработчик оповещения "ПеременныеИмяПриИзмененииЗавершение".
-//
-// Параметры:
-// Ответ - КодВозвратаДиалога.
-// ТекущиеДанные - Текущие данные таблицы "Переменные".
-//
-&НаКлиенте
-Процедура ПеременныеИмяПриИзмененииЗавершение(Ответ, ТекущиеДанные) Экспорт
-
- Если Ответ = КодВозвратаДиалога.Да Тогда
- Объект.КодПодпрограммы = СтрЗаменить(Объект.КодПодпрограммы,
- СтрШаблон(".%1", мПредИмя), СтрШаблон(".%1", ТекущиеДанные.Имя));
- КонецЕсли;
-
- мПредИмя = ТекущиеДанные.Имя;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура ВвестиУсловноеВыражение(Команда)
-
- ОткрытьКонструкторУсловногоВыражения();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВыбратьПоле(Команда)
-
- ОткрытьФормуВыбораПоля();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ДобавитьОписание(Команда)
-
- Обработчик = Новый ОписаниеОповещения("ДобавитьОписаниеЗавершение", ЭтотОбъект);
- ПоказатьВводСтроки(Обработчик, Объект.Описание, НСтр("ru='Описание подпрограммы';en='description of routines'"),, Истина);
-
-КонецПроцедуры
-
-//Обработчик оповещения "ДобавитьОписаниеЗавершение".
-//
-// Параметры:
-// Текст - Строка.
-// ПараметрыИсточника - Структура.
-//
-&НаКлиенте
-Процедура ДобавитьОписаниеЗавершение(Текст, ПараметрыИсточника) Экспорт
-
- Если Текст <> Неопределено Тогда
- Объект.Описание = Текст;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВставитьЗапрос(Команда)
-
- ВызватьКонструкторЗапроса(View().getQuery());
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗадатьПараметры(Команда)
-
- СтруктураТаблиц = Новый Структура;
- УпаковатьТаблицу("ПараметрыФункции",СтруктураТаблиц);
-
- ПараметрыФормы = Новый Структура;
- ПараметрыФормы.Вставить("ПараметрыФункции", СтруктураТаблиц.ПараметрыФункции);
- ПараметрыФормы.Вставить("ЗначенияПараметров", мЗначенияПараметров);
-
- ОткрытьФорму("Справочник.__ПользовательскиеФункции.Форма.ФормаПараметров", ПараметрыФормы, ЭтотОбъект,,,,
- Новый ОписаниеОповещения("ЗадатьПараметрыЗавершение", ЭтотОбъект), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
-
-КонецПроцедуры
-
-// Обработчик оповещения "ЗадатьПараметрыЗавершение".
-//
-// Параметры:
-// НаборПараметров - Структура.
-// Параметры - Структура.
-//
-&НаКлиенте
-Процедура ЗадатьПараметрыЗавершение(НаборПараметров, Параметры) Экспорт
-
- Если Не НаборПараметров = Неопределено Тогда
- мЗначенияПараметров = НаборПараметров;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВыполнитьКод(Команда)
-
- ОбновитьИсполняемыйКод();
- ВыполнитьКодСервер(мЗначенияПараметров);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура КартаКода(Команда)
-
- ВидимостьКартыКода = Не ВидимостьКартыКода;
- View().minimap(ВидимостьКартыКода);
- УправлениеВидимостьюКартыКода();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура СтрокаСостояния(Команда)
-
- ВидимостьСтрокиСостояния = Не ВидимостьСтрокиСостояния;
-
- Если ВидимостьСтрокиСостояния Тогда
- View().showStatusBar();
- Иначе
- View().hideStatusBar();
- КонецЕсли;
-
- УправлениеВидимостьюСтрокиСостояния();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПодсвечиватьЗапросы(Команда)
-
- ПодсвечиватьЗапросы = Не ПодсвечиватьЗапросы;
- ИмяТемы = ПолучитьИмяТемы() + ?(ПодсвечиватьЗапросы, "-query", "");
- ПереключитьТему(ИмяТемы);
-
- УправлениеВидимостьюПодсветкиЗапросов();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Процедура УправлениеЭлементамиФормы()
-
- ТолькоПросмотр = Объект.Предопределенный;
-
- Элементы.ГруппаКоманднаяПанель.Доступность = Не Объект.Предопределенный;
-
- флКонтекстЗагрузкаЭксель = ?(Объект.Контекст = Перечисления.__КонтекстыВыполненияПользовательскихФункций.ЗагрузкаЭксель,
- Истина, Ложь);
-
- // При загрузке из Эксель контекст зависит от того в каком правиле пытаемся выполнить загрузку,
- // в общем случае проверка невозможна.
- Элементы.ВыполнитьКод.Доступность = Не флКонтекстЗагрузкаЭксель;
- Элементы.ЗадатьПараметры.Доступность = Не флКонтекстЗагрузкаЭксель;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьПараметры()
-
- Справочники.__ПользовательскиеФункции.ЗаполнитьПараметры(Объект);
- ПолучитьНазваниеПодпрограммыСПараметрамиСервер();
-
-КонецПроцедуры // ДобавитьПараметры()
-
-&НаСервере
-Процедура ПолучитьНазваниеПодпрограммыСПараметрамиСервер()
-
- СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Объект);
- НазваниеПодпрограммы = СтруктураЗаголовка.НазваниеСПараметрами;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ПрочитатьТипыПараметров(СпрОбъект)
-
- Для Каждого ТекущийПараметр Из СпрОбъект.ПараметрыФункции Цикл
-
- ОписаниеТипаПараметра = ТекущийПараметр.ТипПараметра.Получить();
- Если ОписаниеТипаПараметра = Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- СтруктураОтбора = Новый Структура;
- СтруктураОтбора.Вставить("Наименование", ТекущийПараметр.Наименование);
-
- ДанныеПоиска = Объект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора);
- Если Не ДанныеПоиска.Количество() = 0 Тогда
- ДанныеПоиска.Получить(0).фТипПараметра = ОписаниеТипаПараметра;
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура УпаковатьТаблицу(ИмяТаблицы, СтрТаблиц)
-
- МассивРеквизитов = Объект[ИмяТаблицы].Выгрузить().Колонки;
- ИменаРеквизитов = Новый Структура;
-
- Для каждого Реквизит Из МассивРеквизитов Цикл
- ИменаРеквизитов.Вставить(Реквизит.Имя,Реквизит.ТипЗначения);
- КонецЦикла;
-
- СтрТаблиц.Вставить(ИмяТаблицы, __ОбщегоНазначенияКлиентСервер.УпаковатьДанныеФормыКоллекция(
- Объект[ИмяТаблицы], ИменаРеквизитов));
- СтрТаблиц.Вставить(ИмяТаблицы + "_Колонки", ИменаРеквизитов);
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ВыполнитьКодСервер(ЗначенияПараметров)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- СтрПеременные = Новый Структура;
-
- Для Каждого СтрокаТаблицы Из Объект.Переменные Цикл
- Если Не ПустаяСтрока(СтрокаТаблицы.Имя) И Не СтрПеременные.Свойство(СтрокаТаблицы.Имя) Тогда
- СтрПеременные.Вставить(СтрокаТаблицы.Имя, СтрокаТаблицы.Значение);
- КонецЕсли;
- КонецЦикла;
-
- ТабПараметров = Новый ТаблицаЗначений;
- ТабПараметров.Колонки.Добавить("Номер");
- ТабПараметров.Колонки.Добавить("Параметр");
- ТабПараметров.Колонки.Добавить("Значение");
-
- Ном = 1;
- Для Каждого КлючЗначение Из ЗначенияПараметров Цикл
- НоваяСтрока = ТабПараметров.Добавить();
- НоваяСтрока.Номер = Ном;
- НоваяСтрока.Параметр = КлючЗначение.Ключ;
- НоваяСтрока.Значение = КлючЗначение.Значение;
- Ном = Ном + 1;
- КонецЦикла;
-
- // Чтобы текст функции не изменился сформируем его копию.
- ТекстФункции = Строка(Объект.КодПодпрограммы);
-
- Попытка
-
- Результат = __ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(ТекстФункции,
- ТабПараметров, СтрПеременные);
- ОбщегоНазначения.СообщитьПользователю(Строка(Результат));
- Исключение
-
- ТекстСообщения = СтрШаблон(НСтр("ru = 'Ошибка при выполнении функции по причине: %1';
- |en = 'Error when executing the function due to: %1'"),
- КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
- ВызватьИсключение ТекстСообщения;
- КонецПопытки;
-
-КонецПроцедуры
-
-// Выполняет действия при изменении контекста выполнения функции.
-&НаСервере
-Процедура КонтекстПриИзмененииСервер()
-
- УправлениеЭлементамиФормы();
- ДобавитьПараметры();
-
-КонецПроцедуры
-
-// Открывает помошник для выбора поля.
-//
-&НаКлиенте
-Процедура ОткрытьФормуВыбораПоля()
-
- ПараметрыФормы = Новый Структура;
-
- МассивИменПеременных = Новый Массив;
-
- Для Каждого ТекСтрока Из Объект.Переменные Цикл
- МассивИменПеременных.Добавить(ТекСтрока.Имя);
- КонецЦикла;
-
- ПараметрыФормы.Вставить("Переменные",МассивИменПеременных);
-
- ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля", ПараметрыФормы, ЭтотОбъект,,,,
- Новый ОписаниеОповещения("ОткрытьФормуВыбораПоляЗавершение", ЭтотОбъект),
- РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
-
-КонецПроцедуры // ОткрытьФормуВыбораПоля()
-
-// Оработчик оповещения "ОткрытьФормуВыбораПоляЗавершение".
-//
-// Параметры:
-// РезСтруктура - Структура.
-// Параметры - Структура.
-//
-&НаКлиенте
-Процедура ОткрытьФормуВыбораПоляЗавершение(Результат, Параметры) Экспорт
-
- Если ТипЗнч(Результат) = Тип("Структура") Тогда
- Объект.КодПодпрограммы = СтрШаблон("%1 %2", Объект.КодПодпрограммы, Результат.Имя);
- УстановитьИсполняемыйКод();
- Модифицированность = Истина;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОткрытьКонструкторУсловногоВыражения()
-
- ПараметрыФормы = Новый Структура;
- СписокПеременных = Новый СписокЗначений;
-
- Для Каждого Элемент Из Объект.Переменные Цикл
- СписокПеременных.Добавить(Элемент.Имя);
- КонецЦикла;
-
- ПараметрыФормы.Вставить("Переменные", СписокПеременных);
-
- ОткрытьФорму("Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор", ПараметрыФормы, ЭтотОбъект,,,,
- Новый ОписаниеОповещения("ОткрытьКонструкторУсловногоВыраженияЗавершение", ЭтотОбъект));
-
-КонецПроцедуры
-
-// Процедура обработчик оповещения "ОткрытьКонструкторУсловногоВыраженияЗавершение".
-//
-// Параметры:
-// РезВыражение - Строка.
-// Параметры - Структура.
-//
-&НаКлиенте
-Процедура ОткрытьКонструкторУсловногоВыраженияЗавершение(Результат, Параметры) Экспорт
-
- Если ТипЗнч(Результат) = Тип("Строка") Тогда
- Объект.КодПодпрограммы = СтрШаблон("%1 %2", Объект.КодПодпрограммы, Результат);
- УстановитьИсполняемыйКод();
- КонецЕсли;
-
-КонецПроцедуры
-
-#Область ОбработчикиСобытийПоляРедактора
-
-&НаКлиенте
-Процедура ОбновитьИсполняемыйКод()
-
- Объект.КодПодпрограммы = ПолучитьТекст();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура УстановитьИсполняемыйКод()
-
- ОчиститьТекст();
- УстановитьТекст(Объект.КодПодпрограммы, Неопределено, Ложь);
- View().setOriginalText(Объект.КодПодпрограммы);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ConsoleOnReady(Элемент)
-
- Если ИсходникиЗагружены Тогда
-
- ДокументЗагружен = Истина;
-
- #Если ВебКлиент Тогда
- Если ВебДокументДоступен() Тогда
- ИнициализацияРедактора();
- АктивироватьДополнительныеФункции();
- Иначе
- ПоказатьПредупреждение(, "К сожалению, в веб-клиенте недоступны практически все функции.
- |Вы можете посмотреть только работу автодополнения и подсказок параметров при наборе кода.");
- КонецЕсли;
- #Иначе
- ИнициализацияРедактора();
- АктивироватьДополнительныеФункции();
- #КонецЕсли
-
- УстановитьИсполняемыйКод();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОбработатьСобытиеРедактора(Событие)
-
- Если Событие <> Неопределено Тогда
-
- Если Событие.event = "EVENT_QUERY_CONSTRUCT" Тогда
- ВызватьКонструкторЗапроса(Событие.params);
- КонецЕсли;
-
- Если Событие.event = "EVENT_FORMAT_CONSTRUCT" Тогда
- ВызватьКонструкторФорматнойСтроки(Событие.params);
- КонецЕсли;
-
- Если Событие.event = "EVENT_GET_METADATA" Тогда
- ОбработкаСобытияПолученияМетаданных(Событие);
- КонецЕсли;
-
- Если Событие.event = "EVENT_CONTENT_CHANGED" Тогда
- Модифицированность = Истина;
- КонецЕсли;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ConsoleOnClick(Элемент, ДанныеСобытия, СтандартнаяОбработка)
-
- Если Не ТолькоПросмотр Тогда
- ОбработатьСобытиеРедактора(ДанныеСобытия.Event.eventData1C);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ИнициализацияРедактора
-
-&НаКлиенте
-Функция ИндексныйФайл()
-
- Возврат КаталогИсходников + Формат(ТекущаяУниверсальнаяДатаВМиллисекундах(), "ЧГ=0") + ".html";
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПослеКопированияИндексногоФайла(СкопированныйФайл, ДопПараметры) Экспорт
-
- HTML = СкопированныйФайл;
- ИсходникиЗагружены = Истина;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеЗаписиФайлаМакета(ДопПараметры) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Попытка
- Файл = Новый ЧтениеZipФайла(КаталогИсходников + "bsl_console.zip");
- Файл.ИзвлечьВсе(КаталогИсходников);
- Файл = Новый ЗаписьТекста(КаталогИсходников + ВерсияОбработки + ".ver");
- Файл.ЗаписатьСтроку(ОбщегоНазначенияКлиент.ДатаСеанса());
- Файл.Закрыть();
- ТочкаВхода = КаталогИсходников + "index.html";
- ИндексныйФайл = ИндексныйФайл();
- НачатьКопированиеФайла(
- Новый ОписаниеОповещения("ПослеКопированияИндексногоФайла", ЭтотОбъект), ТочкаВхода, ИндексныйФайл);
- Исключение
- ВывестиОшибку("Не удалось извлечь исходники" + Символы.ПС + ОписаниеОшибки(), Истина);
- КонецПопытки;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеУдаленияВременныхФайлов(ДопПараметры) Экспорт
-
- ИмяФайла = КаталогИсходников + "bsl_console.zip";
- ДанныеМакета = ПолучитьИзВременногоХранилища(АдресМакета);
- ДанныеМакета.НачатьЗапись(Новый ОписаниеОповещения("ПослеЗаписиФайлаМакета", ЭтотОбъект), ИмяФайла);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ИзвлечьИсходникиНаКлиенте()
-
- НачатьУдалениеФайлов(Новый ОписаниеОповещения("ПослеУдаленияВременныхФайлов", ЭтотОбъект), КаталогИсходников, "*.*");
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеПроверкиСуществованияИндексногоФайла(Существует, ДопПараметры) Экспорт
-
- Если Существует Тогда
- ИндексныйФайл = ИндексныйФайл();
- ТочкаВхода = КаталогИсходников + "index.html";
- НачатьКопированиеФайла(
- Новый ОписаниеОповещения("ПослеКопированияИндексногоФайла", ЭтотОбъект), ТочкаВхода, ИндексныйФайл);
- Иначе
- ИзвлечьИсходникиНаКлиенте();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеПроверкиСуществованияФайлаВерсии(Существует, ДопПараметры) Экспорт
-
- Если Существует Тогда
- ФайлНаДиске = Новый Файл(КаталогИсходников + "index.html");
- ФайлНаДиске.НачатьПроверкуСуществования(
- Новый ОписаниеОповещения("ПослеПроверкиСуществованияИндексногоФайла", ЭтотОбъект));
- Иначе
- ИзвлечьИсходникиНаКлиенте();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеПроверкиСуществованияКаталога(Существует, ДопПараметры) Экспорт
-
- Если Существует Тогда
- ФайлНаДиске = Новый Файл(КаталогИсходников + ВерсияОбработки + ".ver");
- ФайлНаДиске.НачатьПроверкуСуществования(
- Новый ОписаниеОповещения("ПослеПроверкиСуществованияФайлаВерсии", ЭтотОбъект));
- Иначе
- ВывестиОшибку("Не удалось создать каталог для исходников", Истина);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеСозданияКаталога(ИмяКаталога, ДопПараметры) Экспорт
-
- ФайлНаДиске = Новый Файл(КаталогИсходников);
- ФайлНаДиске.НачатьПроверкуСуществования(
- Новый ОписаниеОповещения("ПослеПроверкиСуществованияКаталога", ЭтотОбъект));
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПриПолученииКаталогаВременныхФайлов(ИмяКаталога, ДопПараметры) Экспорт
-
- КаталогИсходников = ИмяКаталога + "bsl_console\";
- НачатьСозданиеКаталога(
- Новый ОписаниеОповещения("ПослеСозданияКаталога", ЭтотОбъект), КаталогИсходников);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ИзвлечьИсходники()
-
- #Если ВебКлиент Тогда
- HTML = "https://salexdv.github.io/bsl_console/src/index.html";
- ИсходникиЗагружены = Истина;
- #Иначе
- НачатьПолучениеКаталогаВременныхФайлов(Новый ОписаниеОповещения("ПриПолученииКаталогаВременныхФайлов", ЭтотОбъект));
- #КонецЕсли
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеПодключенияРасширенияДляРаботыСФайлами(Подключено, ДопПараметры) Экспорт
-
- Если Подключено Тогда
- ИзвлечьИсходники();
- Иначе
-
- #Если ВебКлиент Тогда
- Если ДопПараметры = Неопределено Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеУстановкиРасширенияДляРаботыСФайлами", ЭтотОбъект);
- НачатьУстановкуРасширенияРаботыСФайлами(Оповещение);
- Иначе
- ПоказатьПредупреждение(, "К сожалению работа в веб-клиенте невозможна!");
- КонецЕсли;
- #КонецЕсли
-
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПослеУстановкиРасширенияДляРаботыСФайлами(ДопПараметры) Экспорт
-
- НачатьПодключениеРасширенияРаботыСФайлами(
- Новый ОписаниеОповещения("ПослеПодключенияРасширенияДляРаботыСФайлами", ЭтотОбъект, Истина));
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура АктивироватьДополнительныеФункции()
-
- Элементы.ПодсвечиватьЗапросы.Доступность = Истина;
- Элементы.КартаКода.Доступность = Истина;
- Элементы.СтрокаСостояния.Доступность = Истина;
-
- УправлениеВидимостьюКартыКода();
- УправлениеВидимостьюСтрокиСостояния();
- УправлениеВидимостьюПодсветкиЗапросов();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОбнулитьМетаданные() Экспорт
-
- View().clearMetadata();
- ОбновитьСписокОбщихМодулей();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ИнициализацияРедактора()
-
- Инфо = Новый СистемнаяИнформация();
-
- View().init(Инфо.ВерсияПриложения);
- View().setOption("autoResizeEditorLayout", Истина);
- View().setOption("renderQueryDelimiters", Истина);
- View().hideScrollX();
- View().hideScrollY();
- View().enableModificationEvent(Истина);
-
- ПодключитьОбработчикОжидания("ОбнулитьМетаданные", 1, Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ПрограммныйИнтерфейсРедактора
-
-&НаКлиенте
-Функция View()
-
- Возврат Элементы.ПолеHTML.Документ.defaultView;
-
-КонецФункции
-
-&НаКлиенте
-Процедура УстановитьТекст(Текст, Позиция, УчитыватьОтступПервойСтроки)
-
- View().setText(Текст, Позиция, УчитыватьОтступПервойСтроки);
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПолучитьТекст()
-
- Возврат View().getText();
-
-КонецФункции
-
-&НаКлиенте
-Функция ОчиститьТекст()
-
- Возврат View().eraseText();
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ЗагрузкаОбщихМодулейКлиент
-
-&НаСервере
-Функция СохранитьОбщиеМодулиВХранилище(КоллекцияОбщихМодулей)
-
- Файл = Новый ЗаписьJSON();
- Файл.УстановитьСтроку();
- Попытка
- ЗаписатьJSON(Файл, КоллекцияОбщихМодулей.Общие);
- Исключение
- ВызватьИсключение("Не удалось сохранить коллекцию метаданных:" + Символы.ПС + ОписаниеОшибки());
- КонецПопытки;
-
- ЗначениеКоллекции = Файл.Закрыть();
-
- Возврат ПоместитьВоВременноеХранилище(ЗначениеКоллекции, Новый УникальныйИдентификатор());
-
-КонецФункции
-
-&НаСервере
-Процедура ЗаполнитьИменаОбщихМодулей(КоллекцияОбщихМодулей)
-
- // Соответствие между именем общего неглобального модуля в нижнем регистре
- // и именем модуля, как оно задано в конфигураторе для правильной загрузки
- // текстов общих модулей
- ОбщиеМодули = Новый Соответствие();
-
- Для Каждого Обход Из КоллекцияОбщихМодулей.Общие Цикл
- ОбщиеМодули.Вставить(НРег(Обход.Ключ), Обход.Ключ);
- КонецЦикла;
-
- ИменаОбщихМодулей = Новый ФиксированноеСоответствие(ОбщиеМодули);
-
- // Именя глобальных модулей для загрузки текстов
- Модули = Новый Массив();
-
- Для Каждого Обход Из КоллекцияОбщихМодулей.Глобальные Цикл
- Модули.Добавить(Обход.Ключ);
- КонецЦикла;
-
- ГлобальныйМодули = Новый ФиксированныйМассив(Модули);
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПолучитьМодульИзИсходников(ПолноеИмяФайла)
-
- СмещениеИмениВПути = 3;
-
- Путь = СтрРазделить(ПолноеИмяФайла, РазделительПути, Ложь);
- ИмяМодуля = Путь[Путь.Количество() - СмещениеИмениВПути];
-
- Текст = Новый ТекстовыйДокумент();
- Текст.Прочитать(ПолноеИмяФайла);
- ТекстМодуля = Текст.ПолучитьТекст();
-
- Возврат Новый Структура("Имя, Текст", ИмяМодуля, ТекстМодуля);
-
-КонецФункции
-
-&НаКлиенте
-Функция НормализоватьПуть(Путь)
-
- Путь = СокрЛП(Путь);
-
- Если Прав(Путь, 1) <> РазделительПути Тогда
- Путь = Путь + РазделительПути;
- КонецЕсли;
-
- Возврат Путь;
-
-КонецФункции
-
-&НаКлиенте
-Функция ПолучитьКаталогИсходногоКода()
-
- КаталогИсходногоКода = Объект.КаталогИсходногоКодаКонфигурации;
- Если ЗначениеЗаполнено(КаталогИсходногоКода) Тогда
- КаталогИсходногоКода = НормализоватьПуть(КаталогИсходногоКода);
- КонецЕсли;
-
- Возврат КаталогИсходногоКода;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ВопросЗагрузкиОбщихМодулейЗавершение(Ответ, ДопПараметры) Экспорт
-
- Если Ответ = КодВозвратаДиалога.Да Тогда
-
- Состояние("Загрузка общих модулей...");
- Файлы = НайтиФайлы(ДопПараметры.КаталогМодулей, "Ext" + РазделительПути + "*.bsl", Истина);
-
- Для Каждого Файл Из Файлы Цикл
- ОбщийМодуль = ПолучитьМодульИзИсходников(Файл.ПолноеИмя);
- View().parseCommonModule(ОбщийМодуль.Имя, ОбщийМодуль.Текст);
- КонецЦикла;
-
- Состояние("Общие модули загружены");
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Глобальный)
-
- ЗагруженоФункций = 0;
-
- ИмяВКонфигураторе = ИменаОбщихМодулей.Получить(НРег(ИмяМодуля));
-
- Если ИмяВКонфигураторе = Неопределено Тогда
- ИмяВКонфигураторе = ИмяМодуля;
- КонецЕсли;
-
- ФайлМодуля = СтрШаблон("CommonModules%1%2%1Ext%1Module.bsl", РазделительПути, ИмяВКонфигураторе);
- ФайлМодуля = КаталогИсходногоКода + ФайлМодуля;
-
- ФайлНаДиске = Новый Файл(ФайлМодуля);
-
- Если ФайлНаДиске.Существует() Тогда
- ОбщийМодуль = ПолучитьМодульИзИсходников(ФайлНаДиске.ПолноеИмя);
- ЗагруженоФункций = View().parseCommonModule(ОбщийМодуль.Имя, ОбщийМодуль.Текст, Глобальный);
- КонецЕсли;
-
- Возврат ЗагруженоФункций;
-
-КонецФункции
-
-&НаКлиенте
-Функция ЗагрузитьМодульМенеджераИлиОбъектаПоИмени(КаталогИсходногоКода, СтруктураВыгрузки)
-
- ЗагруженоФункций = 0;
- ТипМодуля = СтруктураВыгрузки.ТипМодуля;
-
- ИмяТипа = ?(ТипМодуля = "manager", "ManagerModule", "ObjectModule");
-
- ФайлМодуля = СтрШаблон("%1%2Ext%2%3.bsl", СтруктураВыгрузки.ИмяКаталога, РазделительПути, ИмяТипа);
- ФайлМодуля = КаталогИсходногоКода + ФайлМодуля;
-
- ФайлНаДиске = Новый Файл(ФайлМодуля);
-
- Если ФайлНаДиске.Существует() Тогда
- Модуль = ПолучитьМодульИзИсходников(ФайлНаДиске.ПолноеИмя);
- ИмяКоллекции = ПолучитьИмяКоллекцииМетаданныхПоТипу(СтруктураВыгрузки.ТипМетаданных);
- АдресЗагрузки = СтрШаблон("%1.items.%2.%3", ИмяКоллекции, СтруктураВыгрузки.ИмяОбъектаМетаданных, ТипМодуля);
- ЗагруженоФункций = View().parseMetadataModule(Модуль.Текст, АдресЗагрузки);
- КонецЕсли;
-
- Возврат ЗагруженоФункций;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ЗагрузитьГлобальныеМодули()
-
- КаталогИсходногоКода = ПолучитьКаталогИсходногоКода();
- ЕстьГлобальныеМодули = (ГлобальныйМодули <> Неопределено И 0 < ГлобальныйМодули.Количество());
-
- Если ЗначениеЗаполнено(КаталогИсходногоКода) И ЕстьГлобальныеМодули Тогда
-
- КаталогМодулей = КаталогИсходногоКода + "CommonModules";
-
- КаталогНаДиске = Новый Файл(КаталогМодулей);
- Если КаталогНаДиске.Существует() Тогда
-
- Индекс = 0;
-
- Пока Индекс < ГлобальныйМодули.Количество() Цикл
- ИмяМодуля = ГлобальныйМодули.Получить(Индекс);
- ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Истина);
- Индекс = Индекс + 1;
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗагрузитьСтруктуруОбщегоМодуляПоЗапросу(ЧастиЗапроса)
-
- КаталогИсходногоКода = ПолучитьКаталогИсходногоКода();
- КоличествоЧастейЗапроса = 2;
-
- Если ЗначениеЗаполнено(КаталогИсходногоКода) И ЧастиЗапроса.Количество() = КоличествоЧастейЗапроса Тогда
-
- ИмяМодуля = ЧастиЗапроса[1];
-
- ЗагруженоФункций = ЗагрузитьОбщийМодульПоИмени(КаталогИсходногоКода, ИмяМодуля, Ложь);
- Если 0 < ЗагруженоФункций Тогда
- View().triggerSuggestions();
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ДополнитьСтруктуруВыгрузкиИсходниковМетаданных(СтруктураВыгрузки, РазделительПути)
-
- СтруктураВыгрузки.Вставить("ИмяКаталога", Неопределено);
- ЧастейМетаданных = 2;
-
- Попытка
- ПолноеИмя = Метаданные[СтруктураВыгрузки.ТипМетаданных][СтруктураВыгрузки.ОбъектМетаданных].ПолноеИмя();
- Исключение
- ПолноеИмя = "";
- КонецПопытки;
-
- Имена = СтрРазделить(ПолноеИмя, ".", Ложь);
- Если Имена.Количество() = ЧастейМетаданных Тогда
-
- КаталогТипа = ПолучитьИмяКаталогаВыгрузкиМетаданныхПоТипу(СтруктураВыгрузки.ТипМетаданных);
- Если ЗначениеЗаполнено(КаталогТипа) Тогда
- ИндексОбъекта = 1;
- СтруктураВыгрузки.Вставить("ИмяОбъектаМетаданных", Имена[ИндексОбъекта]);
- СтруктураВыгрузки.ИмяКаталога = СтрШаблон("%1%2%3", КаталогТипа, РазделительПути, Имена[ИндексОбъекта]);
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗагрузитьСтруктуруМодуляМенеджераИлиОбъектаПоЗапросу(ЧастиЗапроса)
-
- КаталогИсходногоКода = ПолучитьКаталогИсходногоКода();
- КоличествоЧастейЗапроса = 4;
-
- Если ЗначениеЗаполнено(КаталогИсходногоКода) И ЧастиЗапроса.Количество() = КоличествоЧастейЗапроса Тогда
-
- СтруктураВыгрузки = Новый Структура();
- СтруктураВыгрузки.Вставить("ТипМодуля", ЧастиЗапроса[1]);
- СтруктураВыгрузки.Вставить("ТипМетаданных", ЧастиЗапроса[2]);
- СтруктураВыгрузки.Вставить("ОбъектМетаданных", ЧастиЗапроса[3]);
-
- ДополнитьСтруктуруВыгрузкиИсходниковМетаданных(СтруктураВыгрузки, РазделительПути);
-
- Если ЗначениеЗаполнено(СтруктураВыгрузки.ИмяКаталога) Тогда
-
- ЗагруженоФункций = ЗагрузитьМодульМенеджераИлиОбъектаПоИмени(КаталогИсходногоКода, СтруктураВыгрузки);
-
- Если 0 < ЗагруженоФункций Тогда
- View().triggerSuggestions();
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОбновитьСписокОбщихМодулей()
-
- КоллекцияМетаданных = ПолучитьИзВременногоХранилища(АдресОбщихМодулей);
-
- Если КоллекцияМетаданных <> Неопределено Тогда
- Результат = View().updateMetadata(КоллекцияМетаданных, "commonModules.items");
- ЗагрузитьГлобальныеМодули();
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ДинамическоеОбновлениеМетаданных
-
-&НаСервереБезКонтекста
-Функция ОписатьОбщиеМодули(Коллекция, ФильтрГлобальный = Ложь)
-
- ОписаниеКоллекции = Новый Структура();
-
- Для НомерОбъекта = 0 По Коллекция.Количество() - 1 Цикл
- ОбъектМетаданных = Коллекция.Получить(НомерОбъекта);
- Если ОбъектМетаданных.Глобальный = ФильтрГлобальный Тогда
- ОписаниеКоллекции.Вставить(ОбъектМетаданных.Имя, Новый Структура());
- КонецЕсли;
- КонецЦикла;
-
- Возврат ОписаниеКоллекции;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьКоллекциюОбщихМодулей()
-
- КоллекцияОбщихМодулей = Новый Структура();
- КоллекцияОбщихМодулей.Вставить("Общие", ОписатьОбщиеМодули(Метаданные.ОбщиеМодули, Ложь));
- КоллекцияОбщихМодулей.Вставить("Глобальные", ОписатьОбщиеМодули(Метаданные.ОбщиеМодули, Истина));
-
- Возврат КоллекцияОбщихМодулей;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ИмяМетаданных(ПолноеИмя)
-
- Возврат СтрПолучитьСтроку(СтрЗаменить(ПолноеИмя, ".", Символы.ПС), 1);
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ОбъектМетаданныхИмеетСтандартныеРеквизиты(ПолноеИмя)
-
- Объекты = Новый Массив();
- Объекты.Добавить("Справочник");
- Объекты.Добавить("Документ");
- Объекты.Добавить("БизнесПроцесс");
- Объекты.Добавить("Задача");
-
- Возврат Объекты.Найти(ИмяМетаданных(ПолноеИмя)) <> Неопределено;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ОбъектМетаданныхИмеетИзмерения(ПолноеИмя)
-
- Объекты = Новый Массив();
- Объекты.Добавить("РегистрСведений");
- Объекты.Добавить("РегистрНакопления");
- Объекты.Добавить("РегистрБухгалтерии");
- Объекты.Добавить("РегистрРасчета");
-
- Возврат Объекты.Найти(ИмяМетаданных(ПолноеИмя)) <> Неопределено;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ОбъектМетаданныхИмеетТЧ(ПолноеИмя)
-
- Объекты = Новый Массив();
- Объекты.Добавить("Справочник");
- Объекты.Добавить("Документ");
- Объекты.Добавить("Отчет");
- Объекты.Добавить("Обработка");
- Объекты.Добавить("БизнесПроцесс");
- Объекты.Добавить("Задача");
-
- Возврат Объекты.Найти(ИмяМетаданных(ПолноеИмя)) <> Неопределено;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ОбъектМетаданныхИмеетПредопределенные(ПолноеИмя)
-
- Объекты = Новый Массив();
- Объекты.Добавить("Справочник");
- Объекты.Добавить("ПланСчетов");
- Объекты.Добавить("ПланВидовХарактеристик");
- Объекты.Добавить("ПланВидовРасчета");
-
- Возврат Объекты.Найти(ИмяМетаданных(ПолноеИмя)) <> Неопределено;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьСписокОбъектовМетаданныхИзКоллекции(Коллекция)
-
- ОписаниеКоллекции = Новый Структура();
-
- Для НомерОбъекта = 0 По Коллекция.Количество() - 1 Цикл
- ОбъектМетаданных = Коллекция.Получить(НомерОбъекта);
- ОписаниеКоллекции.Вставить(ОбъектМетаданных.Имя, Новый Структура());
- КонецЦикла;
-
- Возврат ОписаниеКоллекции;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьИмяКоллекцииМетаданныхПоТипу(ТипОбъектов)
-
- СоответствиеИмен = Новый Соответствие();
- СоответствиеИмен.Вставить("справочники" , "catalogs");
- СоответствиеИмен.Вставить("catalogs" , "catalogs");
- СоответствиеИмен.Вставить("документы" , "documents");
- СоответствиеИмен.Вставить("documents" , "documents");
- СоответствиеИмен.Вставить("регистрысведений" , "infoRegs");
- СоответствиеИмен.Вставить("informationregisters" , "infoRegs");
- СоответствиеИмен.Вставить("регистрынакопления" , "accumRegs");
- СоответствиеИмен.Вставить("accumulationregisters" , "accumRegs");
- СоответствиеИмен.Вставить("регистрыбухгалтерии" , "accountRegs");
- СоответствиеИмен.Вставить("accountingregisters" , "accountRegs");
- СоответствиеИмен.Вставить("регистрырасчета" , "calcRegs");
- СоответствиеИмен.Вставить("calculationregisters" , "calcRegs");
- СоответствиеИмен.Вставить("обработки" , "dataProc");
- СоответствиеИмен.Вставить("dataprocessors" , "dataProc");
- СоответствиеИмен.Вставить("отчеты" , "reports");
- СоответствиеИмен.Вставить("reports" , "reports");
- СоответствиеИмен.Вставить("перечисления" , "enums");
- СоответствиеИмен.Вставить("enums" , "enums");
- СоответствиеИмен.Вставить("планысчетов" , "сhartsOfAccounts");
- СоответствиеИмен.Вставить("chartsofaccounts" , "сhartsOfAccounts");
- СоответствиеИмен.Вставить("бизнеспроцессы" , "businessProcesses");
- СоответствиеИмен.Вставить("businessprocesses" , "businessProcesses");
- СоответствиеИмен.Вставить("задачи" , "tasks");
- СоответствиеИмен.Вставить("tasks" , "tasks");
- СоответствиеИмен.Вставить("планыобмена" , "exchangePlans");
- СоответствиеИмен.Вставить("exchangeplans" , "exchangePlans");
- СоответствиеИмен.Вставить("планывидовхарактеристик" , "chartsOfCharacteristicTypes");
- СоответствиеИмен.Вставить("chartsofcharacteristictypes" , "chartsOfCharacteristicTypes");
- СоответствиеИмен.Вставить("планывидоврасчета" , "chartsOfCalculationTypes");
- СоответствиеИмен.Вставить("chartsofcalculationtypes" , "chartsOfCalculationTypes");
- СоответствиеИмен.Вставить("константы" , "constants");
- СоответствиеИмен.Вставить("constants" , "constants");
-
- Возврат СоответствиеИмен[ТипОбъектов];
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьИмяКаталогаВыгрузкиМетаданныхПоТипу(ТипОбъектов)
-
- СоответствиеИмен = Новый Соответствие();
- СоответствиеИмен.Вставить("справочники" , "Catalogs");
- СоответствиеИмен.Вставить("catalogs" , "Catalogs");
- СоответствиеИмен.Вставить("документы" , "Documents");
- СоответствиеИмен.Вставить("documents" , "Documents");
- СоответствиеИмен.Вставить("регистрысведений" , "InformationRegisters");
- СоответствиеИмен.Вставить("informationregisters" , "InformationRegisters");
- СоответствиеИмен.Вставить("регистрынакопления" , "AccumulationRegisters");
- СоответствиеИмен.Вставить("accumulationregisters" , "AccumulationRegisters");
- СоответствиеИмен.Вставить("регистрыбухгалтерии" , "AccountingRegisters");
- СоответствиеИмен.Вставить("accountingregisters" , "AccountingRegisters");
- СоответствиеИмен.Вставить("регистрырасчета" , "CalculationRegisters");
- СоответствиеИмен.Вставить("calculationregisters" , "CalculationRegisters");
- СоответствиеИмен.Вставить("обработки" , "DataProcessors");
- СоответствиеИмен.Вставить("dataprocessors" , "DataProcessors");
- СоответствиеИмен.Вставить("отчеты" , "Reports");
- СоответствиеИмен.Вставить("reports" , "Reports");
- СоответствиеИмен.Вставить("перечисления" , "Enums");
- СоответствиеИмен.Вставить("enums" , "Enums");
- СоответствиеИмен.Вставить("планысчетов" , "ChartsOfAccounts");
- СоответствиеИмен.Вставить("chartsofaccounts" , "ChartsOfAccounts");
- СоответствиеИмен.Вставить("бизнеспроцессы" , "BusinessProcesses");
- СоответствиеИмен.Вставить("businessprocesses" , "BusinessProcesses");
- СоответствиеИмен.Вставить("задачи" , "Tasks");
- СоответствиеИмен.Вставить("tasks" , "Tasks");
- СоответствиеИмен.Вставить("планыобмена" , "ExchangePlans");
- СоответствиеИмен.Вставить("exchangeplans" , "ExchangePlans");
- СоответствиеИмен.Вставить("планывидовхарактеристик" , "ChartsOfCharacteristicTypes");
- СоответствиеИмен.Вставить("chartsofcharacteristictypes" , "ChartsOfCharacteristicTypes");
- СоответствиеИмен.Вставить("планывидоврасчета" , "ChartsOfCalculationTypes");
- СоответствиеИмен.Вставить("chartsofcalculationtypes" , "ChartsOfCalculationTypes");
- СоответствиеИмен.Вставить("константы" , "Constants");
- СоответствиеИмен.Вставить("constants" , "Constants");
-
- Возврат СоответствиеИмен[ТипОбъектов];
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Функция ПолучитьСвязьСОбъектомМетаданных(Реквизит, Связи)
-
- Связь = "";
- Типы = Реквизит.Тип.Типы();
-
- Индекс = 0;
- Пока Индекс < Типы.Количество() И НЕ ЗначениеЗаполнено(Связь) Цикл
-
- Тип = Типы[Индекс];
-
- СвязьТипа = Связи[Тип];
- Если СвязьТипа = Неопределено Тогда
-
- ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
- Если ОбъектМетаданных <> Неопределено Тогда
-
- // Сейчас связи описыватьются только для справочников и документов.
- // При желании, пожертвовав скоростью получения описания всех метаданных
- // сюда же можно добавить следующие элементы:
- // Метаданные.БизнесПроцессы businessProcesses
- // Метаданные.Задачи tasks
- // Метаданные.ПланыВидовРасчета chartsOfCalculationTypes
- // Метаданные.ПланыВидовХарактеристик chartsOfCharacteristicTypes
- // Метаданные.ПланыОбмена exchangePlans
- // Метаданные.ПланыСчетов сhartsOfAccounts
- Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
- Связь = "catalogs." + ОбъектМетаданных.Имя;
- ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
- Связь = "documents." + ОбъектМетаданных.Имя;
- Иначе
- Связь = "";
- КонецЕсли;
-
- КонецЕсли;
-
- Связи[Тип] = Связь;
- Иначе
- Связь = СвязьТипа;
- КонецЕсли;
-
- Индекс = Индекс + 1;
- КонецЦикла;
-
- Возврат Связь;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Процедура ДобавитьОписаниеРеквизита(ОписаниеРеквизитов, Реквизит, Связи)
-
- Связь = ?(Связи <> Неопределено, ПолучитьСвязьСОбъектомМетаданных(Реквизит, Связи), "");
-
- ОписаниеРеквизита = Новый Структура("name", Реквизит.Синоним);
-
- Если ЗначениеЗаполнено(Связь) Тогда
- ОписаниеРеквизита.Вставить("ref", Связь);
- КонецЕсли;
-
- ОписаниеРеквизитов.Вставить(Реквизит.Имя, ОписаниеРеквизита);
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Функция ПолучитьСписокОбъектовМетаданных(ТипОбъектов, АдресОбновления)
-
- ОписаниеМетаданных = "";
-
- ИмяКоллекции = ПолучитьИмяКоллекцииМетаданныхПоТипу(ТипОбъектов);
- Если ЗначениеЗаполнено(ИмяКоллекции) Тогда
-
- Коллекция = Метаданные[ТипОбъектов];
-
- СписокОбъектов = ПолучитьСписокОбъектовМетаданныхИзКоллекции(Коллекция);
-
- Файл = Новый ЗаписьJSON();
- Файл.УстановитьСтроку();
- Попытка
- ЗаписатьJSON(Файл, СписокОбъектов);
- Исключение
- ВызватьИсключение("Не удалось сохранить коллекцию метаданных:" + Символы.ПС + ОписаниеОшибки());
- КонецПопытки;
-
- ОписаниеМетаданных = Файл.Закрыть();
-
- АдресОбновления = ИмяКоллекции + ".items";
-
- КонецЕсли;
-
- Возврат ОписаниеМетаданных;
-
-КонецФункции
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьТипРегистра(ДополнительныеСвойства, ОбъектМетаданных, ПолноеИмя)
-
- ТипРегистра = "";
-
- Если ИмяМетаданных(ПолноеИмя) = "РегистрСведений" Тогда
-
- Непериодический = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический;
-
- Если ОбъектМетаданных.ПериодичностьРегистраСведений = Непериодический Тогда
- ТипРегистра = "nonperiodical";
- Иначе
- ТипРегистра = "periodical";
- КонецЕсли;
-
- ИначеЕсли ИмяМетаданных(ПолноеИмя) = "РегистрНакопления" Тогда
-
- Если ОбъектМетаданных.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
- ТипРегистра = "balance";
- Иначе
- ТипРегистра = "turnovers";
- КонецЕсли;
- Иначе
-
- ТипРегистра = "";
-
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ТипРегистра) Тогда
- ДополнительныеСвойства.Вставить("type", ТипРегистра);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьОписаниеПредопределенныхЭлементов(ОбъектМетаданных, ПолноеИмя, ОписаниеПредопределенных)
-
- Если ОбъектМетаданныхИмеетПредопределенные(ПолноеИмя) Тогда
-
- Если ИмяМетаданных(ПолноеИмя) = "ПланСчетов" Тогда
-
- Запрос = Новый Запрос(
- "ВЫБРАТЬ
- | ТаблицаПланаСчетов.Код КАК Код,
- | ТаблицаПланаСчетов.ИмяПредопределенныхДанных КАК Имя
- |ИЗ
- | &Таблица КАК ТаблицаПланаСчетов
- |ГДЕ
- | ТаблицаПланаСчетов.Предопределенный");
-
- Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Таблица", ПолноеИмя);
-
- Выборка = Запрос.Выполнить().Выбрать();
-
- Пока Выборка.Следующий() Цикл
- ОписаниеПредопределенных.Вставить(Выборка.Имя, СтрШаблон("%1 (%2)", Выборка.Имя, Выборка.Код));
- КонецЦикла;
- Иначе
-
- Предопределенные = ОбъектМетаданных.ПолучитьИменаПредопределенных();
- Для Каждого Имя Из Предопределенные Цикл
- ОписаниеПредопределенных.Вставить(Имя, "");
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьОписаниеИзмеренийРесурсов(ОбъектМетаданных, ПолноеИмя, ОписаниеРеквизитов,
- ОписаниеРесурсов, ДополнительныеСвойства, Связи)
-
- Если ОбъектМетаданныхИмеетИзмерения(ПолноеИмя) Тогда
-
- Для НомерРеквизита = 0 По ОбъектМетаданных.Измерения.Количество() - 1 Цикл
- Реквизит = ОбъектМетаданных.Измерения.Получить(НомерРеквизита);
- ДобавитьОписаниеРеквизита(ОписаниеРеквизитов, Реквизит, Связи);
- КонецЦикла;
-
- Для НомерРеквизита = 0 По ОбъектМетаданных.Ресурсы.Количество() - 1 Цикл
- Реквизит = ОбъектМетаданных.Ресурсы.Получить(НомерРеквизита);
- ДобавитьОписаниеРеквизита(ОписаниеРесурсов, Реквизит, Связи);
- КонецЦикла;
-
- ЗаполнитьТипРегистра(ДополнительныеСвойства, ОбъектМетаданных, ПолноеИмя);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьОписаниеТабличныхЧастей(ОбъектМетаданных, ПолноеИмя, ОписаниеРеквизитов, ОписаниеТабличныхЧастей, Связи)
-
- Если ОбъектМетаданныхИмеетТЧ(ПолноеИмя) Тогда
-
- Для НомерРеквизита = 0 По ОбъектМетаданных.ТабличныеЧасти.Количество() - 1 Цикл
-
- ТабличнаяЧасть = ОбъектМетаданных.ТабличныеЧасти.Получить(НомерРеквизита);
- ОписаниеРеквизитов.Вставить(ТабличнаяЧасть.Имя, Новый Структура("name", "ТЧ: " + ТабличнаяЧасть.Синоним));
-
- ОписаниеТабличнойЧасти = Новый Структура();
-
- Для Каждого РеквизитТЧ Из ТабличнаяЧасть.СтандартныеРеквизиты Цикл
- ОписаниеТабличнойЧасти.Вставить(РеквизитТЧ.Имя, РеквизитТЧ.Синоним);
- КонецЦикла;
-
- Для НомерРеквизитаТЧ = 0 По ТабличнаяЧасть.Реквизиты.Количество() - 1 Цикл
- РеквизитТЧ = ТабличнаяЧасть.Реквизиты.Получить(НомерРеквизитаТЧ);
- ДобавитьОписаниеРеквизита(ОписаниеТабличнойЧасти, РеквизитТЧ, Связи);
- КонецЦикла;
-
- Если 0 < ОписаниеТабличнойЧасти.Количество() Тогда
- ОписаниеТабличныхЧастей.Вставить(ТабличнаяЧасть.Имя, ОписаниеТабличнойЧасти);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьОписаниеРеквизитов(ОбъектМетаданных, ОписаниеРеквизитов, Связи)
-
- Для НомерРеквизита = 0 По ОбъектМетаданных.Реквизиты.Количество() - 1 Цикл
- Реквизит = ОбъектМетаданных.Реквизиты.Получить(НомерРеквизита);
- ДобавитьОписаниеРеквизита(ОписаниеРеквизитов, Реквизит, Связи);
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьОписаниеСтандартныхРеквизитов(ОбъектМетаданных, ПолноеИмя, ОписаниеРеквизитов, Связи)
-
- Если ОбъектМетаданныхИмеетСтандартныеРеквизиты(ПолноеИмя) Тогда
-
- Для Каждого Реквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл
- ДобавитьОписаниеРеквизита(ОписаниеРеквизитов, Реквизит, Связи);
- КонецЦикла;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Процедура ЗаполнитьОписаниеЗначенийПеречисления(ОбъектМетаданных, ОписаниеРеквизитов)
-
- Для НомерРеквизита = 0 По ОбъектМетаданных.ЗначенияПеречисления.Количество() - 1 Цикл
- Реквизит = ОбъектМетаданных.ЗначенияПеречисления.Получить(НомерРеквизита);
- ОписаниеРеквизитов.Вставить(Реквизит.Имя, Новый Структура("name", Реквизит.Синоним));
- КонецЦикла;
-
-КонецПроцедуры
-
-&НаСервереБезКонтекста
-Функция ПолучитьОписаниеОбъектаМетаданных(ТипОбъекта, АдресОбновления)
-
- ОписаниеМетаданных = "";
-
- Части = СтрРазделить(ТипОбъекта, ".");
-
- ИмяКоллекции = ПолучитьИмяКоллекцииМетаданныхПоТипу(Части[0]);
-
- Если ЗначениеЗаполнено(ИмяКоллекции) Тогда
-
- ОписаниеРеквизитов = Новый Структура();
- ОписаниеРесурсов = Новый Структура();
- ОписаниеПредопределенных = Новый Структура();
- ОписаниеТабличныхЧастей = Новый Структура();
- ДополнительныеСвойства = Новый Структура();
-
- Связи = Новый Соответствие();
-
- ОбъектМетаданных = Метаданные[Части[0]][Части[1]];
- ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
-
- Если ИмяМетаданных(ПолноеИмя) = "Перечисление" Тогда
- ЗаполнитьОписаниеЗначенийПеречисления(ОбъектМетаданных, ОписаниеРеквизитов);
- Иначе
- ЗаполнитьОписаниеРеквизитов(ОбъектМетаданных, ОписаниеРеквизитов, Связи);
- ЗаполнитьОписаниеСтандартныхРеквизитов(ОбъектМетаданных, ПолноеИмя, ОписаниеРеквизитов, Связи);
- ЗаполнитьОписаниеПредопределенныхЭлементов(ОбъектМетаданных, ПолноеИмя, ОписаниеПредопределенных);
- ЗаполнитьОписаниеИзмеренийРесурсов(ОбъектМетаданных, ПолноеИмя, ОписаниеРеквизитов, ОписаниеРесурсов, ДополнительныеСвойства, Связи);
- ЗаполнитьОписаниеТабличныхЧастей(ОбъектМетаданных, ПолноеИмя, ОписаниеРеквизитов, ОписаниеТабличныхЧастей, Связи);
- КонецЕсли;
-
- СтруктураОбъекта = Новый Структура();
- СтруктураОбъекта.Вставить("properties", ОписаниеРеквизитов);
-
- Для Каждого Обход Из ДополнительныеСвойства Цикл
- СтруктураОбъекта.Вставить(Обход.Ключ, Обход.Значение);
- КонецЦикла;
-
- Если 0 < ОписаниеРесурсов.Количество() Тогда
- СтруктураОбъекта.Вставить("resources", ОписаниеРесурсов);
- КонецЕсли;
-
- Если 0 < ОписаниеПредопределенных.Количество() Тогда
- СтруктураОбъекта.Вставить("predefined", ОписаниеПредопределенных);
- КонецЕсли;
-
- Если 0 < ОписаниеТабличныхЧастей.Количество() Тогда
- СтруктураОбъекта.Вставить("tabulars", ОписаниеТабличныхЧастей);
- КонецЕсли;
-
- Файл = Новый ЗаписьJSON();
- Файл.УстановитьСтроку();
- Попытка
- ЗаписатьJSON(Файл, СтруктураОбъекта);
- Исключение
- ВызватьИсключение("Не удалось сохранить коллекцию метаданных:" + Символы.ПС + ОписаниеОшибки());
- КонецПопытки;
-
- АдресОбновления = ИмяКоллекции + ".items." + ОбъектМетаданных.Имя;
-
- ОписаниеМетаданных = Файл.Закрыть();
-
- КонецЕсли;
-
- Возврат ОписаниеМетаданных;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ЗагрузитьОбъектМетаданныхПоЗапросу(ПараметрыЗапроса)
-
- АдресОбновления = "";
- ОписаниеМетаданных = ПолучитьОписаниеОбъектаМетаданных(ПараметрыЗапроса, АдресОбновления);
-
- Если ЗначениеЗаполнено(ОписаниеМетаданных) Тогда
-
- Если ТипЗнч(View().updateMetadata(ОписаниеМетаданных, АдресОбновления)) = Тип("Булево") Тогда
- View().triggerSuggestions();
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗагрузитьСписокМетаданныхПоЗапросу(ПараметрыЗапроса)
-
- АдресОбновления = "";
- ОписаниеМетаданных = ПолучитьСписокОбъектовМетаданных(ПараметрыЗапроса, АдресОбновления);
-
- Если ЗначениеЗаполнено(ОписаниеМетаданных) Тогда
-
- Если ТипЗнч(View().updateMetadata(ОписаниеМетаданных, АдресОбновления)) = Тип("Булево") Тогда
- View().triggerSuggestions();
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОбработкаСобытияПолученияМетаданных(Событие)
-
- ПараметрыЗапроса = НРег(Событие.params);
- Если 0 < СтрНайти(ПараметрыЗапроса, ".") Тогда
-
- ЧастиЗапроса = СтрРазделить(ПараметрыЗапроса, ".");
-
- Если ЧастиЗапроса[0] = "module" Тогда
-
- Если ЧастиЗапроса.Количество() = 2 Тогда
- ЗагрузитьСтруктуруОбщегоМодуляПоЗапросу(ЧастиЗапроса);
- Иначе
- ЗагрузитьСтруктуруМодуляМенеджераИлиОбъектаПоЗапросу(ЧастиЗапроса);
- КонецЕсли;
- Иначе
- ЗагрузитьОбъектМетаданныхПоЗапросу(ПараметрыЗапроса);
- КонецЕсли;
- Иначе
- ЗагрузитьСписокМетаданныхПоЗапросу(ПараметрыЗапроса);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область КонструкторЗапросов
-
-&НаКлиенте
-Процедура ПриЗакрытииКонструктораЗапросов(Текст, ДопПараметры) Экспорт
-
- Если Текст <> Неопределено Тогда
-
- Если Не View().queryMode Тогда
- Текст = СтрЗаменить(Текст, Символы.ПС, Символы.ПС + "|");
- Текст = СтрЗаменить(Текст, """", """""");
- Текст = """" + Текст + """";
- КонецЕсли;
-
- УстановитьТекст(Текст, ДопПараметры, Истина);
- ОбновитьИсполняемыйКод();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОткрытьКонструкторЗапроса(Текст, ДопПараметры)
-
- Конструктор = Новый КонструкторЗапроса();
-
- Если ЗначениеЗаполнено(Текст) Тогда
- Попытка
- Конструктор.Текст = Текст;
- Исключение
- Инфо = ИнформацияОбОшибке();
- ПоказатьПредупреждение(, "Ошибка в тексте запроса:" + Символы.ПС + Инфо.Причина.Описание);
- Возврат;
- КонецПопытки;
- КонецЕсли;
-
- Конструктор.Показать(Новый ОписаниеОповещения("ПриЗакрытииКонструктораЗапросов", ЭтотОбъект, ДопПараметры));
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВопросСоздатьНовыйЗапрос(Ответ, ДопПараметры) Экспорт
-
- Если Ответ = КодВозвратаДиалога.Да Тогда
- ОткрытьКонструкторЗапроса("", Неопределено);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПодготовитьТекстЗапроса(Текст)
-
- ТекстЗапроса = СтрЗаменить(Текст, "|", "");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, """""", "$");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, """", "");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "$", """");
-
- Возврат ТекстЗапроса;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ВызватьКонструкторЗапроса(ПараметрыЗапроса)
-
- Если ПараметрыЗапроса = Неопределено Тогда
- ТекстВопроса = "Не найден текст запроса." + Символы.ПС + "Создать новый запрос?";
- ПоказатьВопрос(
- Новый ОписаниеОповещения("ВопросСоздатьНовыйЗапрос", ЭтотОбъект), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
- Иначе
- ТекстЗапроса = ПодготовитьТекстЗапроса(ПараметрыЗапроса.text);
- ОткрытьКонструкторЗапроса(ТекстЗапроса, ПараметрыЗапроса.range);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область КонструкторФорматнойСтроки
-
-&НаКлиенте
-Процедура ПриЗакрытииКонструктораФорматнойСтроки(ФорматнаяСтрока, ДопПараметры) Экспорт
-
- Если ФорматнаяСтрока <> Неопределено Тогда
- ФорматнаяСтрока = СтрЗаменить(ФорматнаяСтрока, "'", "");
- ФорматнаяСтрока = """" + ФорматнаяСтрока + """";
- УстановитьТекст(ФорматнаяСтрока, ДопПараметры, Ложь);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОткрытьКонструкторФорматнойСтроки(ФорматнаяСтрока, ДопПараметры)
-
- Конструктор = Новый КонструкторФорматнойСтроки();
- Попытка
- Конструктор.Текст = ФорматнаяСтрока;
- Исключение
- Инфо = ИнформацияОбОшибке();
- ПоказатьПредупреждение(, "Ошибка в тексте форматной строки:" + Символы.ПС + Инфо.Причина.Описание);
- Возврат;
- КонецПопытки;
-
- Конструктор.Показать(Новый ОписаниеОповещения("ПриЗакрытииКонструктораФорматнойСтроки", ЭтотОбъект, ДопПараметры));
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВопросСоздатьНовуюФорматнуюСтроку(Ответ, ДопПараметры) Экспорт
-
- Если Ответ = КодВозвратаДиалога.Да Тогда
- ОткрытьКонструкторФорматнойСтроки("", Неопределено);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВызватьКонструкторФорматнойСтроки(ПараметрыСтроки)
-
- Если ПараметрыСтроки = Неопределено Тогда
- ТекстВопроса = "Форматная строка не найдена." + Символы.ПС + "Создать новую форматную строку?";
- ПоказатьВопрос(
- Новый ОписаниеОповещения("ВопросСоздатьНовуюФорматнуюСтроку", ЭтотОбъект), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
- Иначе
- ФорматнаяСтрока = СтрЗаменить(СтрЗаменить(ПараметрыСтроки.text, "|", ""), """", "");
- ОткрытьКонструкторФорматнойСтроки(ФорматнаяСтрока, ПараметрыСтроки.range);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Прочее
-
-&НаКлиенте
-Процедура ПослеВыводаОшибки(ДопПараметры) Экспорт
-
- Если ДопПараметры.ЗакрыватьКонсоль Тогда
- ЗакрытьКонсоль();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВывестиОшибку(Текст, ЗакрыватьКонсоль)
-
- ПоказатьПредупреждение(
- Новый ОписаниеОповещения("ПослеВыводаОшибки", ЭтотОбъект,
- Новый Структура("ЗакрыватьКонсоль", ЗакрыватьКонсоль)), Текст);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ОпределитьРазделительПути()
-
- РазделительПути = ПолучитьРазделительПути();
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ПолучитьИмяТемы()
-
- Возврат "bsl-white";
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПереключитьТему(Тема)
-
- Элементы.ПолеHTML.Документ.monaco.editor.setTheme(Тема);
-
-КонецПроцедуры
-
-&НаКлиенте
-Функция ВебДокументДоступен()
-
- Если Элементы.ПолеHTML.Документ <> Неопределено И Элементы.ПолеHTML.Документ.defaultView <> Неопределено Тогда
- Попытка
- ПолучитьТекст();
- Возврат Истина;
- Исключение
- Возврат Ложь;
- КонецПопытки;
- Иначе
- Возврат Ложь;
- КонецЕсли;
-
-КонецФункции
-
-&НаКлиенте
-Процедура ПослеУдаленияИндексногоФайла(ДопПараметры) Экспорт
-
- ИндексныйФайл = "";
- Закрыть();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗакрытьКонсоль()
-
- Если ЗначениеЗаполнено(ИндексныйФайл) Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеУдаленияИндексногоФайла", ЭтотОбъект);
- НачатьУдалениеФайлов(Оповещение, ИндексныйФайл);
- Иначе
- Закрыть();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура УправлениеВидимостьюКартыКода()
-
- Элементы.КартаКода.Пометка = ВидимостьКартыКода;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура УправлениеВидимостьюСтрокиСостояния()
-
- Элементы.СтрокаСостояния.Пометка = ВидимостьСтрокиСостояния;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура УправлениеВидимостьюПодсветкиЗапросов()
-
- Элементы.ПодсвечиватьЗапросы.Пометка = ПодсвечиватьЗапросы;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Templates/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216.xml" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Templates/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216.xml"
deleted file mode 100644
index f7bb1e31..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Templates/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216.xml"
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- НастройкиПоУмолчанию
-
-
- ru
- Настройки по умолчанию
-
-
- en
- Default Settings
-
-
-
- TextDocument
-
-
-
\ No newline at end of file
diff --git "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Templates/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Ext/Template.txt" "b/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Templates/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Ext/Template.txt"
deleted file mode 100644
index c5f8a1c7..00000000
--- "a/release/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Templates/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\243\320\274\320\276\320\273\321\207\320\260\320\275\320\270\321\216/Ext/Template.txt"
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml"
deleted file mode 100644
index d74a8cfc..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217.xml"
+++ /dev/null
@@ -1,622 +0,0 @@
-
-
-
-
-
- d524301b-6120-46d3-bd04-9f6c067ff390
- 35e25d16-2d34-4a7a-abd8-3f72759aea49
-
-
- 4c411dc1-0b4e-4923-96fb-4dd9ca9817be
- 93307727-55f4-42b9-821c-b49ad3fec5f5
-
-
- 36c207f7-c30b-4c93-9e28-7cfa965fdf78
- aa34b743-5fc7-4fb9-b8a4-f594b472382f
-
-
- 5a255bae-d853-4124-b0e4-32015ef6229c
- 2096ee43-83d1-4e1f-88d7-d67aae05d9e5
-
-
- e0c7818b-9e07-4bc3-8b5e-be21ff483717
- 2ec8d079-0231-4c7f-aea5-ebff92f1af8d
-
-
- 3cfb734e-9774-4100-a9e9-983a44f2802b
- 4d1b1000-df53-4852-ac85-4b28f726136b
-
-
-
- __ПредопределенныеЗначения
-
-
- ru
- Предопределенные значения
-
-
-
- true
- false
-
-
- xs:boolean
- xs:string
- xs:dateTime
- xs:decimal
-
- 15
- 3
- Any
-
-
- 256
- Variable
-
-
- Date
-
-
- true
- true
- 9
- Variable
- 150
- WholeCharacteristicKind
- true
- true
- AsDescription
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- ShowError
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- true
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
- Auto
- InDialog
- false
- BothWays
-
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.StandardAttribute.Description
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.StandardAttribute.Code
-
- DontUse
- Begin
- Directly
- DontUse
- Auto
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.Form.ФормаЭлемента
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.Form.ФормаГруппы
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.Form.ФормаСписка
-
-
-
-
-
-
-
-
-
- Managed
- Use
-
-
-
-
-
- DontUse
- false
- false
-
-
-
-
- Значение
-
-
- ru
- Значение
-
-
-
-
- cfg:Characteristic.__ПредопределенныеЗначения
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- FoldersAndItems
-
-
- ТипЗначения
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.StandardAttribute.ValueType
- Clear
-
-
-
- Auto
- Auto
-
-
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.StandardAttribute.ValueType
- 0
-
- Auto
- DontIndex
-
- Use
- Use
-
-
-
-
- Пароль
-
-
- ru
- Пароль
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
-
- Use
- Use
-
-
-
-
- СписокЗначений
-
-
- ru
- Список значений
-
-
-
-
- xs:boolean
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
-
- Use
- Use
-
-
-
-
- Комментарий
-
-
- ru
- Комментарий
-
-
-
-
- xs:string
-
- 0
- Variable
-
-
- false
-
-
-
- false
-
- false
- false
-
-
- false
-
- DontCheck
- Items
-
-
- Auto
- Auto
-
-
- Auto
- DontIndex
-
- Use
- Use
-
-
-
-
-
- 863b2ccd-57a9-4c08-8135-79e10099637e
- 2910b852-5a02-43d7-90e9-e390e677b339
-
-
- a17605e4-f120-425f-8a4c-0bfe97977b44
- 70afc5b0-a9bb-4e39-a16e-8d41941e4873
-
-
-
- ЗначенияЭлементов
-
-
- ru
- Значения элементов
-
-
-
-
- DontCheck
-
-
-
- DontCheck
- false
- false
- Auto
-
-
- false
-
-
- Auto
- Auto
-
- false
- Use
- false
-
-
-
- Use
-
-
-
-
-
-
-
-
-
-
-
- Значение
-
-
- ru
- Значение
-
-
-
-
- cfg:Characteristic.__ПредопределенныеЗначения
-
- false
-
-
-
- false
-
- false
- false
-
-
- DontCheck
- FoldersAndItems
-
-
- ТипЗначения
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.StandardAttribute.ValueType
- Clear
-
-
-
- Auto
- Auto
-
-
- ChartOfCharacteristicTypes.__ПредопределенныеЗначения.StandardAttribute.ValueType
- 0
-
- Auto
- DontIndex
- Use
- Use
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl"
deleted file mode 100644
index a664721b..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/ManagerModule.bsl"
+++ /dev/null
@@ -1,200 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
-
-#Область ПрограммныйИнтерфейс
-
-// Возвращает значение ПВХ по имени.
-//
-// Параметры:
-// Имя - Строка - Имя переменной ПВХ.
-//
-// Возвращаемое значение:
-// ПроизвольныйТип - Значение переменной ПВХ.
-//
-Функция ПолучитьЗначение(Имя) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УстановитьПривилегированныйРежим(Истина);
-
- Значение = Неопределено;
-
- Если ПланыВидовХарактеристик.__ПредопределенныеЗначения[Имя].СписокЗначений Тогда
- Значение = ОбщегоНазначения.ВыгрузитьКолонку(
- ПланыВидовХарактеристик.__ПредопределенныеЗначения[Имя].ЗначенияЭлементов, "Значение", Истина);
- ИначеЕсли ПланыВидовХарактеристик.__ПредопределенныеЗначения[Имя].Пароль Тогда
- Значение = ПолучитьПарольПоИмени(Имя);
- Иначе
- Значение = ПланыВидовХарактеристик.__ПредопределенныеЗначения[Имя].Значение;
- КонецЕсли;
-
- УстановитьПривилегированныйРежим(Ложь);
-
- Возврат Значение;
-
-КонецФункции
-
-// Возвращает соответствие предопределенных элементов ПВХ по имени.
-//
-// Параметры:
-// Имя - Строка - Имена переменных ПВХ, перечисленные через запятую.
-// ВРазрезеКлючей - Булево - Признак получения данных в виде соответствия, где Ключ - Имя переменной.
-//
-// Возвращаемое значение:
-// - Соответствие - Соответствие имен и значений переменных ПВХ.
-// - Массив - Массив значений переменных ПВХ.
-//
-Функция ПолучитьЗначения(Имена, ВРазрезеКлючей = Ложь) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- ОбщегоНазначенияКлиентСервер = Неопределено;
- СтроковыеФункцииКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УстановитьПривилегированныйРежим(Истина);
-
- Если ВРазрезеКлючей Тогда
- Значения = Новый Соответствие;
- Иначе
- Значения = Новый Массив;
- КонецЕсли;
-
- МассивИмен = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Имена);
- МассивИмен = ОбщегоНазначенияКлиентСервер.СвернутьМассив(МассивИмен);
-
- Если Не МассивИмен.Количество() Тогда
- Возврат Значения;
- КонецЕсли;
-
- Запрос = Новый Запрос;
- Запрос.Текст = "ВЫБРАТЬ
- | ПредопределенныеЗначения.Ссылка КАК ПредопределенноеЗначение,
- | ПредопределенныеЗначения.ИмяПредопределенныхДанных КАК Имя
- |ПОМЕСТИТЬ ПредопределенныеЗначения
- |ИЗ
- | ПланВидовХарактеристик.__ПредопределенныеЗначения КАК ПредопределенныеЗначения
- |ГДЕ
- | ПредопределенныеЗначения.ИмяПредопределенныхДанных В(&МассивИмен)
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ
- | ПредопределенныеЗначения.Имя КАК Имя,
- | __ПредопределенныеЗначения.Значение КАК Значение,
- | ПУСТАЯТАБЛИЦА.( КАК Значение) КАК ЗначенияЭлементов,
- | __ПредопределенныеЗначения.Пароль КАК Пароль,
- | ЛОЖЬ КАК СписокЗначений
- |ИЗ
- | ПредопределенныеЗначения КАК ПредопределенныеЗначения
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.__ПредопределенныеЗначения КАК __ПредопределенныеЗначения
- | ПО ПредопределенныеЗначения.ПредопределенноеЗначение = __ПредопределенныеЗначения.Ссылка
- | И (НЕ __ПредопределенныеЗначения.СписокЗначений)
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | ПредопределенныеЗначения.Имя,
- | НЕОПРЕДЕЛЕНО,
- | __ПредопределенныеЗначения.ЗначенияЭлементов.(
- | Значение
- | ),
- | ЛОЖЬ,
- | ИСТИНА
- |ИЗ
- | ПредопределенныеЗначения КАК ПредопределенныеЗначения
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.__ПредопределенныеЗначения КАК __ПредопределенныеЗначения
- | ПО ПредопределенныеЗначения.ПредопределенноеЗначение = __ПредопределенныеЗначения.Ссылка
- | И (__ПредопределенныеЗначения.СписокЗначений)";
-
- Запрос.УстановитьПараметр("МассивИмен", МассивИмен);
- РезультатЗапроса = Запрос.Выполнить();
-
- Выборка = РезультатЗапроса.Выбрать();
- Пока Выборка.Следующий() Цикл
-
- Значение = Неопределено;
-
- Если Выборка.Пароль Тогда
- Значение = ПолучитьПарольПоИмени(Выборка.Имя);
- ИначеЕсли Выборка.СписокЗначений Тогда
- Значение = ОбщегоНазначения.ВыгрузитьКолонку(Выборка.ЗначенияЭлементов.Выгрузить(), "Значение", Истина);
- Иначе
- Значение = Выборка.Значение;
- КонецЕсли;
-
- Если ВРазрезеКлючей Тогда
- Значения.Вставить(Выборка.Имя, Значение);
- Иначе
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
- ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Значения, Значение);
- Иначе
- Значения.Добавить(Значение);
- КонецЕсли;
- КонецЕсли;
-
- КонецЦикла;
-
- Если Не ВРазрезеКлючей Тогда
- Значения = ОбщегоНазначенияКлиентСервер.СвернутьМассив(Значения);
- КонецЕсли;
-
- УстановитьПривилегированныйРежим(Ложь);
-
- Возврат Значения;
-
-КонецФункции
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьПарольПоИмени(Имя)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Значение = Неопределено;
-
- ДанныеХранилища = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
- Строка(ПланыВидовХарактеристик.__ПредопределенныеЗначения[Имя].УникальныйИдентификатор()));
-
- Если ТипЗнч(ДанныеХранилища) = Тип("Структура") Тогда
- Значение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "");
- Иначе
- Значение = "";
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
-
-#КонецЕсли
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Predefined.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Predefined.xml"
deleted file mode 100644
index 34ac9f96..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Ext/Predefined.xml"
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- НастройкиИнтеграции
- 000000001
- Настройки интеграции
-
- true
-
-
- КолДнейХраненияИсторииИнтеграции
- 000000002
- Количество дней хранения истории интеграции
-
- xs:decimal
-
- 3
- 0
- Nonnegative
-
-
- false
-
-
- КолДнейХраненияОшибокИсторииИнтеграции
- 000000003
- Количество дней хранения ошибок истории интеграции
-
- xs:decimal
-
- 3
- 0
- Nonnegative
-
-
- false
-
-
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213.xml"
deleted file mode 100644
index f21eb4af..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form.xml"
deleted file mode 100644
index b91a1cea..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form.xml"
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form/Module.bsl" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form/Module.bsl"
deleted file mode 100644
index 0c278942..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,61 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовШапкиФормы
-
-&НаКлиенте
-Процедура КомментарийОткрытие(Элемент, СтандартнаяОбработка)
-
- СтандартнаяОбработка = Ложь;
-
- ПоказатьВводСтроки(Новый ОписаниеОповещения("КомментарийОткрытиеЗавершение", ЭтотОбъект),
- Объект.Комментарий, НСтр("ru='Комментарий'; en = 'Comment'"), , Истина);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормы
-
-#КонецОбласти
-
-#Область ОбработчикиКомандФормы
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаКлиенте
-Процедура КомментарийОткрытиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
-
- Если Результат <> Неопределено Тогда
- Объект.Комментарий = Результат;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
deleted file mode 100644
index 8dd12471..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
deleted file mode 100644
index 97273910..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
deleted file mode 100644
index 5eec037f..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.xml"
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
deleted file mode 100644
index 9e4ae2f0..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml"
+++ /dev/null
@@ -1,243 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
deleted file mode 100644
index 390d6e36..00000000
--- "a/release/ChartsOfCharacteristicTypes/__\320\237\321\200\320\265\320\264\320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\275\321\213\320\265\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,273 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- УправлениеФормой();
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ДанныеХранилища = Неопределено;
-
- УстановитьПривилегированныйРежим(Истина);
-
- Если Объект.Пароль Тогда
- ДанныеХранилища = Новый Структура("bit_password", Объект.Значение);
- ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(
- Строка(ТекущийОбъект.Ссылка.УникальныйИдентификатор()), ДанныеХранилища);
- ТекущийОбъект.Значение = "";
- Иначе
- ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(
- Строка(ТекущийОбъект.Ссылка.УникальныйИдентификатор()), Неопределено);
- КонецЕсли;
-
- УстановитьПривилегированныйРежим(Ложь);
-
- УстановитьНаличиеПароля(ДанныеХранилища);
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытийФормы
-
-#Область ОбработчикиСобытийЭлементовШапкиФормы
-
-&НаКлиенте
-Процедура НаименованиеОткрытие(Элемент, СтандартнаяОбработка)
-
- СтандартнаяОбработка = Ложь;
-
- ПоказатьВводСтроки(Новый ОписаниеОповещения("ВводСтрокиЗавершение",
- ЭтотОбъект, Новый Структура("РеквизитШапки, ТолькоПросмотр, Реквизит", Истина, Истина, "Наименование")),
- Объект.Наименование, НСтр("ru='Наименование'; en = 'Name'"), , Истина);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПарольПриИзменении(Элемент)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиент = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если ТипЗнч(Объект.Значение) <> Тип("Строка") Тогда
-
- Объект.Пароль = Ложь;
-
- ОбщегоНазначенияКлиент.СообщитьПользователю(
- НСтр("ru='Пароль может использовать только тип ""Строка"".';
- | en='The password can only use the type ""String"".'"),
- Объект.Ссылка, "ТипЗначения", "Объект.ТипЗначения");
-
- Возврат;
-
- ИначеЕсли Объект.Пароль И Объект.СписокЗначений Тогда
-
- Объект.Пароль = Ложь;
-
- ОбщегоНазначенияКлиент.СообщитьПользователю(
- НСтр("ru='Использование пароля недоступен для списка значений.';
- | en='Password usage is not available for the list of values.'"),
- Объект.Ссылка, "СписокЗначений", "Объект.СписокЗначений");
-
- Возврат;
-
- ИначеЕсли НЕ Объект.Пароль И ЗначениеЗаполнено(Объект.Значение) Тогда
-
- ПоказатьВопрос(Новый ОписаниеОповещения("ПарольПриИзмененииПродолжение", ЭтотОбъект),
- НСтр("ru='Пароль будет очищен. Продолжить?';
- | en='The password will be cleared. Continue?'"),
- РежимДиалогаВопрос.ДаНет, 60);
-
- Иначе
- УправлениеФормой();
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура СписокЗначенийПриИзменении(Элемент)
-
- УправлениеФормой();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ЗначениеОткрытие(Элемент, СтандартнаяОбработка)
-
- Если ТипЗнч(Объект.Значение) <> Тип("Строка") ИЛИ Объект.Пароль Тогда
- Возврат;
- КонецЕсли;
-
- СтандартнаяОбработка = Ложь;
-
- ПоказатьВводСтроки(Новый ОписаниеОповещения("ВводСтрокиЗавершение",
- ЭтотОбъект, Новый Структура("РеквизитШапки, Реквизит", Истина, "Значение")),
- Объект.Значение, НСтр("ru='Значение'; en = 'Value'"), , Истина);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура КомментарийОткрытие(Элемент, СтандартнаяОбработка)
-
- СтандартнаяОбработка = Ложь;
-
- ПоказатьВводСтроки(Новый ОписаниеОповещения("ВводСтрокиЗавершение",
- ЭтотОбъект, Новый Структура("РеквизитШапки, Реквизит", Истина, "Комментарий")),
- Объект.Комментарий, НСтр("ru='Комментарий'; en = 'Comment'"), , Истина);
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытийЭлементовШапкиФормы
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормы
-
-&НаКлиенте
-Процедура ЗначенияЭлементовЗначениеОткрытие(Элемент, СтандартнаяОбработка)
-
- ТекущиеДанные = Элементы.ЗначенияЭлементов.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Если ТипЗнч(ТекущиеДанные.Значение) <> Тип("Строка") Тогда
- Возврат;
- КонецЕсли;
-
- СтандартнаяОбработка = Ложь;
-
- ПоказатьВводСтроки(Новый ОписаниеОповещения("ВводСтрокиЗавершение",
- ЭтотОбъект, Новый Структура("РеквизитШапки, Реквизит", Ложь, ТекущиеДанные)),
- ТекущиеДанные.Значение, НСтр("ru='Значение'; en = 'Value'"), , Истина);
-
-КонецПроцедуры
-
-#КонецОбласти // ОбработчикиСобытийЭлементовТаблицыФормы
-
-#Область ОбработчикиКомандФормы
-
-#КонецОбласти // ОбработчикиКомандФормы
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Процедура УправлениеФормой()
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "НадписьНаличиеПароля", "Видимость", Объект.Пароль);
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "Значение", "Видимость", Не Объект.СписокЗначений);
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "Значение", "КнопкаВыбора", Не Объект.Пароль);
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "Значение", "РежимПароля", Объект.Пароль);
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "Значение", "КнопкаОткрытия", Не Объект.Пароль);
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "ЗначенияЭлементов", "Видимость", Объект.СписокЗначений);
- ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
- Элементы, "СписокЗначений", "ТолькоПросмотр", Объект.Пароль);
-
- УстановитьНаличиеПароля();
-
-КонецПроцедуры
-
-&НаСервере
-Процедура УстановитьНаличиеПароля(ДанныеХранилища = Неопределено);
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если НЕ Объект.Пароль Тогда
- Возврат;
- КонецЕсли;
-
- Если ДанныеХранилища = Неопределено Тогда
-
- УстановитьПривилегированныйРежим(Истина);
- ДанныеХранилища = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
- Строка(Объект.Ссылка.УникальныйИдентификатор()));
- УстановитьПривилегированныйРежим(Ложь);
-
- КонецЕсли;
-
- Если ТипЗнч(ДанныеХранилища) = Тип("Структура")
- И НЕ ПустаяСтрока(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеХранилища, "bit_password", "")) Тогда
-
- Элементы.НадписьНаличиеПароля.Заголовок = НСтр("ru = 'Пароль установлен'");
- Иначе
- Элементы.НадписьНаличиеПароля.Заголовок = НСтр("ru = 'Пустой пароль'")
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПарольПриИзмененииПродолжение(РезультатВопроса, ДополнительныеПараметры) Экспорт
-
- Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
- Объект.Значение = "";
- Иначе
- Объект.Пароль = Истина;
- КонецЕсли;
-
- УправлениеФормой();
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ВводСтрокиЗавершение(Результат, ДополнительныеПараметры) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "ТолькоПросмотр", Ложь) Тогда
- Возврат;
- КонецЕсли;
-
- Если Результат <> Неопределено Тогда
- Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры, "РеквизитШапки", Ложь) Тогда
- Объект[ДополнительныеПараметры.Реквизит] = Результат;
- Иначе
- ДополнительныеПараметры.Реквизит.Значение = Результат;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217.xml" "b/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217.xml"
deleted file mode 100644
index d899d602..00000000
--- "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217.xml"
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- __ФормаВыбораПоля
-
-
- ru
- Выбор поля
-
-
- en
- Field Selection
-
-
-
- Managed
- true
-
- PlatformApplication
- MobilePlatformApplication
-
- false
-
-
-
-
-
\ No newline at end of file
diff --git "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form.xml" "b/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form.xml"
deleted file mode 100644
index 9bf4864d..00000000
--- "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form.xml"
+++ /dev/null
@@ -1,370 +0,0 @@
-
-
\ No newline at end of file
diff --git "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl" "b/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl"
deleted file mode 100644
index 47d12d0f..00000000
--- "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Form/Module.bsl"
+++ /dev/null
@@ -1,276 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ОбработчикиСобытийФормы
-
-&НаСервере
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Параметры.Свойство("Режим", Режим);
-
- Если Параметры.Свойство("Переменные") Тогда
- Для Каждого Имя Из Параметры.Переменные Цикл
- Переменные.Добавить(Имя);
- КонецЦикла;
- КонецЕсли;
-
- ОписаниеСправочники = Справочники.ТипВсеСсылки();
- ОписаниеДокументы = Документы.ТипВсеСсылки();
-
- ОбновитьДерево();
-
- Если Не Поля.ПолучитьЭлементы().Количество() Тогда
- ОбщегоНазначения.СообщитьПользователю(НСтр("ru='Нет полей для выбора.';en='No fields to select.'"),,,, Отказ);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиСобытийЭлементовТаблицыФормыПоля
-
-&НаКлиенте
-Процедура ПоляВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
-
- Результат = СформироватьРезСтруктуру(Элементы.Поля.ТекущаяСтрока);
- Если ТипЗнч(Результат) = Тип("Структура") Тогда
- Закрыть(Результат);
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура ПоляПередРазворачиванием(Элемент, Строка, Отказ)
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
- Если Строка = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- РазвернутьПодчиненные(Строка);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработчикиКомандФормы
-
-&НаКлиенте
-Процедура КомандаОК(Команда)
-
- ТекущаяСтрока = Элементы.Поля.ТекущаяСтрока;
- Результат = СформироватьРезСтруктуру(ТекущаяСтрока);
- Закрыть(Результат);
-
-КонецПроцедуры
-
-&НаКлиенте
-Процедура КомандаОбновить(Команда)
-
- ОбновитьДерево();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-&НаСервере
-Процедура ОбновитьДерево()
-
- ДанныеДерева = Поля.ПолучитьЭлементы();
- ДанныеДерева.Очистить();
-
- Если Переменные.Количество() Тогда
-
- ЭлементВерх = ДанныеДерева.Добавить();
- ЗаполнитьЭлементДерева(ЭлементВерх, "Переменные",,,,, БиблиотекаКартинок.__Реквизиты);
-
- Коллекция = ЭлементВерх.ПолучитьЭлементы();
-
- Для Каждого ТекущаяПеременная Из Переменные Цикл
- ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная.Значение,,, Истина, Истина);
- КонецЦикла;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ЗаполнитьЭлементДерева(ЭлементДерева
- , Имя
- , Синоним = ""
- , Описание = Неопределено
- , Доступность = Ложь
- , ДобавлятьПодчиненные = Ложь
- , Картинка = Неопределено)
-
- ЭлементДерева.Имя = Имя;
- ЭлементДерева.Синоним = ?(ПустаяСтрока(Синоним), Имя, Синоним);
- ЭлементДерева.Тип = ?(Описание = Неопределено, Новый ОписаниеТипов("Строка"), Описание);
-
- ЭлементДерева.Доступно = Доступность;
-
- Если ДобавлятьПодчиненные Тогда
-
- МассивТипов = ЭлементДерева.Тип.Типы();
- Для Каждого Тип Из МассивТипов Цикл
-
- Если ОписаниеСправочники.СодержитТип(Тип) Или ОписаниеДокументы.СодержитТип(Тип) Тогда
-
- Коллекция = ЭлементДерева.ПолучитьЭлементы();
- ЗаполнитьЭлементДерева(Коллекция.Добавить(), "СлужебнаяДляРазворота");
-
- Прервать;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- Если Не Картинка = Неопределено Тогда
- ЭлементДерева.Картинка = Картинка;
- Иначе
- ЭлементДерева.Картинка = БиблиотекаКартинок.__Реквизит;
- КонецЕсли;
-
-КонецПроцедуры
-
-&НаСервере
-Функция СобратьИмена(СтрокаСтарт)
-
- Результат = "";
- Если СтрокаСтарт <> Неопределено Тогда
-
- Результат = СтрокаСтарт.Имя;
-
- СтрокаРодитель = СтрокаСтарт.ПолучитьРодителя();
- Если СтрокаРодитель <> Неопределено Тогда
- Результат = СобратьИмена(СтрокаРодитель) + "." + Результат;
- КонецЕсли;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-&НаСервере
-Функция СформироватьРезСтруктуру(ИдСтроки)
-
- Результат = Неопределено;
-
- Если ТипЗнч(ИдСтроки) = Тип("Число") Тогда
-
- ТекущаяСтрока = Поля.НайтиПоИдентификатору(ИдСтроки);
-
- Если Не ТекущаяСтрока = Неопределено И ТекущаяСтрока.Доступно Тогда
- Результат = Новый Структура("Имя");
- Результат.Имя = СобратьИмена(ТекущаяСтрока);
- КонецЕсли;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-&НаСервере
-Процедура РазвернутьПодчиненные(ИдСтроки)
-
- СтрокаДерева = Поля.НайтиПоИдентификатору(ИдСтроки);
- Если СтрокаДерева = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ДобавитьОписаниеРеквизитов(СтрокаДерева, "Справочники", ОписаниеСправочники, "СправочникСсылка");
- ДобавитьОписаниеРеквизитов(СтрокаДерева, "Документы", ОписаниеДокументы, "ДокументСсылка");
-
-КонецПроцедуры
-
-&НаСервере
-Процедура ДобавитьОписаниеРеквизитов(СтрокаДерева,ИмяКоллекции,ОписаниеКоллекции,НачалоИмениТипа)
-
- Если Не ТипЗнч(СтрокаДерева) = Тип("ДанныеФормыЭлементДерева") Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого Тип Из СтрокаДерева.Тип.Типы() Цикл
-
- Если ОписаниеКоллекции.СодержитТип(Тип) Тогда
-
- Результат = __ОбщегоНазначенияСервер.ПолучитьИмяОбъектаПоОписаниюТипов(СтрокаДерева.Тип,ИмяКоллекции,НачалоИмениТипа);
- Если Результат <> Неопределено Тогда
-
- Коллекция = СтрокаДерева.ПолучитьЭлементы();
-
- Если Не Коллекция.Количество() = 1 Тогда
- Продолжить;
- КонецЕсли;
-
- ПерваяСтрока = Коллекция[0];
-
- Если ПерваяСтрока.Имя = "СлужебнаяДляРазворота" Тогда
- Коллекция.Очистить();
- Иначе
- Продолжить;
- КонецЕсли;
-
- Если ИмяКоллекции = "Справочники" Тогда
-
- ЭлементПодч = Коллекция.Добавить();
- ЗаполнитьЭлементДерева(ЭлементПодч, "Код");
-
- ЭлементПодч = Коллекция.Добавить();
- ЗаполнитьЭлементДерева(ЭлементПодч, "Наименование");
-
- ИначеЕсли ИмяКоллекции = "Документы" Тогда
-
- ЭлементПодч = Коллекция.Добавить();
- ЗаполнитьЭлементДерева(ЭлементПодч, "Дата");
-
- ЭлементПодч = Коллекция.Добавить();
- ЗаполнитьЭлементДерева(ЭлементПодч, "Номер");
-
- ЭлементПодч = Коллекция.Добавить();
- ЗаполнитьЭлементДерева(ЭлементПодч, "Проведен");
-
- КонецЕсли;
-
- Для Каждого ТекущийОбъект Из Метаданные[ИмяКоллекции][Результат.Имя].Реквизиты Цикл
-
- ЗаполнитьЭлементДерева(Коллекция.Добавить(),
- ТекущийОбъект.Имя, ТекущийОбъект.Синоним, ТекущийОбъект.Тип, Истина, Истина);
- КонецЦикла;
-
- Прервать;
-
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Help.xml" "b/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Help.xml"
deleted file mode 100644
index 4294b565..00000000
--- "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Help.xml"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- ru
-
\ No newline at end of file
diff --git "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Help/ru.html" "b/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Help/ru.html"
deleted file mode 100644
index 7fe73503..00000000
--- "a/release/CommonForms/__\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260\320\237\320\276\320\273\321\217/Ext/Help/ru.html"
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
Вспомогательная форма.
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml" "b/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml"
deleted file mode 100644
index dbee850e..00000000
--- "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ВспомогательныйМодульНеПереносить
-
-
- ru
- Вспомогательный модуль (не переносить)
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl" "b/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl"
deleted file mode 100644
index 24593a90..00000000
--- "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214/Ext/Module.bsl"
+++ /dev/null
@@ -1,382 +0,0 @@
-Функция НайтиЗадания(ПараметрыЗадания) Экспорт
-
- МассивЗаданий = Новый Массив;
- МассивЗаданий.Добавить(Новый Структура("Использование, Расписание", Ложь, Новый РасписаниеРегламентногоЗадания()));
- Возврат МассивЗаданий;
-
-КонецФункции
-
-Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено,
- СокращатьНепечатаемыеСимволы = Ложь) Экспорт
-
- Если СтрДлина(Разделитель) = 1
- И ПропускатьПустыеСтроки = Неопределено
- И СокращатьНепечатаемыеСимволы Тогда
-
- Результат = СтрРазделить(Значение, Разделитель, Ложь);
- Для Индекс = 0 По Результат.ВГраница() Цикл
- Результат[Индекс] = СокрЛП(Результат[Индекс])
- КонецЦикла;
- Возврат Результат;
-
- КонецЕсли;
-
- Результат = Новый Массив;
-
- // Для обеспечения обратной совместимости.
- Если ПропускатьПустыеСтроки = Неопределено Тогда
- ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь);
- Если ПустаяСтрока(Значение) Тогда
- Если Разделитель = " " Тогда
- Результат.Добавить("");
- КонецЕсли;
- Возврат Результат;
- КонецЕсли;
- КонецЕсли;
- //
-
- Позиция = СтрНайти(Значение, Разделитель);
- Пока Позиция > 0 Цикл
- Подстрока = Лев(Значение, Позиция - 1);
- Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда
- Если СокращатьНепечатаемыеСимволы Тогда
- Результат.Добавить(СокрЛП(Подстрока));
- Иначе
- Результат.Добавить(Подстрока);
- КонецЕсли;
- КонецЕсли;
- Значение = Сред(Значение, Позиция + СтрДлина(Разделитель));
- Позиция = СтрНайти(Значение, Разделитель);
- КонецЦикла;
-
- Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Значение) Тогда
- Если СокращатьНепечатаемыеСимволы Тогда
- Результат.Добавить(СокрЛП(Значение));
- Иначе
- Результат.Добавить(Значение);
- КонецЕсли;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт
-
- ПараметрыСтрока = "";
- Если Параметры <> Неопределено И Параметры.Количество() > 0 Тогда
- Для Индекс = 0 По Параметры.ВГраница() Цикл
- ПараметрыСтрока = ПараметрыСтрока + "Параметры[" + XMLСтрока(Индекс) + "],";
- КонецЦикла;
- ПараметрыСтрока = Сред(ПараметрыСтрока, 1, СтрДлина(ПараметрыСтрока) - 1);
- КонецЕсли;
-
- Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
-
-КонецПроцедуры
-
-// Выполняет произвольный алгоритм на встроенном языке 1С:Предприятия, предварительно устанавливая
-// безопасный режим выполнения кода и безопасный режим разделения данных для всех разделителей,
-// присутствующих в составе конфигурации.
-//
-// Параметры:
-// Алгоритм - Строка - алгоритм на встроенном языке "1С:Предприятия".
-// Параметры - Произвольный - контекст, который требуется для выполнения алгоритма.
-// В тексте алгоритма обращение к контексту должно происходить по имени "Параметры".
-// Например, выражение "Параметры.Значение1 = Параметры.Значение2" обращается к значениям
-// "Значение1" и "Значение2", переданным в Параметры, как свойства.
-//
-// Пример:
-//
-// Параметры = Новый Структура;
-// Параметры.Вставить("Значение1", 1);
-// Параметры.Вставить("Значение2", 10);
-// ОбщегоНазначения.ВыполнитьВБезопасномРежиме("Параметры.Значение1 = Параметры.Значение2", Параметры);
-//
-Процедура ВыполнитьВБезопасномРежиме(Знач Алгоритм, Знач Параметры = Неопределено) Экспорт
-
- УстановитьБезопасныйРежим(Истина);
-
- Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
- МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса");
- МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации();
- Иначе
- МассивРазделителей = Новый Массив;
- КонецЕсли;
-
- Для Каждого ИмяРазделителя Из МассивРазделителей Цикл
-
- УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
-
- КонецЦикла;
-
- Выполнить Алгоритм;
-
-КонецПроцедуры
-
-// Возвращает Истина, если "функциональная" подсистема существует в конфигурации.
-// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
-//
-// У "функциональной" подсистемы снят флажок "Включать в командный интерфейс".
-//
-// Параметры:
-// ПолноеИмяПодсистемы - Строка - полное имя объекта метаданных подсистема
-// без слов "Подсистема." и с учетом регистра символов.
-// Например: "СтандартныеПодсистемы.ВариантыОтчетов".
-//
-// Пример:
-// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
-// МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов");
-// МодульВариантыОтчетов.<Имя метода>();
-// КонецЕсли;
-//
-// Возвращаемое значение:
-// Булево - Истина, если существует.
-//
-Функция ПодсистемаСуществует(ПолноеИмяПодсистемы) Экспорт
-
- ИменаПодсистем = __ВспомогательныйМодульНеПереноситьПотвИсп.ИменаПодсистем();
- Возврат ИменаПодсистем.Получить(ПолноеИмяПодсистемы) <> Неопределено;
-
-КонецФункции
-
-// Возвращает ссылку на общий модуль или модуль менеджера по имени.
-//
-// Параметры:
-// Имя - Строка - имя общего модуля.
-//
-// Возвращаемое значение:
-// ОбщийМодуль
-// МодульМенеджераОбъекта
-//
-// Пример:
-// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
-// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
-// МодульОбновлениеКонфигурации.<Имя метода>();
-// КонецЕсли;
-//
-// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
-// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер");
-// МодульПолнотекстовыйПоискСервер.<Имя метода>();
-// КонецЕсли;
-//
-Функция ОбщийМодуль(Имя) Экспорт
-
- Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
- // АПК:488-выкл ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно.
- УстановитьБезопасныйРежим(Истина);
- Модуль = Вычислить(Имя);
- // АПК:488-вкл
- ИначеЕсли СтрЧислоВхождений(Имя, ".") = 1 Тогда
- Возврат СерверныйМодульМенеджера(Имя);
- Иначе
- Модуль = Неопределено;
- КонецЕсли;
-
- Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
- ВызватьИсключение __СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Общий модуль ""%1"" не существует.';
- |en = 'Common module ""%1"" does not exist.'"),
- Имя);
- КонецЕсли;
-
- Возврат Модуль;
-
-КонецФункции
-
-// Возвращает серверный модуль менеджера по имени объекта.
-Функция СерверныйМодульМенеджера(Имя)
- ОбъектНайден = Ложь;
-
- ЧастиИмени = СтрРазделить(Имя, ".");
- Если ЧастиИмени.Количество() = 2 Тогда
-
- ИмяВида = ВРег(ЧастиИмени[0]);
- ИмяОбъекта = ЧастиИмени[1];
-
- Если ИмяВида = ВРег("Константы") Тогда
- Если Метаданные.Константы.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыСведений") Тогда
- Если Метаданные.РегистрыСведений.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыНакопления") Тогда
- Если Метаданные.РегистрыНакопления.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыБухгалтерии") Тогда
- Если Метаданные.РегистрыБухгалтерии.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("РегистрыРасчета") Тогда
- Если Метаданные.РегистрыРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Справочники") Тогда
- Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Документы") Тогда
- Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Отчеты") Тогда
- Если Метаданные.Отчеты.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Обработки") Тогда
- Если Метаданные.Обработки.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("БизнесПроцессы") Тогда
- Если Метаданные.БизнесПроцессы.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ЖурналыДокументов") Тогда
- Если Метаданные.ЖурналыДокументов.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("Задачи") Тогда
- Если Метаданные.Задачи.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыСчетов") Тогда
- Если Метаданные.ПланыСчетов.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыОбмена") Тогда
- Если Метаданные.ПланыОбмена.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыВидовХарактеристик") Тогда
- Если Метаданные.ПланыВидовХарактеристик.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- ИначеЕсли ИмяВида = ВРег("ПланыВидовРасчета") Тогда
- Если Метаданные.ПланыВидовРасчета.Найти(ИмяОбъекта) <> Неопределено Тогда
- ОбъектНайден = Истина;
- КонецЕсли;
- КонецЕсли;
-
- КонецЕсли;
-
- Если Не ОбъектНайден Тогда
- ВызватьИсключение __СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Объект метаданных ""%1"" не существует.';
- |en = 'Metadata object ""%1"" does not exist.'"), Имя);
- КонецЕсли;
-
- // АПК:488-выкл ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно.
- УстановитьБезопасныйРежим(Истина);
- Модуль = Вычислить(Имя);
- // АПК:488-вкл
-
- Возврат Модуль;
-КонецФункции
-
-// Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
-//
-// В фоновом задании длительной операции, если вызов выполнен вне транзакции,
-// сообщение записывается в служебный регистр и отправляется сразу на клиент,
-// если подключена система взаимодействия.
-// В конце фонового задания длительной операции, а также при отправке прогресса,
-// все сообщения извлекаются из очереди сообщений фонового задания,
-// записываются в служебный регистр и отправляются сразу на клиент,
-// если подключена система взаимодействия.
-//
-// АПК:142-выкл 4 необязательных параметра для совместимости
-// с устаревшей процедурой ОбщегоНазначенияКлиентСервер.СообщитьПользователю.
-//
-// Параметры:
-// ТекстСообщенияПользователю - Строка - текст сообщения.
-// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
-// Поле - Строка - наименование реквизита формы.
-// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
-// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
-//
-// Пример:
-//
-// 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "ПолеВРеквизитеФормыОбъект",
-// "Объект");
-//
-// Альтернативный вариант использования в форме объекта:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "Объект.ПолеВРеквизитеФормыОбъект");
-//
-// 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ,
-// "ИмяРеквизитаФормы");
-//
-// 3. Для вывода сообщения связанного с объектом информационной базы:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
-//
-// 4. Для вывода сообщения по ссылке на объект информационной базы:
-// ОбщегоНазначения.СообщитьПользователю(
-// НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
-//
-// Случаи некорректного использования:
-// 1. Передача одновременно параметров КлючДанных и ПутьКДанным.
-// 2. Передача в параметре КлючДанных значения типа отличного от допустимого.
-// 3. Установка ссылки без установки поля (и/или пути к данным).
-//
-Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "",
- Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
-
- ЭтоОбъект = Ложь;
-
- Если КлючДанных <> Неопределено
- И XMLТипЗнч(КлючДанных) <> Неопределено Тогда
-
- ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа;
- ЭтоОбъект = СтрНайти(ТипЗначенияСтрокой, "Object.") > 0;
- КонецЕсли;
-
- Сообщение = СообщениеПользователю(ТекстСообщенияПользователю,
- КлючДанных, Поле, ПутьКДанным, Отказ, ЭтоОбъект);
-
- //Если СтандартныеПодсистемыПовтИсп.ЭтоСеансДлительнойОперации()
- // И Не ТранзакцияАктивна() Тогда
- //
- // ДлительныеОперации.ОтправитьОповещениеКлиенту("СообщениеПользователю", Сообщение);
- //Иначе
- Сообщение.Сообщить();
- //КонецЕсли;
-
-КонецПроцедуры
-
-Функция СообщениеПользователю(
- Знач ТекстСообщенияПользователю,
- Знач КлючДанных,
- Знач Поле,
- Знач ПутьКДанным = "",
- Отказ = Ложь,
- ЭтоОбъект = Ложь) Экспорт
-
- Сообщение = Новый СообщениеПользователю;
- Сообщение.Текст = ТекстСообщенияПользователю;
- Сообщение.Поле = Поле;
-
- Если ЭтоОбъект Тогда
- Сообщение.УстановитьДанные(КлючДанных);
- Иначе
- Сообщение.КлючДанных = КлючДанных;
- КонецЕсли;
-
- Если НЕ ПустаяСтрока(ПутьКДанным) Тогда
- Сообщение.ПутьКДанным = ПутьКДанным;
- КонецЕсли;
-
- Отказ = Истина;
-
- Возврат Сообщение;
-
-КонецФункции
-
diff --git "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index c5b731c8..00000000
--- "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ВспомогательныйМодульНеПереноситьКлиент
-
-
- ru
- Вспомогательный модуль клиент (не переносить)
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 0d263ec4..00000000
--- "a/release/CommonModules/__\320\222\321\201\320\277\320\276\320\274\320\276\320\263\320\260\321\202\320\265\320\273\321\214\320\275\321\213\320\271\320\234\320\276\320\264\321\203\320\273\321\214\320\235\320\265\320\237\320\265\321\200\320\265\320\275\320\276\321\201\320\270\321\202\321\214\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,5 +0,0 @@
-Функция ПредопределенныйЭлемент(ПолноеИмяПредопределенного) Экспорт
-
- Возврат ПредопределенноеЗначение(ПолноеИмяПредопределенного);
-
-КонецФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.xml" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.xml"
deleted file mode 100644
index bc083e0a..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ДокументыОбработкаЗаполнения
-
-
- ru
- Документы обработка заполнения
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl"
deleted file mode 100644
index c5c5b64a..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl"
+++ /dev/null
@@ -1,72 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-///////////////////////////////////////////////////////////////////////////////
-// Документы событие "Обработка заполнения" (вызов сервера): обработка событий при заполнении
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при вводе документа на основании, а также при выполнении метода Заполнить,
-// при вводе на основании, а также при интерактивном вводе нового.
-//
-// Параметры:
-// Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события.
-// ДанныеЗаполнения - Произвольный - Значение, которое используется как основание для заполнения.
-// ТекстЗаполнения - Строка, Неопределено - Текст, используемый для заполнения документа.
-// СтандартнаяОбработка - Булево - Признак выполнения стандартной (системной) обработки события.
-//
-Процедура ДокументыОбработкаЗаполнения(Источник, ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.ДокументыОбработкаЗаполнения().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(ДанныеЗаполнения);
- ПараметрыМетода.Добавить(ТекстЗаполнения);
- ПараметрыМетода.Добавить(СтандартнаяОбработка);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.xml" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.xml"
deleted file mode 100644
index 4ca32901..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ДокументыОбработкаПроведения
-
-
- ru
- Документы обработка проведения
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl"
deleted file mode 100644
index 7ab2c3f7..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217/Ext/Module.bsl"
+++ /dev/null
@@ -1,70 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Документы событие "Обработка проведения" (вызов сервера): обработка событий при проведении
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при проведении документа.
-// Основное назначение процедуры-обработчика данного события - генерация движений по документу. Выполняется в транзакции записи.
-//
-// Параметры:
-// Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события.
-// Отказ - Булево - Признак проведения документа.
-// РежимПроведения - РежимПроведенияДокумента - Текущий режим проведения.
-//
-Процедура ДокументыОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.ДокументыОбработкаПроведения().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(Отказ);
- ПараметрыМетода.Добавить(РежимПроведения);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216.xml" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216.xml"
deleted file mode 100644
index 66e46fb6..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ДокументыПередЗаписью
-
-
- ru
- Документы перед записью
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl"
deleted file mode 100644
index 0e7f2dc2..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl"
+++ /dev/null
@@ -1,71 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Документы событие "Перед записью" (вызов сервера): обработка событий перед записью
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает перед выполнением записи объекта.
-// Процедура-обработчик вызывается после начала транзакции записи, но до начала записи документа.
-//
-// Параметры:
-// Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события.
-// Отказ - Булево - Признак отказа от записи.
-// РежимЗаписи - РежимЗаписиДокумента - Текущий режим записи документа.
-// РежимПроведения - РежимПроведенияДокумента - Текущий режим проведения.
-//
-Процедура ДокументыПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.ДокументыПередЗаписью().Получить(ТипЗнч(Источник));
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(Отказ);
- ПараметрыМетода.Добавить(РежимЗаписи);
- ПараметрыМетода.Добавить(РежимПроведения);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270.xml" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270.xml"
deleted file mode 100644
index 5f3ee7e8..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ДокументыПриЗаписи
-
-
- ru
- Документы при записи
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl"
deleted file mode 100644
index 9831a5e1..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,68 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Документы событие "При записи" (вызов сервера): обработка событий при записи
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при записи объекта.
-// Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.
-//
-// Параметры:
-// Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события.
-// Отказ - Булево - Признак отказа от записи документа.
-//
-Процедура ДокументыПриЗаписи(Источник, Отказ) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.ДокументыПриЗаписи().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(Отказ);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.xml" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.xml"
deleted file mode 100644
index fec19635..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ДокументыПриКопировании
-
-
- ru
- Документы при копировании
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" "b/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl"
deleted file mode 100644
index a71c6305..00000000
--- "a/release/CommonModules/__\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,67 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Документы событие "При копировании" (вызов сервера): обработка событий при копировании
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при создании документа копированием.
-//
-// Параметры:
-// Источник - ДокументОбъект - Объект, обрабатываемый подпиской на события.
-// ОбъектКопирования - ДокументОбъект - Исходный документ, который является источником копирования.
-//
-Процедура ДокументыПриКопировании(Источник, ОбъектКопирования) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.ДокументыПриКопировании().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(ОбъектКопирования);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 220aeda4..00000000
--- "a/release/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ИнтеграцииСервер
-
-
- ru
- Интеграции (сервер)
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 7a4f1ee7..00000000
--- "a/release/CommonModules/__\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,464 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ПрограммныйИнтерфейс
-
-// Процедура создает запись справочника История интеграции с информацией о событии интеграции
-//
-// Параметры:
-// СтруктураЗаписиИстории - Структура - описание действия повлекшего ошибку
-// ЭтоЗагрузка - Булево - Истина если это Загрузка, Ложь если это Выгрузка
-//
-Процедура СоздатьСообщениеИсторииИнтеграции(СтруктураЗаписиИстории, ЭтоЗагрузка) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- Пользователи = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УстановитьПривилегированныйРежим(Истина);
-
- ДополнительноОбработатьЗапросыИнтеграцииПередЗаписьюВИсторию(СтруктураЗаписиИстории);
-
- НовоеСообщение = Справочники.__ИсторияИнтеграции.СоздатьЭлемент();
- НовоеСообщение.ДатаИнтеграции = ТекущаяДатаСеанса();
- НовоеСообщение.ДатаИнтеграцииВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах();
- НовоеСообщение.Код = Новый УникальныйИдентификатор();
- НовоеСообщение.Ошибка = ЗначениеЗаполнено(СтруктураЗаписиИстории.ОписаниеОшибки);
- НовоеСообщение.Пользователь = Пользователи.ТекущийПользователь();
- НовоеСообщение.ДлительностьОбмена = НовоеСообщение.ДатаИнтеграции - СтруктураЗаписиИстории.ДатаНачалаИнтеграции;
- НовоеСообщение.ДлительностьВызова = СтруктураЗаписиИстории.ДлительностьВызова;
- Если ЭтоЗагрузка Тогда
- Если НовоеСообщение.Ошибка Тогда
- НовоеСообщение.Статус = Перечисления.__СтатусыИнтеграции.ОшибкаЗагрузки;
- Иначе
- НовоеСообщение.Статус = Перечисления.__СтатусыИнтеграции.Загружено;
- КонецЕсли;
- Иначе
- Если НовоеСообщение.Ошибка Тогда
- НовоеСообщение.Статус = Перечисления.__СтатусыИнтеграции.ОшибкаВыгрузки;
- Иначе
- НовоеСообщение.Статус = Перечисления.__СтатусыИнтеграции.Выгружено;
- КонецЕсли;
- КонецЕсли;
- ЗаполнитьЗначенияСвойств(НовоеСообщение, СтруктураЗаписиИстории);
- Для Каждого Строка Из СтруктураЗаписиИстории.ОбъектыИнтеграции Цикл
- НоваяСтрока = НовоеСообщение.ОбъектыИнтеграции.Добавить();
- ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
- КонецЦикла;
-
- НовоеСообщение.Записать();
-
-КонецПроцедуры
-
-// Функция возвращает структуру со всеми необходимыми значениями для заполнения записи истории интеграции
-//
-// Возвращаемое значение:
-// Строка
-Функция ПолучитьСтруктуруЗаписиИстории() Экспорт
-
- СтруктураЗаписиИстории = Новый Структура;
- СтруктураЗаписиИстории.Вставить("МетодИнтеграции", "");
- СтруктураЗаписиИстории.Вставить("ЗапросВходящий", "");
- СтруктураЗаписиИстории.Вставить("ЗапросИсходящий", "");
- СтруктураЗаписиИстории.Вставить("ИнтегрируемаяСистема", Неопределено);
- СтруктураЗаписиИстории.Вставить("ОписаниеОшибки", "");
- СтруктураЗаписиИстории.Вставить("ПротоколОбмена", "");
- СтруктураЗаписиИстории.Вставить("ДатаНачалаИнтеграции", ТекущаяДатаСеанса());
- СтруктураЗаписиИстории.Вставить("ДлительностьВызова", 0);
- СтруктураЗаписиИстории.Вставить("ФорматЗапросаИнтеграции", Перечисления.__ФорматыЗапросовИнтеграции.XML);
- ОбъектыИнтеграции = Новый ТаблицаЗначений;
- ОбъектыИнтеграции.Колонки.Добавить("ОбъектИнтеграции");
- ОбъектыИнтеграции.Колонки.Добавить("СозданОбновлен");
- СтруктураЗаписиИстории.Вставить("ОбъектыИнтеграции", ОбъектыИнтеграции);
-
- Возврат СтруктураЗаписиИстории;
-
-КонецФункции
-
-// Процедура добавляет сообщения в протокол обмена через указанный разделитель
-//
-// Параметры:
-// СтруктураОтвета - Структура - см. ИнтеграцииСервер.ПолучитьСтруктуруЗаписиИстории
-// ТекстСообщения - Строка - Текст, который будет записан в протокол обмена
-// Разделитель - Строка - Разделитель записей
-Процедура ДобавитьЗаписьВПротоколОбмена(СтруктураОтвета, ТекстСообщения, Разделитель = "") Экспорт
-
- Если ПустаяСтрока(Разделитель) Тогда
- Разделитель = ";" + Символы.ПС;
- КонецЕсли;
-
- ВыводРазделителя = ?(ПустаяСтрока(СтруктураОтвета.ПротоколОбмена), "", Разделитель);
-
- СтруктураОтвета.ПротоколОбмена = СтруктураОтвета.ПротоколОбмена + ВыводРазделителя + НСтр(ТекстСообщения);
-
-КонецПроцедуры
-
-// Функция форматирует XML запрос в строковом виде для удобного чтения
-//
-// Параметры:
-// XMLТекст - Строка - XML запрос в строковом виде
-// ИспользоватьОтступы - Булево - по-умолчанию Ложь
-// Возвращаемое значение:
-// Строка
-Функция ОтформатироватьXMLЧерезDOM(XMLТекст, ИспользоватьОтступы = Ложь) Экспорт
-
- ЧтениеXML = Новый ЧтениеXML;
- ЧтениеXML.УстановитьСтроку(XMLТекст);
-
- ПостроительDOM = Новый ПостроительDOM;
- ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
-
- ЗаписьXML = Новый ЗаписьXML;
- ЗаписьXML.УстановитьСтроку(Новый ПараметрыЗаписиXML(,, ИспользоватьОтступы, ИспользоватьОтступы));
-
- ЗаписьDOM = Новый ЗаписьDOM;
- ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
-
- Возврат ЗаписьXML.Закрыть();
-
-КонецФункции
-
-// Функция возвращает структуру с настройками для интеграции
-//
-// Параметры:
-// НастройкаИнтеграции - СправочникСсылка.__НастройкиИнтеграции - Ссылка на элемент справочника Настройки интеграции
-// Возвращаемое значение:
-// Структура
-Функция ПолучитьСтруктуруНастроекИнтеграции(НастройкаИнтеграции) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УстановитьПривилегированныйРежим(Истина);
-
- СтруктураНастроек = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(НастройкаИнтеграции, "Сервер, Порт");
- ДанныеБезопасногоХранилища = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаИнтеграции);
-
- Для Каждого КлючИЗначение Из ДанныеБезопасногоХранилища Цикл
- СтруктураНастроек.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
- КонецЦикла;
-
- УстановитьПривилегированныйРежим(Ложь);
-
- Возврат СтруктураНастроек;
-
-КонецФункции
-
-// Функция возвращает структуру с настройками для интеграции
-//
-// Параметры:
-// МетодИнтеграции - СправочникСсылка.__МетодыИнтеграции - Ссылка на элемент справочника Методы интеграции
-// Возвращаемое значение:
-// Структура
-Функция ПолучитьСтруктуруМетодаИНастроекИнтеграции(МетодИнтеграции) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- СтруктураМетодаИНастроек = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(МетодИнтеграции, "НастройкаИнтеграции, Метод");
- СтруктураНастроек = ПолучитьСтруктуруНастроекИнтеграции(СтруктураМетодаИНастроек.НастройкаИнтеграции);
- ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(СтруктураМетодаИНастроек, СтруктураНастроек);
-
- Возврат СтруктураМетодаИНастроек;
-
-КонецФункции
-
-// Функция возвращает строку, закодированную в base64.
-//
-// Параметры:
-// ПодготовленнаяСтрока - Строка - Исходная строка, которую необходимо конвертировать в Base64
-// КодировкаТекста - Строка - Кодировка текста
-//
-// Возвращаемое значение:
-// Строка - Зашифрованная строка в Base64
-//
-Функция ЗашифроватьBase64Сервер(ПодготовленнаяСтрока, КодировкаТекста = "UTF-8") Экспорт
-
- ДвоичныеДанныеСтроки = ПолучитьДвоичныеДанныеИзСтроки(ПодготовленнаяСтрока, КодировкаТекста);
- Base64Hash = ПолучитьBase64СтрокуИзДвоичныхДанных(ДвоичныеДанныеСтроки);
-
- Возврат Base64Hash;
-
-КонецФункции
-
-Функция ДатаИзUnixTime(Знач Секунд) Экспорт
-
- Если Не ЗначениеЗаполнено(Секунд) Тогда
- Возврат '0001.01.01';
- ИначеЕсли ТипЗнч(Секунд) = Тип("Строка") Тогда
- Секунд = Число(Секунд);
- КонецЕсли;
-
- Дата = '1970.01.01' + Секунд;
-
- Возврат Дата;
-
-КонецФункции
-
-#Область REST
-
-Функция ПолучитьЗапросТекстомИзСоответствияJSON(ТелоЗапросаJSON) Экспорт
-
- НастройкиСериализации = Новый НастройкиСериализацииJSON;
- НастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.УниверсальнаяДата;
- НастройкиСериализации.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
-
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.УстановитьСтроку();
- ЗаписатьJSON(ЗаписьJSON, ТелоЗапросаJSON, НастройкиСериализации);
- СтрокаJSON = ЗаписьJSON.Закрыть();
-
- Возврат СтрокаJSON;
-
-КонецФункции
-
-Функция ПодготовитьТаблицуКодовОтветаHTTP() Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ТаблицаКодовОтвета = Новый ТаблицаЗначений;
- ТаблицаКодовОтвета.Колонки.Добавить("КодОтвета" , ОбщегоНазначения.ОписаниеТипаЧисло(3));
- ТаблицаКодовОтвета.Колонки.Добавить("КраткоеОписание" , ОбщегоНазначения.ОписаниеТипаСтрока(150));
-
- // Успешные
- НоваяСтрока = ТаблицаКодовОтвета.Добавить();
- НоваяСтрока.КодОтвета = 100;
- НоваяСтрока.КраткоеОписание = РасшифровкаКодаСостоянияHTTP(НоваяСтрока.КодОтвета);
-
- НоваяСтрока = ТаблицаКодовОтвета.Добавить();
- НоваяСтрока.КодОтвета = 200;
- НоваяСтрока.КраткоеОписание = РасшифровкаКодаСостоянияHTTP(НоваяСтрока.КодОтвета);
-
- // Сообщения о перенаправлениях
- Для Инкремент = 0 По 8 Цикл
- НоваяСтрока = ТаблицаКодовОтвета.Добавить();
-
- НоваяСтрока.КодОтвета = Число("30" + Инкремент);
- НоваяСтрока.КраткоеОписание = РасшифровкаКодаСостоянияHTTP(НоваяСтрока.КодОтвета);
- КонецЦикла;
-
- // Клиентские
- Для Инкремент = 0 По 17 Цикл
- НоваяСтрока = ТаблицаКодовОтвета.Добавить();
-
- Если Инкремент < 10 Тогда
- НоваяСтрока.КодОтвета = Число("40" + Инкремент);
- Иначе
- НоваяСтрока.КодОтвета = Число("4" + Инкремент);
- КонецЕсли;
-
- НоваяСтрока.КраткоеОписание = РасшифровкаКодаСостоянияHTTP(НоваяСтрока.КодОтвета);
- КонецЦикла;
-
- НоваяСтрока = ТаблицаКодовОтвета.Добавить();
- НоваяСтрока.КодОтвета = 429;
- НоваяСтрока.КраткоеОписание = РасшифровкаКодаСостоянияHTTP(НоваяСтрока.КодОтвета);
-
- // Серверные
- Для Инкремент = 0 По 11 Цикл
- НоваяСтрока = ТаблицаКодовОтвета.Добавить();
-
- Если Инкремент < 10 Тогда
- НоваяСтрока.КодОтвета = Число("50" + Инкремент);
- Иначе
- НоваяСтрока.КодОтвета = Число("5" + Инкремент);
- КонецЕсли;
-
- НоваяСтрока.КраткоеОписание = РасшифровкаКодаСостоянияHTTP(НоваяСтрока.КодОтвета);
- КонецЦикла;
-
- Возврат ТаблицаКодовОтвета;
-
-КонецФункции
-// Функция возвратает расшифровку под коду состояния HTTP-ответа
-//
-// Параметры:
-// КодСостояния - Число - код состояния HTTP-ответа
-//
-// Возвращаемое значение:
-// - Строка - Расшифровка кода
-//
-Функция РасшифровкаКодаСостоянияHTTP(КодСостояния) Экспорт
-
- Если 100 <= КодСостояния И КодСостояния <= 299 Тогда
- Расшифровка = НСтр("ru = 'Успешно.'");
- ИначеЕсли КодСостояния = 300 Тогда // Multiple Choice
- Расшифровка = НСтр("ru = 'Запрос имеет более чем один из возможных ответов.'");
- ИначеЕсли КодСостояния = 301 Тогда // Moved Permanently
- Расшифровка = НСтр("ru = 'URI запрашиваемого ресурса был изменён.'");
- ИначеЕсли КодСостояния = 302 Тогда // Found
- Расшифровка = НСтр("ru = 'Запрошенный ресурс временно изменён.'");
- ИначеЕсли КодСостояния = 303 Тогда // See Other
- Расшифровка = НСтр("ru = 'Попробуйте получить запрашиваемый ресурс в другой URI с запросом GET.'");
- ИначеЕсли КодСостояния = 304 Тогда // Not Modified
- Расшифровка = НСтр("ru = 'Нет необходимости повторно передавать запрошенные ресурсы.'");
- ИначеЕсли КодСостояния = 305 Тогда // Use Proxy
- Расшифровка = НСтр("ru = 'Запрошенный ресурс должен быть доступен через прокси.'");
- ИначеЕсли КодСостояния = 306 Тогда // Switch Proxy
- Расшифровка = НСтр("ru = 'Последующие запросы должны использовать указанный прокси.'");
- ИначеЕсли КодСостояния = 307 Тогда // Temporary Redirect
- Расшифровка = НСтр("ru = 'Запрошенный ресурс временно перенаправлен на другой URL-адрес с тем же методом, который использовал предыдущий запрос.'");
- ИначеЕсли КодСостояния = 308 Тогда // Permanent Redirect
- Расшифровка = НСтр("ru = 'Запрошенный ресурс теперь постоянно находится в другом URI.'");
- ИначеЕсли КодСостояния = 400 Тогда // Bad Request
- Расшифровка = НСтр("ru = 'Запрос не может быть исполнен.'");
- ИначеЕсли КодСостояния = 401 Тогда // Unauthorized
- Расшифровка = НСтр("ru = 'Попытка авторизации на сервере была отклонена.'");
- ИначеЕсли КодСостояния = 402 Тогда // Payment Required
- Расшифровка = НСтр("ru = 'Требуется оплата.'");
- ИначеЕсли КодСостояния = 403 Тогда // Forbidden
- Расшифровка = НСтр("ru = 'К запрашиваемому ресурсу нет доступа.'");
- ИначеЕсли КодСостояния = 404 Тогда // Not Found
- Расшифровка = НСтр("ru = 'Запрашиваемый ресурс не существует на сервере.'");
- ИначеЕсли КодСостояния = 405 Тогда // Method Not Allowed
- Расшифровка = НСтр("ru = 'Метод запроса не поддерживается сервером.'");
- ИначеЕсли КодСостояния = 406 Тогда // Not Acceptable
- Расшифровка = НСтр("ru = 'Запрошенный формат данных не поддерживается сервером.'");
- ИначеЕсли КодСостояния = 407 Тогда // Proxy Authentication Required
- Расшифровка = НСтр("ru = 'Ошибка аутентификации на прокси-сервере'");
- ИначеЕсли КодСостояния = 408 Тогда // Request Timeout
- Расшифровка = НСтр("ru = 'Время ожидания сервером передачи от клиента истекло.'");
- ИначеЕсли КодСостояния = 409 Тогда // Conflict
- Расшифровка = НСтр("ru = 'Запрос не может быть выполнен из-за конфликтного обращения к ресурсу.'");
- ИначеЕсли КодСостояния = 410 Тогда // Gone
- Расшифровка = НСтр("ru = 'Ресурс на сервере был перемещен.'");
- ИначеЕсли КодСостояния = 411 Тогда // Length Required
- Расшифровка = НСтр("ru = 'Сервер требует указание ""Content-length."" в заголовке запроса.'");
- ИначеЕсли КодСостояния = 412 Тогда // Precondition Failed
- Расшифровка = НСтр("ru = 'Запрос не применим к ресурсу'");
- ИначеЕсли КодСостояния = 413 Тогда // Request Entity Too Large
- Расшифровка = НСтр("ru = 'Сервер отказывается обработать, слишком большой объем передаваемых данных.'");
- ИначеЕсли КодСостояния = 414 Тогда // Request-URL Too Long
- Расшифровка = НСтр("ru = 'Сервер отказывается обработать, слишком длинный URL.'");
- ИначеЕсли КодСостояния = 415 Тогда // Unsupported Media-Type
- Расшифровка = НСтр("ru = 'Сервер заметил, что часть запроса была сделана в неподдерживаемом формат'");
- ИначеЕсли КодСостояния = 416 Тогда // Requested Range Not Satisfiable
- Расшифровка = НСтр("ru = 'Часть запрашиваемого ресурса не может быть предоставлена'");
- ИначеЕсли КодСостояния = 417 Тогда // Expectation Failed
- Расшифровка = НСтр("ru = 'Сервер не может предоставить ответ на указанный запрос.'");
- ИначеЕсли КодСостояния = 429 Тогда // Too Many Requests
- Расшифровка = НСтр("ru = 'Слишком много запросов за короткое время.'");
- ИначеЕсли КодСостояния = 500 Тогда // Internal Server Error
- Расшифровка = НСтр("ru = 'Внутренняя ошибка сервера.'");
- ИначеЕсли КодСостояния = 501 Тогда // Not Implemented
- Расшифровка = НСтр("ru = 'Сервер не поддерживает метод запроса.'");
- ИначеЕсли КодСостояния = 502 Тогда // Bad Gateway
- Расшифровка = НСтр("ru = 'Сервер, выступая в роли шлюза или прокси-сервера,
- |получил недействительное ответное сообщение от вышестоящего сервера.'");
- ИначеЕсли КодСостояния = 503 Тогда // Server Unavailable
- Расшифровка = НСтр("ru = 'Сервер временно не доступен.'");
- ИначеЕсли КодСостояния = 504 Тогда // Gateway Timeout
- Расшифровка = НСтр("ru = 'Сервер в роли шлюза или прокси-сервера
- |не дождался ответа от вышестоящего сервера для завершения текущего запроса.'");
- ИначеЕсли КодСостояния = 505 Тогда // HTTP Version Not Supported
- Расшифровка = НСтр("ru = 'Сервер не поддерживает указанную в запросе версию протокола HTTP'");
- ИначеЕсли КодСостояния = 506 Тогда // Variant Also Negotiates
- Расшифровка = НСтр("ru = 'Сервер настроен некорректно, и не способен обработать запрос.'");
- ИначеЕсли КодСостояния = 507 Тогда // Insufficient Storage
- Расшифровка = НСтр("ru = 'На сервере недостаточно места для выполнения запроса.'");
- ИначеЕсли КодСостояния = 509 Тогда // Bandwidth Limit Exceeded
- Расшифровка = НСтр("ru = 'Сервер превысил отведенное ограничение на потребление трафика.'");
- ИначеЕсли КодСостояния = 510 Тогда // Not Extended
- Расшифровка = НСтр("ru = 'Сервер требует больше информации о совершаемом запросе.'");
- ИначеЕсли КодСостояния = 511 Тогда // Network Authentication Required
- Расшифровка = НСтр("ru = 'Требуется авторизация на сервере.'");
- Иначе
- Расшифровка = НСтр("ru = '<Неизвестный код состояния>.'");
- КонецЕсли;
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- СтроковыеФункцииКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = '[%1] %2'"),
- КодСостояния,
- Расшифровка);
-
-КонецФункции
-
-#КонецОбласти // REST
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Процедура обрабатывает запросы в структуре записи истории
-Процедура ДополнительноОбработатьЗапросыИнтеграцииПередЗаписьюВИсторию(СтруктураЗаписиИстории)
-
- Если НЕ ПустаяСтрока(СтруктураЗаписиИстории.ЗапросИсходящий) И СтрНайти(СтруктураЗаписиИстории.ЗапросИсходящий, "xml") <> 0 Тогда
-
- ОчиститьДлинныеАтрибутыСообщенияXML(СтруктураЗаписиИстории.ЗапросИсходящий);
-
- КонецЕсли;
-
- Если НЕ ПустаяСтрока(СтруктураЗаписиИстории.ЗапросВходящий) И СтрНайти(СтруктураЗаписиИстории.ЗапросВходящий, "xml") <> 0 Тогда
-
- ОчиститьДлинныеАтрибутыСообщенияXML(СтруктураЗаписиИстории.ЗапросВходящий);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-// Процедура очищает XML строку от длинных записей (например base64 строк)
-Процедура ОчиститьДлинныеАтрибутыСообщенияXML(XMLСтрока)
-
- ЧтениеXML = Новый ЧтениеXML;
- ЧтениеXML.УстановитьСтроку(XMLСтрока);
-
- ПостроительDOM = Новый ПостроительDOM;
- ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
-
- ТребуетсяПерезаписатьXML = Ложь;
-
- //Перебрать все узлы
- ИтераторДерева = Новый ОбходДереваDOM(ДокументDOM);
- Пока ИтераторДерева.СледующийУзел() <> Неопределено Цикл
- Если ТипЗнч(ИтераторДерева.ТекущийУзел) = Тип("ЭлементDOM") Тогда
- Если СтрДлина(ИтераторДерева.ТекущийУзел.ТекстовоеСодержимое) > 1000 Тогда
- ИтераторДерева.ТекущийУзел.ТекстовоеСодержимое = "X";
- ТребуетсяПерезаписатьXML = Истина;
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
-
- Если ТребуетсяПерезаписатьXML Тогда
-
- ЗаписьXML = Новый ЗаписьXML;
- ЗаписьXML.УстановитьСтроку(Новый ПараметрыЗаписиXML(, , Истина, Истина));
-
- ЗаписьDOM = Новый ЗаписьDOM;
- ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
-
- XMLСтрока = ЗаписьXML.Закрыть();
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP.xml" "b/release/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP.xml"
deleted file mode 100644
index 07d3d220..00000000
--- "a/release/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __КоннекторHTTP
-
-
- ru
- Коннектор HTTP
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl" "b/release/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl"
deleted file mode 100644
index 74d3b32d..00000000
--- "a/release/CommonModules/__\320\232\320\276\320\275\320\275\320\265\320\272\321\202\320\276\321\200HTTP/Ext/Module.bsl"
+++ /dev/null
@@ -1,3408 +0,0 @@
-// Коннектор: удобный HTTP-клиент для 1С:Предприятие 8
-//
-// Copyright 2017-2023 Vladimir Bondarevskiy
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/vbondarevsky/Connector
-// e-mail: vbondarevsky@gmail.com
-// Версия: 2.5.0
-//
-// Требования: платформа 1С версии 8.3.10 и выше
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыHTTP
-
-#Область МетодыОбщегоНазначения
-
-// Отправляет GET запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// ПараметрыЗапроса - Структура, Соответствие - параметры, которые будут отправлены в URL (часть после ?):
-// * Ключ - Строка - ключ параметра в URL.
-// * Значение - Строка - значение параметра URL
-// - Массив - сформирует строку из нескольких параметров: key=value1&key=value2 и т.д.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Get(URL, ПараметрыЗапроса = Неопределено, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(ПараметрыЗапроса, Неопределено, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "GET", URL, Параметры);
-
-КонецФункции
-
-// Отправляет OPTIONS запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Options(URL, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Неопределено, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "OPTIONS", URL, Параметры);
-
-КонецФункции
-
-// Отправляет HEAD запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Head(URL, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Неопределено, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "HEAD", URL, Параметры);
-
-КонецФункции
-
-// Отправляет POST запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Данные - Структура, Соответствие, Строка, ДвоичныеДанные - см. описание ДополнительныеПараметры.Данные.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Post(URL, Данные = Неопределено, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Данные, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "POST", URL, Параметры);
-
-КонецФункции
-
-// Отправляет PUT запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Данные - Структура, Соответствие, Строка, ДвоичныеДанные - см. описание ДополнительныеПараметры.Данные.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Put(URL, Данные = Неопределено, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Данные, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "PUT", URL, Параметры);
-
-КонецФункции
-
-// Отправляет PATCH запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Данные - Структура, Соответствие, Строка, ДвоичныеДанные - см. описание ДополнительныеПараметры.Данные.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Patch(URL, Данные = Неопределено, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Данные, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "PATCH", URL, Параметры);
-
-КонецФункции
-
-// Отправляет DELETE запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Данные - Структура, Соответствие, Строка, ДвоичныеДанные - см. описание ДополнительныеПараметры.Данные.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// См. ВызватьМетод
-//
-Функция Delete(URL, Данные = Неопределено, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Данные, Неопределено));
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, "DELETE", URL, Параметры);
-
-КонецФункции
-
-// Отправляет данные на указанный адрес для обработки с использованием указанного HTTP-метода.
-//
-// Параметры:
-// Метод - Строка - имя HTTP-метода для запроса.
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// Структура - ответ на выполненный запрос:
-// * ВремяВыполнения - Число - время выполнения запроса в миллисекундах.
-// * Cookies - Соответствие - cookies полученные с сервера.
-// * Заголовки - Соответствие - HTTP заголовки ответа.
-// * ЭтоПостоянныйРедирект - Булево - признак постоянного редиректа.
-// * ЭтоРедирект - Булево - признак редиректа.
-// * Кодировка - Строка - кодировка текста ответа.
-// * Тело - ДвоичныеДанные - тело ответа.
-// * КодСостояния - Число - код состояния ответа.
-// * URL - Строка - итоговый URL, по которому был выполнен запрос.
-//
-Функция ВызватьМетод(Метод, URL, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Неопределено, Неопределено));
- Дополнить(Параметры, ДополнительныеПараметры);
-
- Возврат ВызватьHTTPМетод(ТекущаяСессия, Метод, URL, Параметры);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УпрощенныеМетодыДляРаботыСЗапросамиВФорматеJSON
-
-// Отправляет GET запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// ПараметрыЗапроса - Структура, Соответствие - параметры, которые будут отправлены в URL (часть после ?).
-// См. описание Сессия.ПараметрыЗапроса.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// Соответствие, Структура - ответ, десериализованный из JSON.
-// Параметры преобразования см. ДополнительныеПараметры.ПараметрыПреобразованияJSON.
-//
-Функция GetJson(URL,
- ПараметрыЗапроса = Неопределено,
- ДополнительныеПараметры = Неопределено,
- Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(ПараметрыЗапроса, Неопределено, Неопределено));
-
- ПараметрыПреобразованияJSON =
- ВыбратьЗначение(Неопределено, Параметры, "ПараметрыПреобразованияJSON", Неопределено);
-
- Возврат КакJson(ВызватьHTTPМетод(ТекущаяСессия, "GET", URL, Параметры), ПараметрыПреобразованияJSON);
-
-КонецФункции
-
-// Отправляет POST запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Json - Структура, Соответствие - данные, которые необходимо сериализовать в JSON.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// Соответствие, Структура - ответ, десериализованный из JSON.
-// Параметры преобразования см. ДополнительныеПараметры.ПараметрыПреобразованияJSON
-//
-Функция PostJson(URL, Json, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Неопределено, Json));
-
- ПараметрыПреобразованияJSON =
- ВыбратьЗначение(Неопределено, Параметры, "ПараметрыПреобразованияJSON", Неопределено);
-
- Возврат КакJson(ВызватьHTTPМетод(ТекущаяСессия, "POST", URL, Параметры), ПараметрыПреобразованияJSON);
-
-КонецФункции
-
-// Отправляет PUT запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Json - Структура, Соответствие - данные, которые необходимо сериализовать в JSON.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// Соответствие, Структура - ответ, десериализованный из JSON.
-// Параметры преобразования см. ДополнительныеПараметры.ПараметрыПреобразованияJSON
-//
-Функция PutJson(URL, Json, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Неопределено, Json));
-
- ПараметрыПреобразованияJSON =
- ВыбратьЗначение(Неопределено, Параметры, "ПараметрыПреобразованияJSON", Неопределено);
- Возврат КакJson(ВызватьHTTPМетод(ТекущаяСессия, "PUT", URL, Параметры), ПараметрыПреобразованияJSON);
-
-КонецФункции
-
-// Отправляет DELETE запрос
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-// Json - Структура, Соответствие - данные, которые необходимо сериализовать в JSON.
-// ДополнительныеПараметры - См. НовыеПараметры
-// Сессия - См. СоздатьСессию
-//
-// Возвращаемое значение:
-// Соответствие, Структура - ответ, десериализованный из JSON.
-// Параметры преобразования см. ДополнительныеПараметры.ПараметрыПреобразованияJSON
-//
-Функция DeleteJson(URL, Json, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
-
- ТекущаяСессия = ТекущаяСессия(Сессия);
-
- Параметры = НовыеПараметры();
- Дополнить(Параметры, ДополнительныеПараметры);
- Дополнить(Параметры, ПараметрыИзАргументов(Неопределено, Неопределено, Json));
-
- ПараметрыПреобразованияJSON =
- ВыбратьЗначение(Неопределено, Параметры, "ПараметрыПреобразованияJSON", Неопределено);
- Возврат КакJson(ВызватьHTTPМетод(ТекущаяСессия, "DELETE", URL, Параметры), ПараметрыПреобразованияJSON);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Конструкторы
-
-// Конструктор дополнительных параметров
-//
-// Возвращаемое значение:
-// Структура - позволяет задать дополнительные параметры:
-// * Заголовки - Соответствие - см. описание Сессия.Заголовки.
-// * Аутентификация - Структура - см. описание Сессия.Аутентификация
-// * Прокси - ИнтернетПрокси - см. описание Сессия.Прокси.
-// * ПараметрыЗапроса - Структура, Соответствие - см. описание Сессия.ПараметрыЗапроса.
-// * ПроверятьSSL - Булево - см. описание Сессия.ПроверятьSSL.
-// * КлиентскийСертификатSSL - СертификатКлиентаФайл, СертификатКлиентаWindows - Значение по умолчанию: Неопределено.
-// * Cookies - Массив - см. описание Сессия.Cookies.
-// * Таймаут - Число - время ожидания осуществляемого соединения и операций, в секундах.
-// Значение по умолчанию - 30 сек.
-// * РазрешитьПеренаправление - Булево - Истина - редиректы будут автоматически разрешены.
-// Ложь - будет выполнен только один запрос к серверу.
-// * Json - Структура, Соответствие - данные, которые необходимо сериализовать в JSON.
-// * ПараметрыПреобразованияJSON - Структура - задает параметры преобразования JSON:
-// ** ПрочитатьВСоответствие - Булево - Если Истина, чтение объекта JSON будет выполнено в Соответствие.
-// Если Ложь, объекты будут считываться в объект типа Структура.
-// ** ФорматДатыJSON - ФорматДатыJSON - формат, в котором представлена дата в строке,
-// подлежащей преобразованию.
-// ** ИменаСвойствСоЗначениямиДата - Строка, Массив Из Строка - имена свойств JSON,
-// для которых нужно вызывать восстановление даты из строки.
-// ** ИмяФункцииВосстановления - Строка - определяет имя функции, которая будет вызывается при чтении
-// каждого свойства и должна иметь следующие параметры:
-// ** Свойство - Строка - указывается только при чтении объектов JSON
-// ** Значение - Произвольный - значение допустимого для сериализации типа
-// ** ДополнительныеПараметры - Произвольный
-// Возвращаемое значение:
-// Произвольный - значение, десериализованное из JSON.
-// ** МодульФункцииВосстановления - Произвольный - определяет модуль, процедура которого будет использована для
-// восстановления значения.
-// ** ДополнительныеПараметрыФункцииВосстановления - Произвольный - определяет дополнительные параметры, которые
-// будут переданы в функцию восстановления значений.
-// ** ИменаСвойствДляОбработкиВосстановления - Массив - определяет массив имен свойств JSON, для которых
-// будет вызвана функция восстановления.
-// ** МаксимальнаяВложенность - Число - определяет максимальный уровень вложенности объекта JSON.
-// * ПараметрыЗаписиJSON - ПараметрыЗаписиJSON - используемые при записи объекта JSON.
-// * Данные - Строка, ДвоичныеДанные - произвольные данные, которые необходимо отправить в запросе.
-// - Структура, Соответствие - поля формы, которые необходимо отправить в запрос:
-// ** Ключ - Строка - имя поля.
-// ** Значение - Строка - значение поля.
-// * Файлы - См. НовыйОтправляемыйФайл, Массив Из См. НовыйОтправляемыйФайл - файлы, к отправке
-// * МаксимальноеКоличествоПовторов - Число - количество повторных попыток соединения/отправки запроса.
-// Между попытками выполняется задержка, растущая по экспоненте.
-// Но если код состояния один из 413, 429, 503
-// и в ответе есть заголовок Retry-After,
-// то время задержки формируется из значения этого заголовка
-// Значение по умолчанию: 0 - повторы не выполняются.
-// * МаксимальноеВремяПовторов - Число - максимальное общее время (в секундах) отправки запроса с учетом повторов.
-// Значение по умолчанию: 600.
-// * КоэффициентЭкспоненциальнойЗадержки - Число - коэффициент изменения экспоненциальной задержки.
-// 1 формирует последовательность задержек: 1, 2, 4, 8 и т.д.
-// 2 формируется последовательность задержек: 2, 4, 8, 16 и т.д.
-// ...
-// Значение по умолчанию: 1.
-// * ПовторятьДляКодовСостояний - Неопределено - повторы будут выполняться для кодов состояний >= 500.
-// - Массив - повторы будут выполняться для конкретных кодов состояний.
-// Значение по умолчанию: Неопределено.
-//
-Функция НовыеПараметры() Экспорт
-
- Параметры = Новый Структура;
- Параметры.Вставить("Заголовки", Новый Соответствие);
- Параметры.Вставить("Аутентификация", Неопределено);
- Параметры.Вставить("Прокси", Неопределено);
- Параметры.Вставить("ПараметрыЗапроса", Неопределено);
- Параметры.Вставить("ПроверятьSSL", Истина);
- Параметры.Вставить("КлиентскийСертификатSSL", Неопределено);
- Параметры.Вставить("Cookies", Новый Соответствие);
- Параметры.Вставить("Таймаут", СтандартныйТаймаут());
- Параметры.Вставить("РазрешитьПеренаправление", Истина);
- Параметры.Вставить("Json", Неопределено);
- Параметры.Вставить("ПараметрыПреобразованияJSON", ПараметрыПреобразованияJSONПоУмолчанию());
- Параметры.Вставить("Данные", Неопределено);
- Параметры.Вставить("Файлы", Новый Массив);
- Параметры.Вставить("МаксимальноеКоличествоПовторов", 0);
- Параметры.Вставить("МаксимальноеВремяПовторов", 600);
- Параметры.Вставить("КоэффициентЭкспоненциальнойЗадержки", 1);
- Параметры.Вставить("ПовторятьДляКодовСостояний", Неопределено);
-
- Возврат Параметры;
-
-КонецФункции
-
-// Конструктор описания отправляемого файла.
-//
-// Параметры:
-// Имя - Строка - имя поля формы.
-// ИмяФайла - Строка - имя файла.
-// Данные - ДвоичныеДанные - двоичные данные файла.
-// Тип - Строка - MIME-тип файла
-//
-// Возвращаемое значение:
-// Структура:
-// * Имя - Строка - имя поля формы.
-// * ИмяФайла - Строка - имя файла.
-// * Данные - ДвоичныеДанные - двоичные данные файла.
-// * Тип - Строка - MIME-тип файла.
-// * Заголовки - Соответствие - HTTP заголовки запроса.
-//
-Функция НовыйОтправляемыйФайл(Имя, ИмяФайла, Данные = Неопределено, Тип = Неопределено) Экспорт
-
- Файл = Новый Структура;
- Файл.Вставить("Имя", Имя);
- Файл.Вставить("ИмяФайла", ИмяФайла);
- Файл.Вставить("Данные", ?(Данные = Неопределено, Base64Значение(""), Данные));
- Файл.Вставить("Тип", Тип);
- Файл.Вставить("Заголовки", Новый Соответствие);
-
- Возврат Файл;
-
-КонецФункции
-
-// Создает объект для хранения параметров сессии.
-//
-// Возвращаемое значение:
-// Структура - параметры сессии:
-// * Заголовки - Соответствие - HTTP заголовки запроса.
-// * Аутентификация - Структура - параметры аутентификации запроса.
-// ** ИспользоватьАутентификациюОС - Булево - включает использование аутентификации NTLM или Negotiate.
-// Значение по умолчанию: Ложь.
-// ** Тип - Строка - тип аутентификации. Для Basic Тип можно не указывать.
-// Если Тип = Digest или Basic:
-// ** Пользователь - Строка - имя пользователя.
-// ** Пароль - Строка - пароль пользователя.
-// Если Тип = AWS4-HMAC-SHA256:
-// ** ИдентификаторКлючаДоступа - Строка - идентификатор ключа доступа.
-// ** СекретныйКлюч - Строка - секретный ключ.
-// ** Сервис - Строка - сервис, к которому выполняется подключение.
-// ** Регион - Строка - регион, к которому выполняется подключение.
-// * Прокси - ИнтернетПрокси - параметры прокси, которые будут использованы при отправке запроса.
-// Значение по умолчанию: Неопределено. При этом если в конфигурации используется БСП,
-// то значения прокси будет взято из БСП.
-// * ПараметрыЗапроса - Структура, Соответствие - параметры, которые будут отправлены в URL (часть после ?):
-// * Ключ - Строка - ключ параметра в URL.
-// * Значение - Строка - значение параметра URL
-// - Массив - сформирует строку из нескольких параметров: key=value1&key=value2 и т.д.
-// * ПроверятьSSL - Булево - Ложь - проверка сертификата сервера не выполняется.
-// - Истина - используется значение СертификатыУдостоверяющихЦентровОС.
-// - СертификатыУдостоверяющихЦентровФайл - См. СертификатыУдостоверяющихЦентровФайл.
-// Значение по умолчанию: Истина.
-// * КлиентскийСертификатSSL - СертификатКлиентаФайл, СертификатКлиентаWindows - Значение по умолчанию: Неопределено.
-// * МаксимальноеКоличествоПеренаправлений - Число - максимальное количество редиректов. Защита от зацикливания.
-// Значение по умолчанию: 30
-// * Cookies - Соответствие - хранилище cookies.
-//
-Функция СоздатьСессию() Экспорт
-
- Сессия = Новый Структура;
- Сессия.Вставить("Заголовки", ЗаголовкиПоУмолчанию());
- Сессия.Вставить("Аутентификация", Неопределено);
- Сессия.Вставить("Прокси", Неопределено);
- Сессия.Вставить("ПараметрыЗапроса", Новый Структура);
- Сессия.Вставить("ПроверятьSSL", Истина);
- Сессия.Вставить("КлиентскийСертификатSSL", Неопределено);
- Сессия.Вставить("МаксимальноеКоличествоПеренаправлений", МаксимальноеКоличествоПеренаправлений());
- Сессия.Вставить("Cookies", Новый Соответствие);
- Сессия.Вставить("СлужебныеДанные", Новый Структура("ПараметрыDigest"));
-
- Возврат Сессия;
-
-КонецФункции
-
-// Пакет ответа результата вызова метода HTTP.
-//
-// Возвращаемое значение:
-// * Метод - Строка - имя HTTP-метода запроса
-// * URL - Строка - итоговый URL, по которому был выполнен запрос.
-// * КодСостояния - Число - Код состояния ответа..
-// * Заголовки - Соответствие - Заголовки ответа.
-// * Тело - ДвоичныеДанные - Тело ответа.
-// * Кодировка - Строка - код кодировки ответа.
-// * ВремяВыполнения - Число - время выполнения запроса в миллисекундах.
-// * ЭтоПостоянныйРедирект - Булево - указывает что это постоянный редирект.
-// * ЭтоРедирект - Булево - указывает что это редирект.
-// * Cookies - Соответствие - хранилище cookies.
-// * Ошибки - Массив Из Строка - Список ошибок возникших в ходе выполнения запроса.
-//
-Функция НовыйОтвет() Экспорт
-
- Результат = Новый Структура;
- Результат.Вставить("Метод", "GET");
- Результат.Вставить("URL", "");
- Результат.Вставить("КодСостояния", 600); // Сетевая ошибка (>500)
- Результат.Вставить("Заголовки", Новый Соответствие);
- Результат.Вставить("Тело", Base64Значение(""));
- Результат.Вставить("Кодировка", "utf-8");
- Результат.Вставить("ВремяВыполнения", Неопределено);
- Результат.Вставить("ЭтоПостоянныйРедирект", Ложь);
- Результат.Вставить("ЭтоРедирект", Ложь);
- Результат.Вставить("Cookies", Новый Соответствие);
- Результат.Вставить("Ошибки", Новый Массив);
-
- Возврат Результат;
-
-КонецФункции
-
-
-// Конструктор аутентификации операционной системы
-//
-// Возвращаемое значение:
-// Структура:
-// * ИспользоватьАутентификациюОС - Строка - включает использование аутентификации NTLM или Negotiate.
-//
-Функция НоваяАутентификацияОС() Экспорт
-
- Результат = Новый Структура;
- Результат.Вставить("ИспользоватьАутентификациюОС", Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-
-// Конструктор аутентификации Basic
-//
-// Возвращаемое значение:
-// Структура:
-// * Пользователь - Строка - имя пользователя.
-// * Пароль - Строка - пароль пользователя.
-//
-Функция НоваяАутентификацияBasic(Пользователь = "", Пароль = "") Экспорт
-
- Результат = Новый Структура;
- Результат.Вставить("Тип", "Basic");
- Результат.Вставить("Пользователь", Пользователь);
- Результат.Вставить("Пароль", Пароль);
-
- Возврат Результат;
-
-КонецФункции
-
-// Конструктор аутентификации Digest
-//
-// Возвращаемое значение:
-// Структура:
-// * Тип - Строка - Код типа аутентификации. Всегда "Digest".
-// * Пользователь - Строка - имя пользователя.
-// * Пароль - Строка - пароль пользователя.
-//
-Функция НоваяАутентификацияDigest(Пользователь = "", Пароль = "") Экспорт
-
- Результат = Новый Структура;
- Результат.Вставить("Тип", "Digest");
- Результат.Вставить("Пользователь", Пользователь);
- Результат.Вставить("Пароль", Пароль);
-
- Возврат Результат;
-
-КонецФункции
-
-// Конструктор аутентификации AWS4-HMAC-SHA256
-//
-// Возвращаемое значение:
-// Структура:
-// * Тип - Строка - Код типа аутентификации. Всегда "AWS4-HMAC-SHA256".
-// * ИдентификаторКлючаДоступа - Строка - идентификатор ключа доступа (AccessKey).
-// * СекретныйКлюч - Строка - секретный ключ (SecretKey).
-// * Сервис - Строка - сервис, к которому выполняется подключение.
-// * Регион - Строка - регион, к которому выполняется подключение.
-//
-Функция НоваяАутентификацияAWS4(КлючДоступа = "", СекретныйКлюч = "", Сервис = "", Регион = "") Экспорт
-
- Результат = Новый Структура;
- Результат.Вставить("Тип", "AWS4-HMAC-SHA256");
- Результат.Вставить("ИдентификаторКлючаДоступа", КлючДоступа);
- Результат.Вставить("СекретныйКлюч", СекретныйКлюч);
- Результат.Вставить("Сервис", Сервис);
- Результат.Вставить("Регион", Регион);
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область ФорматыОтветов
-
-// Возвращает ответ сервера в виде десериализованного значения JSON.
-//
-// Параметры:
-// Ответ - См. НовыйОтвет
-// ПараметрыПреобразованияJSON - Структура - задает параметры преобразования JSON.
-// * ПрочитатьВСоответствие - Булево - Если Истина, чтение объекта JSON будет выполнено в Соответствие.
-// Если Ложь, объекты будут считываться в объект типа Структура.
-// * ФорматДатыJSON - ФорматДатыJSON - формат, в котором представлена дата в строке, подлежащей преобразованию.
-// * ИменаСвойствСоЗначениямиДата - Массив, Строка - имена свойств JSON,
-// для которых нужно вызывать восстановление даты из строки.
-// * ИмяФункцииВосстановления - Строка - определяет имя функции, которая будет вызывается при чтении
-// каждого свойства и должна иметь следующие параметры:
-// ** Свойство - Строка - указывается только при чтении объектов JSON
-// ** Значение - Произвольный - значение допустимого для сериализации типа
-// ** ДополнительныеПараметры - Произвольный
-// Возвращаемое значение:
-// Произвольный - значение, десериализованное из JSON.
-// * МодульФункцииВосстановления - Произвольный - определяет модуль, процедура которого будет использована для
-// восстановления значения.
-// * ДополнительныеПараметрыФункцииВосстановления - Произвольный - определяет дополнительные параметры, которые
-// будут переданы в функцию восстановления значений.
-// * ИменаСвойствДляОбработкиВосстановления - Массив - определяет массив имен свойств JSON, для которых
-// будет вызвана функция восстановления.
-// * МаксимальнаяВложенность - Число - определяет максимальный уровень вложенности объекта JSON.
-//
-// Возвращаемое значение:
-// Соответствие - ответ сервера в виде десериализованного значения JSON.
-// Если ПараметрыПреобразования.ПрочитатьВСоответствие = Истина (по умолчанию).
-// Структура - если ПараметрыПреобразования.ПрочитатьВСоответствие = Ложь.
-//
-Функция КакJson(Ответ, ПараметрыПреобразованияJSON = Неопределено) Экспорт
-
- Попытка
- Возврат JsonВОбъект(РаспаковатьОтвет(Ответ), Ответ.Кодировка, ПараметрыПреобразованияJSON);
- Исключение
- ВызватьИсключение КакИсключение(Ответ, НСтр("ru = 'Ошибка при десериализации JSON.'"));
- КонецПопытки;
-
-КонецФункции
-
-// Возвращает ответ сервера в виде текста.
-//
-// Параметры:
-// Ответ - См. НовыйОтвет
-// Кодировка - Строка, КодировкаТекста - определяет кодировку текста.
-// Если значение не задано, то кодировка извлекается из Ответ.Кодировка.
-//
-// Возвращаемое значение:
-// Строка - ответ сервера в виде текста.
-//
-Функция КакТекст(Ответ, Кодировка = Неопределено) Экспорт
-
- Если Не ЗначениеЗаполнено(Кодировка) Тогда
- Кодировка = Ответ.Кодировка;
- КонецЕсли;
-
- ЧтениеТекста = Новый ЧтениеТекста(РаспаковатьОтвет(Ответ).ОткрытьПотокДляЧтения(), Кодировка);
- Текст = ЧтениеТекста.Прочитать();
- ЧтениеТекста.Закрыть();
-
- Если Текст = Неопределено Тогда
- Текст = "";
- КонецЕсли;
-
- Возврат Текст;
-
-КонецФункции
-
-// Возвращает ответ сервера в двоичных данных.
-//
-// Параметры:
-// Ответ - См. НовыйОтвет
-//
-// Возвращаемое значение:
-// Строка - ответ сервера в виде двоичных данных.
-//
-Функция КакДвоичныеДанные(Ответ) Экспорт
-
- Возврат РаспаковатьОтвет(Ответ);
-
-КонецФункции
-
-// Возвращает ответ сервера в XDTO.
-//
-// Параметры:
-// Ответ - См. НовыйОтвет
-// ПараметрыЧтенияXML - ПараметрыЧтенияXML - Параметры чтения, которые будут использованы при чтении данных XML
-// Подробнее см. в синтакс помощнике метод ЧтениеXML.ОткрытьПоток
-// НаборСхемXML - НаборСхемXML - Набор схем XML, используемых при проверке читаемого документа XML.
-// Если набор схем указан, но не проверен и включена проверка документа XML,
-// то будет выполнена проверка набора схем
-// Подробнее см. в синтакс помощнике метод ЧтениеXML.ОткрытьПоток
-// Кодировка - Строка, КодировкаТекста - Позволяет задать кодировку.
-// Подробнее см. в синтакс помощнике метод ЧтениеXML.ОткрытьПоток
-//
-// Возвращаемое значение:
-// ОбъектXDTO, СписокXDTO - тип возвращаемого значения может быть любым из поддерживаемых сериализацию в XDTO.
-//
-Функция КакXDTO(Ответ,
- ПараметрыЧтенияXML = Неопределено,
- НаборСхемXML = Неопределено,
- Кодировка = Неопределено) Экспорт
-
- Попытка
- ДвоичныеДанные = РаспаковатьОтвет(Ответ);
-
- ПотокДляЧтения = ДвоичныеДанные.ОткрытьПотокДляЧтения();
-
- Если Не ЗначениеЗаполнено(Кодировка) Тогда
- Кодировка = Ответ.Кодировка;
- КонецЕсли;
-
- ЧтениеXML = Новый ЧтениеXML;
- ЧтениеXML.ОткрытьПоток(ПотокДляЧтения, ПараметрыЧтенияXML, НаборСхемXML, Кодировка);
-
- ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
- Исключение
- ВызватьИсключение КакИсключение(Ответ, НСтр("ru = 'Ошибка при десериализации XDTO.'"));
- КонецПопытки;
-
- Возврат ОбъектXDTO;
-
-КонецФункции
-
-// Возвращает ответ сервера в виде текста предназначенного для использования в ВызватьИсключение.
-//
-// Параметры:
-// Ответ - См. НовыйОтвет.
-// ТекстДляПользователя - Строка - Текст пояснения причины для пользователя.
-//
-// Возвращаемое значение:
-// Строка - ответ сервера в виде текста исключения.
-//
-Функция КакИсключение(Ответ, Знач ТекстДляПользователя = Неопределено) Экспорт
-
- ТекстИсключения = СтрШаблон(
- НСтр("ru = 'HTTP %1 %2
- |%3'"),
- Ответ.Метод,
- Ответ.URL,
- ПредставлениеКодаСостоянияHTTP(Ответ.КодСостояния)
- );
-
- ТелоОтвета = ВырезатьТекст(КакТекст(Ответ));
-
- Если Не ПустаяСтрока(ТелоОтвета) Тогда
- ТекстИсключения = ТекстИсключения + Символы.ПС + СтрШаблон(
- НСтр("ru = 'Тело ответа:
- |%1'"),
- ТелоОтвета);
- КонецЕсли;
-
- Если Ответ.Ошибки.Количество() Тогда
- ТекстИсключения = ТекстИсключения + Символы.ПС + Символы.ПС
- + СтрСоединить(Ответ.Ошибки, Символы.ПС + Символы.ПС);
- КонецЕсли;
-
- Если Не ПустаяСтрока(ТекстДляПользователя) Тогда
- ТекстИсключения = ТекстДляПользователя + Символы.ПС + Символы.ПС + ТекстИсключения;
- КонецЕсли;
-
- Возврат ТекстИсключения;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ВспомогательныеФункции
-
-// Возвращает структурированное представление URL.
-//
-// Параметры:
-// URL - Строка - URL ресурса, к которому будет отправлен запрос.
-//
-// Возвращаемое значение:
-// Структура - структура URL:
-// * Схема - Строка - схема обращения к серверу (http, https).
-// * Аутентификация - Структура - параметры аутентификации:
-// ** Пользователь - Строка - имя пользователя.
-// ** Пароль - Строка - пароль пользователя.
-// * Сервер - Строка - адрес сервера.
-// * Порт - Число - порт сервера.
-// * Путь - Строка - адрес ресурса на сервере.
-// * ПараметрыЗапроса - Соответствие - параметры запроса передаваемые на сервер в URL (часть после ?):
-// ** Ключ - Строка - ключ параметра в URL.
-// ** Значение - Строка - значение параметра URL;
-// - Массив - значения параметра (key=value1&key=value2).
-// * Фрагмент - Строка - часть URL после #.
-//
-Функция РазобратьURL(Знач URL) Экспорт
-
- Схема = "";
- Путь = "";
- Аутентификация = Новый Структура("Пользователь, Пароль", "", "");
- Сервер = "";
- Порт = "";
- Фрагмент = "";
-
- ДопустимыеСхемы = СтрРазделить("http,https", ",");
-
- URLБезСхемы = URL;
- РазбитьСтрокуПоРазделителю(Схема, URLБезСхемы, "://");
- Если ДопустимыеСхемы.Найти(НРег(Схема)) <> Неопределено Тогда
- URL = URLБезСхемы;
- Иначе
- Схема = "";
- КонецЕсли;
-
- Результат = РазделитьПоПервомуНайденномуРазделителю(URL, СтрРазделить("/,?,#", ","));
- URL = Результат[0];
- Если ЗначениеЗаполнено(Результат[2]) Тогда
- Путь = Результат[2] + Результат[1];
- КонецЕсли;
-
- АутентификацияСтрока = "";
- РазбитьСтрокуПоРазделителю(АутентификацияСтрока, URL, "@");
- Если ЗначениеЗаполнено(АутентификацияСтрока) Тогда
- АутентификацияЧасти = СтрРазделить(АутентификацияСтрока, ":");
- Аутентификация.Пользователь = АутентификацияЧасти[0];
- Если АутентификацияЧасти.Количество() > 1 Тогда
- Аутентификация.Пароль = АутентификацияЧасти[1];
- КонецЕсли;
- КонецЕсли;
-
- // IPv6
- РазбитьСтрокуПоРазделителю(Сервер, URL, "]");
- Если ЗначениеЗаполнено(Сервер) Тогда
- Сервер = Сервер + "]";
- КонецЕсли;
-
- URL = СтрЗаменить(URL, "/", "");
-
- РазбитьСтрокуПоРазделителю(Порт, URL, ":", Истина);
-
- Если Не ЗначениеЗаполнено(Сервер) Тогда
- Сервер = URL;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Порт) Тогда
- Порт = Число(Порт);
- Иначе
- Порт = 0;
- КонецЕсли;
-
- РазбитьСтрокуПоРазделителю(Фрагмент, Путь, "#", Истина);
-
- ПараметрыЗапроса = ЗаполнитьПараметрыЗапроса(Путь);
-
- Если Не ЗначениеЗаполнено(Схема) Тогда
- Схема = "http";
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(Путь) Тогда
- Путь = "/";
- КонецЕсли;
-
- Результат = Новый Структура;
- Результат.Вставить("Схема", Схема);
- Результат.Вставить("Аутентификация", Аутентификация);
- Результат.Вставить("Сервер", Сервер);
- Результат.Вставить("Порт", Порт);
- Результат.Вставить("Путь", Путь);
- Результат.Вставить("ПараметрыЗапроса", ПараметрыЗапроса);
- Результат.Вставить("Фрагмент", Фрагмент);
-
- Возврат Результат;
-
-КонецФункции
-
-// Преобразование Объекта в JSON.
-//
-// Параметры:
-// Объект - Произвольный - данные, которые необходимо преобразовать в JSON.
-// ПараметрыПреобразования - Структура - кодировка текста JSON. Значение по умолчанию - utf-8.
-// * ФорматДатыJSON - ФорматДатыJSON - определяет формат сериализации дат JSON-объектов.
-// * ВариантЗаписиДатыJSON - ВариантЗаписиДатыJSON - определяет вариант записи даты в формате JSON.
-// * ИмяФункцииПреобразования - Строка - функция, которая вызывается для всех свойств,
-// тип которых не поддерживает автоматическую сериализацию в JSON.
-// Функция должна быть экспортируемая и иметь следующие параметры:
-// ** Свойство - Строка - свойство структуры данных, которое не может быть
-// автоматически сериализовано в JSON.
-// ** Значение - Строка - значение свойства структуры данных, которое
-// не может быть автоматически сериализовано в JSON.
-// ** ДополнительныеПараметры - Произвольный - в этом параметре будет передан
-// ДополнительныеПараметрыФункцииПреобразования.
-// ** Отказ - Булево - отменяет операцию записи свойства.
-// Возвращаемое значение функции:
-// Произвольный - результат преобразования.
-// * МодульФункцииПреобразования - Произвольный - модуль, в котором определена функция ИмяФункцииПреобразования.
-// * ДополнительныеПараметрыФункцииПреобразования - Произвольный - параметры, которые будут переданы
-// в функцию ИмяФункцииПреобразования.
-// ПараметрыЗаписи - Структура - параметры преобразования JSON:
-// * ПереносСтрок - ПереносСтрокJSON - определяет способ переноса строк,
-// который будет использован при записи данных JSON.
-// * СимволыОтступа - Строка - определяет символы отступа, используемые при записи данных JSON.
-// * ИспользоватьДвойныеКавычки - Булево - определяет, будут ли при записи имена свойств JSON
-// записываться в двойных кавычках.
-// * ЭкранированиеСимволов - ЭкранированиеСимволовJSON - определяет используемый способ экранирования (замены)
-// символов при записи данных JSON.
-// * ЭкранироватьУгловыеСкобки - Булево - определяет, будут ли при записи экранироваться символы "<" и ">".
-// * ЭкранироватьРазделителиСтрок - Булево - определяет, будут ли экранироваться разделители строк
-// U+2028 (line-separator) и U+2029 (page-separator).
-// * ЭкранироватьАмперсанд - Булево - определяет, будет ли при записи экранироваться символ амперсанда "&".
-// * ЭкранироватьОдинарныеКавычки - Булево - определяет, будут ли экранироваться одинарные кавычки.
-// * ЭкранироватьСлеш - Булево - определяет, будет ли экранироваться слеш (косая черта) при записи значения.
-//
-// Возвращаемое значение:
-// Строка - объект в формате JSON.
-//
-Функция ОбъектВJson(Объект, Знач ПараметрыПреобразования = Неопределено, Знач ПараметрыЗаписи = Неопределено) Экспорт
-
- ПараметрыПреобразованияJSON = Объединить(ПараметрыПреобразованияJSONПоУмолчанию(), ПараметрыПреобразования);
-
- НастройкиСериализации = Новый НастройкиСериализацииJSON;
- НастройкиСериализации.ФорматСериализацииДаты = ПараметрыПреобразованияJSON.ФорматДатыJSON;
- НастройкиСериализации.ВариантЗаписиДаты = ПараметрыПреобразованияJSON.ВариантЗаписиДатыJSON;
-
- ПараметрыЗаписи = Объединить(ПараметрыЗаписиJSONПоУмолчанию(), ПараметрыЗаписи);
-
- ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(
- ПараметрыЗаписи.ПереносСтрок,
- ПараметрыЗаписи.СимволыОтступа,
- ПараметрыЗаписи.ИспользоватьДвойныеКавычки,
- ПараметрыЗаписи.ЭкранированиеСимволов,
- ПараметрыЗаписи.ЭкранироватьУгловыеСкобки,
- ПараметрыЗаписи.ЭкранироватьРазделителиСтрок,
- ПараметрыЗаписи.ЭкранироватьАмперсанд,
- ПараметрыЗаписи.ЭкранироватьОдинарныеКавычки,
- ПараметрыЗаписи.ЭкранироватьСлеш);
-
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
-
- Если ПараметрыПреобразованияJSON.ИмяФункцииПреобразования <> Неопределено
- И ПараметрыПреобразованияJSON.МодульФункцииПреобразования <> Неопределено Тогда
- ЗаписатьJSON(ЗаписьJSON, Объект, НастройкиСериализации,
- ПараметрыПреобразованияJSON.ИмяФункцииПреобразования,
- ПараметрыПреобразованияJSON.МодульФункцииПреобразования,
- ПараметрыПреобразованияJSON.ДополнительныеПараметрыФункцииПреобразования);
- Иначе
- ЗаписатьJSON(ЗаписьJSON, Объект, НастройкиСериализации);
- КонецЕсли;
-
- Возврат ЗаписьJSON.Закрыть();
-
-КонецФункции
-
-// Преобразование JSON в Объект.
-//
-// Параметры:
-// Json - Поток, ДвоичныеДанные, Строка - данные в формате JSON.
-// Кодировка - Строка - кодировка текста JSON. Значение по умолчанию - utf-8.
-// ПараметрыПреобразования - Структура - параметры преобразования JSON:
-// * ПрочитатьВСоответствие - Булево - если Истина, чтение объекта JSON будет выполнено в Соответствие,
-// иначе в Структура.
-// * ИменаСвойствСоЗначениямиДата - Массив, Строка, ФиксированныйМассив - имена свойств JSON,
-// для которых нужно вызывать восстановление даты из строки.
-// * ФорматДатыJSON - ФорматДатыJSON - определяет формат десериализации дат JSON-объектов.
-// * ИмяФункцииВосстановления - Строка - определяет имя функции, которая будет вызывается при чтении
-// каждого свойства и должна иметь следующие параметры:
-// ** Свойство - Строка - указывается только при чтении объектов JSON
-// ** Значение - Произвольный - значение допустимого для сериализации типа
-// ** ДополнительныеПараметры - Произвольный
-// Возвращаемое значение:
-// Произвольный - значение, десериализованное из JSON.
-// * МодульФункцииВосстановления - Произвольный - определяет модуль, процедура которого будет использована для
-// восстановления значения.
-// * ДополнительныеПараметрыФункцииВосстановления - Произвольный - определяет дополнительные параметры, которые
-// будут переданы в функцию восстановления значений.
-// * ИменаСвойствДляОбработкиВосстановления - Массив - определяет массив имен свойств JSON, для которых
-// будет вызвана функция восстановления.
-// * МаксимальнаяВложенность - Число - определяет максимальный уровень вложенности объекта JSON.
-//
-// Возвращаемое значение:
-// Произвольный - значение, десериализованное из JSON.
-//
-Функция JsonВОбъект(Json, Кодировка = "utf-8", ПараметрыПреобразования = Неопределено) Экспорт
-
- ПараметрыПреобразованияJSON = Объединить(ПараметрыПреобразованияJSONПоУмолчанию(), ПараметрыПреобразования);
-
- ЧтениеJSON = Новый ЧтениеJSON;
- Если ТипЗнч(Json) = Тип("ДвоичныеДанные") Тогда
- ЧтениеJSON.ОткрытьПоток(Json.ОткрытьПотокДляЧтения(), Кодировка);
- ИначеЕсли ТипЗнч(Json) = Тип("Строка") Тогда
- ЧтениеJSON.УстановитьСтроку(Json);
- Иначе
- ЧтениеJSON.ОткрытьПоток(Json, Кодировка);
- КонецЕсли;
- Объект = ПрочитатьJSON(
- ЧтениеJSON,
- ПараметрыПреобразованияJSON.ПрочитатьВСоответствие,
- ПараметрыПреобразованияJSON.ИменаСвойствСоЗначениямиДата,
- ПараметрыПреобразованияJSON.ФорматДатыJSON,
- ПараметрыПреобразованияJSON.ИмяФункцииВосстановления,
- ПараметрыПреобразованияJSON.МодульФункцииВосстановления,
- ПараметрыПреобразованияJSON.ДополнительныеПараметрыФункцииВосстановления,
- ПараметрыПреобразованияJSON.ИменаСвойствДляОбработкиВосстановления,
- ПараметрыПреобразованияJSON.МаксимальнаяВложенность);
- ЧтениеJSON.Закрыть();
-
- Возврат Объект;
-
-КонецФункции
-
-// Вычисляет HMAC (hash-based message authentication code).
-//
-// Параметры:
-// Ключ - ДвоичныеДанные - секретный ключ.
-// Данные - ДвоичныеДанные - данные, для которых нужно посчитать HMAC.
-// Алгоритм - ХешФункция - алгоритм, используемый для вычисления хеша.
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - вычисленное значение HMAC.
-//
-Функция HMAC(Ключ, Данные, Алгоритм) Экспорт
-
- ДлинаБлока = 64;
-
- Если Ключ.Размер() > ДлинаБлока Тогда
- Хеширование = Новый ХешированиеДанных(Алгоритм);
- Хеширование.Добавить(Ключ);
-
- КлючБуфер = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Хеширование.ХешСумма);
- Иначе
- КлючБуфер = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Ключ);
- КонецЕсли;
-
- ИзмененныйКлюч = Новый БуферДвоичныхДанных(ДлинаБлока);
- ИзмененныйКлюч.Записать(0, КлючБуфер);
-
- ВнутреннийКлюч = ИзмененныйКлюч.Скопировать();
- ВнешнийКлюч = ИзмененныйКлюч;
-
- ВнутреннееВыравнивание = Новый БуферДвоичныхДанных(ДлинаБлока);
- ВнешнееВыравнивание = Новый БуферДвоичныхДанных(ДлинаБлока);
- Для Индекс = 0 По ДлинаБлока - 1 Цикл
- ВнутреннееВыравнивание.Установить(Индекс, 54);
- ВнешнееВыравнивание.Установить(Индекс, 92);
- КонецЦикла;
-
- ВнутреннееХеширование = Новый ХешированиеДанных(Алгоритм);
- ВнешнееХеширование = Новый ХешированиеДанных(Алгоритм);
-
- ВнутреннийКлюч.ЗаписатьПобитовоеИсключительноеИли(0, ВнутреннееВыравнивание);
- ВнешнийКлюч.ЗаписатьПобитовоеИсключительноеИли(0, ВнешнееВыравнивание);
-
- ВнешнееХеширование.Добавить(ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ВнешнийКлюч));
- ВнутреннееХеширование.Добавить(ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ВнутреннийКлюч));
-
- Если ЗначениеЗаполнено(Данные) Тогда
- ВнутреннееХеширование.Добавить(Данные);
- КонецЕсли;
-
- ВнешнееХеширование.Добавить(ВнутреннееХеширование.ХешСумма);
-
- Возврат ВнешнееХеширование.ХешСумма;
-
-КонецФункции
-
-// Возвращает структуру именованных кодов состояний HTTP.
-//
-// Возвращаемое значение:
-// Структура - именованные коды состояний HTTP.
-//
-Функция КодыСостоянияHTTP() Экспорт
-
- КодыСостояния = Новый Структура;
- Для Каждого Описание Из ОписанияКодовСостоянийHTTP() Цикл
- КодыСостояния.Вставить(Описание.Ключ, Описание.Код);
- КонецЦикла;
-
- Возврат КодыСостояния;
-
-КонецФункции
-
-// Возвращает текстовое представление переданного кода состояния HTTP.
-//
-// Параметры:
-// КодСостояния - Число - код состояния HTTP, для которого нужно получить текстовое представление.
-//
-// Возвращаемое значение:
-// Строка - текстовое представление кода состояния HTTP.
-//
-Функция ПредставлениеКодаСостоянияHTTP(КодСостояния) Экспорт
-
- ОписаниеКодаСостояния = Неопределено;
- Для Каждого Описание Из ОписанияКодовСостоянийHTTP() Цикл
- Если Описание.Код = КодСостояния Тогда
- ОписаниеКодаСостояния = Описание;
- Прервать;
- КонецЕсли;
- КонецЦикла;
-
- Если ОписаниеКодаСостояния = Неопределено Тогда
- Возврат СтрШаблон(НСтр("ru = '%1: Неизвестный код состояния HTTP'"), КодСостояния);
- Иначе
- Возврат СтрШаблон("%1: %2", ОписаниеКодаСостояния.Код, ОписаниеКодаСостояния.Описание);
- КонецЕсли;
-
-КонецФункции
-
-// Выполняет чтение данных из архива GZip.
-//
-// Параметры:
-// СжатыеДанные - ДвоичныеДанные - данные упакованные GZip.
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - распакованные данные.
-//
-Функция ПрочитатьGZip(СжатыеДанные) Экспорт
-
- РазмерПрефиксаGZip = 10;
- РазмерПостфиксаGZip = 8;
-
- ЧтениеДанных = Новый ЧтениеДанных(СжатыеДанные);
- ЧтениеДанных.Пропустить(РазмерПрефиксаGZip);
- РазмерСжатыхДанных = ЧтениеДанных.ИсходныйПоток().Размер() - РазмерПрефиксаGZip - РазмерПостфиксаGZip;
-
- ПотокZip = Новый ПотокВПамяти(ZipРазмерLFH() + РазмерСжатыхДанных + ZipРазмерDD() + ZipРазмерCDH() + ZipРазмерEOCD());
- ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipLFH());
- ЧтениеДанных.КопироватьВ(ЗаписьДанных, РазмерСжатыхДанных);
-
- ЗаписьДанных.Закрыть();
- ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
-
- CRC32 = ЧтениеДанных.ПрочитатьЦелое32();
- РазмерНесжатыхДанных = ЧтениеДанных.ПрочитатьЦелое32();
- ЧтениеДанных.Закрыть();
-
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipEOCD(РазмерСжатыхДанных));
- ЗаписьДанных.Закрыть();
-
- Возврат ПрочитатьZip(ПотокZip);
-
-КонецФункции
-
-// Выполняет запись данных в архив GZip.
-//
-// Параметры:
-// Данные - ДвоичныеДанные - исходные данные.
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - данные упакованные GZip.
-//
-Функция ЗаписатьGZip(Данные) Экспорт
-
- ЧтениеДанных = Новый ЧтениеДанных(ЗаписатьZip(Данные));
-
- НачальноеСмещение = 14;
- ЧтениеДанных.Пропустить(НачальноеСмещение);
- CRC32 = ЧтениеДанных.ПрочитатьЦелое32();
-
- РазмерСжатыхДанных = ЧтениеДанных.ПрочитатьЦелое32();
- РазмерИсходныхДанных = ЧтениеДанных.ПрочитатьЦелое32();
-
- РазмерИмениФайла = ЧтениеДанных.ПрочитатьЦелое16();
- РазмерДополнительногоПоля = ЧтениеДанных.ПрочитатьЦелое16();
- ЧтениеДанных.Пропустить(РазмерИмениФайла + РазмерДополнительногоПоля);
-
- ПотокGZip = Новый ПотокВПамяти;
- ЗаписьДанных = Новый ЗаписьДанных(ПотокGZip);
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(GZipHeader());
- ЧтениеДанных.КопироватьВ(ЗаписьДанных, РазмерСжатыхДанных);
- ЗаписьДанных.Закрыть();
- ЗаписьДанных = Новый ЗаписьДанных(ПотокGZip);
-
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(GZipFooter(CRC32, РазмерИсходныхДанных));
-
- Возврат ПотокGZip.ЗакрытьИПолучитьДвоичныеДанные();
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПодготовитьЗапрос(Сессия, Метод, URL, ДополнительныеПараметры) Экспорт
-
- Cookies = ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Cookies", Новый Массив);
- Cookies = ОбъединитьCookies(ДозаполнитьCookie(Сессия.Cookies, URL), ДозаполнитьCookie(Cookies, URL));
-
- АутентификацияИзДополнительныхПараметров =
- ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Аутентификация", Новый Структура);
- ПараметрыЗапросаИзДополнительныхПараметров =
- ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "ПараметрыЗапроса", Новый Структура);
- ЗаголовкиИзДополнительныхПараметров =
- ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Заголовки", Новый Соответствие);
-
- Аутентификация = Объединить(Скопировать(АутентификацияИзДополнительныхПараметров), Сессия.Аутентификация);
- ПараметрыЗапроса = Объединить(Скопировать(ПараметрыЗапросаИзДополнительныхПараметров), Сессия.ПараметрыЗапроса);
- Заголовки = Объединить(Скопировать(ЗаголовкиИзДополнительныхПараметров), Сессия.Заголовки);
- ПараметрыПреобразованияJSON =
- ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "ПараметрыПреобразованияJSON", Неопределено);
-
- ПодготовленныйЗапрос = Новый Структура;
- ПодготовленныйЗапрос.Вставить("Cookies", Cookies);
- ПодготовленныйЗапрос.Вставить("Аутентификация", Аутентификация);
- ПодготовленныйЗапрос.Вставить("Метод", Метод);
- ПодготовленныйЗапрос.Вставить("Заголовки", Заголовки);
- ПодготовленныйЗапрос.Вставить("ПараметрыЗапроса", ПараметрыЗапроса);
- ПодготовленныйЗапрос.Вставить("URL", ПодготовитьURL(URL, ПараметрыЗапроса));
- ПодготовленныйЗапрос.Вставить("ПараметрыПреобразованияJSON", ПараметрыПреобразованияJSON);
-
- ПодготовитьCookies(ПодготовленныйЗапрос);
-
- Данные = ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Данные", Новый Структура);
- Файлы = ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Файлы", Новый Массив);
- Json = ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "Json", Неопределено);
- ПараметрыЗаписиJSON = ВыбратьЗначение(Неопределено, ДополнительныеПараметры, "ПараметрыЗаписиJSON", Неопределено);
-
- ПодготовитьТелоЗапроса(ПодготовленныйЗапрос, Данные, Файлы, Json, ПараметрыЗаписиJSON);
- ПодготовитьАутентификацию(ПодготовленныйЗапрос);
-
- Возврат ПодготовленныйЗапрос;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область РаботаСHTTPЗапросами
-
-Функция ПараметрыИзАргументов(ПараметрыЗапроса, Данные, Json)
-
- Результат = Новый Структура;
- Результат.Вставить("ПараметрыЗапроса", ПараметрыЗапроса);
- Результат.Вставить("Данные", Данные);
- Результат.Вставить("Json", Json);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ВызватьHTTPМетод(Сессия, Метод, URL, ДополнительныеПараметры)
-
- ПодготовленныйЗапрос = ПодготовитьЗапрос(Сессия, Метод, URL, ДополнительныеПараметры);
-
- НастройкиПодключения = НастройкиПодключения(Метод, URL, ДополнительныеПараметры);
-
- Ответ = ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, НастройкиПодключения);
-
- Если НастройкиПодключения.РазрешитьПеренаправление И Ответ.ЭтоРедирект Тогда
- // INFO: по хорошему аутентификацию нужно привести к новых параметрам, но пока будем игнорировать.
- Ответ = ПеренаправитьЗапрос(Сессия, НастройкиПодключения, ПодготовленныйЗапрос, Ответ);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПеренаправитьЗапрос(Сессия, НастройкиПодключения, ПодготовленныйЗапрос, ПеренаправленныйОтвет)
-
- Перенаправление = 0;
-
- Пока ПеренаправленныйОтвет.ЭтоРедирект Цикл
-
- ПодготовитьЗапросДляРедиректа(Сессия, ПодготовленныйЗапрос, ПеренаправленныйОтвет);
-
- ПеренаправленныйОтвет = ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, НастройкиПодключения);
-
- Перенаправление = Перенаправление + 1;
-
- Если Перенаправление > Сессия.МаксимальноеКоличествоПеренаправлений Тогда
- ВызватьИсключение("СлишкомМногоПеренаправлений");
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат ПеренаправленныйОтвет;
-
-КонецФункции
-
-Процедура ПодготовитьЗапросДляРедиректа(Сессия, ПодготовленныйЗапрос, ПеренаправленныйОтвет)
-
- КодыСостоянияHTTP = КодыСостоянияHTTP();
-
- НовыйURL = СформироватьНовыйURLПриПеренаправлении(ПеренаправленныйОтвет);
-
- ПодготовленныйЗапрос.URL = КодироватьСтроку(НовыйURL, СпособКодированияСтроки.URLВКодировкеURL);
- НовыйHTTPЗапрос = Новый HTTPЗапрос(СобратьАдресРесурса(РазобратьURL(НовыйURL), Новый Соответствие));
- ПереопределитьМетод(ПодготовленныйЗапрос, ПеренаправленныйОтвет);
-
- Если ПеренаправленныйОтвет.КодСостояния <> КодыСостоянияHTTP.ВременноеПеренаправление_307
- И ПеренаправленныйОтвет.КодСостояния <> КодыСостоянияHTTP.ПостоянноеПеренаправление_308 Тогда
- УдалитьЗаголовки(ПодготовленныйЗапрос.Заголовки, "content-length,content-type,transfer-encoding");
- НовыйHTTPЗапрос.Заголовки = ПодготовленныйЗапрос.Заголовки;
- Иначе
- ИсходныйПоток = ПодготовленныйЗапрос.HTTPЗапрос.ПолучитьТелоКакПоток();
- ИсходныйПоток.КопироватьВ(НовыйHTTPЗапрос.ПолучитьТелоКакПоток());
- КонецЕсли;
-
- ПодготовленныйЗапрос.HTTPЗапрос = НовыйHTTPЗапрос;
- УдалитьЗаголовки(ПодготовленныйЗапрос.Заголовки, "cookies");
-
- ПодготовленныйЗапрос.Cookies = ОбъединитьCookies(ПодготовленныйЗапрос.Cookies, Сессия.Cookies);
- ПодготовитьCookies(ПодготовленныйЗапрос);
-
-КонецПроцедуры
-
-Процедура ПодготовитьАутентификацию(ПодготовленныйЗапрос)
-
- ПодготовленныйЗапрос.Вставить("СобытияНаОтвет", Новый Массив);
- Если Не ЗначениеЗаполнено(ПодготовленныйЗапрос.Аутентификация) Тогда
- СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
- Если ЗначениеЗаполнено(СтруктураURL.Аутентификация) Тогда
- ПодготовленныйЗапрос.Аутентификация = СтруктураURL.Аутентификация;
- КонецЕсли;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ПодготовленныйЗапрос.Аутентификация) Тогда
- Если ПодготовленныйЗапрос.Аутентификация.Свойство("Тип") Тогда
- ТипАутентификации = НРег(ПодготовленныйЗапрос.Аутентификация.Тип);
- Если ТипАутентификации = "digest" Тогда
- ПодготовленныйЗапрос.СобытияНаОтвет.Добавить("ОбработкаОтветаСКодом401");
- КонецЕсли;
- Если ТипАутентификации = "aws4-hmac-sha256" Тогда
- ПодготовитьАутентификациюAWS4(ПодготовленныйЗапрос);
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПодготовитьТелоЗапроса(ПодготовленныйЗапрос, Данные, Файлы, Json, ПараметрыЗаписиJSON)
-
- СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
-
- HTTPЗапрос = Новый HTTPЗапрос;
- HTTPЗапрос.АдресРесурса = СобратьАдресРесурса(СтруктураURL, ПодготовленныйЗапрос.ПараметрыЗапроса);
- Если ЗначениеЗаполнено(Файлы) Тогда
- ContentType = ЗакодироватьФайлы(HTTPЗапрос, Файлы, Данные);
- ИначеЕсли ЗначениеЗаполнено(Данные) Тогда
- ContentType = "application/x-www-form-urlencoded";
- Если ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
- HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Данные);
- Иначе
- Если ТипЗнч(Данные) = Тип("Строка") Тогда
- Тело = Данные;
- Иначе
- Тело = КодироватьПараметрыЗапроса(Данные);
- КонецЕсли;
- ContentType = "application/x-www-form-urlencoded; charset=utf-8";
- HTTPЗапрос.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
- КонецЕсли;
- ИначеЕсли Json <> Неопределено Тогда
- ContentType = "application/json; charset=utf-8";
- СтрокаJson = ОбъектВJson(Json, ПодготовленныйЗапрос.ПараметрыПреобразованияJSON, ПараметрыЗаписиJSON);
- HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJson, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
- Иначе
- ContentType = Неопределено;
- КонецЕсли;
- ЗначениеЗаголовка = ЗначениеЗаголовка("content-type", ПодготовленныйЗапрос.Заголовки);
- Если ЗначениеЗаголовка = Ложь И ЗначениеЗаполнено(ContentType) Тогда
- ПодготовленныйЗапрос.Заголовки.Вставить("Content-Type", ContentType);
- КонецЕсли;
-
- HTTPЗапрос.Заголовки = ПодготовленныйЗапрос.Заголовки;
-
- УпаковатьЗапрос(HTTPЗапрос);
-
- ПодготовленныйЗапрос.Вставить("HTTPЗапрос", HTTPЗапрос);
-
-КонецПроцедуры
-
-Функция ЗакодироватьФайлы(HTTPЗапрос, Файлы, Данные)
-
- Части = Новый Массив;
- Если ЗначениеЗаполнено(Данные) Тогда
- Для Каждого Поле Из Данные Цикл
- Части.Добавить(СоздатьПолеФормы(Новый Структура("Имя,Данные", Поле.Ключ, Поле.Значение)));
- КонецЦикла;
- КонецЕсли;
- Если ТипЗнч(Файлы) = Тип("Массив") Тогда
- Для Каждого Файл Из Файлы Цикл
- Части.Добавить(СоздатьПолеФормы(Файл));
- КонецЦикла;
- Иначе
- Части.Добавить(СоздатьПолеФормы(Файлы));
- КонецЕсли;
-
- Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
- РазделительСтрок = Символы.ВК + Символы.ПС;
-
- ТелоЗапроса = HTTPЗапрос.ПолучитьТелоКакПоток();
- ЗаписьДанных = Новый ЗаписьДанных(ТелоЗапроса, КодировкаТекста.UTF8, ПорядокБайтов.LittleEndian, "", "", Ложь);
- Для Каждого Часть Из Части Цикл
- ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + РазделительСтрок);
- ЗаписьДанных.ЗаписатьСтроку(ЗаголовкиВСтроку(Часть.Заголовки));
- Если ТипЗнч(Часть.Данные) = Тип("ДвоичныеДанные") Тогда
- ЗаписьДанных.Записать(Часть.Данные);
- Иначе
- ЗаписьДанных.ЗаписатьСтроку(Часть.Данные);
- КонецЕсли;
- ЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
- КонецЦикла;
- ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + "--" + РазделительСтрок);
- ЗаписьДанных.Закрыть();
-
- Возврат СтрШаблон("multipart/form-data; boundary=%1", Разделитель);
-
-КонецФункции
-
-Функция СоздатьПолеФормы(ИсходныеПараметры)
-
- Поле = Новый Структура("Имя,ИмяФайла,Данные,Тип,Заголовки");
- Поле.Имя = ИсходныеПараметры.Имя;
- Поле.Данные = ИсходныеПараметры.Данные;
-
- Поле.Тип = ЗначениеПоКлючу(ИсходныеПараметры, "Тип");
- Поле.Заголовки = ЗначениеПоКлючу(ИсходныеПараметры, "Заголовки", Новый Соответствие);
- Поле.ИмяФайла = ЗначениеПоКлючу(ИсходныеПараметры, "ИмяФайла");
-
- Ключ = "Content-Disposition";
- Если ЗначениеЗаголовка("content-disposition", Поле.Заголовки, Ключ) = Ложь Тогда
- Поле.Заголовки.Вставить("Content-Disposition", "form-data");
- КонецЕсли;
-
- Части = Новый Массив;
- Части.Добавить(Поле.Заголовки[Ключ]);
- Части.Добавить(СтрШаблон("name=""%1""", Поле.Имя));
- Если ЗначениеЗаполнено(Поле.ИмяФайла) Тогда
- Части.Добавить(СтрШаблон("filename=""%1""", Поле.ИмяФайла));
- КонецЕсли;
-
- Поле.Заголовки[Ключ] = СтрСоединить(Части, "; ");
- Поле.Заголовки["Content-Type"] = Поле.Тип;
-
- Возврат Поле;
-
-КонецФункции
-
-Функция ЗаполнитьПараметрыЗапроса(Путь)
-
- ПараметрыЗапроса = Новый Соответствие;
-
- Запрос = "";
- РазбитьСтрокуПоРазделителю(Запрос, Путь, "?", Истина);
- Для Каждого СтрокаКлючРавноПараметр Из СтрРазделить(Запрос, "&", Ложь) Цикл
- СтрокаКлючРавноПараметр = РаскодироватьСтроку(
- СтрокаКлючРавноПараметр, СпособКодированияСтроки.URLВКодировкеURL);
-
- ПозицияРавно = СтрНайти(СтрокаКлючРавноПараметр, "=");
- Если ПозицияРавно = 0 Тогда
- Ключ = СтрокаКлючРавноПараметр;
- Значение = Неопределено;
- Иначе
- Ключ = Лев(СтрокаКлючРавноПараметр, ПозицияРавно - 1);
- Значение = Сред(СтрокаКлючРавноПараметр, ПозицияРавно + 1);
- КонецЕсли;
-
- Если ПараметрыЗапроса.Получить(Ключ) <> Неопределено Тогда
- Если ТипЗнч(ПараметрыЗапроса[Ключ]) = Тип("Массив") Тогда
- ПараметрыЗапроса[Ключ].Добавить(Значение);
- Иначе
- Значения = Новый Массив;
- Значения.Добавить(ПараметрыЗапроса[Ключ]);
- Значения.Добавить(Значение);
- ПараметрыЗапроса[Ключ] = Значения;
- КонецЕсли;
- Иначе
- ПараметрыЗапроса.Вставить(Ключ, Значение);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат ПараметрыЗапроса;
-
-КонецФункции
-
-Функция КодироватьПараметрыЗапроса(ПараметрыЗапроса)
-
- ЧастиПараметрыЗапроса = Новый Массив;
- Для Каждого Параметр Из ПараметрыЗапроса Цикл
- Если ТипЗнч(Параметр.Значение) = Тип("Массив") Тогда
- Значения = Параметр.Значение;
- Иначе
- Значения = Новый Массив;
- Значения.Добавить(Параметр.Значение);
- КонецЕсли;
-
- Если Параметр.Значение = Неопределено Тогда
- ЧастиПараметрыЗапроса.Добавить(Параметр.Ключ);
- Иначе
- Для Каждого Значение Из Значения Цикл
- ЗначениеПараметра = КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL);
- ЧастиПараметрыЗапроса.Добавить(СтрШаблон("%1=%2", Параметр.Ключ, ЗначениеПараметра));
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-
- Возврат СтрСоединить(ЧастиПараметрыЗапроса, "&");
-
-КонецФункции
-
-Процедура ПереопределитьМетод(ПодготовленныйЗапрос, Ответ)
-
- КодыСостоянияHTTP = КодыСостоянияHTTP();
-
- Метод = ПодготовленныйЗапрос.Метод;
-
- // http://tools.ietf.org/html/rfc7231#section-6.4.4
- Если Ответ.КодСостояния = КодыСостоянияHTTP.СмотретьДругое_303 И Метод <> "HEAD" Тогда
- Метод = "GET";
- КонецЕсли;
-
- // Поведение браузеров
- Если Ответ.КодСостояния = КодыСостоянияHTTP.ПеремещеноВременно_302 И Метод <> "HEAD" Тогда
- Метод = "GET";
- КонецЕсли;
-
- ПодготовленныйЗапрос.Метод = Метод;
-
-КонецПроцедуры
-
-Функция ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, Настройки)
-
- Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
- МиллисекундВСекунде = 1000;
-
- Повтор = 0;
- Длительность = 0;
- Ошибки = Новый Массив;
-
- Пока Истина Цикл
- Попытка
- Ответ = ОтправитьHTTPЗапрос(Сессия, ПодготовленныйЗапрос, Настройки);
- Исключение
- ОшибкаВыполненияЗапроса = ИнформацияОбОшибке();
-
- ТекстОшибки = СтрШаблон(
- НСтр("ru = 'HTTP %1 %2
- |Network error:
- |%3'"),
- ПодготовленныйЗапрос.Метод,
- ПодготовленныйЗапрос.URL,
- ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())
- );
- Ошибки.Добавить(ТекстОшибки);
- КонецПопытки;
-
- Повтор = Повтор + 1;
- Длительность = (ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало) / МиллисекундВСекунде;
-
- Если Не НеобходимоПовторитьЗапрос(Ответ, Настройки, ОшибкаВыполненияЗапроса) Тогда
- Прервать;
- КонецЕсли;
-
- Если Повтор > Настройки.МаксимальноеКоличествоПовторов
- ИЛИ Длительность > Настройки.МаксимальноеВремяПовторов Тогда
- Прервать;
- КонецЕсли;
-
- Если ОшибкаВыполненияЗапроса <> Неопределено
- ИЛИ НЕ ЭтоКодСостоянияПриКоторомНужноУчитыватьЗаголовокRetryAfter(Ответ.КодСостояния) Тогда
- ЗаголовокRetryAfter = Ложь;
- Иначе
- ЗаголовокRetryAfter = ЗначениеЗаголовка("retry-after", Ответ.Заголовки);
- КонецЕсли;
-
- Если ОшибкаВыполненияЗапроса <> Неопределено Тогда
- Ошибки.Добавить(КакИсключение(Ответ));
- КонецЕсли;
-
- ДлительностьПриостановки = РассчитатьДлительностьПриостановки(
- Повтор,
- Настройки.КоэффициентЭкспоненциальнойЗадержки,
- ЗаголовокRetryAfter,
- Настройки.МаксимальноеВремяПовторов - Длительность);
- Приостановить(ДлительностьПриостановки);
- КонецЦикла;
-
- Если ОшибкаВыполненияЗапроса <> Неопределено Тогда
- ВызватьИсключение(ПодробноеПредставлениеОшибки(ОшибкаВыполненияЗапроса));
- КонецЕсли;
-
- ЗаголовокContentType = ЗначениеЗаголовка("content-type", Ответ.Заголовки);
- Если ЗаголовокContentType = Ложь Тогда
- ЗаголовокContentType = "";
- КонецЕсли;
-
- ПодготовленныйОтвет = НовыйОтвет();
- ПодготовленныйОтвет.Метод = ПодготовленныйЗапрос.Метод;
- ПодготовленныйОтвет.URL = ПодготовленныйЗапрос.URL;
- ПодготовленныйОтвет.КодСостояния = Ответ.КодСостояния;
- ПодготовленныйОтвет.Заголовки = Ответ.Заголовки;
- ПодготовленныйОтвет.Тело = Ответ.ПолучитьТелоКакДвоичныеДанные();
- ПодготовленныйОтвет.Кодировка = КодировкаИзЗаголовка(ЗаголовокContentType);
- ПодготовленныйОтвет.ВремяВыполнения = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
- ПодготовленныйОтвет.ЭтоПостоянныйРедирект = ЭтоПостоянныйРедирект(Ответ.КодСостояния, Ответ.Заголовки);
- ПодготовленныйОтвет.ЭтоРедирект = ЭтоРедирект(Ответ.КодСостояния, Ответ.Заголовки);
- ПодготовленныйОтвет.Cookies = ИзвлечьCookies(Ответ.Заголовки, ПодготовленныйЗапрос.URL);
-
- Сессия.Cookies = ОбъединитьCookies(Сессия.Cookies, ПодготовленныйОтвет.Cookies);
-
- Возврат ПодготовленныйОтвет;
-
-КонецФункции
-
-Функция ОтправитьHTTPЗапрос(Сессия, ПодготовленныйЗапрос, Настройки)
-
- СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
- Соединение = Соединение(СтруктураURL, ПодготовленныйЗапрос.Аутентификация, Настройки, Сессия);
- Ответ = Соединение.ВызватьHTTPМетод(ПодготовленныйЗапрос.Метод, ПодготовленныйЗапрос.HTTPЗапрос);
-
- Для Каждого Обработчик Из ПодготовленныйЗапрос.СобытияНаОтвет Цикл
- Если Обработчик = "ОбработкаОтветаСКодом401" Тогда
- ОбработкаОтветаСКодом401(Сессия, ПодготовленныйЗапрос, Настройки, Ответ);
- КонецЕсли;
- КонецЦикла;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция НеобходимоПовторитьЗапрос(Ответ, Настройки, ОшибкаВыполненияЗапроса)
-
- Если Настройки.МаксимальноеКоличествоПовторов < 1 Тогда
- ПовторитьЗапрос = Ложь;
- ИначеЕсли ОшибкаВыполненияЗапроса <> Неопределено ИЛИ ПовторятьПриКодеСостояния(Ответ.КодСостояния, Настройки) Тогда
- ПовторитьЗапрос = Истина;
- Иначе
- ЗаголовокRetryAfter = ЗначениеЗаголовка("retry-after", Ответ.Заголовки);
- ПовторитьЗапрос = ЗаголовокRetryAfter <> Ложь
- И ЭтоКодСостоянияПриКоторомНужноУчитыватьЗаголовокRetryAfter(Ответ.КодСостояния);
- КонецЕсли;
-
- Возврат ПовторитьЗапрос;
-
-КонецФункции
-
-Функция ПовторятьПриКодеСостояния(КодСостояния, Настройки)
-
- ПовторПриЛюбомКодеСостоянияБольшеИлиРавным500 = Настройки.ПовторятьДляКодовСостояний = Неопределено
- И КодСостояния >= КодыСостоянияHTTP().ВнутренняяОшибкаСервера_500;
- КодСостоянияСоответствуетКодуСостоянияПовтора = ТипЗнч(Настройки.ПовторятьДляКодовСостояний) = Тип("Массив")
- И Настройки.ПовторятьДляКодовСостояний.Найти(КодСостояния) <> Неопределено;
- Возврат ПовторПриЛюбомКодеСостоянияБольшеИлиРавным500 ИЛИ КодСостоянияСоответствуетКодуСостоянияПовтора;
-
-КонецФункции
-
-Функция ЭтоПостоянныйРедирект(КодСостояния, Заголовки)
-
- КодыСостоянияHTTP = КодыСостоянияHTTP();
-
- Возврат ЕстьЗаголовокLocation(Заголовки)
- И (КодСостояния = КодыСостоянияHTTP.ПеремещеноНавсегда_301
- ИЛИ КодСостояния = КодыСостоянияHTTP.ПостоянноеПеренаправление_308);
-
-КонецФункции
-
-Функция ЭтоРедирект(КодСостояния, Заголовки)
-
- КодыСостоянияHTTP = КодыСостоянияHTTP();
-
- СостоянияРедиректа = Новый Массив;
- СостоянияРедиректа.Добавить(КодыСостоянияHTTP.ПеремещеноНавсегда_301);
- СостоянияРедиректа.Добавить(КодыСостоянияHTTP.ПеремещеноВременно_302);
- СостоянияРедиректа.Добавить(КодыСостоянияHTTP.СмотретьДругое_303);
- СостоянияРедиректа.Добавить(КодыСостоянияHTTP.ВременноеПеренаправление_307);
- СостоянияРедиректа.Добавить(КодыСостоянияHTTP.ПостоянноеПеренаправление_308);
-
- Возврат ЕстьЗаголовокLocation(Заголовки) И СостоянияРедиректа.Найти(КодСостояния) <> Неопределено;
-
-КонецФункции
-
-Процедура УпаковатьЗапрос(Запрос)
-
- Заголовок = ЗначениеЗаголовка("content-encoding", Запрос.Заголовки);
- Если Заголовок <> Ложь Тогда
- Если НРег(Заголовок) = "gzip" Тогда
- Запрос.УстановитьТелоИзДвоичныхДанных(ЗаписатьGZip(Запрос.ПолучитьТелоКакДвоичныеДанные()));
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция РаспаковатьОтвет(Ответ)
-
- Заголовок = ЗначениеЗаголовка("content-encoding", Ответ.Заголовки);
- Если Заголовок <> Ложь Тогда
- Если НРег(Заголовок) = "gzip" Тогда
- Возврат ПрочитатьGZip(Ответ.Тело);
- КонецЕсли;
- КонецЕсли;
-
- Возврат Ответ.Тело;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОбработчикиСобытий
-
-Процедура ОбработкаОтветаСКодом401(Сессия, ПодготовленныйЗапрос, Настройки, Ответ)
-
- Если ЭтоРедирект(Ответ.КодСостояния, Ответ.Заголовки) Тогда
- Возврат;
- КонецЕсли;
-
- КодыСостоянияHTTP = КодыСостоянияHTTP();
- Если Ответ.КодСостояния < КодыСостоянияHTTP.НеверныйЗапрос_400
- ИЛИ Ответ.КодСостояния >= КодыСостоянияHTTP.ВнутренняяОшибкаСервера_500 Тогда
- Возврат;
- КонецЕсли;
-
- Значение = ЗначениеЗаголовка("www-authenticate", Ответ.Заголовки);
- Если Значение <> Ложь И СтрНайти(НРег(Значение), "digest") Тогда
- Позиция = СтрНайти(НРег(Значение), "digest");
- Значение = Сред(Значение, Позиция + СтрДлина("digest") + 1);
- Значение = СтрЗаменить(Значение, """", "");
- Значение = СтрЗаменить(Значение, Символы.ПС, "");
-
- ПараметрыDigest = Новый Структура("algorithm,realm,nonce,qop,opaque");
- Для Каждого Часть Из РазбитьСтрокуПоСтроке(Значение, ", ") Цикл
- КлючЗначение = СтрРазделить(Часть, "=");
- ПараметрыDigest.Вставить(КлючЗначение[0], КлючЗначение[1]);
- КонецЦикла;
-
- Сессия.СлужебныеДанные.ПараметрыDigest = ПараметрыDigest;
-
- ПодготовленныйЗапрос.Заголовки.Вставить("Authorization", ПодготовитьЗаголовокDigest(Сессия, ПодготовленныйЗапрос));
- ПодготовленныйЗапрос.HTTPЗапрос.Заголовки = ПодготовленныйЗапрос.Заголовки;
-
- Ответ = ОтправитьHTTPЗапрос(Сессия, ПодготовленныйЗапрос, Настройки);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область URL
-
-Функция ПодготовитьURL(Знач URL, ПараметрыЗапроса = Неопределено)
-
- URL = СокрЛ(URL);
-
- СтруктураURL = РазобратьURL(URL);
-
- ПодготовленныйURL = СтруктураURL.Схема + "://";
- Если ЗначениеЗаполнено(СтруктураURL.Аутентификация.Пользователь) Тогда
- ПодготовленныйURL = ПодготовленныйURL
- + СтруктураURL.Аутентификация.Пользователь + ":"
- + СтруктураURL.Аутентификация.Пароль + "@";
- КонецЕсли;
- ПодготовленныйURL = ПодготовленныйURL + СтруктураURL.Сервер;
- Если ЗначениеЗаполнено(СтруктураURL.Порт) Тогда
- ПодготовленныйURL = ПодготовленныйURL + ":" + Формат(СтруктураURL.Порт, "ЧРГ=; ЧГ=");
- КонецЕсли;
-
- ПодготовленныйURL = ПодготовленныйURL + СобратьАдресРесурса(СтруктураURL, ПараметрыЗапроса);
-
- Возврат ПодготовленныйURL;
-
-КонецФункции
-
-Функция СобратьАдресРесурса(СтруктураURL, ПараметрыЗапроса)
-
- АдресРесурса = СтруктураURL.Путь;
-
- ОбъединенныеПараметрыЗапроса = Объединить(Скопировать(ПараметрыЗапроса), СтруктураURL.ПараметрыЗапроса);
- Если ЗначениеЗаполнено(ОбъединенныеПараметрыЗапроса) Тогда
- АдресРесурса = АдресРесурса + "?" + КодироватьПараметрыЗапроса(ОбъединенныеПараметрыЗапроса);
- КонецЕсли;
- Если ЗначениеЗаполнено(СтруктураURL.Фрагмент) Тогда
- АдресРесурса = АдресРесурса + "#" + СтруктураURL.Фрагмент;
- КонецЕсли;
-
- Возврат АдресРесурса;
-
-КонецФункции
-
-Функция СформироватьНовыйURLПриПеренаправлении(Ответ)
-
- НовыйURL = ЗначениеЗаголовка("location", Ответ.Заголовки);
- НовыйURL = РаскодироватьСтроку(НовыйURL, СпособКодированияСтроки.URLВКодировкеURL);
-
- // Редирект без схемы
- Если СтрНачинаетсяС(НовыйURL, "//") Тогда
- СтруктураURL = РазобратьURL(Ответ.URL);
- НовыйURL = СтруктураURL.Схема + ":" + НовыйURL;
- КонецЕсли;
-
- СтруктураURL = РазобратьURL(НовыйURL);
- Если РазбитьСтрокуПоСтроке(НовыйURL, "://").Количество() < 2 Тогда
- СтруктураURLОтвета = РазобратьURL(Ответ.URL);
- БазовыйURL = СтрШаблон("%1://%2", СтруктураURLОтвета.Схема, СтруктураURLОтвета.Сервер);
- Если ЗначениеЗаполнено(СтруктураURLОтвета.Порт) Тогда
- БазовыйURL = БазовыйURL + ":" + Формат(СтруктураURLОтвета.Порт, "ЧРГ=; ЧГ=");
- КонецЕсли;
- Если СтрНачинаетсяС(НовыйURL, "/") Тогда
- НовыйURL = БазовыйURL + НовыйURL;
- Иначе
- ИндексПоследнегоСлеша = СтрНайти(СтруктураURLОтвета.Путь, "/", НаправлениеПоиска.СКонца);
- РодительскаяДиректория = Лев(СтруктураURLОтвета.Путь, ИндексПоследнегоСлеша);
- НовыйURL = БазовыйURL + РодительскаяДиректория + НовыйURL;
- КонецЕсли;
- КонецЕсли;
-
- Возврат НовыйURL;
-
-КонецФункции
-
-Функция ЭтоСтандартныйПорт(СтруктураURL)
-
- СтандартныйПортHTTP = 80;
- СтандартныйПортHTTPS = 443;
-
- Возврат (СтруктураURL.Схема = "http" И СтруктураURL.Порт = СтандартныйПортHTTP)
- ИЛИ (СтруктураURL.Схема = "https" И СтруктураURL.Порт = СтандартныйПортHTTPS);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаССоединением
-
-Функция НастройкиПодключения(Метод, URL, ДополнительныеПараметры)
-
- РазрешитьПеренаправление =
- ЗначениеПоКлючу(ДополнительныеПараметры, "РазрешитьПеренаправление", ВРег(Метод) <> "HEAD");
- ПроверятьSSL = ЗначениеПоКлючу(ДополнительныеПараметры, "ПроверятьSSL", Истина);
- КлиентскийСертификатSSL = ЗначениеПоКлючу(ДополнительныеПараметры, "КлиентскийСертификатSSL");
- Прокси = ЗначениеПоКлючу(ДополнительныеПараметры, "Прокси", ПроксиПоУмолчанию(URL));
- МаксимальноеКоличествоПовторов = ЗначениеПоКлючу(ДополнительныеПараметры, "МаксимальноеКоличествоПовторов", 0);
- ПовторятьДляКодовСостояний =
- ЗначениеПоКлючу(ДополнительныеПараметры, "ПовторятьДляКодовСостояний", Неопределено);
- КоэффициентЭкспоненциальнойЗадержки =
- ЗначениеПоКлючу(ДополнительныеПараметры, "КоэффициентЭкспоненциальнойЗадержки", 1);
- МаксимальноеВремяПовторов = ЗначениеПоКлючу(ДополнительныеПараметры, "МаксимальноеВремяПовторов", 600);
-
- Настройки = Новый Структура;
- Настройки.Вставить("Таймаут", Таймаут(ДополнительныеПараметры));
- Настройки.Вставить("РазрешитьПеренаправление", РазрешитьПеренаправление);
- Настройки.Вставить("ПроверятьSSL", ПроверятьSSL);
- Настройки.Вставить("КлиентскийСертификатSSL", КлиентскийСертификатSSL);
- Настройки.Вставить("Прокси", Прокси);
- Настройки.Вставить("МаксимальноеКоличествоПовторов", МаксимальноеКоличествоПовторов);
- Настройки.Вставить("ПовторятьДляКодовСостояний", ПовторятьДляКодовСостояний);
- Настройки.Вставить("КоэффициентЭкспоненциальнойЗадержки", КоэффициентЭкспоненциальнойЗадержки);
- Настройки.Вставить("МаксимальноеВремяПовторов", МаксимальноеВремяПовторов);
-
- Возврат Настройки;
-
-КонецФункции
-
-Функция Соединение(ПараметрыСоединения, Аутентификация, ДополнительныеПараметры, Сессия)
-
- Если Не ЗначениеЗаполнено(ПараметрыСоединения.Порт) Тогда
- Если ПараметрыСоединения.Схема = "https" Тогда
- ПараметрыСоединения.Порт = 443;
- Иначе
- ПараметрыСоединения.Порт = 80;
- КонецЕсли;
- КонецЕсли;
-
- ЗащищенноеСоединение = Неопределено;
- Если ПараметрыСоединения.Схема = "https" Тогда
- ЗащищенноеСоединение = ОбъектЗащищенногоСоединения(ДополнительныеПараметры);
- КонецЕсли;
-
- Пользователь = "";
- Пароль = "";
- Если ЗначениеЗаполнено(Аутентификация) Тогда
- Если Аутентификация.Свойство("Пользователь") И Аутентификация.Свойство("Пароль") Тогда
- Пользователь = Аутентификация.Пользователь;
- Пароль = Аутентификация.Пароль;
- КонецЕсли;
- КонецЕсли;
-
- ИспользоватьАутентификациюОС = Аутентификация.Свойство("ИспользоватьАутентификациюОС")
- И Аутентификация.ИспользоватьАутентификациюОС = Истина;
-
- ПараметрыДляРасчетаИдентификатора = Новый Массив;
- ПараметрыДляРасчетаИдентификатора.Добавить(ПараметрыСоединения.Сервер);
- ПараметрыДляРасчетаИдентификатора.Добавить(ПараметрыСоединения.Порт);
- ПараметрыДляРасчетаИдентификатора.Добавить(Пользователь);
- ПараметрыДляРасчетаИдентификатора.Добавить(Пароль);
- ПараметрыДляРасчетаИдентификатора.Добавить(ДополнительныеПараметры.Таймаут);
- ПараметрыДляРасчетаИдентификатора.Добавить(ИспользоватьАутентификациюОС);
- ПараметрыДляРасчетаИдентификатора.Добавить(ЗащищенноеСоединение);
- ПараметрыДляРасчетаИдентификатора.Добавить(ДополнительныеПараметры.Прокси);
-
- Если Не Сессия.Свойство("СлужебныеДанные") ИЛИ ТипЗнч(Сессия.СлужебныеДанные) <> Тип("Структура") Тогда
- Сессия.Вставить("СлужебныеДанные", Новый Структура);
- КонецЕсли;
- Если Не Сессия.СлужебныеДанные.Свойство("ПулСоединений") Тогда
- Сессия.СлужебныеДанные.Вставить("ПулСоединений", Новый Соответствие);
- КонецЕсли;
- ПулСоединений = Сессия.СлужебныеДанные.ПулСоединений;
-
- ИдентификаторСоединения = ИдентификаторСоединения(ПараметрыДляРасчетаИдентификатора);
-
- Если ПулСоединений.Получить(ИдентификаторСоединения) = Неопределено Тогда
- НовоеСоединение = Новый HTTPСоединение(
- ПараметрыСоединения.Сервер,
- ПараметрыСоединения.Порт,
- Пользователь, Пароль,
- ДополнительныеПараметры.Прокси,
- ДополнительныеПараметры.Таймаут,
- ЗащищенноеСоединение,
- ИспользоватьАутентификациюОС);
- ПулСоединений.Вставить(ИдентификаторСоединения, НовоеСоединение);
- КонецЕсли;
-
- Возврат ПулСоединений[ИдентификаторСоединения];
-
-КонецФункции
-
-Функция ИдентификаторСоединения(ПараметрыСоединения)
-
- ПараметрыДляРасчетаИдентификатора = Новый Массив;
-
- Для Каждого Элемент Из ПараметрыСоединения Цикл
- ТипЭлемента = ТипЗнч(Элемент);
- Если ТипЭлемента = Тип("ИнтернетПрокси") Тогда
- ПараметрыДляРасчетаИдентификатора.Добавить(СтрСоединить(Элемент.НеИспользоватьПроксиДляАдресов, ""));
- ПараметрыДляРасчетаИдентификатора.Добавить(XMLСтрока(Элемент.НеИспользоватьПроксиДляЛокальныхАдресов));
- ПараметрыДляРасчетаИдентификатора.Добавить(Элемент.Пользователь);
- ПараметрыДляРасчетаИдентификатора.Добавить(Элемент.Пароль);
- ИначеЕсли ТипЭлемента = Тип("ЗащищенноеСоединениеOpenSSL") Тогда
- // Для упрощения будет считать, что сертификаты в рамках сессии не меняются
- Если Элемент.СертификатКлиента = Неопределено Тогда
- ПараметрыДляРасчетаИдентификатора.Добавить("");
- Иначе
- ПараметрыДляРасчетаИдентификатора.Добавить(Строка(ТипЗнч(Элемент.СертификатКлиента)));
- КонецЕсли;
- Если Элемент.СертификатыУдостоверяющихЦентров = Неопределено Тогда
- ПараметрыДляРасчетаИдентификатора.Добавить("");
- Иначе
- ПараметрыДляРасчетаИдентификатора.Добавить(Строка(ТипЗнч(Элемент.СертификатыУдостоверяющихЦентров)));
- КонецЕсли;
- Иначе
- ПараметрыДляРасчетаИдентификатора.Добавить(XMLСтрока(Элемент));
- КонецЕсли;
- КонецЦикла;
-
- Возврат ХешированиеДанных(ХешФункция.MD5, СтрСоединить(ПараметрыДляРасчетаИдентификатора, ""));
-
-КонецФункции
-
-Функция ОбъектЗащищенногоСоединения(ДополнительныеПараметры)
-
- Если ДополнительныеПараметры.ПроверятьSSL = Ложь Тогда
- СертификатыУЦ = Неопределено;
- ИначеЕсли ТипЗнч(ДополнительныеПараметры.ПроверятьSSL) = Тип("СертификатыУдостоверяющихЦентровФайл") Тогда
- СертификатыУЦ = ДополнительныеПараметры.ПроверятьSSL;
- Иначе
- СертификатыУЦ = Новый СертификатыУдостоверяющихЦентровОС;
- КонецЕсли;
- КлиентскийСертификат = Неопределено;
- Если ТипЗнч(ДополнительныеПараметры.КлиентскийСертификатSSL) = Тип("СертификатКлиентаФайл")
- ИЛИ ТипЗнч(ДополнительныеПараметры.КлиентскийСертификатSSL) = Тип("СертификатКлиентаWindows") Тогда
- КлиентскийСертификат = ДополнительныеПараметры.КлиентскийСертификатSSL;
- КонецЕсли;
-
- Возврат Новый ЗащищенноеСоединениеOpenSSL(КлиентскийСертификат, СертификатыУЦ);
-
-КонецФункции
-
-Функция Таймаут(ДополнительныеПараметры)
-
- Если ДополнительныеПараметры.Свойство("Таймаут") И ДополнительныеПараметры.Таймаут <> Неопределено Тогда
- Таймаут = ДополнительныеПараметры.Таймаут;
- Иначе
- Таймаут = СтандартныйТаймаут();
- КонецЕсли;
-
- Возврат Таймаут;
-
-КонецФункции
-
-Функция ПроксиПоУмолчанию(URL)
-
- ПроксиПоУмолчанию = Новый ИнтернетПрокси;
- // BSLLS:ExecuteExternalCodeInCommonModule-off
- ИмяОМПолученияФайловБСП = "ПолучениеФайловИзИнтернета";
- Если Метаданные.ОбщиеМодули.Найти(ИмяОМПолученияФайловБСП) <> Неопределено Тогда
- СтруктураURL = РазобратьURL(URL);
- Модуль = Вычислить(ИмяОМПолученияФайловБСП);
- ПроксиПоУмолчанию = Модуль.ПолучитьПрокси(СтруктураURL.Схема);
- КонецЕсли;
- // BSLLS:ExecuteExternalCodeInCommonModule-on
-
- Возврат ПроксиПоУмолчанию;
-
-КонецФункции
-
-Функция ТекущаяСессия(Сессия)
-
- Если Сессия = Неопределено Тогда
- Сессия = СоздатьСессию();
- КонецЕсли;
-
- Возврат Сессия;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Заголовки
-
-Функция ЗаголовкиВСтроку(Заголовки)
-
- РазделительСтрок = Символы.ВК + Символы.ПС;
- Строки = Новый Массив;
-
- СортированныеЗаголовки = "Content-Disposition,Content-Type,Content-Location";
- Для Каждого Ключ Из СтрРазделить(СортированныеЗаголовки, ",") Цикл
- Значение = ЗначениеЗаголовка(Ключ, Заголовки);
- Если Значение <> Ложь И ЗначениеЗаполнено(Значение) Тогда
- Строки.Добавить(СтрШаблон("%1: %2", Ключ, Значение));
- КонецЕсли;
- КонецЦикла;
-
- Ключи = СтрРазделить(ВРег(СортированныеЗаголовки), ",");
- Для Каждого Заголовок Из Заголовки Цикл
- Если Ключи.Найти(ВРег(Заголовок.Ключ)) = Неопределено Тогда
- Строки.Добавить(СтрШаблон("%1: %2", Заголовок.Ключ, Заголовок.Значение));
- КонецЕсли;
- КонецЦикла;
- Строки.Добавить(РазделительСтрок);
-
- Возврат СтрСоединить(Строки, РазделительСтрок);
-
-КонецФункции
-
-Процедура УдалитьЗаголовки(Заголовки, СписокЗаголовковСтрокой)
-
- ЗаголовкиДляУдаления = Новый Массив;
- СписокЗаголовков = СтрРазделить(СписокЗаголовковСтрокой, ",", Ложь);
- Для Каждого Заголовок Из Заголовки Цикл
- Если СписокЗаголовков.Найти(НРег(Заголовок.Ключ)) <> Неопределено Тогда
- ЗаголовкиДляУдаления.Добавить(Заголовок.Ключ);
- КонецЕсли;
- КонецЦикла;
- Для Каждого ЗаголовокДляУдаления Из ЗаголовкиДляУдаления Цикл
- Заголовки.Удалить(ЗаголовокДляУдаления);
- КонецЦикла;
-
-КонецПроцедуры
-
-Функция ЕстьЗаголовокLocation(Заголовки)
-
- Возврат ЗначениеЗаголовка("location", Заголовки) <> Ложь;
-
-КонецФункции
-
-Функция КодировкаИзЗаголовка(Знач Заголовок)
-
- Кодировка = Неопределено;
-
- Заголовок = НРег(СокрЛП(Заголовок));
- ИндексРазделителя = СтрНайти(Заголовок, ";");
- Если ИндексРазделителя Тогда
- ТипСодержимого = СокрЛП(Лев(Заголовок, ИндексРазделителя - 1));
- КлючКодировки = "charset=";
- ИндексКодировки = СтрНайти(Заголовок, КлючКодировки);
- Если ИндексКодировки Тогда
- ИндексРазделителя = СтрНайти(Заголовок, ";", НаправлениеПоиска.СНачала, ИндексКодировки);
- НачальнаяПозиция = ИндексКодировки + СтрДлина(КлючКодировки);
- Если ИндексРазделителя Тогда
- ДлинаКодировки = ИндексРазделителя - НачальнаяПозиция;
- Иначе
- ДлинаКодировки = СтрДлина(Заголовок);
- КонецЕсли;
- Кодировка = Сред(Заголовок, НачальнаяПозиция, ДлинаКодировки);
- Кодировка = СтрЗаменить(Кодировка, """", "");
- Кодировка = СтрЗаменить(Кодировка, "'", "");
- КонецЕсли;
- Иначе
- ТипСодержимого = Заголовок;
- КонецЕсли;
-
- Если Кодировка = Неопределено И СтрНайти(ТипСодержимого, "text") Тогда
- Кодировка = "iso-8859-1";
- КонецЕсли;
-
- Возврат Кодировка;
-
-КонецФункции
-
-Функция ЗначениеЗаголовка(Заголовок, ВсеЗаголовки, Ключ = Неопределено)
-
- Для Каждого ОчереднойЗаголовок Из ВсеЗаголовки Цикл
- Если НРег(ОчереднойЗаголовок.Ключ) = НРег(Заголовок) Тогда
- Ключ = ОчереднойЗаголовок.Ключ;
- Возврат ОчереднойЗаголовок.Значение;
- КонецЕсли;
- КонецЦикла;
-
- Возврат Ложь;
-
-КонецФункции
-
-Функция СформироватьЗначениеЗаголовкаHost(СтруктураURL)
-
- Host = СтруктураURL.Сервер;
- Если ЗначениеЗаполнено(СтруктураURL.Порт) И НЕ ЭтоСтандартныйПорт(СтруктураURL) Тогда
- Host = Host + ":" + Формат(СтруктураURL.Порт, "ЧРГ=; ЧГ=");
- КонецЕсли;
-
- Возврат Host;
-
-КонецФункции
-
-Функция ПодготовитьЗаголовокDigest(Сессия, ПодготовленныйЗапрос)
-
- ПараметрыDigest = Сессия.СлужебныеДанные.ПараметрыDigest;
-
- Алгоритм = ОпределитьХешФункцию(ПараметрыDigest.algorithm);
- АлгоритмСтрокой = ВРег(ПараметрыDigest.algorithm);
- Если Алгоритм = Неопределено Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
- Путь = СтруктураURL.Путь;
- Если ЗначениеЗаполнено(СтруктураURL.ПараметрыЗапроса) Тогда
- Путь = Путь + "?" + КодироватьПараметрыЗапроса(СтруктураURL.ПараметрыЗапроса);
- КонецЕсли;
-
- A1 = СтрШаблон("%1:%2:%3",
- ПодготовленныйЗапрос.Аутентификация.Пользователь,
- ПараметрыDigest.realm,
- ПодготовленныйЗапрос.Аутентификация.Пароль);
- A2 = СтрШаблон("%1:%2", ПодготовленныйЗапрос.Метод, Путь);
-
- HA1 = ХешированиеДанных(Алгоритм, A1);
- HA2 = ХешированиеДанных(Алгоритм, A2);
-
- Если Не ПараметрыDigest.Свойство("last_nonce") Тогда
- ПараметрыDigest.Вставить("last_nonce");
- КонецЕсли;
-
- Если ПараметрыDigest.nonce = ПараметрыDigest.last_nonce Тогда
- ПараметрыDigest.nonce_count = ПараметрыDigest.nonce_count + 1;
- Иначе
- ПараметрыDigest.Вставить("nonce_count", 1);
- КонецЕсли;
-
- ЗначениеNC = Формат(ПараметрыDigest.nonce_count, "ЧЦ=8; ЧВН=; ЧГ=");
- ЗначениеNonce = Лев(СтрЗаменить(НРег(Новый УникальныйИдентификатор), "-", ""), 16);
-
- Если АлгоритмСтрокой = "MD5-SESS" Тогда
- HA1 = ХешированиеДанных(Алгоритм, СтрШаблон("%1:%2:%3", HA1, ПараметрыDigest.nonce, ЗначениеNonce));
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(ПараметрыDigest.qop) Тогда
- ЗначениеResponse = ХешированиеДанных(Алгоритм, СтрШаблон("%1:%2:%3", HA1, ПараметрыDigest.nonce, HA2));
- ИначеЕсли ПараметрыDigest.qop = "auth"
- ИЛИ СтрРазделить(ПараметрыDigest.qop, ",", Ложь).Найти("auth") <> Неопределено Тогда
- ЗначениеNonceBit = СтрШаблон("%1:%2:%3:%4:%5", ПараметрыDigest.nonce, ЗначениеNC, ЗначениеNonce, "auth", HA2);
- ЗначениеResponse = ХешированиеДанных(Алгоритм, СтрШаблон("%1:%2", HA1, ЗначениеNonceBit));
- Иначе
- // INFO: auth-int не реализовано
- Возврат Неопределено;
- КонецЕсли;
-
- ПараметрыDigest.last_nonce = ПараметрыDigest.nonce;
-
- База = СтрШаблон("username=""%1"", realm=""%2"", nonce=""%3"", uri=""%4"", response=""%5""",
- ПодготовленныйЗапрос.Аутентификация.Пользователь,
- ПараметрыDigest.realm,
- ПараметрыDigest.nonce,
- Путь,
- ЗначениеResponse);
- Строки = Новый Массив;
- Строки.Добавить(База);
-
- Если ЗначениеЗаполнено(ПараметрыDigest.opaque) Тогда
- Строки.Добавить(СтрШаблон(", opaque=""%1""", ПараметрыDigest.opaque));
- КонецЕсли;
- Если ЗначениеЗаполнено(ПараметрыDigest.algorithm) Тогда
- Строки.Добавить(СтрШаблон(", algorithm=""%1""", ПараметрыDigest.algorithm));
- КонецЕсли;
- Если ЗначениеЗаполнено(ПараметрыDigest.qop) Тогда
- Строки.Добавить(СтрШаблон(", qop=""auth"", nc=%1, cnonce=""%2""", ЗначениеNC, ЗначениеNonce));
- КонецЕсли;
-
- Возврат СтрШаблон("Digest %1", СтрСоединить(Строки, ""));
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Cookies
-
-Процедура ПодготовитьCookies(ПодготовленныйЗапрос)
-
- ЗаголовокCookie = ПодготовитьЗаголовокCookie(ПодготовленныйЗапрос);
- Если ЗначениеЗаполнено(ЗаголовокCookie) Тогда
- ПодготовленныйЗапрос.Заголовки["Cookie"] = ЗаголовокCookie;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция ПодготовитьЗаголовокCookie(ПодготовленныйЗапрос)
-
- СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
-
- Cookies = Новый Массив;
- Для Каждого Cookie Из ОтобратьCookiesДляЗапроса(СтруктураURL, ПодготовленныйЗапрос.Cookies) Цикл
- Cookies.Добавить(СтрШаблон("%1=%2", Cookie.Наименование, Cookie.Значение));
- КонецЦикла;
-
- Возврат СтрСоединить(Cookies, "; ");
-
-КонецФункции
-
-Функция ОбъединитьCookies(ГлавныйИсточник, ДополнительныйИсточник)
-
- Cookies = Новый Соответствие;
- Для Каждого Cookie Из ПреобразоватьХранилищеCookiesВМассивCookies(ГлавныйИсточник) Цикл
- ДобавитьCookieВХранилище(Cookies, Cookie, Истина);
- КонецЦикла;
- Для Каждого Cookie Из ПреобразоватьХранилищеCookiesВМассивCookies(ДополнительныйИсточник) Цикл
- ДобавитьCookieВХранилище(Cookies, Cookie, Истина);
- КонецЦикла;
-
- Возврат Cookies;
-
-КонецФункции
-
-Функция ПреобразоватьХранилищеCookiesВМассивCookies(ХранилищеCookies)
-
- Cookies = Новый Массив;
- Если ТипЗнч(ХранилищеCookies) = Тип("Массив") Тогда
- Для Каждого Cookie Из ХранилищеCookies Цикл
- НоваяCookie = КонструкторCookie();
- ЗаполнитьЗначенияСвойств(НоваяCookie, Cookie);
- Cookies.Добавить(НоваяCookie);
- КонецЦикла;
-
- Возврат Cookies;
- КонецЕсли;
-
- Для Каждого Домен Из ХранилищеCookies Цикл
- Для Каждого Путь Из Домен.Значение Цикл
- Для Каждого Наименование Из Путь.Значение Цикл
- Cookies.Добавить(Наименование.Значение);
- КонецЦикла;
- КонецЦикла;
- КонецЦикла;
-
- Возврат Cookies;
-
-КонецФункции
-
-Функция ОтобратьCookiesДляЗапроса(СтруктураURL, Cookies)
-
- СерверВЗапросе = ДобавитьЛидирующуюТочку(СтруктураURL.Сервер);
-
- Результат = Новый Массив;
- Для Каждого Домен Из Cookies Цикл
- Если Не СтрЗаканчиваетсяНа(СерверВЗапросе, Домен.Ключ) Тогда
- Продолжить;
- КонецЕсли;
- Для Каждого Путь Из Домен.Значение Цикл
- Если Не СтрНачинаетсяС(СтруктураURL.Путь, Путь.Ключ) Тогда
- Продолжить;
- КонецЕсли;
- ЗаполнитьСписокОтфильтрованнымиCookies(Путь.Значение, СтруктураURL, Результат);
- КонецЦикла;
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-Процедура ЗаполнитьСписокОтфильтрованнымиCookies(Cookies, СтруктураURL, Список)
-
- Для Каждого Cookie Из Cookies Цикл
- Если Cookie.Значение.ТолькоБезопасноеСоединение = Истина И СтруктураURL.Схема <> "https" Тогда
- Продолжить;
- КонецЕсли;
- // INFO: проверка срока действия игнорируется (Cookie.Значение.СрокДействия)
- // INFO: проверка порта игнорируется
-
- Список.Добавить(Cookie.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-Функция ДозаполнитьCookie(Cookies, URL)
-
- СтруктураURL = РазобратьURL(URL);
- НовыеCookies = Новый Массив;
- Если ТипЗнч(Cookies) = Тип("Массив") Тогда
- Для Каждого Cookie Из Cookies Цикл
- НовыйCookie = КонструкторCookie(Cookie.Наименование, Cookie.Значение);
- ЗаполнитьЗначенияСвойств(НовыйCookie, Cookie);
-
- Если Не ЗначениеЗаполнено(НовыйCookie.Домен) Тогда
- НовыйCookie.Домен = СтруктураURL.Сервер;
- КонецЕсли;
- Если Не ЗначениеЗаполнено(НовыйCookie.Путь) Тогда
- НовыйCookie.Путь = "/";
- КонецЕсли;
-
- НовыеCookies.Добавить(НовыйCookie);
- КонецЦикла;
-
- Возврат НовыеCookies;
- КонецЕсли;
-
- Возврат Cookies;
-
-КонецФункции
-
-Функция ИзвлечьCookies(Заголовки, URL)
-
- ТекущееВремя = ТекущаяУниверсальнаяДата();
- Cookies = Новый Соответствие;
- Для Каждого ОчереднойЗаголовок Из Заголовки Цикл
- Если НРег(ОчереднойЗаголовок.Ключ) = "set-cookie" Тогда
- Для Каждого ЗаголовокCookie Из РазбитьНаОтдельныеЗаголовкиCookies(ОчереднойЗаголовок.Значение) Цикл
- Cookie = РаспарситьCookie(ЗаголовокCookie, URL, ТекущееВремя);
- Если Cookie = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- Если Cookie.СрокДействия <= ТекущееВремя Тогда
- УдалитьCookieИзХранилища(Cookies, Cookie);
- Иначе
- ДобавитьCookieВХранилище(Cookies, Cookie);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-
- Возврат Cookies;
-
-КонецФункции
-
-Функция РазбитьНаОтдельныеЗаголовкиCookies(Знач Заголовок)
-
- Заголовки = Новый Массив;
-
- Если Не ЗначениеЗаполнено(Заголовок) Тогда
- Возврат Заголовки;
- КонецЕсли;
-
- ЗапчастиЗаголовков = СтрРазделить(Заголовок, ",", Ложь);
-
- ОтдельныйЗаголовок = ЗапчастиЗаголовков[0];
- Для Индекс = 1 По ЗапчастиЗаголовков.ВГраница() Цикл
- ТочкаСЗапятой = СтрНайти(ЗапчастиЗаголовков[Индекс], ";");
- Равно = СтрНайти(ЗапчастиЗаголовков[Индекс], "=");
- Если ТочкаСЗапятой И Равно И Равно < ТочкаСЗапятой Тогда
- Заголовки.Добавить(ОтдельныйЗаголовок);
- ОтдельныйЗаголовок = ЗапчастиЗаголовков[Индекс];
- Иначе
- ОтдельныйЗаголовок = ОтдельныйЗаголовок + ЗапчастиЗаголовков[Индекс];
- КонецЕсли;
- КонецЦикла;
- Заголовки.Добавить(ОтдельныйЗаголовок);
-
- Возврат Заголовки;
-
-КонецФункции
-
-Процедура ДобавитьCookieВХранилище(ХранилищеCookies, Cookie, Замещать = Ложь)
-
- Если ХранилищеCookies.Получить(Cookie.Домен) = Неопределено Тогда
- ХранилищеCookies[Cookie.Домен] = Новый Соответствие;
- КонецЕсли;
- Если ХранилищеCookies[Cookie.Домен].Получить(Cookie.Путь) = Неопределено Тогда
- ХранилищеCookies[Cookie.Домен][Cookie.Путь] = Новый Соответствие;
- КонецЕсли;
- Если ХранилищеCookies[Cookie.Домен][Cookie.Путь].Получить(Cookie.Наименование) = Неопределено ИЛИ Замещать Тогда
- ХранилищеCookies[Cookie.Домен][Cookie.Путь][Cookie.Наименование] = Cookie;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура УдалитьCookieИзХранилища(ХранилищеCookies, Cookie)
-
- Если ХранилищеCookies.Получить(Cookie.Домен) <> Неопределено
- И ХранилищеCookies[Cookie.Домен].Получить(Cookie.Путь) <> Неопределено
- И ХранилищеCookies[Cookie.Домен][Cookie.Путь].Получить(Cookie.Наименование) <> Неопределено Тогда
- ХранилищеCookies[Cookie.Домен][Cookie.Путь].Удалить(Cookie.Наименование);
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция РаспарситьCookie(Заголовок, URL, ТекущееВремя)
-
- Cookie = Неопределено;
- Индекс = 0;
-
- Для Каждого Параметр Из СтрРазделить(Заголовок, ";", Ложь) Цикл
- Индекс = Индекс + 1;
- Параметр = СокрЛП(Параметр);
-
- Если Индекс = 1 Тогда
- Cookie = СоздатьCookieИЗаполнитьОсновныеПараметры(Параметр);
- Продолжить;
- КонецЕсли;
-
- Части = СтрРазделить(Параметр, "=", Ложь);
- Ключ = НРег(Части[0]);
- Если Части.Количество() > 1 Тогда
- Значение = Части[1];
- КонецЕсли;
-
- Если Ключ = "domain" Тогда
- Cookie.Домен = Значение;
- ИначеЕсли Ключ = "path" Тогда
- Cookie.Путь = Значение;
- ИначеЕсли Ключ = "secure" Тогда
- Cookie.ТолькоБезопасноеСоединение = Истина;
- ИначеЕсли Ключ = "max-age" Тогда
- СрокДействияMaxAge = ТекущееВремя + ЧислоИзСтроки(Значение);
- ИначеЕсли Ключ = "expires" Тогда
- Cookie.СрокДействия = ДатаИзСтрокиRFC7231(Значение);
- Иначе
- Продолжить;
- КонецЕсли;
- КонецЦикла;
- Если ЗначениеЗаполнено(Cookie) И ЗначениеЗаполнено(СрокДействияMaxAge) Тогда
- Cookie.СрокДействия = СрокДействияMaxAge;
- КонецЕсли;
-
- ДозаполнитьCookieНеявнымиЗначениями(Cookie, URL);
-
- Возврат Cookie;
-
-КонецФункции
-
-Функция СоздатьCookieИЗаполнитьОсновныеПараметры(Параметр)
-
- Части = СтрРазделить(Параметр, "=", Ложь);
- Наименование = Части[0];
- Если Части.Количество() > 1 Тогда
- Значение = Сред(Параметр, СтрДлина(Наименование) + 2);
- КонецЕсли;
-
- Возврат КонструкторCookie(Наименование, Значение);
-
-КонецФункции
-
-Процедура ДозаполнитьCookieНеявнымиЗначениями(Cookie, URL)
-
- Если Cookie = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- СтруктураURL = РазобратьURL(URL);
- Если Не ЗначениеЗаполнено(Cookie.Домен) Тогда
- Cookie.Домен = СтруктураURL.Сервер;
- КонецЕсли;
- Если Не ЗначениеЗаполнено(Cookie.Порт) И ЗначениеЗаполнено(СтруктураURL.Порт) Тогда
- Cookie.Порт = СтруктураURL.Порт;
- КонецЕсли;
- Если Не ЗначениеЗаполнено(Cookie.Путь) Тогда
- ПозицияПоследнегоСлеша = СтрНайти(СтруктураURL.Путь, "/", НаправлениеПоиска.СКонца);
- Если ПозицияПоследнегоСлеша <= 1 Тогда
- Cookie.Путь = "/";
- Иначе
- Cookie.Путь = Лев(СтруктураURL.Путь, ПозицияПоследнегоСлеша - 1);
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция КонструкторCookie(Наименование = "", Значение = Неопределено)
-
- НовыйCookie = Новый Структура;
- НовыйCookie.Вставить("Наименование", Наименование);
- НовыйCookie.Вставить("Значение", Значение);
- НовыйCookie.Вставить("Домен", "");
- НовыйCookie.Вставить("Путь", "");
- НовыйCookie.Вставить("Порт");
- НовыйCookie.Вставить("СрокДействия", '39990101');
- НовыйCookie.Вставить("ТолькоБезопасноеСоединение");
-
- Возврат НовыйCookie;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ПараметрыРаботыСJSON
-
-// Преобразует значение типа к типу, сериализация которого поддерживается.
-//
-// Параметры:
-// Свойство - Строка - имя свойства, если выполняется запись структуры или соответствия.
-// Значение - Произвольный - исходное значение.
-// ДополнительныеПараметры - Произвольный - дополнительные параметры, которые указаны в вызове метода ЗаписатьJSON.
-// Отказ - Булево - отказ от записи свойства.
-//
-// Возвращаемое значение:
-// Произвольный - см. типы ЗаписатьJSON.
-//
-Функция ПреобразованиеJson(Свойство, Значение, ДополнительныеПараметры, Отказ) Экспорт
-
- Если ТипЗнч(Значение) = Тип("УникальныйИдентификатор") Тогда
- Возврат Строка(Значение);
- ИначеЕсли ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
- Возврат ПолучитьBase64СтрокуИзДвоичныхДанных(Значение);
- Иначе
- // Если значение не поддерживает сериализацию в JSON, то будет выброшено исключение
- Возврат Значение;
- КонецЕсли;
-
-КонецФункции
-
-// Восстанавливает значение типа, десериализация которого не поддерживается.
-//
-// Параметры:
-// Свойство - Строка - имя свойства, значение которого нужно восстановить.
-// Значение - Строка - значение, которое нужно восстановить.
-// ТипыСвойств - Соответствие - типы свойств, которые нужно восстановить.
-// * Ключ - Строка - имя свойства. Равно значению параметра Свойство.
-// * Значение - Тип - исходный тип значения.
-//
-// Возвращаемое значение:
-// Произвольный - восстановленное значение.
-//
-Функция ВосстановлениеJson(Свойство, Значение, ТипыСвойств) Экспорт
-
- ТипСвойства = ТипыСвойств.Получить(Свойство);
- Если ТипСвойства = Тип("УникальныйИдентификатор") Тогда
- Возврат Новый УникальныйИдентификатор(Значение);
- ИначеЕсли ТипСвойства = Тип("ДвоичныеДанные") Тогда
- Возврат ПолучитьДвоичныеДанныеИзBase64Строки(Значение);
- Иначе
- Возврат Значение;
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область АутентификацияAWS4
-
-Функция КлючПодписиAWS4(СекретныйКлюч, Дата, Регион, Сервис)
-
- КлючДата = ПодписатьСообщениеHMAC("AWS4" + СекретныйКлюч, Дата);
- КлючРегион = ПодписатьСообщениеHMAC(КлючДата, Регион);
- КлючСервис = ПодписатьСообщениеHMAC(КлючРегион, Сервис);
-
- Возврат ПодписатьСообщениеHMAC(КлючСервис, "aws4_request");
-
-КонецФункции
-
-Функция ПодписатьСообщениеHMAC(Знач Ключ, Знач Сообщение, Знач Алгоритм = Неопределено)
-
- Если Алгоритм = Неопределено Тогда
- Алгоритм = ХешФункция.SHA256;
- КонецЕсли;
-
- Если ТипЗнч(Ключ) = Тип("Строка") Тогда
- Ключ = ПолучитьДвоичныеДанныеИзСтроки(Ключ, КодировкаТекста.UTF8, Ложь);
- КонецЕсли;
- Если ТипЗнч(Сообщение) = Тип("Строка") Тогда
- Сообщение = ПолучитьДвоичныеДанныеИзСтроки(Сообщение, КодировкаТекста.UTF8, Ложь);
- КонецЕсли;
-
- Возврат HMAC(Ключ, Сообщение, Алгоритм);
-
-КонецФункции
-
-Процедура ПодготовитьАутентификациюAWS4(ПодготовленныйЗапрос)
-
- ЗначениеЗаголовка = ЗначениеЗаголовка("x-amz-date", ПодготовленныйЗапрос.Заголовки);
- Если ЗначениеЗаголовка <> Ложь Тогда
- ТекущееВремя = Дата(СтрЗаменить(СтрЗаменить(ЗначениеЗаголовка, "T", ""), "Z", ""));
- Иначе
- ТекущееВремя = ТекущаяУниверсальнаяДата();
- КонецЕсли;
- ПодготовленныйЗапрос.Заголовки["x-amz-date"] = Формат(ТекущееВремя, "ДФ=yyyyMMddTHHmmssZ");
- ОбластьДействияДата = Формат(ТекущееВремя, "ДФ=yyyyMMdd");
-
- ПодготовленныйЗапрос.Заголовки["x-amz-content-sha256"] =
- ХешированиеДанных(ХешФункция.SHA256, ПодготовленныйЗапрос.HTTPЗапрос.ПолучитьТелоКакПоток());
-
- СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
-
- КаноническиеЗаголовки = КаноническиеЗаголовкиAWS4(ПодготовленныйЗапрос.Заголовки, СтруктураURL);
-
- КаноническийПуть = СтруктураURL.Путь;
- КаноническиеПараметрыЗапроса = КаноническиеПараметрыЗапросаAWS4(СтруктураURL.ПараметрыЗапроса);
-
- ЧастиЗапроса = Новый Массив;
- ЧастиЗапроса.Добавить(ПодготовленныйЗапрос.Метод);
- ЧастиЗапроса.Добавить(КаноническийПуть);
- ЧастиЗапроса.Добавить(КаноническиеПараметрыЗапроса);
- ЧастиЗапроса.Добавить(КаноническиеЗаголовки.КаноническиеЗаголовки);
- ЧастиЗапроса.Добавить(КаноническиеЗаголовки.ПодписываемыеЗаголовки);
- ЧастиЗапроса.Добавить(ПодготовленныйЗапрос.Заголовки["x-amz-content-sha256"]);
- КаноническийЗапрос = СтрСоединить(ЧастиЗапроса, Символы.ПС);
-
- ЧастиОбластиДействия = Новый Массив;
- ЧастиОбластиДействия.Добавить(ОбластьДействияДата);
- ЧастиОбластиДействия.Добавить(ПодготовленныйЗапрос.Аутентификация.Регион);
- ЧастиОбластиДействия.Добавить(ПодготовленныйЗапрос.Аутентификация.Сервис);
- ЧастиОбластиДействия.Добавить("aws4_request");
- ОбластьДействия = СтрСоединить(ЧастиОбластиДействия, "/");
-
- ЧастиСтрокиДляПодписи = Новый Массив;
- ЧастиСтрокиДляПодписи.Добавить(ПодготовленныйЗапрос.Аутентификация.Тип);
- ЧастиСтрокиДляПодписи.Добавить(ПодготовленныйЗапрос.Заголовки["x-amz-date"]);
- ЧастиСтрокиДляПодписи.Добавить(ОбластьДействия);
- ЧастиСтрокиДляПодписи.Добавить(ХешированиеДанных(ХешФункция.SHA256, КаноническийЗапрос));
- СтрокаДляПодписи = СтрСоединить(ЧастиСтрокиДляПодписи, Символы.ПС);
-
- Ключ = КлючПодписиAWS4(
- ПодготовленныйЗапрос.Аутентификация.СекретныйКлюч,
- ОбластьДействияДата,
- ПодготовленныйЗапрос.Аутентификация.Регион,
- ПодготовленныйЗапрос.Аутентификация.Сервис);
- Подпись = НРег(ПолучитьHexСтрокуИзДвоичныхДанных(ПодписатьСообщениеHMAC(Ключ, СтрокаДляПодписи)));
-
- ПодготовленныйЗапрос.Заголовки["Authorization"] = СтрШаблон(
- "%1 Credential=%2/%3, SignedHeaders=%4, Signature=%5",
- ПодготовленныйЗапрос.Аутентификация.Тип,
- ПодготовленныйЗапрос.Аутентификация.ИдентификаторКлючаДоступа,
- ОбластьДействия,
- КаноническиеЗаголовки.ПодписываемыеЗаголовки,
- Подпись);
-
- ПодготовленныйЗапрос.HTTPЗапрос.Заголовки = ПодготовленныйЗапрос.Заголовки;
-
-КонецПроцедуры
-
-Функция КаноническиеЗаголовкиAWS4(Заголовки, СтруктураURL)
-
- Список = Новый СписокЗначений;
-
- ЗаголовокHostЕстьВЗапросе = Ложь;
- ЗаголовкиПоУмолчанию = ЗаголовкиПоУмолчаниюAWS4();
- Для Каждого ОчереднойЗаголовок Из Заголовки Цикл
- Заголовок = НРег(ОчереднойЗаголовок.Ключ);
- Если ЗаголовкиПоУмолчанию.Исключения.Найти(Заголовок) <> Неопределено Тогда
- Продолжить;
- КонецЕсли;
- ЗаголовокHostЕстьВЗапросе = Макс(ЗаголовокHostЕстьВЗапросе, Заголовок = "host");
-
- Если ЗаголовкиПоУмолчанию.Равно.Найти(Заголовок) <> Неопределено Тогда
- Список.Добавить(Заголовок, СокрЛП(ОчереднойЗаголовок.Значение));
- Иначе
- Для Каждого Префикс Из ЗаголовкиПоУмолчанию.НачинаетсяС Цикл
- Если СтрНачинаетсяС(Заголовок, Префикс) Тогда
- Список.Добавить(Заголовок, СокрЛП(ОчереднойЗаголовок.Значение));
- Прервать;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-
- Если Не ЗаголовокHostЕстьВЗапросе Тогда
- Список.Добавить("host", СформироватьЗначениеЗаголовкаHost(СтруктураURL));
- КонецЕсли;
-
- Список.СортироватьПоЗначению(НаправлениеСортировки.Возр);
-
- КаноническиеЗаголовки = Новый Массив;
- ПодписываемыеЗаголовки = Новый Массив;
- Для Каждого ЭлементСписка Из Список Цикл
- КаноническиеЗаголовки.Добавить(ЭлементСписка.Значение + ":" + ЭлементСписка.Представление);
- ПодписываемыеЗаголовки.Добавить(ЭлементСписка.Значение);
- КонецЦикла;
- КаноническиеЗаголовки.Добавить("");
-
- КаноническиеЗаголовки = СтрСоединить(КаноническиеЗаголовки, Символы.ПС);
- ПодписываемыеЗаголовки = СтрСоединить(ПодписываемыеЗаголовки, ";");
- Возврат Новый Структура(
- "КаноническиеЗаголовки, ПодписываемыеЗаголовки",
- КаноническиеЗаголовки, ПодписываемыеЗаголовки);
-
-КонецФункции
-
-Функция КаноническиеПараметрыЗапросаAWS4(ПараметрыЗапроса)
-
- Список = Новый СписокЗначений;
- Для Каждого ОчереднойПараметрЗапроса Из ПараметрыЗапроса Цикл
- Список.Добавить(ОчереднойПараметрЗапроса.Ключ, СокрЛП(ОчереднойПараметрЗапроса.Значение));
- КонецЦикла;
- Список.СортироватьПоЗначению(НаправлениеСортировки.Возр);
-
- КаноническиеПараметры = Новый Массив;
- Для Каждого ЭлементСписка Из Список Цикл
- ЗначениеПараметра = КодироватьСтроку(ЭлементСписка.Представление, СпособКодированияСтроки.КодировкаURL);
- КаноническиеПараметры.Добавить(ЭлементСписка.Значение + "=" + ЗначениеПараметра);
- КонецЦикла;
-
- Возврат СтрСоединить(КаноническиеПараметры, "&");
-
-КонецФункции
-
-Функция ЗаголовкиПоУмолчаниюAWS4()
-
- Заголовки = Новый Структура;
- Заголовки.Вставить("Равно", СтрРазделить("host,content-type,date", ","));
- Заголовки.Вставить("НачинаетсяС", СтрРазделить("x-amz-", ","));
- Заголовки.Вставить("Исключения", СтрРазделить("x-amz-client-context", ","));
-
- Возврат Заголовки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область КодированиеДекодированиеДанных
-
-#Область СлужебныеСтруктурыZip
-
-// Описание структур см. здесь https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
-
-Функция ZipРазмерLFH()
-
- Возврат 34;
-
-КонецФункции
-
-Функция ZipРазмерDD()
-
- Возврат 16;
-
-КонецФункции
-
-Функция ZipРазмерCDH()
-
- Возврат 50;
-
-КонецФункции
-
-Функция ZipРазмерEOCD()
-
- Возврат 22;
-
-КонецФункции
-
-Функция ZipLFH()
-
- // Local file header
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерLFH());
- Буфер.ЗаписатьЦелое32(0, 67324752); // signature 0x04034b50
- Буфер.ЗаписатьЦелое16(4, 20); // version
- Буфер.ЗаписатьЦелое16(6, 10); // bit flags
- Буфер.ЗаписатьЦелое16(8, 8); // compression method
- Буфер.ЗаписатьЦелое16(10, 0); // time
- Буфер.ЗаписатьЦелое16(12, 0); // date
- Буфер.ЗаписатьЦелое32(14, 0); // crc-32
- Буфер.ЗаписатьЦелое32(18, 0); // compressed size
- Буфер.ЗаписатьЦелое32(22, 0); // uncompressed size
- Буфер.ЗаписатьЦелое16(26, 4); // filename legth - "data"
- Буфер.ЗаписатьЦелое16(28, 0); // extra field length
- Буфер.Записать(30, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
-
- // Data descriptor
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерDD());
- Буфер.ЗаписатьЦелое32(0, 134695760);
- Буфер.ЗаписатьЦелое32(4, CRC32);
- Буфер.ЗаписатьЦелое32(8, РазмерСжатыхДанных);
- Буфер.ЗаписатьЦелое32(12, РазмерНесжатыхДанных);
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
-
- // Central directory header
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерCDH());
- Буфер.ЗаписатьЦелое32(0, 33639248); // signature 0x02014b50
- Буфер.ЗаписатьЦелое16(4, 798); // version made by
- Буфер.ЗаписатьЦелое16(6, 20); // version needed to extract
- Буфер.ЗаписатьЦелое16(8, 10); // bit flags
- Буфер.ЗаписатьЦелое16(10, 8); // compression method
- Буфер.ЗаписатьЦелое16(12, 0); // time
- Буфер.ЗаписатьЦелое16(14, 0); // date
- Буфер.ЗаписатьЦелое32(16, CRC32); // crc-32
- Буфер.ЗаписатьЦелое32(20, РазмерСжатыхДанных); // compressed size
- Буфер.ЗаписатьЦелое32(24, РазмерНесжатыхДанных); // uncompressed size
- Буфер.ЗаписатьЦелое16(28, 4); // file name length
- Буфер.ЗаписатьЦелое16(30, 0); // extra field length
- Буфер.ЗаписатьЦелое16(32, 0); // file comment length
- Буфер.ЗаписатьЦелое16(34, 0); // disk number start
- Буфер.ЗаписатьЦелое16(36, 0); // internal file attributes
- Буфер.ЗаписатьЦелое32(38, 2176057344); // external file attributes
- Буфер.ЗаписатьЦелое32(42, 0); // relative offset of local header
- Буфер.Записать(46, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция ZipEOCD(РазмерСжатыхДанных)
-
- // End of central directory
- РазмерCDH = 50;
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерEOCD());
- Буфер.ЗаписатьЦелое32(0, 101010256); // signature 0x06054b50
- Буфер.ЗаписатьЦелое16(4, 0); // number of this disk
- Буфер.ЗаписатьЦелое16(6, 0); // number of the disk with the start of the central directory
- Буфер.ЗаписатьЦелое16(8, 1); // total number of entries in the central directory on this disk
- Буфер.ЗаписатьЦелое16(10, 1); // total number of entries in the central directory
- Буфер.ЗаписатьЦелое32(12, РазмерCDH); // size of the central directory
- // offset of start of central directory with respect to the starting disk number
- Буфер.ЗаписатьЦелое32(16, ZipРазмерLFH() + РазмерСжатыхДанных + ZipРазмерDD());
- Буфер.ЗаписатьЦелое16(20, 0); // the starting disk number
-
- Возврат Буфер;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеСтруктурыGZip
-
-// Описание структур см. здесь https://www.ietf.org/rfc/rfc1952.txt
-
-Функция GZipРазмерHeader()
-
- Возврат 10;
-
-КонецФункции
-
-Функция GZipРазмерFooter()
-
- Возврат 8;
-
-КонецФункции
-
-Функция GZipHeader()
-
- Буфер = Новый БуферДвоичныхДанных(GZipРазмерHeader());
- Буфер[0] = 31; // ID1 0x1f
- Буфер[1] = 139; // ID2 0x8b
- Буфер[2] = 8; // compression method (08 for DEFLATE)
- Буфер[3] = 0; // header flags
- Буфер.ЗаписатьЦелое32(4, 0); // timestamp
- Буфер[8] = 0; // compression flags
- Буфер[9] = 255; // operating system ID
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция GZipFooter(CRC32, РазмерИсходныхДанных)
-
- Буфер = Новый БуферДвоичныхДанных(GZipРазмерFooter());
- Буфер.ЗаписатьЦелое32(0, CRC32);
- Буфер.ЗаписатьЦелое32(4, РазмерИсходныхДанных);
-
- Возврат Буфер;
-
-КонецФункции
-
-#КонецОбласти
-
-Функция ПрочитатьZip(СжатыеДанные, ТекстОшибки = Неопределено)
-
-#Если МобильноеПриложениеСервер Тогда
- ВызватьИсключение(НСтр("ru = 'Работа с Zip-файлами в мобильной платформе не поддерживается'"));
-#Иначе
- Каталог = ПолучитьИмяВременногоФайла();
- ЧтениеZip = Новый ЧтениеZipФайла(СжатыеДанные);
- ИмяФайла = ЧтениеZip.Элементы[0].Имя;
- Попытка
- ЧтениеZip.Извлечь(ЧтениеZip.Элементы[0], Каталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
- Исключение
- // Игнорируем проверку целостности архива, просто читаем результат
- ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- КонецПопытки;
- ЧтениеZip.Закрыть();
-
- Результат = Новый ДвоичныеДанные(Каталог + ПолучитьРазделительПути() + ИмяФайла);
- УдалитьФайлы(Каталог);
-
- Возврат Результат;
-#КонецЕсли
-
-КонецФункции
-
-Функция ЗаписатьZip(Данные)
-
-#Если МобильноеПриложениеСервер Тогда
- ВызватьИсключение(НСтр("ru = 'Работа с Zip-файлами в мобильной платформе не поддерживается'"));
-#Иначе
- ВременныйФайл = ПолучитьИмяВременногоФайла(".bin");
- Данные.Записать(ВременныйФайл);
- ПотокZip = Новый ПотокВПамяти;
- ЗаписьZip = Новый ЗаписьZipФайла(ПотокZip);
- ЗаписьZip.Добавить(ВременныйФайл);
- ЗаписьZip.Записать();
- УдалитьФайлы(ВременныйФайл);
-
- Возврат ПотокZip.ЗакрытьИПолучитьДвоичныеДанные();
-#КонецЕсли
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ПараметрыПоУмолчанию
-
-Функция ЗаголовкиПоУмолчанию()
-
- Заголовки = Новый Соответствие;
-#Если МобильноеПриложениеСервер Тогда
- Заголовки.Вставить("Accept-Encoding", "identity");
-#Иначе
- Заголовки.Вставить("Accept-Encoding", "gzip");
-#КонецЕсли
- Заголовки.Вставить("Accept", "*/*");
- Заголовки.Вставить("Connection", "keep-alive");
-
- Возврат Заголовки;
-
-КонецФункции
-
-Функция МаксимальноеКоличествоПеренаправлений()
-
- Возврат 30;
-
-КонецФункции
-
-Функция СтандартныйТаймаут()
-
- Возврат 30;
-
-КонецФункции
-
-Функция ПараметрыПреобразованияJSONПоУмолчанию()
-
- ПараметрыПреобразованияПоУмолчанию = Новый Структура;
- ПараметрыПреобразованияПоУмолчанию.Вставить("ПрочитатьВСоответствие", Истина);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ФорматДатыJSON", ФорматДатыJSON.ISO);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ИменаСвойствСоЗначениямиДата", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ВариантЗаписиДатыJSON", ВариантЗаписиДатыJSON.ЛокальнаяДата);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ИмяФункцииПреобразования", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("МодульФункцииПреобразования", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ДополнительныеПараметрыФункцииПреобразования", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ИмяФункцииВосстановления", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("МодульФункцииВосстановления", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ДополнительныеПараметрыФункцииВосстановления", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("ИменаСвойствДляОбработкиВосстановления", Неопределено);
- ПараметрыПреобразованияПоУмолчанию.Вставить("МаксимальнаяВложенность", 500);
-
- Возврат ПараметрыПреобразованияПоУмолчанию;
-
-КонецФункции
-
-Функция ПараметрыЗаписиJSONПоУмолчанию()
-
- ПараметрыЗаписиJSONПоУмолчанию = Новый Структура;
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ПереносСтрок", ПереносСтрокJSON.Авто);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("СимволыОтступа", " ");
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ИспользоватьДвойныеКавычки", Истина);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранированиеСимволов", ЭкранированиеСимволовJSON.Нет);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьУгловыеСкобки", Ложь);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьРазделителиСтрок", Истина);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьАмперсанд", Ложь);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьОдинарныеКавычки", Ложь);
- ПараметрыЗаписиJSONПоУмолчанию.Вставить("ЭкранироватьСлеш", Ложь);
-
- Возврат ПараметрыЗаписиJSONПоУмолчанию;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область КодыСостояний
-
-Функция ОписанияКодовСостоянийHTTP()
-
- Коды = Новый Массив;
- Коды.Добавить(НовыйКодHTTP(100, "Продолжай_100", "Continue"));
- Коды.Добавить(НовыйКодHTTP(101, "ПереключениеПротокола_101", "Switching Protocols"));
- Коды.Добавить(НовыйКодHTTP(102, "ИдетОбработка_102", "Processing"));
- Коды.Добавить(НовыйКодHTTP(103, "РанняяМетаинформация_103", "Early Hints"));
-
- Коды.Добавить(НовыйКодHTTP(200, "ОК_200", "OK"));
- Коды.Добавить(НовыйКодHTTP(201, "Создано_201", "Created"));
- Коды.Добавить(НовыйКодHTTP(202, "Принято_202", "Accepted"));
- Коды.Добавить(НовыйКодHTTP(203, "ИнформацияНеАвторитетна_203", "Non-Authoritative Information"));
- Коды.Добавить(НовыйКодHTTP(204, "НетСодержимого_204", "No Content"));
- Коды.Добавить(НовыйКодHTTP(205, "СброситьСодержимое_205", "Reset Content"));
- Коды.Добавить(НовыйКодHTTP(206, "ЧастичноеСодержимое_206", "Partial Content"));
- Коды.Добавить(НовыйКодHTTP(207, "Многостатусный_207", "Multi-Status"));
- Коды.Добавить(НовыйКодHTTP(208, "УжеСообщалось_208", "Already Reported"));
- Коды.Добавить(НовыйКодHTTP(226, "ИспользованоIM_226", "IM Used"));
-
- Коды.Добавить(НовыйКодHTTP(300, "МножествоВыборов_300", "Multiple Choices"));
- Коды.Добавить(НовыйКодHTTP(301, "ПеремещеноНавсегда_301", "Moved Permanently"));
- Коды.Добавить(НовыйКодHTTP(302, "ПеремещеноВременно_302", "Moved Temporarily"));
- Коды.Добавить(НовыйКодHTTP(303, "СмотретьДругое_303", "See Other"));
- Коды.Добавить(НовыйКодHTTP(304, "НеИзменялось_304", "Not Modified"));
- Коды.Добавить(НовыйКодHTTP(305, "ИспользоватьПрокси_305", "Use Proxy"));
- Коды.Добавить(НовыйКодHTTP(307, "ВременноеПеренаправление_307", "Temporary Redirect"));
- Коды.Добавить(НовыйКодHTTP(308, "ПостоянноеПеренаправление_308", "Permanent Redirect"));
-
- Коды.Добавить(НовыйКодHTTP(400, "НеверныйЗапрос_400", "Bad Request"));
- Коды.Добавить(НовыйКодHTTP(401, "НеАвторизован_401", "Unauthorized"));
- Коды.Добавить(НовыйКодHTTP(402, "НеобходимаОплата_402", "Payment Required"));
- Коды.Добавить(НовыйКодHTTP(403, "Запрещено_403", "Forbidden"));
- Коды.Добавить(НовыйКодHTTP(404, "НеНайдено_404", "Not Found"));
- Коды.Добавить(НовыйКодHTTP(405, "МетодНеПоддерживается_405", "Method Not Allowed"));
- Коды.Добавить(НовыйКодHTTP(406, "Неприемлемо_406", "Not Acceptable"));
- Коды.Добавить(НовыйКодHTTP(407, "НеобходимаАутентификацияПрокси_407", "Proxy Authentication Required"));
- Коды.Добавить(НовыйКодHTTP(408, "ИстеклоВремяОжидания_408", "Request Timeout"));
- Коды.Добавить(НовыйКодHTTP(409, "Конфликт_409", "Conflict"));
- Коды.Добавить(НовыйКодHTTP(410, "Удален_410", "Gone"));
- Коды.Добавить(НовыйКодHTTP(411, "НеобходимаДлина_411", "Length Required"));
- Коды.Добавить(НовыйКодHTTP(412, "УсловиеЛожно_412", "Precondition Failed"));
- Коды.Добавить(НовыйКодHTTP(413, "ПолезнаяНагрузкаСлишкомВелика_413", "Payload Too Large"));
- Коды.Добавить(НовыйКодHTTP(414, "СлишкомДлинныйURI_414", "URI Too Long"));
- Коды.Добавить(НовыйКодHTTP(415, "НеподдерживаемыйТипДанных_415", "Unsupported Media Type"));
- Коды.Добавить(НовыйКодHTTP(416, "ДиапазонНеДостижим_416", "Range Not Satisfiable"));
- Коды.Добавить(НовыйКодHTTP(417, "ОжиданиеНеУдалось_417", "Expectation Failed"));
- Коды.Добавить(НовыйКодHTTP(419, "ОшибкаПроверкиCSRF_419", "Authentication Timeout"));
- Коды.Добавить(НовыйКодHTTP(421, "НеправильноНаправленныйЗапрос_421", "Misdirected Request"));
- Коды.Добавить(НовыйКодHTTP(422, "НеобрабатываемыйЭкземпляр_422", "Unprocessable Entity"));
- Коды.Добавить(НовыйКодHTTP(423, "Заблокировано_423", "Locked"));
- Коды.Добавить(НовыйКодHTTP(424, "НевыполненнаяЗависимость_424", "Failed Dependency"));
- Коды.Добавить(НовыйКодHTTP(425, "СлишкомРано_425", "Too Early"));
- Коды.Добавить(НовыйКодHTTP(426, "НеобходимоОбновление_426", "Upgrade Required"));
- Коды.Добавить(НовыйКодHTTP(428, "НеобходимоПредусловие_428", "Precondition Required"));
- Коды.Добавить(НовыйКодHTTP(429, "СлишкомМногоЗапросов_429", "Too Many Requests"));
- Коды.Добавить(НовыйКодHTTP(431, "ПоляЗаголовкаЗапросаСлишкомБольшие_431", "Request Header Fields Too Large"));
- Коды.Добавить(НовыйКодHTTP(449, "ПовторитьС_449", "Retry With"));
- Коды.Добавить(НовыйКодHTTP(451, "НедоступноПоЮридическимПричинам_451", "Unavailable For Legal Reasons"));
- Коды.Добавить(НовыйКодHTTP(499, "КлиентЗакрылСоединение_499", "Client Closed Request"));
-
- Коды.Добавить(НовыйКодHTTP(500, "ВнутренняяОшибкаСервера_500", "Internal Server Error"));
- Коды.Добавить(НовыйКодHTTP(501, "НеРеализовано_501", "Not Implemented"));
- Коды.Добавить(НовыйКодHTTP(502, "ОшибочныйШлюз_502", "Bad Gateway"));
- Коды.Добавить(НовыйКодHTTP(503, "СервисНедоступен_503", "Service Unavailable"));
- Коды.Добавить(НовыйКодHTTP(504, "ШлюзНеОтвечает_504", "Gateway Timeout"));
- Коды.Добавить(НовыйКодHTTP(505, "ВерсияHTTPНеПоддерживается_505", "HTTP Version Not Supported"));
- Коды.Добавить(НовыйКодHTTP(506, "ВариантТожеПроводитСогласование_506", "Variant Also Negotiates"));
- Коды.Добавить(НовыйКодHTTP(507, "ПереполнениеХранилища_507", "Insufficient Storage"));
- Коды.Добавить(НовыйКодHTTP(508, "ОбнаруженоБесконечноеПеренаправление_508", "Loop Detected"));
- Коды.Добавить(НовыйКодHTTP(509, "ИсчерпанаПропускнаяШиринаКанала_509", "Bandwidth Limit Exceeded"));
- Коды.Добавить(НовыйКодHTTP(510, "НеРасширено_510", "Not Extended"));
- Коды.Добавить(НовыйКодHTTP(511, "ТребуетсяСетеваяАутентификация_511", "Network Authentication Required"));
- Коды.Добавить(НовыйКодHTTP(520, "НеизвестнаяОшибка_520", "Unknown Error"));
- Коды.Добавить(НовыйКодHTTP(521, "ВебСерверНеРаботает_521", "Web Server Is Down"));
- Коды.Добавить(НовыйКодHTTP(522, "СоединениеНеОтвечает_522", "Connection Timed Out"));
- Коды.Добавить(НовыйКодHTTP(523, "ИсточникНедоступен_523", "Origin Is Unreachable"));
- Коды.Добавить(НовыйКодHTTP(524, "ВремяОжиданияИстекло_524", "A Timeout Occurred"));
- Коды.Добавить(НовыйКодHTTP(525, "КвитированиеSSНеУдалось_525", "SSL Handshake Failed"));
- Коды.Добавить(НовыйКодHTTP(526, "НедействительныйСертификатSSL_526", "Invalid SSL Certificate"));
-
- Возврат Коды;
-
-КонецФункции
-
-Функция НовыйКодHTTP(Код, Ключ, Описание)
-
- Возврат Новый Структура("Код, Ключ, Описание", Код, Ключ, Описание);
-
-КонецФункции
-
-Функция ЭтоКодСостоянияПриКоторомНужноУчитыватьЗаголовокRetryAfter(КодСостояния)
-
- Коды = КодыСостоянияHTTP();
- Возврат КодСостояния = Коды.ПолезнаяНагрузкаСлишкомВелика_413
- ИЛИ КодСостояния = Коды.СлишкомМногоЗапросов_429
- ИЛИ КодСостояния = Коды.СервисНедоступен_503;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Прочие
-
-Функция ОпределитьХешФункцию(Знач Алгоритм)
-
- Алгоритм = ВРег(Алгоритм);
- Если Не ЗначениеЗаполнено(Алгоритм) ИЛИ Алгоритм = "MD5" ИЛИ Алгоритм = "MD5-SESS" Тогда
- АлгоритмХеширования = ХешФункция.MD5;
- ИначеЕсли Алгоритм = "SHA" Тогда
- АлгоритмХеширования = ХешФункция.SHA1;
- ИначеЕсли Алгоритм = "SHA-256" Тогда
- АлгоритмХеширования = ХешФункция.SHA256;
- Иначе
- АлгоритмХеширования = Неопределено;
- КонецЕсли;
-
- Возврат АлгоритмХеширования;
-
-КонецФункции
-
-Функция ХешированиеДанных(Знач Алгоритм, Знач Данные)
-
- Если ТипЗнч(Данные) = Тип("Строка") Тогда
- Данные = ПолучитьДвоичныеДанныеИзСтроки(Данные, КодировкаТекста.UTF8, Ложь);
- КонецЕсли;
-
- Хеширование = Новый ХешированиеДанных(Алгоритм);
- Хеширование.Добавить(Данные);
-
- Возврат НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма));
-
-КонецФункции
-
-Процедура Приостановить(ДлительностьОстановкиВСекундах)
-
- // Когда-нибудь в платформе сделают паузу и это можно будет выкинуть
-
- Если ДлительностьОстановкиВСекундах < 1 Тогда
- Возврат;
- КонецЕсли;
-
- ТекущаяДата = ТекущаяУниверсальнаяДата();
- ЖдатьДо = ТекущаяДата + ДлительностьОстановкиВСекундах;
-
- // BSLLS:UsingHardcodeNetworkAddress-off
- ЛокальныйХост = "127.0.0.0";
- КакойНибудьСвободныйПорт = 56476;
- // BSLLS:UsingHardcodeNetworkAddress-on
- Пока ТекущаяДата < ЖдатьДо Цикл
- Таймаут = ЖдатьДо - ТекущаяДата;
- Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
- Попытка
- Соединение = Новый HTTPСоединение(
- ЛокальныйХост, КакойНибудьСвободныйПорт, Неопределено, Неопределено, Новый ИнтернетПрокси(Ложь), Таймаут);
- Соединение.Получить(Новый HTTPЗапрос("/does_not_matter"));
- Исключение
- РеальныйТаймаут = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
- КонецПопытки;
- МинимальныйТаймаутВМиллисекундах = 1000;
- Если РеальныйТаймаут < МинимальныйТаймаутВМиллисекундах Тогда
- ВызватьИсключение(НСтр("ru = 'Процедура Приостановить не работает должным образом'"));
- КонецЕсли;
- ТекущаяДата = ТекущаяУниверсальнаяДата();
- КонецЦикла;
-
-КонецПроцедуры
-
-Функция РассчитатьДлительностьПриостановки(Повтор, КоэффициентЭкспоненциальнойЗадержки, ЗаголовокRetryAfter, Остаток)
-
- Если ЗаголовокRetryAfter <> Ложь Тогда
- Длительность = ЧислоИзСтроки(ЗаголовокRetryAfter);
-
- Если Длительность = 0 Тогда
- Дата = ДатаИзСтрокиRFC7231(ЗаголовокRetryAfter);
- Если ЗначениеЗаполнено(Дата) Тогда
- Длительность = Дата - ТекущаяУниверсальнаяДата();
- КонецЕсли;
- КонецЕсли;
- Иначе
- Длительность = КоэффициентЭкспоненциальнойЗадержки * Pow(2, Повтор - 1);
- КонецЕсли;
-
- Длительность = Мин(Длительность, Остаток);
-
- Если Длительность < 0 Тогда
- Длительность = 0;
- КонецЕсли;
-
- Возврат Длительность;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УниверсальныеСтруктурыДанных
-
-Функция ВыбратьЗначение(ОсновноеЗначение, ДополнительныеЗначения, Ключ, ЗначениеПоУмолчанию)
-
- Если ОсновноеЗначение <> Неопределено Тогда
- Возврат ОсновноеЗначение;
- КонецЕсли;
-
- Значение = ЗначениеПоКлючу(ДополнительныеЗначения, Ключ);
- Если Значение <> Неопределено Тогда
- Возврат Значение;
- КонецЕсли;
-
- Возврат ЗначениеПоУмолчанию;
-
-КонецФункции
-
-Функция ЗначениеПоКлючу(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено)
-
- Если ТипЗнч(Структура) = Тип("Структура") И Структура.Свойство(Ключ) Тогда
- Значение = Структура[Ключ];
- ИначеЕсли ТипЗнч(Структура) = Тип("Соответствие") И Структура.Получить(Ключ) <> Неопределено Тогда
- Значение = Структура.Получить(Ключ);
- Иначе
- Значение = ЗначениеПоУмолчанию;
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСоСтроками
-
-Функция ЧислоИзСтроки(Знач Строка) Экспорт
-
- ОписаниеТипа = Новый ОписаниеТипов("Число");
- Возврат ОписаниеТипа.ПривестиЗначение(Строка);
-
-КонецФункции
-
-Функция ДатаИзСтроки(Знач Строка) Экспорт
-
- КвалификаторДаты = Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя);
- ОписаниеТипа = Новый ОписаниеТипов("Дата", Неопределено, Неопределено, КвалификаторДаты);
- Возврат ОписаниеТипа.ПривестиЗначение(Строка);
-
-КонецФункции
-
-Функция ДатаИзСтрокиRFC7231(Знач Строка) Экспорт
-
- Разделители = ",-:/\.";
- Для Индекс = 1 По СтрДлина(Разделители) Цикл
- Разделитель = Сред(Разделители, Индекс, 1);
- Строка = СтрЗаменить(Строка, Разделитель, " ");
- КонецЦикла;
- Строка = СтрЗаменить(Строка, " ", " ");
- СоставляющиеДаты = СтрРазделить(Строка, " ");
- МесяцСтр = СоставляющиеДаты[2];
-
- Месяцы = СтрРазделить("Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", ",");
- Месяц = Месяцы.Найти(МесяцСтр);
- Если Месяц = Неопределено Тогда
- Возврат '00010101';
- КонецЕсли;
-
- Дата = СоставляющиеДаты[3] + Формат(Месяц + 1, "ЧЦ=2; ЧВН=;") + СоставляющиеДаты[1];
- Время = СоставляющиеДаты[4] + СоставляющиеДаты[5] + СоставляющиеДаты[6];
-
- Возврат ДатаИзСтроки(Дата + Время);
-
-КонецФункции
-
-Процедура РазбитьСтрокуПоРазделителю(ИзвлекаемаяЧасть, ОстальнаяЧасть, Разделитель, Инверсия = Ложь)
-
- Индекс = СтрНайти(ОстальнаяЧасть, Разделитель);
- Если Индекс Тогда
- ИзвлекаемаяЧасть = Лев(ОстальнаяЧасть, Индекс - 1);
- ОстальнаяЧасть = Сред(ОстальнаяЧасть, Индекс + СтрДлина(Разделитель));
- Если Инверсия Тогда
- ДляОбмена = ИзвлекаемаяЧасть;
- ИзвлекаемаяЧасть = ОстальнаяЧасть;
- ОстальнаяЧасть = ДляОбмена;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция РазделитьПоПервомуНайденномуРазделителю(Строка, Разделители)
-
- МинимальныйИндекс = СтрДлина(Строка);
- ПервыйРазделитель = "";
-
- Для Каждого Разделитель Из Разделители Цикл
- Индекс = СтрНайти(Строка, Разделитель);
- Если Индекс = 0 Тогда
- Продолжить;
- КонецЕсли;
- Если Индекс < МинимальныйИндекс Тогда
- МинимальныйИндекс = Индекс;
- ПервыйРазделитель = Разделитель;
- КонецЕсли;
- КонецЦикла;
-
- Результат = Новый Массив;
- Если ЗначениеЗаполнено(ПервыйРазделитель) Тогда
- Результат.Добавить(Лев(Строка, МинимальныйИндекс - 1));
- Результат.Добавить(Сред(Строка, МинимальныйИндекс + СтрДлина(ПервыйРазделитель)));
- Результат.Добавить(ПервыйРазделитель);
- Иначе
- Результат.Добавить(Строка);
- Результат.Добавить("");
- Результат.Добавить(Неопределено);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция РазбитьСтрокуПоСтроке(Знач Строка, Разделитель)
-
- Результат = Новый Массив;
- Пока Истина Цикл
- Позиция = СтрНайти(Строка, Разделитель);
- Если Позиция = 0 И ЗначениеЗаполнено(Строка) Тогда
- Результат.Добавить(Строка);
- Прервать;
- КонецЕсли;
-
- ПерваяЧасть = Лев(Строка, Позиция - СтрДлина(Разделитель) + 1);
- Результат.Добавить(ПерваяЧасть);
- Строка = Сред(Строка, Позиция + СтрДлина(Разделитель));
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ДобавитьЛидирующуюТочку(Знач Домен)
-
- Если Не СтрНачинаетсяС(Домен, ".") Тогда
- Домен = "." + Домен;
- КонецЕсли;
-
- Возврат Домен;
-
-КонецФункции
-
-Функция ВырезатьТекст(Текст, МаксимальнаяДлинаТекста = 1000)
-
- Если НайтиНедопустимыеСимволыXML(Текст) Тогда
- Возврат НСтр("ru ='<Данные>'");
- КонецЕсли;
-
- Если СтрДлина(Текст) <= МаксимальнаяДлинаТекста Тогда
- Результат = Текст;
- Иначе
- ПоловинаМаксимальнойДлиныТекста = МаксимальнаяДлинаТекста / 2;
- Результат = Лев(Текст, ПоловинаМаксимальнойДлиныТекста);
- Результат = Результат + Символы.ПС + "..." + Символы.ПС;
- Результат = Результат + Прав(Текст, ПоловинаМаксимальнойДлиныТекста);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Объединить(ГлавныйИсточник, ДополнительныйИсточник)
-
- Результат = ГлавныйИсточник;
- Дополнить(ГлавныйИсточник, ДополнительныйИсточник);
- Возврат Результат;
-
-КонецФункции
-
-Функция Скопировать(Источник)
-
- #Если МобильноеПриложениеСервер Тогда
- Возврат JsonВОбъект(ОбъектВJson(Источник));
- #Иначе
- Возврат ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(Источник));
- #КонецЕсли
-
-КонецФункции
-
-Процедура Дополнить(Приемник, Источник)
-
- Если Источник = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого ЭлементИсточника Из Источник Цикл
- ПараметрНайден = Ложь;
-
- Если ТипЗнч(Приемник) = Тип("Соответствие") Тогда
- ПараметрНайден = Приемник.Получить(ЭлементИсточника.Ключ) <> Неопределено;
- КонецЕсли;
-
- Если ТипЗнч(Приемник) = Тип("Структура") Тогда
- ПараметрНайден = Приемник.Свойство(ЭлементИсточника.Ключ);
- КонецЕсли;
-
- Если Не ПараметрНайден ИЛИ ПараметрНайден И ЭлементИсточника.Значение <> Неопределено Тогда
- Приемник.Вставить(ЭлементИсточника.Ключ, ЭлементИсточника.Значение);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index b9c5a4fb..00000000
--- "a/release/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __МетодыРегламентныхЗаданийСервер
-
-
- ru
- Методы регламентных заданий (сервер)
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 12fce2c8..00000000
--- "a/release/CommonModules/__\320\234\320\265\321\202\320\276\320\264\321\213\320\240\320\265\320\263\320\273\320\260\320\274\320\265\320\275\321\202\320\275\321\213\321\205\320\227\320\260\320\264\320\260\320\275\320\270\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,38 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ПрограммныйИнтерфейс
-
-//Длительность хранения ошибок интеграции на месяц дольше, чем успешных записей
-Процедура ОчисткаИсторииИнтеграции() Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.__ОчисткаИсторииИнтеграции);
- Справочники.__ИсторияИнтеграции.ОчиститьИсториюИнтеграции();
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml"
deleted file mode 100644
index 3aa89e86..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __МодификацияКонфигурацииКлиентПереопределяемый
-
-
- ru
- Модификация конфигурации клиент переопределяемый
-
-
-
- false
- true
- false
- false
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index cd153e91..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,58 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ПрограммныйИнтерфейс
-
-// Процедура - При открытии
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - модифицируемая форма
-// Отказ - Булево - если Истина, то объект не будет создан
-//
-Процедура ПриОткрытии(Форма, Отказ) Экспорт
-
- ИмяФормы = Форма.ИмяФормы;
-
- Если ИмяФормы = "ТипМетаданных.ИмяОбработки.Форма.ИмяФормы" Тогда
-
- КонецЕсли;
-
-КонецПроцедуры
-
-// Процедура - После записи
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - модифицируемая форма
-// ПараметрыЗаписи - Структура - параметры записи
-//
-Процедура ПослеЗаписи(Форма, ПараметрыЗаписи) Экспорт
-
- ИмяФормы = Форма.ИмяФормы;
-
- Если ИмяФормы = "ТипМетаданных.ИмяОбработки.Форма.ИмяФормы" Тогда
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml"
deleted file mode 100644
index f40a3857..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __МодификацияКонфигурацииКлиентСерверПереопределяемый
-
-
- ru
- Модификация конфигурации клиент сервер переопределяемый
-
-
-
- false
- true
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index 2cae81d7..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,41 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-#Область ПрограммныйИнтерфейс
-
-// Процедура - Управление формой переопределяемая
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - модифицируемая форма
-//
-Процедура УправлениеФормойПереопределяемая(Форма) Экспорт
-
- ИмяФормы = Форма.ИмяФормы;
-
- Если ИмяФормы = "ТипМетаданных.ИмяОбработки.Форма.ИмяФормы" Тогда
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml"
deleted file mode 100644
index 8c1ecea5..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __МодификацияКонфигурацииПереопределяемый
-
-
- ru
- Модификация конфигурации переопределяемый
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
deleted file mode 100644
index a0dcac38..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271/Ext/Module.bsl"
+++ /dev/null
@@ -1,581 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Формы (сервер): для серверных функций обработок форм
-
-#Область ПрограммныйИнтерфейс
-
-#Область СобытияФормы
-
-// Используется для модификации форм на сервере.
-//
-// Параметры:
-// Форма - Форма, из обработчика события которой происходит вызов процедуры,
-// см. справочную информацию по событиям управляемой формы.
-// Отказ - Булево - если Истина, то объект не будет создан
-// СтандартнаяОбработка - Булево - если Истина, то запускается стандартная обработка
-// ДополнительныеПараметры - Произвольный - любой дополнительный параметр получаемый в форме
-//
-Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = ПолучитьИмяМетода(Форма, "ПриСозданииНаСервере");
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Форма);
- ПараметрыМетода.Добавить(Отказ);
- ПараметрыМетода.Добавить(СтандартнаяОбработка);
- ПараметрыМетода.Добавить(ДополнительныеПараметры);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
-//
-// Параметры:
-// Форма - Форма, из обработчика события которой происходит вызов процедуры,
-// см. справочную информацию по событиям управляемой формы.
-// Отказ - Булево - если Истина, то объект не будет создан
-// ТекущийОбъект - Объект - записываемый объект
-// ПараметрыЗаписи - Структура - структура, содержащая параметры записи.
-//
-Процедура ПередЗаписьюНаСервере(Форма, Отказ, ТекущийОбъект, ПараметрыЗаписи) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = ПолучитьИмяМетода(Форма, "ПередЗаписьюНаСервере");
-
- Если ИмяМетода = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Форма);
- ПараметрыМетода.Добавить(Отказ);
- ПараметрыМетода.Добавить(ТекущийОбъект);
- ПараметрыМетода.Добавить(ПараметрыЗаписи);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
-КонецПроцедуры
-
-// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
-//
-// Параметры:
-// Форма - Форма, из обработчика события которой происходит вызов процедуры,
-// см. справочную информацию по событиям управляемой формы.
-// ТекущийОбъект - Объект - записываемый объект
-// ПараметрыЗаписи - Структура - структура, содержащая параметры записи.
-//
-Процедура ПослеЗаписиНаСервере(Форма, ТекущийОбъект, ПараметрыЗаписи) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ИмяМетода = ПолучитьИмяМетода(Форма, "ПослеЗаписиНаСервере");
-
- Если ИмяМетода = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Форма);
- ПараметрыМетода.Добавить(ТекущийОбъект);
- ПараметрыМетода.Добавить(ПараметрыЗаписи);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
-КонецПроцедуры
-
-// Переопределяемая процедура, вызываемая из одноименного обработчика события формы.
-//
-// Параметры:
-// Форма - Форма, из обработчика события которой происходит вызов процедуры,
-// см. справочную информацию по событиям управляемой формы.
-// Отказ - Булево - если Истина, то запись выполнена не будет.
-// ПроверяемыеРеквизиты - Массив - Массив путей к реквизитам, для которых будет выполнена проверка заполнения.
-//
-Процедура ОбработкаПроверкиЗаполненияНаСервере(Форма, Отказ, ПроверяемыеРеквизиты) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = ПолучитьИмяМетода(Форма, "ОбработкаПроверкиЗаполненияНаСервере");
-
- Если ИмяМетода = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Форма);
- ПараметрыМетода.Добавить(Отказ);
- ПараметрыМетода.Добавить(ПроверяемыеРеквизиты);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
-КонецПроцедуры
-
-#КонецОбласти // СобытияФормы
-
-#Область ПроцедурыИФункцииРаботыСЭлементамиФормы
-
-// Устаревшие процедуры и функции работы с элементами формы. Следует использовать модуль __РаботаСФормами
-
-Функция ДобавитьКомандуФормы(ИмяКомандыВход, ФормаВход, ДействиеВход = Неопределено, НаименованиеКартинки = "", ЗаголовокКомандыВход = "", ОтображениеКоманды = Неопределено) Экспорт
-
- НоваяКоманда = ФормаВход.Команды.Добавить(ИмяКомандыВход);
- Если НаименованиеКартинки <> "" Тогда
- НоваяКоманда.Картинка = БиблиотекаКартинок[НаименованиеКартинки];
- Иначе
- // Картинка не указана.
- КонецЕсли;
- НоваяКоманда.Заголовок = ЗаголовокКомандыВход;
- НоваяКоманда.Подсказка = ЗаголовокКомандыВход;
-
- Если ДействиеВход <> Неопределено Тогда
- НоваяКоманда.Действие = ДействиеВход;
- КонецЕсли;
-
- Если ОтображениеКоманды <> Неопределено Тогда
- НоваяКоманда.Отображение = ОтображениеКоманды;
- КонецЕсли;
-
- Возврат ИмяКомандыВход;
-
-КонецФункции
-
-Функция ДобавитьРеквизитФормы(НаименованиеНовогоРеквизитаВход, ОписаниеТиповВход, МассивДобавленияВход, ЗаголовокРеквизитаВход = "", ФормаВход = Неопределено) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоназначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- МожноДобавлять = Истина;
- Если ФормаВход = Неопределено Тогда
- МожноДобавлять = Истина;
- Иначе
- УжеЕстьРеквизит = ОбщегоназначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ФормаВход, НаименованиеНовогоРеквизитаВход);
- МожноДобавлять = НЕ УжеЕстьРеквизит;
- КонецЕсли;
- Если МожноДобавлять Тогда
- НовыйРеквизитФормы = Новый РеквизитФормы(НаименованиеНовогоРеквизитаВход, ОписаниеТиповВход, "", ЗаголовокРеквизитаВход);
- МассивДобавленияВход.Добавить(НовыйРеквизитФормы);
- Иначе
- // Не требуетя добавление реквизита.
- КонецЕсли;
-
- Возврат НаименованиеНовогоРеквизитаВход;
-
-КонецФункции
-
-Функция ДобавитьЭлементКоманды(ЭлементыВход, ИмяЭлементаВход, ИмяКомандыВход, ГруппаРодительВход) Экспорт
-
- НовыйЭлемент = ЭлементыВход.Добавить(ИмяЭлементаВход, Тип("КнопкаФормы"), ГруппаРодительВход);
- НовыйЭлемент.ИмяКоманды = ИмяКомандыВход;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-Функция ДобавитьЭлементФормы(ЭлементыВход, НаименованиеЭлементаВход, ГруппаРодительВход,
- НаименованиеРеквизитаВход, ТипЭлементаВход = Неопределено, ВидЭлементаВход = Неопределено, ЗаголовокВход = "", СтруктураДействий = Неопределено) Экспорт
-
- ТипЭлементаРабочий = ?(ТипЭлементаВход = Неопределено, Тип("ПолеФормы"), ТипЭлементаВход);
- ВидЭлементаРабочий = ?(ВидЭлементаВход = Неопределено, ВидПоляФормы.ПолеВвода, ВидЭлементаВход);
-
- НовыйЭлемент = ЭлементыВход.Добавить(НаименованиеЭлементаВход, ТипЭлементаРабочий, ГруппаРодительВход);
- НовыйЭлемент.ПутьКДанным = НаименованиеРеквизитаВход;
- НовыйЭлемент.Заголовок = ЗаголовокВход;
- Если Не ТипЭлементаРабочий = Тип("ТаблицаФормы") Тогда
- НовыйЭлемент.Вид = ВидЭлементаРабочий;
- КонецЕсли;
-
- Если не СтруктураДействий = Неопределено Тогда
- НовыйЭлемент.УстановитьДействие(СтруктураДействий.ИмяСобытия, СтруктураДействий.Действие);
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-Функция ДобавитьСтраницуНаФорму(Элементы, СтраницаРодитель, НаименованиеСтраницы, Заголовок = Неопределено) Экспорт
-
- НовыйЭлемент = Элементы.Добавить(НаименованиеСтраницы ,Тип("ГруппаФормы"), СтраницаРодитель);
- НовыйЭлемент.Вид = ВидГруппыФормы.Страница;
- НовыйЭлемент.Заголовок = ?(Заголовок = Неопределено, НаименованиеСтраницы, Заголовок);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-Функция ДобавитьЭлементТабличнойЧастиФормы(ЭлементыВход, НаименованиеЭлементаВход, ГруппаРодительВход,
- НаименованиеРеквизитаВход, ТипЭлементаВход = Неопределено, ВидЭлементаВход = Неопределено,НаименованиеКартинкиШапки = "",НаименованиеКартинкиЗначений = "", ЗаголовокВход = "") Экспорт
-
- ТипЭлементаРабочий = ?(ТипЭлементаВход = Неопределено, Тип("ПолеФормы"), ТипЭлементаВход);
- ВидЭлементаРабочий = ?(ВидЭлементаВход = Неопределено, ВидПоляФормы.ПолеВвода, ВидЭлементаВход);
-
- НовыйЭлементТЧ = ЭлементыВход.Добавить(НаименованиеЭлементаВход, ТипЭлементаРабочий, ГруппаРодительВход);
- НовыйЭлементТЧ.Заголовок = ЗаголовокВход;
- НовыйЭлементТЧ.ПутьКДанным = НаименованиеРеквизитаВход;
- НовыйЭлементТЧ.Вид = ВидЭлементаРабочий;
-
- Если НаименованиеКартинкиШапки <> "" Тогда
- НовыйЭлементТЧ.КартинкаШапки = БиблиотекаКартинок[НаименованиеКартинкиШапки];
- НовыйЭлементТЧ.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
- Иначе
- // Картинка не указана.
- КонецЕсли;
- Если НаименованиеКартинкиЗначений <> "" Тогда
- НовыйЭлементТЧ.КартинкаЗначений = БиблиотекаКартинок[НаименованиеКартинкиЗначений];
- Иначе
- // Картинка не указана.
- КонецЕсли;
-
- Возврат НовыйЭлементТЧ;
-
-КонецФункции
-
-Функция ВставитьЭлементТабличнойЧастиФормы(ЭлементыВход, НаименованиеЭлементаВход, ГруппаРодительВход,
- НаименованиеРеквизитаВход, ТипЭлементаВход = Неопределено, ВидЭлементаВход = Неопределено,НаименованиеКартинкиШапки = "",НаименованиеКартинкиЗначений = "", ЗаголовокВход = "", ЭлементФормы) Экспорт
-
- ТипЭлементаРабочий = ?(ТипЭлементаВход = Неопределено, Тип("ПолеФормы"), ТипЭлементаВход);
- ВидЭлементаРабочий = ?(ВидЭлементаВход = Неопределено, ВидПоляФормы.ПолеВвода, ВидЭлементаВход);
-
- НовыйЭлементТЧ = ЭлементыВход.Вставить(НаименованиеЭлементаВход, ТипЭлементаРабочий, ГруппаРодительВход, ЭлементФормы);
-
- НовыйЭлементТЧ.Заголовок = ЗаголовокВход;
- НовыйЭлементТЧ.ПутьКДанным = НаименованиеРеквизитаВход;
- НовыйЭлементТЧ.Вид = ВидЭлементаРабочий;
-
- Если НаименованиеКартинкиШапки <> "" Тогда
- НовыйЭлементТЧ.КартинкаШапки = БиблиотекаКартинок[НаименованиеКартинкиШапки];
- НовыйЭлементТЧ.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
- Иначе
- // Картинка не указана.
- КонецЕсли;
- Если НаименованиеКартинкиЗначений <> "" Тогда
- НовыйЭлементТЧ.КартинкаЗначений = БиблиотекаКартинок[НаименованиеКартинкиЗначений];
- Иначе
- // Картинка не указана.
- КонецЕсли;
-
- Возврат НовыйЭлементТЧ;
-
-КонецФункции
-
-Функция ДобавитьЭлементТабличнойЧастиФормыСПозицией(ЭлементыВход, НаименованиеЭлементаВход, ГруппаРодительВход,
- НаименованиеРеквизитаВход,Позиция, ТипЭлементаВход = Неопределено, ВидЭлементаВход = Неопределено,НаименованиеКартинкиШапки = "",НаименованиеКартинкиЗначений = "", ЗаголовокВход = "") Экспорт
-
- ТипЭлементаРабочий = ?(ТипЭлементаВход = Неопределено, Тип("ПолеФормы"), ТипЭлементаВход);
- ВидЭлементаРабочий = ?(ВидЭлементаВход = Неопределено, ВидПоляФормы.ПолеВвода, ВидЭлементаВход);
-
- НовыйЭлементТЧ = ЭлементыВход.Вставить(НаименованиеЭлементаВход, ТипЭлементаРабочий,ГруппаРодительВход, Позиция);
- НовыйЭлементТЧ.Заголовок = ЗаголовокВход;
- НовыйЭлементТЧ.ПутьКДанным = НаименованиеРеквизитаВход;
- НовыйЭлементТЧ.Вид = ВидЭлементаРабочий;
-
- Если НаименованиеКартинкиШапки <> "" Тогда
- НовыйЭлементТЧ.КартинкаШапки = БиблиотекаКартинок[НаименованиеКартинкиШапки];
- НовыйЭлементТЧ.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
- Иначе
- // Картинка не указана.
- КонецЕсли;
- Если НаименованиеКартинкиЗначений <> "" Тогда
- НовыйЭлементТЧ.КартинкаЗначений = БиблиотекаКартинок[НаименованиеКартинкиЗначений];
- Иначе
- // Картинка не указана.
- КонецЕсли;
-
- Возврат НовыйЭлементТЧ;
-
-КонецФункции
-
-Функция ДобавитьРеквизитТабличнойЧастиФормы(НаименованиеНовогоРеквизитаВход, ОписаниеТиповВход, МассивДобавленияВход,ТЧВход, ЗаголовокРеквизитаВход = "", ФормаВход = Неопределено, СохранаяемыеДанные = Истина) Экспорт
-
- НовыйРеквизитФормы = Новый РеквизитФормы(НаименованиеНовогоРеквизитаВход, ОписаниеТиповВход, ТЧВход, ЗаголовокРеквизитаВход, СохранаяемыеДанные);
- МассивДобавленияВход.Добавить(НовыйРеквизитФормы);
-
- Возврат НаименованиеНовогоРеквизитаВход;
-
-КонецФункции
-
-Функция ДобавитьГруппуНаФорму(Элементы, ГруппаРодитель, НаименованиеГруппы, ВидГруппыВход = Неопределено,
- Заголовок = Неопределено, ВидимостьЗаголовка = Истина, ОтображениеГруппы = Неопределено) Экспорт
-
- ВидЭлементаРабочий = ?(ВидГруппыВход = Неопределено, ВидГруппыФормы.ОбычнаяГруппа, ВидГруппыВход);
-
- НовыйЭлемент = Элементы.Добавить(НаименованиеГруппы ,Тип("ГруппаФормы"), ГруппаРодитель);
- НовыйЭлемент.Вид = ВидЭлементаРабочий;
- НовыйЭлемент.Заголовок = ?(Заголовок = Неопределено, НаименованиеГруппы, Заголовок);
-
- Если ВидЭлементаРабочий = ВидГруппыФормы.ОбычнаяГруппа Тогда
- НовыйЭлемент.ОтображатьЗаголовок = ?(ВидимостьЗаголовка = Истина, Истина, Ложь);
- НовыйЭлемент.Отображение = ?(ОтображениеГруппы = Неопределено, ОтображениеОбычнойГруппы.СлабоеВыделение, ОтображениеГруппы);
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-Функция ВставитьЭлементФормы(ЭлементыВход, НаименованиеЭлементаВход, ГруппаРодительВход,
- НаименованиеРеквизитаВход, ТипЭлементаВход = Неопределено, ВидЭлементаВход = Неопределено, ЗаголовокВход = "", ЭлементФормы) Экспорт
-
- ТипЭлементаРабочий = ?(ТипЭлементаВход = Неопределено, Тип("ПолеФормы"), ТипЭлементаВход);
- ВидЭлементаРабочий = ?(ВидЭлементаВход = Неопределено, ВидПоляФормы.ПолеВвода, ВидЭлементаВход);
-
- НовыйЭлемент = ЭлементыВход.Вставить(НаименованиеЭлементаВход, ТипЭлементаРабочий, ГруппаРодительВход, ЭлементФормы);
- НовыйЭлемент.ПутьКДанным = НаименованиеРеквизитаВход;
- НовыйЭлемент.Заголовок = ЗаголовокВход;
- Если Не ТипЭлементаРабочий = Тип("ТаблицаФормы") Тогда
- НовыйЭлемент.Вид = ВидЭлементаРабочий;
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-Функция ВставитьГруппуНаФорму(Элементы, ГруппаРодитель, НаименованиеГруппы, ВидГруппыВход = Неопределено,
- Заголовок = Неопределено, ВидимостьЗаголовка = Истина, ОтображениеГруппы = Неопределено,ЭлементФормы) Экспорт
-
- ВидЭлементаРабочий = ?(ВидГруппыВход = Неопределено, ВидГруппыФормы.ОбычнаяГруппа, ВидГруппыВход);
-
- НовыйЭлемент = Элементы.Вставить(НаименованиеГруппы ,Тип("ГруппаФормы"), ГруппаРодитель,ЭлементФормы);
- НовыйЭлемент.Вид = ВидЭлементаРабочий;
- НовыйЭлемент.Заголовок = ?(Заголовок = Неопределено, НаименованиеГруппы, Заголовок);
-
- Если ВидЭлементаРабочий = ВидГруппыФормы.ОбычнаяГруппа Тогда
- НовыйЭлемент.ОтображатьЗаголовок = ?(ВидимостьЗаголовка = Истина, Истина, Ложь);
- НовыйЭлемент.Отображение = ?(ОтображениеГруппы = Неопределено, ОтображениеОбычнойГруппы.СлабоеВыделение, ОтображениеГруппы);
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Процедура удаляет элементы группы.
-//
-// Параметры:
-// Элементы - ВсеЭлементыФормы - все элементы формы.
-// ГруппаФормы - ГруппаФормы - группа формы родитель.
-//
-Процедура УдалитьЭлементыГруппыФормы(Элементы, ГруппаФормы) Экспорт
-
- КоличествоДекораций = ГруппаФормы.ПодчиненныеЭлементы.Количество();
- Для НомерЭлемента = 1 По КоличествоДекораций Цикл
-
- ЭлементГруппы = ГруппаФормы.ПодчиненныеЭлементы[КоличествоДекораций - НомерЭлемента];
-
- НайденныйЭлемент = Элементы.Найти(ЭлементГруппы.Имя);
- Если НайденныйЭлемент <> Неопределено Тогда
- Элементы.Удалить(НайденныйЭлемент);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти // ПроцедурыИФункцииРаботыСЭлементамиФормы
-
-#Область ПроцедурыИФункцииРаботыСУсловнымОформлением
-
-// Процедура добавляет элемент условного оформления.
-//
-// Параметры:
-// УсловноеОформление - УсловноеОформлениеКомпановкиДанных - Условное оформление формы.
-// Представление - Строка - Представление оформления.
-// СтруктураУО - Структура ("СтруктураОформления, СтруктураУсловия, МассивОформляемыхПолей").
-// Позиция - Число (Позиция, в которую необходимо добавить оформление.
-// Если = Неопределено, тогда добавляется в конец).
-//
-Процедура ДобавитьЭлементУсловногоОформления(УсловноеОформление, Представление,
- СтруктураУО, Позиция = Неопределено) Экспорт
-
- // Раскроем структуру УО.
- СтруктураОформления = СтруктураУО.СтруктураОформления;
- СтруктураУсловия = СтруктураУО.СтруктураУсловия;
- МассивОформляемыхПолей = СтруктураУО.МассивОформляемыхПолей;
-
- // Новый элемент условного оформления.
- Если Позиция = Неопределено Тогда
- ЭлементУО = УсловноеОформление.Элементы.Добавить();
- Иначе
- ЭлементУО = УсловноеОформление.Элементы.Вставить(Позиция);
- КонецЕсли;
- ЭлементУО.Представление = Представление;
- ЭлементУО.Использование = Истина;
-
- // Оформление.
- Для Каждого Оформление Из СтруктураОформления Цикл
- ЭлементУО.Оформление.УстановитьЗначениеПараметра(Оформление.Ключ, Оформление.Значение);
- КонецЦикла;
-
- // Условие.
- Если ТипЗнч(СтруктураУсловия) = Тип("Массив") Тогда
- МассивУсловий = СтруктураУсловия;
- Иначе
- МассивУсловий = Новый Массив;
- МассивУсловий.Добавить(СтруктураУсловия);
- КонецЕсли;
-
- Для Каждого Условие Из МассивУсловий Цикл
-
- УсловиеУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
- УсловиеУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Условие.УсловиеЛевое);
-
- Если Условие.Свойство("ВидСравнения") Тогда
- // По умолчанию: ВидСравненияКомпоновкиДанных.Равно.
- УсловиеУО.ВидСравнения = Условие.ВидСравнения;
- КонецЕсли;
-
- Если Условие.Свойство("УсловиеПравое") Тогда
- УсловиеУО.ПравоеЗначение = Условие.УсловиеПравое;
- КонецЕсли;
- КонецЦикла;
-
- // Оформляемые поля.
- Для Каждого Поле Из МассивОформляемыхПолей Цикл
- ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
- ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Поле);
- КонецЦикла;
-
-КонецПроцедуры
-
-// Процедура удаляет элементы условного оформления по представлению.
-//
-// Параметры:
-// Представление - Строка - Представление элемента.
-// УсловноеОформление - УсловноеОформлениеКомпановкиДанных - условное оформление формы.
-//
-Процедура УдалитьЭлементыОформленияПоПредставлению(Представление, УсловноеОформление) Экспорт
-
- КоличествоЭлементов = УсловноеОформление.Элементы.Количество();
- Если КоличествоЭлементов = 0 Тогда
- Возврат;
- КонецЕсли;
-
- Для НомерЭлемента = 1 По КоличествоЭлементов Цикл
-
- СтарыйЭлемент = УсловноеОформление.Элементы.Получить(КоличествоЭлементов - НомерЭлемента);
- Если СтарыйЭлемент.Представление = Представление Тогда
- УсловноеОформление.Элементы.Удалить(СтарыйЭлемент);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-// Функция формирует простое условия условного оформления.
-//
-// Параметры:
-// УсловиеЛевое - Строка - Имя левого значения.
-// УсловиеПравое - Любое значение - Правое значение условия.
-// ВидСравненияУсловия (По умолчанию = Неопределено).
-//
-// Возвращаемое значение:
-// Структура - Структура ключей простого условного оформления.
-//
-Функция ПростоеУсловие(УсловиеЛевое, УсловиеПравое, ВидСравненияУсловия = Неопределено) Экспорт
-
- СтруктураУсловия = Новый Структура;
- СтруктураУсловия.Вставить("УсловиеЛевое" , УсловиеЛевое);
- СтруктураУсловия.Вставить("УсловиеПравое", УсловиеПравое);
- Если ВидСравненияУсловия <> Неопределено Тогда
- СтруктураУсловия.Вставить("ВидСравнения", ВидСравненияУсловия);
- КонецЕсли;
-
- Возврат СтруктураУсловия;
-
-КонецФункции
-
-// Функция формирует простое условия условного оформления.
-//
-// Параметры:
-// УсловиеЛевое - Строка - Имя левого значения.
-// ВидСравненияУсловия - ВидСравненияКомпоновкиДанных - Вид сравнения условия.
-//
-// Возвращаемое значение:
-// Структура - Структура ключей условий на заполнение.
-//
-Функция УсловиеНаЗаполнение(УсловиеЛевое, ВидСравненияУсловия) Экспорт
-
- СтруктураУсловия = Новый Структура;
- СтруктураУсловия.Вставить("УсловиеЛевое", УсловиеЛевое);
- СтруктураУсловия.Вставить("ВидСравнения", ВидСравненияУсловия);
-
- Возврат СтруктураУсловия;
-
-КонецФункции
-
-#КонецОбласти // ПроцедурыИФункцииРаботыСУсловнымОформлением
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьИмяМетода(Форма, ИмяПроцедурыВход)
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- СтроковыеФункцииКлиентСервер = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ИмяФормы = Форма.ИмяФормы;
- МассивПодимен = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФормы, ".");
-
- Если МассивПодимен.Количество() = 0 Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- ПостфиксМодуля = МассивПодимен.Получить(0);
-
- ИмяМодуля = "__МодификацияКонфигурацииПереопределяемый" + ПостфиксМодуля;
- ИмяПроцедуры = СтрЗаменить(ИмяФормы, ".", "") + ИмяПроцедурыВход;
- ИмяМетода = ИмяМодуля + "." + ИмяПроцедуры;
-
- Возврат ИмяМетода;
-
-КонецФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202.xml" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202.xml"
deleted file mode 100644
index ef189e90..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __МодификацияКонфигурацииПереопределяемыйДокумент
-
-
- ru
- Модификация конфигурации переопределяемый документ
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202/Ext/Module.bsl" "b/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 3349663b..00000000
--- "a/release/CommonModules/__\320\234\320\276\320\264\320\270\321\204\320\270\320\272\320\260\321\206\320\270\321\217\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\237\320\265\321\200\320\265\320\276\320\277\321\200\320\265\320\264\320\265\320\273\321\217\320\265\320\274\321\213\320\271\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,179 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Формы (сервер): для серверных функций обработок форм
-
-#Область ПрограммныйИнтерфейс
-
-// Процедура носит ознакомительный характер по работе с подсистемой "__РаботаСФормами", не переносить.
-//
-Процедура ДокументДемоРаботаСФормамиФормаФормаДокументаПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт
-
- // Демо-пример можно запустить на конфигурации БСП, в каркасной конфигурации отсутствуют необходимые _Демо объекты
- Возврат;
-
- #Область ДемоПример
-
- #Область РаботаСРеквизитамиФормы
-
- //
- СтруктураРеквизитов = Новый Структура;
- СтруктураРеквизитов.Вставить("_ДемоДата", __РаботаСФормами.ОписаниеТипаДатаВремя());
- СтруктураРеквизитов.Вставить("_ДемоНомер", __РаботаСФормами.ОписаниеТипаСтрока(11));
- СтруктураРеквизитов.Вставить("_ДемоПокупатель", __РаботаСФормами.ОписаниеТипаСправочник("_ДемоКонтрагенты"));
- СтруктураРеквизитов.Вставить("_ДемоПлатнаяДоставка", __РаботаСФормами.ОписаниеТипаБулево());
- СтруктураРеквизитов.Вставить("_ДемоТолькоБудни", __РаботаСФормами.ОписаниеТипаБулево());
- СтруктураРеквизитов.Вставить("_ДемоПолКурьера", __РаботаСФормами.ОписаниеТипаПеречисление("_ДемоПолФизическогоЛица"));
- СтруктураРеквизитов.Вставить("_ДемоТовары", __РаботаСФормами.ОписаниеТипаТаблицаЗначений());
- СтруктураРеквизитов.Вставить("_ДемоКомментарий", __РаботаСФормами.ОписаниеТипаСтрока(100));
- __РаботаСФормами.СоздатьРеквизиты(Форма, СтруктураРеквизитов);
-
- // Реквизит таб. части.
- СтруктураРеквизитовТабЧасти = Новый Структура;
- СтруктураРеквизитовТабЧасти.Вставить("_ДемоТовар", __РаботаСФормами.ОписаниеТипаСправочник("_ДемоНоменклатура"));
- СтруктураРеквизитовТабЧасти.Вставить("_ДемоКоличество", __РаботаСФормами.ОписаниеТипаЧисло(10));
- СтруктураРеквизитовТабЧасти.Вставить("_ДемоЦена", __РаботаСФормами.ОписаниеТипаЧисло(10,2));
- СтруктураРеквизитовТабЧасти.Вставить("_ДемоУпаковать", __РаботаСФормами.ОписаниеТипаБулево());
- СтруктураРеквизитовТабЧасти.Вставить("_ДемоХрупкое", __РаботаСФормами.ОписаниеТипаБулево());
- __РаботаСФормами.СоздатьРеквизитыТаблицы(Форма, "_ДемоТовары", СтруктураРеквизитовТабЧасти);
-
- #КонецОбласти
-
- #Область РаботаСГруппамиФормы
-
- //
- ГруппаШапка = __РаботаСФормами.СоздатьГруппаОбычнаяБезОтображения(Форма, "_ДемоГруппаШапка", Форма, 3);
- ГруппаШапкаЛевая = __РаботаСФормами.СоздатьГруппаОбычнаяБезОтображения(Форма, "_ДемоГруппаШапкаЛевая", ГруппаШапка, 1);
- ГруппаНомерДата = __РаботаСФормами.СоздатьГруппаОбычнаяБезОтображения(Форма, "_ДемоГруппаНомерДата", ГруппаШапкаЛевая, 3);
- ГруппаШапкаПравая = __РаботаСФормами.СоздатьГруппаОбычнаяБезОтображения(Форма, "_ДемоГруппаШапкаПравая", ГруппаШапка, 1);
- ГруппаСтраниц = __РаботаСФормами.СоздатьГруппаСтраниц(Форма, "_ДемоГруппаСтраниц", Форма, 1, 1);
- ГруппаТовары = __РаботаСФормами.СоздатьСтраница(Форма, "_ДемоГруппаТовары", ГруппаСтраниц, "Товары",, 1, 1);
- ГруппаЗаказы = __РаботаСФормами.СоздатьСтраница(Форма, "_ДемоГруппаЗаказы", ГруппаСтраниц, "Заказы клиента",, 1, 1);
- ГруппаПодвал = __РаботаСФормами.СоздатьГруппаОбычнаяБезОтображения(Форма, "_ДемоГруппаПодвал", Форма, 3);
-
- #КонецОбласти
-
- #Область РаботаСЭлементамиФормы
-
- //
- НовыйЭлемент = __РаботаСФормами.СоздатьПоле(Форма, "_ДемоНомер", ГруппаНомерДата, "Номер", 1, "_ДемоНомер");
- ШиринаПоля = __РаботаСФормами.СтруктураСвойствРасположение(10,,, 10, Ложь,, Ложь);
- ОсновныеНастройкиПоля = __РаботаСФормами.СтруктураСвойствОсновные(,,,,,, Истина);
- __РаботаСФормами.УстановитьМножествоСтруктурСвойствЭлементу(НовыйЭлемент, ШиринаПоля, ОсновныеНастройкиПоля);
-
- //
- __РаботаСФормами.СоздатьПоле(Форма, "_ДемоДата", ГруппаНомерДата, "от", 1, "_ДемоДата");
- __РаботаСФормами.СоздатьПоле(Форма, "_ДемоПокупатель", ГруппаШапкаЛевая, "Покупатель", 1, "_ДемоПокупатель");
- __РаботаСФормами.СоздатьПоле(Форма, "_ДемоПлатнаяДоставка", ГруппаШапкаЛевая, "Платная доставка", 2, "_ДемоПлатнаяДоставка");
- __РаботаСФормами.СоздатьПоле(Форма, "_ДемоПолКурьера", ГруппаШапкаПравая, "Пол курьера",1, "_ДемоПолКурьера");
- __РаботаСФормами.СоздатьПоле(Форма, "_ДемоКомментарий", ГруппаПодвал, "Комментарий", 1, "_ДемоКомментарий");
-
- // Флажки
- __РаботаСФормами.СоздатьПолеФлажок(Форма, "ТолькоБудни", ГруппаШапкаЛевая, "Только будни", 3, "_ДемоТолькоБудни");
-
- // Декорации
- __РаботаСФормами.СоздатьДекорацияКартинка(Форма, "_ДемоКартинкаЛоготип", ГруппаПодвал, "_ДемоРазделБизнесПроцессыИЗадачи");
- __РаботаСФормами.СоздатьДекорацияНадпись(Форма, "ИнформационнаяНадпись", ГруппаЗаказы, "Заказы по клиенту с начала года", 1);
-
- НовыйЭлемент = __РаботаСФормами.СоздатьДекорацияКартинка(Форма, "_ДемоBotFather", ГруппаПодвал, "BotFather");
- ОсновныеНастройкиПоля = __РаботаСФормами.СтруктураСвойствОсновные(,,,, Ложь);
- __РаботаСФормами.УстановитьМножествоСтруктурСвойствЭлементу(НовыйЭлемент, ОсновныеНастройкиПоля);
-
- // Выпадающий список
- МассивЗначений = Новый Массив;
- МассивЗначений.Добавить("Седан");
- МассивЗначений.Добавить("Универсал");
- МассивЗначений.Добавить("Грузовик");
- МассивЗначений.Добавить("Метро");
- __РаботаСФормами.СоздатьВыпадающийСписок(Форма, "ВыборТС", ГруппаШапкаПравая, "Тип ТС", МассивЗначений);
-
- // Переключатель
- МассивЗначений = Новый Массив;
- МассивЗначений.Добавить("Обычная");
- МассивЗначений.Добавить("Срочно");
- МассивЗначений.Добавить("Вчера");
- __РаботаСФормами.СоздатьПереключатель(Форма, "СрочностьДоставки", ГруппаШапкаПравая, "Срочность", МассивЗначений, 1);
-
- // Таблица формы
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("_ДемоТовар", "Товар");
- СтруктураКолонок.Вставить("_ДемоКоличество", "Количество");
- СтруктураКолонок.Вставить("_ДемоЦена", "Цена");
- НовыйЭлемент = __РаботаСФормами.СоздатьТаблицаФормы(Форма, "_ДемоТовары", ГруппаТовары, "_ДемоТовары", СтруктураКолонок);
-
- ВысотаТаблицы = __РаботаСФормами.СтруктураСвойствТаблицыФормы(,,,,,,, 4);
- __РаботаСФормами.УстановитьСвойстваЭлементу(НовыйЭлемент, ВысотаТаблицы);
-
- // Колонки таблицы формы
- ГруппаКолонки = __РаботаСФормами.СоздатьГруппаКолонокТаблицыФормы(Форма, "_ДемоГруппаДополнительно", НовыйЭлемент, 2,,, "Дополнительно");
- __РаботаСФормами.СоздатьКолонкаТаблицыФормы(Форма, "_ДемоУпаковать", ГруппаКолонки, 2, "Упаковать", "_ДемоТовары._ДемоУпаковать");
- __РаботаСФормами.СоздатьКолонкаТаблицыФормы(Форма, "_ДемоХрупкое", ГруппаКолонки, 2, "Стекло", "_ДемоТовары._ДемоХрупкое");
-
- // Динамический список
- ТекстЗапроса = "ВЫБРАТЬ
- | _ДемоСчетФактураПолученный.Ссылка КАК Ссылка,
- | _ДемоСчетФактураПолученный.Номер КАК _ДемоНомер,
- | _ДемоСчетФактураПолученный.Дата КАК _ДемоДата,
- | _ДемоСчетФактураПолученный.Контрагент КАК _ДемоКонтрагент,
- | _ДемоСчетФактураПолученный.Сумма КАК _ДемоСумма
- |ИЗ
- | Документ._ДемоСчетФактураПолученный КАК _ДемоСчетФактураПолученный
- |ГДЕ
- | _ДемоСчетФактураПолученный.Дата > &Дата";
- ПараметрыЗапроса = Новый Структура;
- ПараметрыЗапроса.Вставить("Дата", НачалоГода(ТекущаяДатаСеанса()));
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("_ДемоДата", "");
- СтруктураКолонок.Вставить("_ДемоНомер", "");
- СтруктураКолонок.Вставить("_ДемоКонтрагент","Покупатель");
- СтруктураКолонок.Вставить("_ДемоСумма", "");
- НовыйЭлемент = __РаботаСФормами.СоздатьДинамическийСписок(Форма, "_ДемоЗаказы", ГруппаЗаказы, ТекстЗапроса,
- ПараметрыЗапроса,, СтруктураКолонок,,, Истина);
- __РаботаСФормами.УстановитьСвойстваЭлементу(НовыйЭлемент, ВысотаТаблицы);
-
- #КонецОбласти
-
- #Область РаботаСКомандами
-
- //
- __РаботаСФормами.СоздатьКоманду(Форма, "КогдаОбед", НСтр("ru='Когда обед?'; en='When is lunch?'"), "ПодсказатьКогдаОбед");
- __РаботаСФормами.СоздатьКнопка(Форма, "КогдаОбед", ГруппаПодвал,, "КогдаОбед", 2);
-
- __РаботаСФормами.СоздатьКоманду(Форма, "СкрытьОтца", "Скрыть отца", "СкрытьОтца");
- __РаботаСФормами.СоздатьКнопка(Форма, "СкрытьОтца", ГруппаПодвал,, "СкрытьОтца", 1);
-
- __РаботаСФормами.СоздатьКоманду(Форма, "ПоказатьОтца", "Показать отца", "ПоказатьОтца");
- __РаботаСФормами.СоздатьКнопка(Форма, "ПоказатьОтца", ГруппаПодвал,, "ПоказатьОтца", 1);
-
- #КонецОбласти
- #КонецОбласти //ДемоПример
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index ef5db958..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ОбщегоНазначенияКлиент
-
-
- ru
- Общего назначения клиент
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index a4b4f332..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,33 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (клиент): для клиентских функций общего назначения
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 5217cb75..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- __ОбщегоНазначенияКлиентСервер
-
-
- ru
- Общего назначения клиент сервер
-
-
- en
- Common client-server
-
-
-
- false
- true
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index d8b28686..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,95 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (клиент): для клиентских и серверных функций общего назначения
-
-#Область ПрограммныйИнтерфейс
-
-// Упаковывает ДанныеФормыКоллекция в массив структур.
-// Может использоваться для передачи таблицы между клиентом и сервером.
-//
-// Параметры:
-// ДанныеФормыКоллекция - ДанныеФормыКоллекция - Данные формы коллекции
-// ИменаКолонок - Массив - Массив колонок.
-//
-// Возвращаемое значение:
-// Массив - Массив структур.
-//
-Функция УпаковатьДанныеФормыКоллекция(ДанныеФормыКоллекция, ИменаКолонок) Экспорт
-
- Результат = Новый Массив;
-
- Для Каждого СтрокаТаблицы Из ДанныеФормыКоллекция Цикл
-
- МодельСтроки = Новый Структура;
-
- Для Каждого Элемент Из ИменаКолонок Цикл
-
- Если ТипЗнч(ИменаКолонок) = Тип("Структура") Тогда
- ИмяКолонки = Элемент.Ключ;
- Иначе
- ИмяКолонки = Элемент;
- КонецЕсли;
-
- МодельСтроки.Вставить(ИмяКолонки, СтрокаТаблицы[ИмяКолонки]);
-
- КонецЦикла;
-
- Результат.Добавить(МодельСтроки);
-
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-// Разбирает строку с разделителями и упаковывает значения в массив.
-//
-// Параметры:
-// ИсходнаяСтрока - Строка - Исходная строка.
-// Разделитель - Строка - Разделитель.
-//
-// Возвращаемое значение:
-// Массив - Массив подстрок.
-//
-Функция РазобратьСтрокуСРазделителями(ИсходнаяСтрока, Разделитель = ",") Экспорт
-
- Результат = Новый Массив;
-
- // Разделитель бывает длиной строки > 1, учитывая особенность "СтрЗаменить",
- // заменим его на редкий односимвольный разделитель - Символ(9786).
- Сепаратор = Символ(9786);
- Образец = СтрЗаменить(ИсходнаяСтрока, Разделитель, Сепаратор);
- Результат = СтрРазделить(Образец, Сепаратор, Ложь);
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
deleted file mode 100644
index 4bc1a063..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ОбщегоНазначенияПовтИсп
-
-
- ru
- Общего назначения повторного использования
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DuringSession
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
deleted file mode 100644
index 10027c18..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl"
+++ /dev/null
@@ -1,243 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (сервер): для серверных функций общего назначения
-// с повторным использованием
-
-#Область ПрограммныйИнтерфейс
-
-// Возвращает значение предопределенного элемента ПВХ по имени.
-//
-// Параметры:
-// Имя - Строка - Имя переменной ПВХ.
-//
-// Возвращаемое значение:
-// - ПроизвольныйТип - Значение переменной ПВХ.
-// - Массив - Массив значений переменной ПВХ.
-//
-Функция ПолучитьПредопределенноеЗначение(Имя) Экспорт
-
- Возврат ПланыВидовХарактеристик.__ПредопределенныеЗначения.ПолучитьЗначение(Имя);
-
-КонецФункции
-
-// Возвращает соответствие предопределенных элементов ПВХ по имени.
-//
-// Параметры:
-// Имя - Строка - Имена переменных ПВХ, перечисленные через запятую.
-// ВРазрезеКлючей - Булево - Признак получения данных в виде соответствия, где Ключ - Имя переменной.
-//
-// Возвращаемое значение:
-// - Соответствие - Соответствие имен и значений переменных ПВХ.
-// - Массив - Массив значений переменных ПВХ.
-//
-Функция ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей = Ложь) Экспорт
-
- Возврат ПланыВидовХарактеристик.__ПредопределенныеЗначения.ПолучитьЗначения(Имена, ВРазрезеКлючей);
-
-КонецФункции
-
-// Возвращает таблицу соответствий по отбору.
-//
-// Параметры:
-// ТипСоответствия - Перечисление.__ТипСоответствияОбъектовИБ - Тип соответствия.
-// Объект1 - ПроизвольныйТип - Объект1.
-// Объект2 - ПроизвольныйТип - Объект2.
-// Объект3 - ПроизвольныйТип - Объект3.
-//
-// Возвращаемое значение:
-// - ТаблицаЗначений - Таблица соответствий по отбору.
-//
-Функция ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено) Экспорт
-
- Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3);
-
-КонецФункции
-
-#Область ПодпискиНаСобытияДокументов
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("ДокументОбъект.АвансовыйОтчет"), "АвансовыйОтчетПередЗаписью");
-//
-Функция ДокументыПередЗаписью() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("ДокументОбъект.АвансовыйОтчет"), "АвансовыйОтчетПриЗаписи");
-//
-Функция ДокументыПриЗаписи() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("ДокументОбъект.АвансовыйОтчет"), "АвансовыйОтчетОбработкаПроведения");
-//
-Функция ДокументыОбработкаПроведения() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("ДокументОбъект.АвансовыйОтчет"), "АвансовыйОтчетОбработкаЗаполнения");
-//
-Функция ДокументыОбработкаЗаполнения() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("ДокументОбъект.АвансовыйОтчет"), "АвансовыйОтчетПриКопировании");
-//
-Функция ДокументыПриКопировании() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-#КонецОбласти // ПодпискиНаСобытияДокументов
-
-#Область ПодпискиНаСобытияСправочников
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("СправочникОбъект.Номенеклатура"), "НоменеклатураПередЗаписью");
-//
-Функция СправочникиПередЗаписью() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("СправочникОбъект.Номенеклатура"), "НоменеклатураПриЗаписи");
-//
-Функция СправочникиПриЗаписи() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("СправочникОбъект.Номенеклатура"), "НоменеклатураОбработкаЗаполнения");
-//
-Функция СправочникиОбработкаЗаполнения() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-// Определяет соответствие типа источника подписки и имени метода.
-//
-// Возвращаемое значение:
-// Соответствие - в качестве ключа передается тип объекта источника подписки,
-// а в качестве значения имя исполняемого метода.
-//
-// Пример:
-// Соответствие.Вставить(Тип("СправочникОбъект.Номенеклатура"), "НоменеклатураПриКопировании");
-//
-Функция СправочникиПриКопировании() Экспорт
-
- Соответствие = Новый Соответствие;
-
- Возврат Соответствие;
-
-КонецФункции
-
-#КонецОбласти // ПодпискиНаСобытияСправочников
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml"
deleted file mode 100644
index 09ada59a..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ОбщегоНазначенияПолныеПрава
-
-
- ru
- Общего назначения полные права
-
-
-
- false
- false
- true
- false
- false
- false
- true
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl"
deleted file mode 100644
index 941924e0..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\237\320\276\320\273\320\275\321\213\320\265\320\237\321\200\320\260\320\262\320\260/Ext/Module.bsl"
+++ /dev/null
@@ -1,33 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Привилегированный (сервер): для привилегированных функций
-
-#Область ПрограммныйИнтерфейс
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 2f0a05f4..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __ОбщегоНазначенияСервер
-
-
- ru
- Общего назначения сервер
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 15fb50e1..00000000
--- "a/release/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,911 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Общего назначения (сервер): для серверных функций общего назначения
-
-#Область ПрограммныйИнтерфейс
-
-// Возвращает имя информационной базы.
-//
-// Возвращаемое значение:
-// - Строка - Имя информационной базы.
-//
-Функция ПолучитьИмяИнформационнойБазы() Экспорт
-
- СтрокаПодключения = СтрокаСоединенияИнформационнойБазы();
-
- НомерСимвола = СтрНайти(СтрокаПодключения, "File=");
- Если НомерСимвола > 0 Тогда
-
- // Это Файловая база.
- СтрокаСправа = Сред(СтрокаПодключения, НомерСимвола + 6);
-
- Возврат Сред(СтрокаСправа, 1, СтрДлина(СтрокаСправа) - 2);
- КонецЕсли;
-
- НомерСимвола = СтрНайти(СтрокаПодключения, "Ref=");
- Если НомерСимвола > 0 Тогда
-
- // Это серверная база.
- СтрокаСправа = Сред(СтрокаПодключения, НомерСимвола + 5);
-
- Возврат Сред(СтрокаСправа, 1, СтрДлина(СтрокаСправа) - 2);
- КонецЕсли;
-
- Возврат "";
-
-Конецфункции
-
-// Возвращает значение предопределенного элемента ПВХ по имени.
-//
-// Параметры:
-// Имя - Строка - Имя переменной ПВХ.
-// ИспользоватьКэш - Булево - Признак получения данных из кэша.
-//
-// Возвращаемое значение:
-// - ПроизвольныйТип - Значение переменной ПВХ.
-// - Массив - Массив значений переменной ПВХ.
-//
-Функция ПолучитьПредопределенноеЗначение(Имя, ИспользоватьКэш = Ложь) Экспорт
-
- Если ИспользоватьКэш Тогда
- Возврат __ОбщегоНазначенияПовтИсп.ПолучитьПредопределенноеЗначение(Имя);
- Иначе
- Возврат ПланыВидовХарактеристик.__ПредопределенныеЗначения.ПолучитьЗначение(Имя);
- КонецЕсли;
-
-КонецФункции
-
-// Возвращает соответствие предопределенных элементов ПВХ по имени.
-//
-// Параметры:
-// Имя - Строка - Имена переменных ПВХ, перечисленные через запятую.
-// ВРазрезеКлючей - Булево - Признак получения данных в виде соответствия, где Ключ - Имя переменной.
-// ИспользоватьКэш - Булево - Признак получения данных из кэша.
-//
-// Возвращаемое значение:
-// - Соответствие - Соответствие имен и значений переменных ПВХ.
-// - Массив - Массив значений переменных ПВХ.
-//
-Функция ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей = Ложь, ИспользоватьКэш = Ложь) Экспорт
-
- Если ИспользоватьКэш Тогда
- Возврат __ОбщегоНазначенияПовтИсп.ПолучитьПредопределенныеЗначения(Имена, ВРазрезеКлючей);
- Иначе
- Возврат ПланыВидовХарактеристик.__ПредопределенныеЗначения.ПолучитьЗначения(Имена, ВРазрезеКлючей);
- КонецЕсли;
-
-КонецФункции
-
-// Возвращает таблицу соответствий по отбору.
-//
-// Параметры:
-// ТипСоответствия - Перечисление.__ТипСоответствияОбъектовИБ - Тип соответствия.
-// Объект1 - ПроизвольныйТип - Объект1.
-// Объект2 - ПроизвольныйТип - Объект2.
-// Объект3 - ПроизвольныйТип - Объект3.
-// ИспользоватьКэш - Булево - Признак получения данных из кэша.
-//
-// Возвращаемое значение:
-// - ТаблицаЗначений - Таблица соответствий по отбору.
-//
-Функция ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1 = Неопределено, Объект2 = Неопределено, Объект3 = Неопределено, ИспользоватьКэш = Ложь) Экспорт
-
- Если ИспользоватьКэш Тогда
- Возврат __ОбщегоНазначенияПовтИсп.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3);
- Иначе
- Возврат РегистрыСведений.__СоответствияОбъектовИБ.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3);
- КонецЕсли;
-
-КонецФункции
-
-// Возвращает таблицу значений с датами за период
-//
-// Параметры:
-// НачалоПериода - Дата - Начало периода.
-// ОкончаниеПериода - Дата - Конец периода.
-// Интервал - Строка - одно из следующих значений:
-// (Секунда, Минута, Час, День, Неделя, Месяц, Квартал, Полугодие, Год)
-//
-// Возвращаемое значение:
-// ТаблицаЗначений - Таблица значений с датами за период. Содержит одну колонку "Период".
-//
-Функция ПолучитьТаблицуДатЗаПериод(НачалоПериода, ОкончаниеПериода, Интервал = "День") Экспорт
-
- ТаблицаИнтервалов = Новый ТаблицаЗначений;
- ТаблицаИнтервалов.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
-
- Запрос = Новый Запрос;
- Запрос.Текст = "ВЫБРАТЬ
- | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) КАК Период
- |
- |УПОРЯДОЧИТЬ ПО
- | Период
- |ИТОГИ ПО
- | Период ПЕРИОДАМИ(%Интервал%, &НачалоПериода, &ОкончаниеПериода)";
-
- Запрос.Текст = СтрЗаменить(Запрос.Текст, "%Интервал%", Интервал);
-
- Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
- Запрос.УстановитьПараметр("ОкончаниеПериода", ОкончаниеПериода);
-
- Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ");
- Пока Выборка.Следующий() Цикл
- ЗаполнитьЗначенияСвойств(ТаблицаИнтервалов.Добавить(), Выборка);
- КонецЦикла;
-
- Возврат ТаблицаИнтервалов;
-
-КонецФункции
-
-//Устанавливает элемент отбор динамического списка
-//
-//Параметры:
-//Список - обрабатываемый динамический список,
-//ИмяПоля - имя поля компоновки, отбор по которому нужно установить,
-//ВидСравнения - вид сравнения отбора, по умолчанию - Равно,
-//ПравоеЗначение - значение отбора
-//
-Процедура УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения = Неопределено, Представление = "") Экспорт
-
- ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
- ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
- ЭлементОтбора.ВидСравнения = ?(ВидСравнения = Неопределено, ВидСравненияКомпоновкиДанных.Равно, ВидСравнения);
- ЭлементОтбора.Использование = Истина;
- ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;
- ЭлементОтбора.Представление = Представление;
-
-КонецПроцедуры
-
-//Изменяет элемент отбора динамического списка
-//
-//Параметры:
-//Список - обрабатываемый динамический список,
-//ИмяПоля - имя поля компоновки, отбор по которому нужно установить,
-//ВидСравнения - вид сравнения отбора, по умолчанию - Равно,
-//ПравоеЗначение - значение отбора,
-//Установить - признак необходимости установить отбор
-//
-Процедура ИзменитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение = Неопределено, Установить = Ложь, ВидСравнения = Неопределено) Экспорт
-
- УдалитьЭлементОтбораСписка(Список, ИмяПоля);
-
- Если Установить Тогда
-
- УстановитьЭлементОтбораСписка(Список, ИмяПоля, ПравоеЗначение, ВидСравнения);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-//Удаляет элемент отбора динамического списка
-//
-//Параметры:
-//Список - обрабатываемый динамический список,
-//ИмяПоля - имя поля компоновки, отбор по которому нужно удалить
-//
-Процедура УдалитьЭлементОтбораСписка(Список, ИмяПоля) Экспорт
-
- ЭлементыДляУдаления = Новый Массив;
-
- ЭлементыОтбора = Список.Отбор.Элементы;
- ПолеКомпоновки = Новый ПолеКомпоновкиДанных(ИмяПоля);
-
- Для Каждого ЭлементОтбора Из ЭлементыОтбора Цикл
- Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных")
- И ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновки Тогда
- ЭлементыДляУдаления.Добавить(ЭлементОтбора);
- КонецЕсли;
- КонецЦикла;
-
- Для Каждого ЭлементОтбораДляУдаления Из ЭлементыДляУдаления Цикл
-
- ЭлементыОтбора.Удалить(ЭлементОтбораДляУдаления);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-// Функция возвращает полный текст ошибки возникающей при исключении
-//
-// Параметры:
-// ЗаголовокОшибки - Строка - описание действия повлекшего ошибку
-// ТекстИсключения - Строка - подробное представление ошибки
-// ДополнительныеСообщения - Массив - массив дополнительных сообщений
-Функция ПолучениеПолногоТекстаОшибкиПриИсключении(ЗаголовокОшибки, ТекстИсключения, ДополнительныеСообщения) Экспорт
-
- ТекстОшибки = ЗаголовокОшибки;
- Для Каждого Сообщение Из ДополнительныеСообщения Цикл
- ТекстОшибки = ТекстОшибки + Символы.ПС + Сообщение.Текст;
- КонецЦикла;
- ТекстОшибки = ТекстОшибки + Символы.ПС + ТекстИсключения;
-
- Возврат ТекстОшибки;
-
-КонецФункции
-
-// Процедура удаляет экземпляр регламентного задания.
-//
-// Параметры:
-// КлючЗадания - Строка - Ключ регламентного задания
-//
-Процедура УдалитьЭкземплярРегламентногоЗадания(КлючЗадания) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- РегламентныеЗаданияСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- ОтборЗадания = Новый Структура;
- ОтборЗадания.Вставить("Ключ", КлючЗадания);
- МассивРегламентныхЗаданий = РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗадания);
-
- Если МассивРегламентныхЗаданий.Количество() Тогда
- РегламентноеЗадание = МассивРегламентныхЗаданий[0];
- РегламентныеЗаданияСервер.УдалитьЗадание(РегламентноеЗадание.УникальныйИдентификатор);
- КонецЕсли;
-
-КонецПроцедуры
-
-// Выполняет запись элемента справочника.
-//
-// Параметры:
-// ТекущийОбъект - СправочникОбъект - Записываемый объект.
-// Заголовок - Строка (По умолчанию = "").
-// РежимСообщений - Строка: "Нет","Все","Ошибки" (По умолчанию = "Все").
-// РежимЗагрузки - Булево (По умолчанию = Ложь).
-//
-// Возвращаемое значение:
-// Булево - Справочник записан.
-//
-Функция ЗаписатьСправочник(ТекущийОбъект, Заголовок = "", РежимСообщений = "Все", РежимЗагрузки = Ложь) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- СправочникЗаписан = Ложь;
-
- РежимыВывода = ОпределитьРежимыВывода(РежимСообщений);
-
- Попытка
-
- Если РежимЗагрузки Тогда
- ТекущийОбъект.ОбменДанными.Загрузка = Истина;
- СправочникЗаписан = Истина;
- Иначе
- СправочникЗаписан = ТекущийОбъект.ПроверитьЗаполнение();
- КонецЕсли;
-
- Если СправочникЗаписан Тогда
-
- ТекущийОбъект.Записать();
- Если РежимыВывода.ВыводитьИнформацию Тогда
- ОбщегоНазначения.СообщитьПользователю(
- СтрШаблон(НСтр("ru='Записан справочник ""%1"".';en='Directory ""%1"" saved.'"), ТекущийОбъект.Ссылка));
- КонецЕсли;
- КонецЕсли;
- Исключение
-
- СправочникЗаписан = Ложь;
-
- Если РежимыВывода.ВыводитьОшибки Тогда
- ОбщегоНазначения.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецЕсли;
-
- ЗаписьЖурналаРегистрации("__.ОшибкаЗаписиСправочника", УровеньЖурналаРегистрации.Ошибка,,,
- ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
- Возврат СправочникЗаписан;
-
-КонецФункции // ЗаписатьСправочник()
-
-// Преобразует текст формата XML в таблицу значений,
-// при этом колонки таблицы формируются на основе описания в XML.
-//
-// Параметры:
-// ТекстXML - Текст в формате XML.
-// Схема XML:
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-// Примеры XML-файлов см. в демонстрационной конфигурации.
-//
-// Пример использования:
-// КлассификаторТаблица = ПрочитатьXMLВТаблицу(РегистрыСведений.АдресныйКлассификатор.
-// ПолучитьМакет("КлассификаторАдресныхОбъектовРоссии").ПолучитьТекст());
-//
-// Возвращаемое значение:
-// ТаблицаЗначений.
-//
-Функция ПрочитатьXMLВТаблицу(ТекстXML) Экспорт
-
- Чтение = Новый ЧтениеXML;
- Чтение.УстановитьСтроку(ТекстXML);
-
- // Прочитаем первый узел и проверим его.
- Если Не Чтение.Прочитать() Тогда
- ВызватьИсключение("Пустой XML");
- ИначеЕсли Чтение.Имя <> "Items" Тогда
- ВызватьИсключение(НСтр("ru='Ошибка в структуре XML';en='Ошибка в структуре XML'"));
- КонецЕсли;
-
- // Получим описание таблицы и создадим ее.
- ИмяТаблицы = Чтение.ПолучитьАтрибут("Description");
- ИменаКолонок = СтрЗаменить(Чтение.ПолучитьАтрибут("Columns"), ",", Символы.ПС);
- Колонок = СтрЧислоСтрок(ИменаКолонок);
-
- ТаблицаЗначений = Новый ТаблицаЗначений;
- Для Сч = 1 По Колонок Цикл
- ТаблицаЗначений.Колонки.Добавить(СтрПолучитьСтроку(ИменаКолонок, Сч), Новый ОписаниеТипов("Строка"));
- КонецЦикла;
-
- // Заполним значения в таблице.
- Пока Чтение.Прочитать() Цикл
-
- Если Чтение.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда
- Продолжить;
- ИначеЕсли Чтение.Имя <> "Item" Тогда
- ВызватьИсключение(НСтр("ru='Ошибка в структуре XML';en='Ошибка в структуре XML'"));
- КонецЕсли;
-
- НоваяСтрока = ТаблицаЗначений.Добавить();
- Для Сч = 1 По Колонок Цикл
- ИмяКолонки = СтрПолучитьСтроку(ИменаКолонок, Сч);
- НоваяСтрока[Сч - 1] = Чтение.ПолучитьАтрибут(ИмяКолонки);
- КонецЦикла;
- КонецЦикла;
-
- Результат = Новый Структура("ИмяТаблицы, Данные", ИмяТаблицы, ТаблицаЗначений);
-
- Возврат Результат;
-
-КонецФункции // ПрочитатьXMLВТаблицу()
-
-// Определяет режимы вывода сообщений.
-//
-// Параметры:
-// РежимСообщений - Строка - "Нет", "Все", "Ошибки".
-//
-// Возвращаемое значение:
-// Структура - Структура режима вывода сообщений.
-//
-Функция ОпределитьРежимыВывода(РежимСообщений) Экспорт
-
- РежимыВывода = Новый Структура("ВыводитьОшибки, ВыводитьИнформацию",
- ВРег(РежимСообщений) = ВРег("Все") Или ВРег(РежимСообщений) = ВРег("Ошибки"),
- ВРег(РежимСообщений) = ВРег("Все"));
-
- Возврат РежимыВывода;
-
-КонецФункции // ОпределитьРежимВывода()
-
-// Выполняет произвольный код с параметрами.
-//
-// Параметры:
-// Текст функции - Произвольный.
-// СтруктураПараметров - Массив структур (Номер, Значение).
-// Переменные - Структура - Структура переменных функции.
-//
-// Возвращаемое значение:
-// Неопределено, в случае успешного выполнения, Описание ошибки, в случае неудачи.
-//
-Функция ВыполнитьПользовательскуюФункциюСПараметрами(ТекстФункции, СтруктураПараметров, Переменные) Экспорт
-
- // Служебные переменные для передачи параметров функции.
- Перем П1, П2, П3, П4, П5, П6, П7, П8, П9, П10;
-
- Для Каждого Параметр Из СтруктураПараметров Цикл
-
- Если Параметр.Номер = 1 Тогда
- П1 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П1");
- ИначеЕсли Параметр.Номер = 2 Тогда
- П2 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П2");
- ИначеЕсли Параметр.Номер = 3 Тогда
- П3 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П3");
- ИначеЕсли Параметр.Номер = 4 Тогда
- П4 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П4");
- ИначеЕсли Параметр.Номер = 5 Тогда
- П5 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П5");
- ИначеЕсли Параметр.Номер = 6 Тогда
- П6 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П6");
- ИначеЕсли Параметр.Номер = 7 Тогда
- П7 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П7");
- ИначеЕсли Параметр.Номер = 8 Тогда
- П8 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П8");
- ИначеЕсли Параметр.Номер = 9 Тогда
- П9 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П9");
- ИначеЕсли Параметр.Номер = 10 Тогда
- П10 = Параметр.Значение;
- ТекстФункции = СтрЗаменить(ТекстФункции, Параметр.Параметр, "Параметры.П10");
- КонецЕсли;
- КонецЦикла;
-
- ТекстФункции = СтрЗаменить(ТекстФункции, "Переменные", "Параметры.Переменные");
-
- Результат = Неопределено;
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Параметры = Новый Структура("П1, П2, П3, П4, П5, П6, П7, П8, П9, П10, Переменные", П1, П2, П3, П4, П5, П6, П7, П8, П9, П10, Переменные);
-
- Попытка
- ОбщегоНазначения.ВыполнитьВБезопасномРежиме(ТекстФункции, Параметры);
- Исключение
- ВызватьИсключение КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
- КонецПопытки;
-
- Возврат Результат;
-
-КонецФункции // ВыполнитьПользовательскуюФункциюСПараметрами()
-
-// Добавляет новую строку "ДобавляемаяСтрока" к тексту "Текст".
-//
-// Параметры:
-// Текст - Строка - Текущий текст.
-// ДобавляемаяСтрока - Строка - Добавляемая строка.
-//
-Процедура ДобавитьСтрокуКТексту(Текст, ДобавляемаяСтрока) Экспорт
-
- Текст = СтрШаблон("%1%2%3", Текст, ?(СокрЛП(Текст) = "", "", Символы.ПС), ДобавляемаяСтрока);
-
-КонецПроцедуры // ДобавитьСтрокуКТексту()
-
-// По массиву типов создается список выбора для быстрого выбора составного типа.
-//
-// Параметры:
-// МассивТипов - Массив - Массив типов.
-//
-// Возвращаемое значение:
-// СписокЗначений - Список выбора.
-//
-Функция ПодготовитьСписокВыбораТипа(МассивТипов) Экспорт
-
- СписокВыбора = Новый СписокЗначений;
- Для Каждого ТекущийТип Из МассивТипов Цикл
-
- ОбъектМетаданных = Метаданные.НайтиПоТипу(ТекущийТип);
- Если ОбъектМетаданных = Неопределено Тогда
- ТекПредставление = Строка(ТекущийТип);
- Иначе
- ТекПредставление = ОбъектМетаданных.Синоним;
- КонецЕсли;
-
- СписокВыбора.Добавить(ТекущийТип,ТекПредставление);
- КонецЦикла;
-
- Возврат СписокВыбора;
-
-КонецФункции // ПодготовитьСписокВыбораТипа()
-
-// Функция определяет имя объекта ссылочного типа по описанию типов.
-//
-// Параметры:
-// ОписаниеТипов - ОписаниеТипов - содержит тип, имя объекта которого нужно определить.
-// ИмяКоллекции - Строка - имя коллекции объектов метаданных: "Справочники","Документы" и т.п.
-// НачалоИмениТипа - Строка - начало строкового представления типа : "СправочникСсылка", "ДокументСсылка" и т.п.
-//
-// Возвращаемое значение:
-// РезСтруктура - Структура (Ключи: "Имя","Синоним","ИмяТипа"; Значения: Строка)
-// Неопределено (если имя не удалось определить).
-//
-Функция ПолучитьИмяОбъектаПоОписаниюТипов(ОписаниеТипов, ИмяКоллекции, НачалоИмениТипа) Экспорт
-
- Результат = Неопределено;
-
- Для Каждого ТекущийОбъект Из Метаданные[ИмяКоллекции] Цикл
-
- ИмяТипа = СтрШаблон("%1.%2", НачалоИмениТипа, ТекущийОбъект.Имя);
- Если ОписаниеТипов.СодержитТип(Тип(ИмяТипа)) Тогда
-
- Результат = Новый Структура;
- Результат.Вставить("Имя", ТекущийОбъект.Имя);
- Результат.Вставить("Синоним", ТекущийОбъект.Синоним);
- Результат.Вставить("ИмяТипа", ИмяТипа);
-
- Прервать;
- КонецЕсли;
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции // ПолучитьИмяОбъектаПоОписаниюТипов()
-
-// Функция получает имя объекта по имени формы.
-//
-// Параметры:
-// ИмяФормы - Строка - Имя формы.
-//
-// Возвращаемое значение:
-// Строка - Имя объекта.
-//
-Функция ПолучитьИмяОбъектаПоИмениФормы(ИмяФормы, ПолноеИмя = Истина) Экспорт
-
- МассивИмениФормы = __СтроковыеФункцииКлиентСервер.РазобратьСтрокуСРазделителями(ИмяФормы, ".");
- Результат = СтрШаблон("%1%2",
- ?(ПолноеИмя, СтрШаблон("%1.", МассивИмениФормы.Получить(0)), ""),
- МассивИмениФормы.Получить(1));
-
- Возврат Результат;
-
-КонецФункции // ПолучитьИмяОбъектаПоИмениФормы()
-
-#Область ОтладкаВременныхТаблиц
-
-// Функция возвращает все поля указанной временной таблицы из менеджера временных таблиц.
-// Используется для просмотра временных таблиц в отладчике.
-//
-// Параметры:
-// ЗапросМенеджер - Запрос, МенеджерВременныхТаблиц - запрос (для вычленения текста запроса) или менеджер.
-// ИмяВременнойТаблицы - Строка - Имя временной таблицы
-//
-// Возвращаемое значение:
-// - ТаблицаЗначений - Результат временной таблицы запроса.
-//
-// Пример вызова функции:
-// ЗапасыСервер.ПоказатьВременнуюТаблицу(МенеджерВременныхТаблиц, "ТаблицаТоваров")
-//
-Функция ПоказатьВременнуюТаблицу(ЗапросМенеджер, ИмяВременнойТаблицы) Экспорт
-
- ЗакрытьМенеджерВременныхТаблиц = Ложь;
-
- Если ТипЗнч(ЗапросМенеджер) = Тип("Запрос") Тогда
- Если ЗапросМенеджер.МенеджерВременныхТаблиц = Неопределено Тогда
- МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
- ЗакрытьМенеджерВременныхТаблиц = Истина;
- ЗапросМенеджер.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
- Иначе
- МенеджерВременныхТаблиц = ЗапросМенеджер.МенеджерВременныхТаблиц;
- КонецЕсли;
-
- ЗапросМенеджер.Выполнить();
- Иначе
- МенеджерВременныхТаблиц = ЗапросМенеджер;
- КонецЕсли;
-
- ДанныеТаблицы = ЗапросВыполнитьВыгрузить("ВЫБРАТЬ * ИЗ " + ИмяВременнойТаблицы,, МенеджерВременныхТаблиц);
-
- Если ЗакрытьМенеджерВременныхТаблиц Тогда
- МенеджерВременныхТаблиц.Закрыть();
- ЗапросМенеджер.МенеджерВременныхТаблиц = Неопределено;
- КонецЕсли;
-
- Возврат ДанныеТаблицы;
-
-КонецФункции
-
-// Функция возвращает результат запроса.
-//
-// Параметры:
-// ТекстЗапроса - Строка - текст исполняемого запроса.
-// ПараметрыЗапроса - Соответствие - Соответствие параметров запроса.
-// МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - Менеджер временных таблиц запроса.
-//
-// Возвращаемое значение:
-// - ТаблицаЗначений - Результат выполнения запроса.
-//
-Функция ЗапросВыполнитьВыгрузить(ТекстЗапроса, ПараметрыЗапроса = Неопределено,
- МенеджерВременныхТаблиц = Неопределено) Экспорт
-
- Запрос = Новый Запрос(ТекстЗапроса);
-
- Если МенеджерВременныхТаблиц <> Неопределено Тогда
- Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ПараметрыЗапроса) Тогда
- Для Каждого Параметр Из ПараметрыЗапроса Цикл
- Запрос.УстановитьПараметр(Параметр.Ключ, Параметр.Значение);
- КонецЦикла;
- КонецЕсли;
-
- Возврат Запрос.Выполнить().Выгрузить();
-
-КонецФункции
-
-// Формирует список полей временных таблиц.
-//
-// Параметры:
-// ЗапросМенеджер - Запрос, МенеджерВременныхТаблиц - запрос (для вычленения текста запроса) или менеджер
-// временных таблиц (имена временных таблиц в этом случае надо передавать явно).
-// ИменаВременныхТаблиц - Строка - строка с именами интересующих временных таблиц (обязательный параметр при передаче
-// менеджера ВТ вместо запроса в первом параметре).
-//
-// Возвращаемое значение:
-// Массив - Поля временных таблицы, находящиеся в менеджере или запросе.
-//
-// Пример вызова функции:
-// ПросмотрВременныхТаблиц(Запрос, "")
-//
-Функция ПоляВременныхТаблиц(ЗапросМенеджер, ИменаВременныхТаблиц = "") Экспорт
-
- // Предварительная обработка параметров:
- Если ТипЗнч(ЗапросМенеджер) = Тип("МенеджерВременныхТаблиц") Тогда
- Если ИменаВременныхТаблиц = "" Тогда
- Возврат "Укажите имена временных таблиц через запятую";
- Иначе
- Запрос = Новый Запрос;
- Запрос.МенеджерВременныхТаблиц = ЗапросМенеджер;
- КонецЕсли;
- Иначе
- Запрос = ЗапросМенеджер;
- КонецЕсли;
-
- ТекстЗапроса = ВРег(Запрос.Текст);
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.Таб, " ");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.ВТаб, " ");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.НПП, " ");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ")", ") ");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "(", " (");
-
- ОчищенныйТекстЗапроса = "";
- Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстЗапроса) Цикл
-
- ОчереднаяСтрока = СтрПолучитьСтроку(ТекстЗапроса, НомерСтроки);
- ПозицияКомментария = СтрНайти(ОчереднаяСтрока, "//");
-
- Если ПозицияКомментария > 0 Тогда
- ОчереднаяСтрока = Лев(ОчереднаяСтрока,ПозицияКомментария-1);
- КонецЕсли;
-
- ОчищенныйТекстЗапроса = ОчищенныйТекстЗапроса + " " + ОчереднаяСтрока;
- КонецЦикла;
-
- ТекстЗапроса = ОчищенныйТекстЗапроса;
-
- // Парсинг текста запроса и получение из него имен временных таблиц
- ВременныеТаблицыЗапроса = новый Массив;
-
- Если НЕ ИменаВременныхТаблиц = "" Тогда
-
- СписокДополнительныхИмен = СтрЗаменить(ИменаВременныхТаблиц, ",", Символы.ПС);
- Для Счетчик = 1 По СтрЧислоСтрок(СписокДополнительныхИмен) Цикл
- ТекСтрока = СтрПолучитьСтроку(СписокДополнительныхИмен, Счетчик);
- ВременныеТаблицыЗапроса.Добавить(ТекСтрока);
- КонецЦикла;
-
- КонецЕсли;
-
- ВременнаяТаблица = НайтиИменаТаблицПоРасположениюСлов(ТекстЗапроса, "ПОМЕСТИТЬ");
- Для Каждого КлючЗначение Из ВременнаяТаблица Цикл
- ВременныеТаблицыЗапроса.Добавить(КлючЗначение.Ключ);
- КонецЦикла;
-
- ВременнаяТаблица = НайтиИменаТаблицПоРасположениюСлов(ТекстЗапроса, "ИЗ", "КАК");
- Для Каждого КлючЗначение Из ВременнаяТаблица Цикл
- ВременныеТаблицыЗапроса.Добавить(КлючЗначение.Ключ);
- КонецЦикла;
-
- ВременнаяТаблица = НайтиИменаТаблицПоРасположениюСлов(ТекстЗапроса, "СОЕДИНЕНИЕ", "КАК");
- Для Каждого КлючЗначение Из ВременнаяТаблица Цикл
- ВременныеТаблицыЗапроса.Добавить(КлючЗначение.Ключ);
- КонецЦикла;
-
- УничтожаемыеВременныеТаблицы = НайтиИменаТаблицПоРасположениюСлов(ТекстЗапроса, "УНИЧТОЖИТЬ");
- Для Каждого КлючЗначение Из УничтожаемыеВременныеТаблицы Цикл
- ВременныеТаблицыЗапроса.Добавить(КлючЗначение.Ключ);
- КонецЦикла;
-
- Ответ = Новый Структура;
-
- Если Запрос.МенеджерВременныхТаблиц = Неопределено тогда
-
- // На случай, если ВТ удаляются в тексте запроса, сложнейший алгоритм предварительно скопирует их
- Смещение = 0;
- Если УничтожаемыеВременныеТаблицы.Количество() Тогда
- Для Каждого КлючИЗначение Из УничтожаемыеВременныеТаблицы Цикл
-
- ПозицияУничтожения = КлючИЗначение.Значение + Смещение;
- ИмяВТ = КлючИЗначение.Ключ ;
- НовыйПодзапросКопирования = "ВЫБРАТЬ * ПОМЕСТИТЬ КОПИЯ" + ИмяВТ + " ИЗ "+ ИмяВТ + ";";
-
- ТекстЗапроса = Лев(ТекстЗапроса, ПозицияУничтожения - 1) + НовыйПодзапросКопирования + Прав(
- ТекстЗапроса, СтрДлина(ТекстЗапроса) - (ПозицияУничтожения - 1));
-
- Смещение = Смещение + НовыйПодзапросКопирования;
- КонецЦикла;
- КонецЕсли;
-
- // Выполняем запрос для создания интересующих нас таблиц
- ЗапросТМП = Новый Запрос;
- ЗапросТМП.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
- Для Каждого Параметр Из Запрос.Параметры Цикл
- ЗапросТМП.УстановитьПараметр(Параметр.Ключ, Параметр.Значение);
- КонецЦикла;
-
- ЗапросТМП.Текст = ТекстЗапроса;
- ЗапросТМП.Выполнить();
-
- ЗаполнитьТаблицыПоСпискуИмен(Ответ, ВременныеТаблицыЗапроса, ЗапросТМП.МенеджерВременныхТаблиц);
-
- ЗапросТМП.МенеджерВременныхТаблиц.Закрыть();
-
- Иначе
-
- // Это надо запускать после выполнения запроса, чтобы временные таблицы уже были созданы
- ОтсутствующиеИменаТаблиц = ЗаполнитьТаблицыПоСпискуИмен(
- Ответ, ВременныеТаблицыЗапроса, Запрос.МенеджерВременныхТаблиц);
-
- Для Каждого ИмяТаблицы Из ОтсутствующиеИменаТаблиц Цикл
-
- Если УничтожаемыеВременныеТаблицы.Получить(ИмяТаблицы) = Неопределено Тогда
- СообщениеОбОшибке = "Таблица еще не создана либо имя задано не верно";
- Иначе
- СообщениеОбОшибке = "Таблица уничтожается при выполнении пакета";
- КонецЕсли;
-
- Ответ.Вставить(ИмяТаблицы, СообщениеОбОшибке);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти // ОтладкаВременныхТаблиц
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ЗаполнитьТаблицыПоСпискуИмен(СтруктураОтвета, МассивИменТаблиц, Менеджер)
-
- ОтсутствующиеИменаТаблиц = Новый Массив;
-
- Запрос = Новый Запрос;
- Запрос.МенеджерВременныхТаблиц = Менеджер;
-
- Для Каждого ИмяТаблицы Из МассивИменТаблиц Цикл
- Если НЕ СтруктураОтвета.Свойство(ИмяТаблицы) Тогда
-
- Запрос.Текст = "ВЫБРАТЬ * ИЗ " + ИмяТаблицы + " КАК " + ИмяТаблицы;
- Попытка
- СтруктураОтвета.Вставить(ИмяТаблицы, Запрос.Выполнить().Выгрузить());
- Исключение
- СтруктураОтвета.Вставить(ИмяТаблицы, ОписаниеОшибки());
- ОтсутствующиеИменаТаблиц.Добавить(ИмяТаблицы);
- КонецПопытки;
-
- КонецЕсли;
- КонецЦикла;
-
- Возврат ОтсутствующиеИменаТаблиц;
-
-КонецФункции
-
-Функция НайтиИменаТаблицПоРасположениюСлов(Знач Текст, ПервоеИскомоеСлово, ВтороеИскомоеСлово = "")
-
- СписокИгнорируемыхСимволов = Новый СписокЗначений;
- СписокИгнорируемыхСимволов.Добавить(Символы.ПС);
- СписокИгнорируемыхСимволов.Добавить(Символы.ВК);
- СписокИгнорируемыхСимволов.Добавить(Символы.НПП);
- СписокИгнорируемыхСимволов.Добавить(Символы.Таб);
- СписокИгнорируемыхСимволов.Добавить(" ");
-
- СписокРазделителей = Новый СписокЗначений;
- СписокРазделителей.Добавить("(");
- СписокРазделителей.Добавить(")");
- СписокРазделителей.Добавить(".");
- СписокРазделителей.Добавить(",");
- СписокРазделителей.Добавить(";");
- СписокРазделителей.Добавить("&");
-
- НайденныеИмена = Новый Структура;
- ПервоеИскомоеСлово = ВРег(ПервоеИскомоеСлово);
- ВтороеИскомоеСлово = ВРег(ВтороеИскомоеСлово);
-
- Пока Истина Цикл
-
- Найдено = Найти(Текст, " " + ВРег(ПервоеИскомоеСлово) + " ");
- Если Найдено > 0 Тогда
-
- Текст = СокрЛП(Прав(Текст, СтрДлина(Текст) - Найдено - СтрДлина(ПервоеИскомоеСлово) - 1));
- СоставляемоеСлово = "";
- НайденноеСлово = "";
-
- Для НомерСтроки = 1 По СтрДлина(Текст) Цикл
-
- ОчереднойСимвол = Сред(Текст, НомерСтроки, 1);
-
- Если НЕ СписокРазделителей.НайтиПоЗначению(ОчереднойСимвол) = Неопределено Тогда
-
- СоставляемоеСлово = "";
- НайденноеСлово = "";
-
- Прервать;
-
- ИначеЕсли НЕ СписокИгнорируемыхСимволов.НайтиПоЗначению(ОчереднойСимвол) = Неопределено Тогда
-
- Если СоставляемоеСлово = "" Тогда
- Продолжить;
- Иначе
- Если НайденноеСлово = "" Тогда
-
- НайденноеСлово = СоставляемоеСлово;
- СоставляемоеСлово = "";
-
- Если ВтороеИскомоеСлово = "" Тогда
- Прервать;
- КонецЕсли;
-
- Иначе
-
- Если НЕ СоставляемоеСлово = ВтороеИскомоеСлово Тогда
- НайденноеСлово = "";
- КонецЕсли;
-
- Прервать;
-
- КонецЕсли;
- КонецЕсли;
- Иначе
- СоставляемоеСлово = СоставляемоеСлово + ОчереднойСимвол;
- КонецЕсли;
-
- КонецЦикла;
-
- Если НЕ НайденноеСлово = "" Тогда
- НайденныеИмена.Вставить(НайденноеСлово, Найдено);
- КонецЕсли;
- Иначе
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат НайденныеИмена;
-
-КонецФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202.xml" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202.xml"
deleted file mode 100644
index 93440af8..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- __РаботаСДиалогамиКлиент
-
-
- ru
- Работа с диалогами клиент
-
-
- en
- Working with dialogues client
-
-
-
- false
- true
- false
- false
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
deleted file mode 100644
index 0685653c..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202/Ext/Module.bsl"
+++ /dev/null
@@ -1,87 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Работа с диалогами (клиент): для клиентских методов работы с диалогами.
-
-#Область ПрограммныйИнтерфейс
-
-// Осуществляет выбор составного типа из списка в управляемой форме.
-//
-// Параметры:
-// ТекущаяФорма - Форма
-// ЭлементВладелец - ЭлементУправления
-// Контейнер - Объект,СтрокаТабличнойЧасти
-// ИмяРеквизита - Строка
-// СписокВыбора - Список с типами, которые выбираем
-// СтандартнаяОбработка - Булево
-//
-Процедура НачалоВыбораСоставного(ТекущаяФорма
- ,ЭлементВладелец
- ,Контейнер
- ,ИмяРеквизита
- ,СписокВыбора
- ,СтандартнаяОбработка) Экспорт
-
- Если Контейнер = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ЭлементВладелец.ВыбиратьТип = Ложь;
-
- ТекущееЗначение = Контейнер[ИмяРеквизита];
- Если ТекущееЗначение = Неопределено Тогда
-
- СтандартнаяОбработка = Ложь;
- ЭлементВладелец.ВыбиратьТип = Истина;
-
- ДополнительныеПараметры = Новый Структура;
- ДополнительныеПараметры.Вставить("Контейнер", Контейнер);
- ДополнительныеПараметры.Вставить("ИмяРеквизита", ИмяРеквизита);
- ДополнительныеПараметры.Вставить("ЭлементВладелец", ЭлементВладелец);
- ДополнительныеПараметры.Вставить("СтандартнаяОбработка", СтандартнаяОбработка);
- ТекущаяФорма.ПоказатьВыборИзСписка(
- Новый ОписаниеОповещения("НачалоВыбораСоставного_Завершение", ЭтотОбъект, ДополнительныеПараметры), СписокВыбора);
- КонецЕсли;
-
-КонецПроцедуры
-
-// Процедура - Начало выбора составного завершение
-//
-// Параметры:
-// Результат - Произвольный - Результат выбора данных
-// ПараметрыОповещения - Структура - Параметры передаваемые в оповещение
-//
-Процедура НачалоВыбораСоставного_Завершение(Результат, ПараметрыОповещения) Экспорт
-
- Если Результат = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index ef104fc1..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- __РаботаСДиалогамиСервер
-
-
- ru
- Работа с диалогами сервер
-
-
- en
- Working with dialogues server
-
-
-
- false
- false
- true
- false
- false
- true
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 924be697..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\224\320\270\320\260\320\273\320\276\320\263\320\260\320\274\320\270\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,63 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Работа с диалогами (сервер): для серверных методов работы с диалогами.
-
-#Область ПрограммныйИнтерфейс
-
-// Выполняет стандартные действия при создании на сервере в форме списка.
-//
-// Параметры:
-// Отказ - Булево.
-// СтандартнаяОбработка - Булево.
-// ТекущаяФорма - УправляемаяФорма.
-// ДополнительныеПараметры - Структура.
-//
-Процедура СписокПриСозданииНаСервере(Отказ, СтандартнаяОбработка, ТекущаяФорма, ДополнительныеПараметры = Неопределено) Экспорт
-
- ПолноеИмяОбъекта = __ОбщегоНазначенияСервер.ПолучитьИмяОбъектаПоИмениФормы(ТекущаяФорма.ИмяФормы, Истина);
- ПолноеИмяОбъекта = СтрШаблон("%1.ФормаСписка", ПолноеИмяОбъекта);
-
-КонецПроцедуры
-
-// Выполняет стандартные действия при создании на сервере в форме выбора.
-//
-// Параметры:
-// Отказ - Булево.
-// СтандартнаяОбработка - Булево.
-// ТекущаяФорма - УправляемаяФорма.
-// ДополнительныеПараметры - Структура.
-//
-Процедура ФормаВыбораПриСозданииНаСервере(Отказ, СтандартнаяОбработка, ТекущаяФорма, ДополнительныеПараметры = Неопределено) Экспорт
-
- ПолноеИмяОбъекта = __ОбщегоНазначенияСервер.ПолучитьИмяОбъектаПоИмениФормы(ТекущаяФорма.ИмяФормы, Истина);
- ПолноеИмяОбъекта = СтрШаблон("%1.ФормаВыбора", ПолноеИмяОбъекта);
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index dbced8aa..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- __РаботаСКоллекциямиКлиентСервер
-
-
- ru
- Работа с коллекциями клиент сервер
-
-
- en
- Working with collections client-server
-
-
-
- false
- true
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index 3db69f51..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\321\217\320\274\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,219 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Работа с коллекциями (клиент, сервер): Модуль содержит методы работы с универсальными коллекциями значений.
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСМассивами
-
-// Ищет элемент в массиве. Если находит - возвращает его индекс, иначе -1.
-//
-// Параметры:
-// МассивДанные - МассивДанных - Массив данных для поиска.
-// Элемент - Произвольный - Искомый элемент в массиве.
-//
-// Возвращаемое значение:
-// Число - Индекс элемента в массиве. Если не найден, -1.
-//
-Функция ВернутьИндексВМассиве(МассивДанных, Элемент) Экспорт
-
- Если МассивДанных = Неопределено Тогда
- Возврат -1;
- КонецЕсли;
-
- Для ИндексЭлемента = 0 По МассивДанных.ВГраница() Цикл
-
- Если (МассивДанных[ИндексЭлемента] = Элемент) Тогда
- Возврат ИндексЭлемента;
- КонецЕсли;
- КонецЦикла;
-
- Возврат -1;
-
-КонецФункции
-
-// Определяет входит ли в массив переданное значение.
-//
-// Параметры:
-// ТекущийМассив - Массив - Массив данных.
-// ЗначениеПоиска - Произвольный - Искомое значение.
-//
-// Возвращаемое значение:
-// Булево - Результат поиска значения в массиве.
-//
-Функция МассивСодержит(ТекущийМассив, ЗначениеПоиска) Экспорт
-
- Возврат ТекущийМассив.Найти(ЗначениеПоиска) <> Неопределено;
-
-КонецФункции
-
-// Находит по значению элемент массива и удаляет его.
-//
-// Параметры:
-// МассивЭлементов - Массив - Массив данных.
-// Значение - Произвольный - Удаляемое значение массива.
-//
-Процедура УдалитьЭлементМассиваПоЗначению(МассивЭлементов, Значение) Экспорт
-
- Индекс = МассивЭлементов.Найти(Значение);
- Если Индекс <> Неопределено Тогда
- МассивЭлементов.Удалить(Индекс);
- КонецЕсли;
-
-КонецПроцедуры
-
-// Удаляет повторяющиеся элементы массива.
-//
-// Параметры:
-// ИсходныйМассив - Массив - Массив данных.
-// УдалитьНеопределено - Булево (По умолчанию = Ложь) - Признак удаления .
-//
-// Возвращаемое значение:
-// Массив - Массив данных после удаления дублей.
-//
-Функция УдалитьПовторяющиесяЭлементыМассива(ИсходныйМассив, УдалитьНеопределено = Ложь) Экспорт
-
- НовыйМассив = Новый Массив;
-
- Для Каждого ЭлементМассива Из ИсходныйМассив Цикл
-
- Если Не МассивСодержит(НовыйМассив, ЭлементМассива)
- И Не (ЭлементМассива = Неопределено И УдалитьНеопределено) Тогда
-
- НовыйМассив.Добавить(ЭлементМассива);
- КонецЕсли;
- КонецЦикла;
-
- Возврат НовыйМассив;
-
-КонецФункции // УдалитьПовторяющиесяЭлементыМассива()
-
-// Преобразовывает массив строк в массив чисел.
-// В случае невозможности преобразования элемента, элементу присваивается -1.
-//
-// Параметры:
-// МассивСтрок - Массив - Массив данных
-//
-Процедура ПреобразоватьМассивСтрокВЧисла(МассивСтрок) Экспорт
-
- Для Сч = 1 По МассивСтрок.Количество() Цикл
-
- Попытка
- МассивСтрок[Сч - 1] = Число(МассивСтрок[Сч - 1]);
- Исключение
- МассивСтрок[Сч - 1] = -1;
- КонецПопытки;
- КонецЦикла;
-
-КонецПроцедуры // ПреобразоватьМассивСтрокВЧисла()
-
-#КонецОбласти
-
-#Область РаботаСДеревьями
-
-// Функция выполняет поиск элемента дерева в коллекции.
-//
-// Параметры:
-// Коллекция - ДанныеФормыКоллекцияЭлементовДерева - Дерево.
-// СтруктураПоиска - Структура - Структура поиска элемента.
-//
-// Возвращаемое значение:
-// ДанныеФормыЭлементДерева - Результат поиска элемента дерева.
-//
-Функция НайтиЭлементДерева(Коллекция, СтруктураПоиска) Экспорт
-
- НайденныйЭлемент = Неопределено;
-
- Для Каждого Элемент Из Коллекция Цикл
-
- Совпадение = Истина;
- Для Каждого ТекущаяСтрока Из СтруктураПоиска Цикл
-
- Если Не Элемент[ТекущаяСтрока.Ключ] = ТекущаяСтрока.Значение Тогда
-
- Совпадение = Ложь;
- Прервать;
- КонецЕсли;
- КонецЦикла;
-
- Если Совпадение Тогда
-
- НайденныйЭлемент = Элемент;
- Прервать;
- КонецЕсли;
- КонецЦикла;
-
- Возврат НайденныйЭлемент;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСоСписками
-
-// Выполняет поиск элемента списка значени по представлению.
-//
-// Параметры:
-// Список - СписокЗначений - Список данных.
-// Представление - Строка - Значение поиска.
-// УчитыватьРегистр - Булево - Признак учитывания регистра при поиске.
-//
-// Возвращаемое значение:
-// ЭлементСпискаЗначений - Результат поиска.
-//
-Функция НайтиЭлементСпискаПоПредставлению(Список, Представление, УчитыватьРегистр = Ложь) Экспорт
-
- НайденныйЭлемент = Неопределено;
-
- Для Каждого ТекущаяСтрока Из Список Цикл
-
- Если УчитыватьРегистр Тогда
-
- Если ТекущаяСтрока.Представление = Представление Тогда
-
- НайденныйЭлемент = ТекущаяСтрока;
- Прервать;
- КонецЕсли;
- Иначе
-
- Если ВРег(ТекущаяСтрока.Представление) = ВРег(Представление) Тогда
-
- НайденныйЭлемент = ТекущаяСтрока;
- Прервать;
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
-
- Возврат НайденныйЭлемент;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.xml" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.xml"
deleted file mode 100644
index 403a79e6..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __РаботаСФормами
-
-
- ru
- Работа с формами
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl" "b/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl"
deleted file mode 100644
index 5cb0a1ad..00000000
--- "a/release/CommonModules/__\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\244\320\276\321\200\320\274\320\260\320\274\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,1692 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////////
-//
-// Модуль Динамического Формирования Интерфейса
-// Начало разработки 26.03.2020 года
-//
-// Автор и разработчик: Котов Дмитрий Вадимович
-// При поддержеке участников сообщества GitHub & Infostart
-// https://github.com/KotovDima1C/DFI
-// Инфостарт https://infostart.ru/profile/564942/
-// telegram: @KotovDima
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОписаниеТипов
-
-//////////////////////////////////////////////////////////////////////////////////
-//Создание описание типов
-
-// Создание описания типа Строка
-//
-// Параметры:
-// ДлинаСтроки - Число - длина строки
-//
-Функция ОписаниеТипаСтрока(ДлинаСтроки = 0) Экспорт
-
- Возврат Новый ОписаниеТипов("Строка",, КвалификаторСтрока(ДлинаСтроки));
-
-КонецФункции
-
-// Создание описания типа Число
-//
-// Параметры:
-// ДлинаЧисла - Число - общая длина числа
-// ТочностьЧисла - Число - количество символов после запятой
-//
-Функция ОписаниеТипаЧисло(ДлинаЧисла = 15, ТочностьЧисла = 2) Экспорт
-
- Возврат Новый ОписаниеТипов("Число", КвалификаторЧисло(ДлинаЧисла,ТочностьЧисла));
-
-КонецФункции
-
-// Создание описания типа ДатаВремя
-//
-// Параметры:
-// ДатаВремя - Строка - Варианты: "ДатаВремя", "Дата" или "Время"
-//
-Функция ОписаниеТипаДатаВремя(ДатаВремя = "ДатаВремя") Экспорт
-
- Возврат Новый ОписаниеТипов("Дата",,, КвалификаторДатаВремя(ДатаВремя));
-
-КонецФункции
-
-// Создание типа "Таблица значений"
-Функция ОписаниеТипаТаблицаЗначений() Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Возврат Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Тип("ТаблицаЗначений")));
-
-КонецФункции
-
-// Создание типа "Динамический список"
-Функция ОписаниеТипаДинамическийСписок() Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Возврат Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Тип("ДинамическийСписок")));
-
-КонецФункции
-
-// Создание типа "Булево"
-Функция ОписаниеТипаБулево() Экспорт
-
- Возврат Новый ОписаниеТипов("Булево");
-
-КонецФункции
-
-// Создание описания ссылочного типа справочника
-//
-// Параметры:
-// ИмяДокумента - Строка - Имя документа в дереве метаданных
-//
-Функция ОписаниеТипаДокумент(ИмяДокумента) Экспорт
-
- Возврат Новый ОписаниеТипов(СтрШаблон("ДокументСсылка.%1", ИмяДокумента));
-
-КонецФункции
-
-// Создание описания ссылочного типа справочника
-//
-// Параметры:
-// ИмяСправочника - Строка - Имя справочника в дереве метаданных
-//
-Функция ОписаниеТипаСправочник(ИмяСправочника) Экспорт
-
- Возврат Новый ОписаниеТипов(СтрШаблон("СправочникСсылка.%1", ИмяСправочника));
-
-КонецФункции
-
-// Создание описания типа перечисление
-//
-// Параметры:
-// ИмяПеречисления - Строка - Имя перечисления в дереве метаданных
-//
-Функция ОписаниеТипаПеречисление(ИмяПеречисления) Экспорт
-
- Возврат Новый ОписаниеТипов(СтрШаблон("ПеречислениеСсылка.%1", ИмяПеречисления));
-
-КонецФункции
-
-///////////////////////////////////////////////////////////////////////////////////
-//Создание квалификаторов
-
-// Создание квалификатора для типа Строка
-//
-// Параметры:
-// ДлинаСтроки - Число - длина строки
-//
-Функция КвалификаторСтрока(ДлинаСтроки = 0) Экспорт
-
- Возврат Новый КвалификаторыСтроки(ДлинаСтроки);
-
-КонецФункции
-
-// Создание квалификатора для типа Число
-//
-// Параметры:
-// ДлинаЧисла - Число - общая длина числа
-// ТочностьЧисла - Число - количество символов после запятой
-//
-Функция КвалификаторЧисло(ДлинаЧисла = 15, ТочностьЧисла = 2) Экспорт
-
- Возврат Новый КвалификаторыЧисла(ДлинаЧисла, ТочностьЧисла);
-
-КонецФункции
-
-// Создание квалификатора для типа ДатаВремя
-//
-// Параметры:
-// ДатаВремя - Строка - Варианты: "ДатаВремя", "Дата" или "Время"
-//
-Функция КвалификаторДатаВремя(ДатаВремя = "ДатаВремя") Экспорт
-
- Возврат Новый КвалификаторыДаты(ЧастиДаты[ДатаВремя]);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СозданиеРеквизитовКоманд
-
-// Создание одного реквизита
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяРеквизита - Строка - Имя реквизита
-// ОписаниеТипа - ОписаниеТипа - Описание типа реквизита
-//
-Процедура СоздатьРеквизит(Форма, ИмяРеквизита, ОписаниеТипа) Экспорт
-
- СтруктураРеквизитов = Новый Структура;
- СтруктураРеквизитов.Вставить(ОчиститьОтЗапрещенныхСимволов(ИмяРеквизита), ОписаниеТипа);
-
- СоздатьРеквизиты(Форма, СтруктураРеквизитов);
-
-КонецПроцедуры
-
-// Создание реквизитов
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// структураРеквизитов - Структура - Где ключ это Имя реквизита, а значение это описание типа реквизита
-//
-Процедура СоздатьРеквизиты(Форма, СтруктураРеквизитов) Экспорт
-
- ДобавляемыеРеквизиты = Новый Массив;
- Для Каждого ТекущийРеквизит Из СтруктураРеквизитов Цикл
- НовыйРеквизит = Новый РеквизитФормы(ТекущийРеквизит.Ключ, ТекущийРеквизит.Значение);
- ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
- КонецЦикла;
-
- Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
-
-КонецПроцедуры
-
-// Создание реквизитов для таблицы
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяТаблицы - Строка - Имя таблицы куда добавляете реквизиты
-// структураРеквизитов - Структура - Где ключ это Имя реквизита, а значение это описание типа реквизита
-//
-Процедура СоздатьРеквизитыТаблицы(Форма, ИмяТаблицы, СтруктураРеквизитов) Экспорт
-
- ДобавляемыеРеквизиты = Новый Массив;
- Для Каждого ТекущийРеквизит Из СтруктураРеквизитов Цикл
- НовыйРеквизит = Новый РеквизитФормы(ТекущийРеквизит.Ключ, ТекущийРеквизит.Значение, ИмяТаблицы);
- ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
- КонецЦикла;
-
- Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
-
-КонецПроцедуры
-
-// Создание команды
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяКоманды - Строка - Имя команды
-// Заголовок - Строка - Заголовок команды
-// ИмяДействия - Строка - Имя процедуры действия команды
-// Пример процедуры в модуле формы "Процедура <ИмяДействия>(Команда)"
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-//
-Процедура СоздатьКоманду(Форма,
- ИмяКоманды,
- Заголовок,
- ИмяДействия,
- СтруктураСвойств = Неопределено) Экспорт
-
- НоваяКоманда = Форма.Команды.Добавить(ОчиститьОтЗапрещенныхСимволов(ИмяКоманды));
- НоваяКоманда.Заголовок = Заголовок;
- НоваяКоманда.Действие = ОчиститьОтЗапрещенныхСимволов(ИмяДействия);
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- УстановитьСвойстваЭлементу(НоваяКоманда,СтруктураСвойств);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ВспомогательныеФункции
-
-// Устанавливает в свойство Ключ элемента формы значение Значение всех передаваемых структур.
-//
-// Параметры:
-// Элемент - ЭлементыФормы - Элемент, в который устанавливаются свойства.
-// СтруктураСвойств1 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств2 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств3 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств4 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств5 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств6 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств7 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств8 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств9 - Структура - Структура свойств элемента формы.
-// СтруктураСвойств10 - Структура - Структура свойств элемента формы.
-//
-Процедура УстановитьМножествоСтруктурСвойствЭлементу(Элемент,
- СтруктураСвойств1,
- СтруктураСвойств2 = Неопределено,
- СтруктураСвойств3 = Неопределено,
- СтруктураСвойств4 = Неопределено,
- СтруктураСвойств5 = Неопределено,
- СтруктураСвойств6 = Неопределено,
- СтруктураСвойств7 = Неопределено,
- СтруктураСвойств8 = Неопределено,
- СтруктураСвойств9 = Неопределено,
- СтруктураСвойств10 = Неопределено) Экспорт
-
- УстановитьСвойстваЭлементу(Элемент,СтруктураСвойств1);
- Если СтруктураСвойств2 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств2) КонецЕсли;
- Если СтруктураСвойств3 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств3) КонецЕсли;
- Если СтруктураСвойств4 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств4) КонецЕсли;
- Если СтруктураСвойств5 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств5) КонецЕсли;
- Если СтруктураСвойств6 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств6) КонецЕсли;
- Если СтруктураСвойств7 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств7) КонецЕсли;
- Если СтруктураСвойств8 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств8) КонецЕсли;
- Если СтруктураСвойств9 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств9) КонецЕсли;
- Если СтруктураСвойств10 <> Неопределено Тогда УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств10) КонецЕсли;
-
-КонецПроцедуры
-
-// Устанавливает в свойство Ключ элемента формы значение Значение элемента структуры.
-//
-// Параметры:
-// Элемент - ЭлементыФормы - Элемент, в который устанавливаются свойства.
-// СтруктураСвойств - Структура - Структура свойств элемента формы.
-//
-Процедура УстановитьСвойстваЭлементу(Элемент, СтруктураСвойств) Экспорт
-
- Для Каждого ТекущееСвойство Из СтруктураСвойств Цикл
- Элемент[ТекущееСвойство.Ключ] = ТекущееСвойство.Значение;
- КонецЦикла;
-
-КонецПроцедуры
-
-// Устанавливает события элемента формы.
-//
-// Параметры:
-// Элемент - ЭлементыФормы - Элемент, для которого устанавливаются события.
-// СтруктураСобытий - Структура - Структура свойств элемента формы.
-//
-Процедура УстановитьСобытияЭлементу(Элемент, СтруктураСобытий) Экспорт
-
- Для Каждого ТекущееСвойство Из СтруктураСобытий Цикл
- Элемент.УстановитьДействие(ТекущееСвойство.Ключ, ТекущееСвойство.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-// Устанавливает параметры динамического списка.
-//
-// Параметры:
-// РеквизитДинамическийСписок - ДинамическийСписок - Дин. список, для которого устанавливаются параметры.
-// ПараметрыЗапроса - Структура - Структура параметров дин. списка.
-//
-Процедура УстановитьПараметрыЗапросу(РеквизитДинамическийСписок, ПараметрыЗапроса) Экспорт
-
- Для Каждого ТекущийПараметр Из ПараметрыЗапроса Цикл
- РеквизитДинамическийСписок.Параметры.УстановитьЗначениеПараметра(ТекущийПараметр.Ключ, ТекущийПараметр.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СозданиеЭлементов
-
-// Создать обычную группу без отображения
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяГруппы - Строка - Имя элемента на форме
-// РодительГруппы - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// ГруппировкаОбычнойГруппы - Число - Принимаемые значения:
-// 1 - Вертикальная
-// 2 - ГоризонтальнаяЕслиВозможно
-// 3 - ГоризонтальнаяВсегда
-// 0 - Авто
-// РастягиватьГоризонтально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// РастягиватьВертикально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьГруппаОбычнаяБезОтображения(Форма,
- ИмяГруппы,
- РодительГруппы,
- ГруппировкаОбычнойГруппы = 0,
- РастягиватьГоризонтально = 0,
- РастягиватьВертикально = 0,
- СтруктураСвойств = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма,РодительГруппы);
- ОпределитьЭлементФормы(Форма,ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред);
- НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
- НовыйЭлемент.Отображение = ОтображениеОбычнойГруппы.Нет;
- НовыйЭлемент.ОтображатьЗаголовок = Ложь;
-
- ПолучитьСостояниеГруппировкиЭлемента(НовыйЭлемент, ГруппировкаОбычнойГруппы);
- ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально);
- ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально);
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создать обычную группу
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяГруппы - Строка - Имя элемента на форме
-// РодительГруппы - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - Заголовок группы
-// ГруппировкаОбычнойГруппы - Число - Принимаемые значения:
-// 1 - Вертикальная
-// 2 - ГоризонтальнаяЕслиВозможно
-// 3 - ГоризонтальнаяВсегда
-// 0 - Авто
-// РастягиватьГоризонтально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// РастягиватьВертикально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьГруппаОбычная(Форма,
- ИмяГруппы,
- РодительГруппы,
- Заголовок = "",
- ГруппировкаОбычнойГруппы = 0,
- РастягиватьГоризонтально = 0,
- РастягиватьВертикально = 0,
- СтруктураСвойств = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, РодительГруппы);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред);
- НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
- НовыйЭлемент.Отображение = ОтображениеОбычнойГруппы.СлабоеВыделение;
- НовыйЭлемент.ОтображатьЗаголовок = Истина;
-
- ПолучитьСостояниеГруппировкиЭлемента(НовыйЭлемент, ГруппировкаОбычнойГруппы);
- ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально);
- ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально);
-
- Если Заголовок <> "" Тогда
- НовыйЭлемент.Заголовок = Заголовок
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создать группу страниц
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяГруппы - Строка - Имя элемента на форме
-// РодительГруппы - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// РастягиватьГоризонтально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// РастягиватьВертикально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// ПриСменеСтраницы - Строка - При смене страницы???
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьГруппаСтраниц(Форма,
- ИмяГруппы,
- РодительГруппы,
- РастягиватьГоризонтально = 0,
- РастягиватьВертикально = 0,
- ПриСменеСтраницы = "",
- СтруктураСвойств = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, РодительГруппы);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред);
- НовыйЭлемент.Вид = ВидГруппыФормы.Страницы;
-
- ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально);
- ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально);
-
- Если ПриСменеСтраницы <> "" Тогда
- НовыйЭлемент.ПриСменеСтраницы = ПриСменеСтраницы
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создать страницу группы страницы
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяСтраницы - Строка - Имя элемента на форме
-// ГруппаСтраницы - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - Заголовок страницы
-// ГруппировкаОбычнойГруппы - Число - Принимаемые значения:
-// 1 - Вертикальная
-// 2 - ГоризонтальнаяЕслиВозможно
-// 3 - ГоризонтальнаяВсегда
-// 0 - Авто
-// РастягиватьГоризонтально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// РастягиватьВертикально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтраницаПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьСтраница(Форма,
- ИмяСтраницы,
- ГруппаСтраницы,
- Заголовок = "",
- ГруппировкаОбычнойГруппы = 0,
- РастягиватьГоризонтально = 0,
- РастягиватьВертикально = 0,
- СтруктураСвойств = Неопределено,
- СтраницаПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, ГруппаСтраницы);
- ОпределитьЭлементФормы(Форма, СтраницаПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяСтраницы, Тип("ГруппаФормы"), ГруппаСтраницы, СтраницаПеред);
- НовыйЭлемент.Вид = ВидГруппыФормы.Страница;
-
- ПолучитьСостояниеГруппировкиЭлемента(НовыйЭлемент, ГруппировкаОбычнойГруппы);
- ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально);
- ПолучитьСостояниеРастягиванияЭлементаПоВертикали(НовыйЭлемент, РастягиватьВертикально);
-
- Если Заголовок <> "" Тогда
- НовыйЭлемент.Заголовок = Заголовок
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создать обычную группу
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяГруппы - Строка - Имя элемента на форме
-// РодительПанели - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьГруппаКоманднаяПанель(Форма,
- ИмяПанели,
- РодительПанели,
- СтруктураСвойств = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, РодительПанели);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПанели, Тип("ГруппаФормы"), РодительПанели, ЭлементПеред);
- НовыйЭлемент.Вид = ВидГруппыФормы.КоманднаяПанель;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создать группу
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяГруппы - Строка - Имя элемента на форме
-// РодительГруппы - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьГруппа(Форма,
- ИмяГруппы,
- РодительГруппы,
- СтруктураСвойств,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, РодительГруппы);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред);
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создание поля популярных видов
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяПоля - Строка - Имя элемента на форме
-// РодительПоля - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - заголовок элемента
-// ШифрВидаПоля - Число - возможно указать шифр следующих значений:
-// 1 - ПолеВвода
-// 2 - ПолеФлажка
-// 3 - ПолеИндикатора
-// 4 - ПолеПереключателя
-// 5 - ПолеПериода
-// 6 - ПолеHTMLДокумента
-// 0 - Без указания типа, тип можно передать в структуре свойств
-// ПутьКДанным - Строка - Путь к данным значения
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьПоле(Форма,
- ИмяПоля,
- РодительПоля,
- Заголовок,
- ШифрВидаПоля = 0,
- ПутьКДанным = "",
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий);
- ОпределитьЭлементФормы(Форма, РодительПоля);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПоля, Тип("ПолеФормы"), РодительПоля, ЭлементПеред);
-
- Если ШифрВидаПоля <> 0 Тогда
-
- НаборВидов = "ПолеВвода
- |ПолеФлажка
- |ПолеИндикатора
- |ПолеПереключателя
- |ПолеПериода
- |ПолеHTMLДокумента";
-
- ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, ШифрВидаПоля));
- НовыйЭлемент.Вид = ВидПоляФормы[ВидПоля];
- КонецЕсли;
-
- Если Заголовок <> "" Тогда
- НовыйЭлемент.Заголовок = Заголовок
- КонецЕсли;
- Если ПутьКДанным <> "" Тогда
- НовыйЭлемент.ПутьКДанным = ПутьКДанным
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
- УстановитьСобытияЭлементу(НовыйЭлемент, СтруктураСобытий);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создание поля популярных видов
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяПоля - Строка - Имя элемента на форме
-// РодительПоля - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - заголовок элемента
-// тВидФлажка - Число - возможные варианты:
-// 0 - Авто
-// 1 - Флажок
-// 2 - Тумблер
-// 3 - Выключатель
-// ПутьКДанным - Строка - Путь к данным значения
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьПолеФлажок(Форма,
- ИмяПоля,
- РодительПоля,
- Заголовок,
- тВидФлажка = 0,
- ПутьКДанным = "",
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- НовыйЭлемент = СоздатьПоле(Форма, ИмяПоля, РодительПоля, Заголовок, 2, ПутьКДанным,
- СтруктураСвойств, СтруктураСобытий, ЭлементПеред);
-
- Если тВидФлажка <> 0 Тогда
-
- НаборВидов = "Флажок
- |Тумблер
- |Выключатель";
-
- ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, тВидФлажка));
- НовыйЭлемент.ВидФлажка = ВидФлажка[ВидПоля];
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Быстрая функция по созданию декорации надпись
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяДекорации - Строка - Имя элемента на форме
-// РодительДекорации - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// ЗаголовокДекорации - Строка - текст который содержит декорация
-// РастягиватьПоГоризонтали - Булево - растянуть надпись на всю ширину формы
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьДекорацияНадпись(Форма,
- ИмяДекорации,
- РодительДекорации,
- ЗаголовокДекорации,
- РастягиватьПоГоризонтали = Истина,
- ЭлементПеред = Неопределено) Экспорт
-
- ОпределитьЭлементФормы(Форма,РодительДекорации);
- ОпределитьЭлементФормы(Форма,ЭлементПеред);
-
- НовыйЭлемент = СоздатьДекорация(Форма, ИмяДекорации, РодительДекорации,,, ЭлементПеред);
-
- НовыйЭлемент.Заголовок = ЗаголовокДекорации;
-
- Если РастягиватьПоГоризонтали Тогда
- НовыйЭлемент.АвтоМаксимальнаяШирина = Истина;
- НовыйЭлемент.РастягиватьПоГоризонтали = Истина;
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Быстрая функция по созданию декорации картинки
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяДекорации - Строка - Имя элемента на форме
-// РодительДекорации - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// ИмяКартинки - Строка - Имя картинки в дереве метаданных
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьДекорацияКартинка(Форма,
- ИмяДекорации,
- РодительДекорации,
- ИмяКартинки,
- ЭлементПеред = Неопределено) Экспорт
-
- НовыйЭлемент = СоздатьДекорация(Форма, ИмяДекорации, РодительДекорации,,, ЭлементПеред);
-
- НовыйЭлемент.Вид = ВидДекорацииФормы.Картинка;
- НовыйЭлемент.Картинка = БиблиотекаКартинок[ИмяКартинки];
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Общая функция создания декорации с видом надпись и картинка
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяДекорации - Строка - Имя элемента на форме
-// РодительДекорации - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьДекорация(Форма,
- ИмяДекорации,
- РодительДекорации,
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий);
- ОпределитьЭлементФормы(Форма, РодительДекорации);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяДекорации, Тип("ДекорацияФормы"), РодительДекорации, ЭлементПеред);
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
- УстановитьСобытияЭлементу(НовыйЭлемент, СтруктураСобытий);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Общая функция создания кнопки
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяКнопки - Строка - Имя элемента на форме
-// РодительКнопки - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// ЗаголовокКнопки - Строка - отображаемый заголовок кнопки
-// ИмяКоманды - Строка - Имя команды
-// ВидКнопки - Число - Принимаемые значения
-// 1 - Обычная кнопка
-// 2 - Гиперссылка
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьКнопка(Форма,
- ИмяКнопки,
- РодительКнопки,
- ЗаголовокКнопки = "",
- ИмяКоманды = "",
- ВидКнопки = 0,
- СтруктураСвойств = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, РодительКнопки);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма,ИмяКнопки,Тип("КнопкаФормы"),РодительКнопки,ЭлементПеред);
- Если ВидКнопки <> 0 Тогда
-
- НаборВидов = "ОбычнаяКнопка
- |Гиперссылка";
-
- ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, ВидКнопки));
- НовыйЭлемент.Вид = ВидКнопкиФормы[ВидПоля];
- КонецЕсли;
-
- Если ЗаголовокКнопки <> "" Тогда
- НовыйЭлемент.Заголовок = ЗаголовокКнопки;
- КонецЕсли;
-
- Если ИмяКоманды <> "" Тогда
- НовыйЭлемент.ИмяКоманды = ИмяКоманды;
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создаем динамический список версия 2.0
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяСписка - Строка - Имя будущей таблицы формы
-// РодительСписка - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// ТекстЗапроса - Строка - если не заполнен, то обязательно должен быть заполнен параметр ТаблицаСписка
-// ПараметрыЗапроса - Структура - Содержит параметры для запроса, где ключ - имя параметры, а значение соответственно
-// ТаблицаСписка - Строка - имя таблицы списка,
-// СтруктураКолонок - Структура - Ключ имя колонки в динамическом списке, значение это заголовок колонки
-// Для сложных случаев лучше передать "неопределено" и впоспользоваться процедурой формирования колонок таблицы формы этого же модуля ДФИ
-// СвояКоманднаяПанель - Булево - используется если требуется снять флаг "Автозаполнение" и наполнить самостоятельно
-// Из-за специфики работы, нет программной возможности снятия флага "Автозаполнение", по этому создается своя командная панель, а стандартная скрывается полностью.
-// Имя новой командной панели <ИмяСписка>+"КоманднаяПанель2"
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьДинамическийСписок(Форма,
- ИмяСписка = "Список",
- РодительСписка,
- ТекстЗапроса = "",
- ПараметрыЗапроса = Неопределено,
- ТаблицаСписка = "",
- СтруктураКолонок = Неопределено,
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- СвояКоманднаяПанель = Ложь,
- ЭлементПеред = Неопределено) Экспорт
-
- СоздатьРеквизит(Форма, ИмяСписка, ОписаниеТипаДинамическийСписок());
- РеквизитДинамическийСписок = Форма[ИмяСписка];
-
- Если ТекстЗапроса = "" Тогда
- РеквизитДинамическийСписок.ПроизвольныйЗапрос = Ложь;
- РеквизитДинамическийСписок.ОсновнаяТаблица = ТаблицаСписка;
- Иначе
- РеквизитДинамическийСписок.ПроизвольныйЗапрос = Истина;
- РеквизитДинамическийСписок.ТекстЗапроса = ТекстЗапроса;
- Если ТаблицаСписка <> "" Тогда
- РеквизитДинамическийСписок.ОсновнаяТаблица = ТаблицаСписка;
- КонецЕсли;
- КонецЕсли;
-
- ЕслиСтруктураНеопределеноТоНовая(ПараметрыЗапроса);
- УстановитьПараметрыЗапросу(РеквизитДинамическийСписок, ПараметрыЗапроса);
-
- ТаблицаФормы = СоздатьТаблицаФормы(Форма, ИмяСписка, РодительСписка, ИмяСписка, СтруктураКолонок,
- СтруктураСвойств, СтруктураСобытий, СвояКоманднаяПанель, ЭлементПеред);
-
- Возврат ТаблицаФормы;
-
-КонецФункции
-
-// Создаем колонку для Таблицы формы (Динамического списка)
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяКолонки - Строка - Имя будущей колонки
-// ТипКолонки - Число - Принимаемые значения:
-// 0 - Поле вводы
-// 1 - Поле надписи
-// 2 - Поле флажка
-// 3 - Поле картинки
-// Заголовок - Строка - Заголовок колонки
-// ПутьКДанным - Строка - Путь к данным, не забывайте про точку и "Объект", пример "Объект.Товары.Номенклатура"
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьКолонкаТаблицыФормы(Форма,
- ИмяКолонки,
- Родитель,
- ТипКолонки = 0,
- Заголовок = "",
- ПутьКДанным,
- ОтображатьШапку = Истина,
- ОтображатьПодвал = Ложь,
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий);
- ОпределитьЭлементФормы(Форма, Родитель);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- Если ТипКолонки <> 0 Тогда
-
- НаборВидов = "ПолеНадписи
- |ПолеФлажка
- |ПолеКартинки";
-
- ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, ТипКолонки));
- Иначе
- ВидПоля = "ПолеВвода";
- КонецЕсли;
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяКолонки, Тип("ПолеФормы"), Родитель, ЭлементПеред);
- НовыйЭлемент.Вид = ВидПоляФормы[ВидПоля];
- НовыйЭлемент.Заголовок = Заголовок;
- НовыйЭлемент.ПутьКДанным = ПутьКДанным;
- НовыйЭлемент.ОтображатьВШапке = ОтображатьШапку;
- НовыйЭлемент.ОтображатьВПодвале = ОтображатьПодвал;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
- УстановитьСобытияЭлементу(НовыйЭлемент, СтруктураСобытий);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создаем Таблицу формы
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяТаблицы - Строка - Имя будущей таблицы
-// РодительТаблицы - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-// ПутьКДанным - Строка - Путь к данным реквизита
-// СтруктураКолонок - Структура - Содержит значения колонок, где ключ имя колонки и значение это заголовок если необходимо изменить, иначе можно передать ""
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// СвояКоманднаяПанель - Булево - используется если требуется снять флаг "Автозаполнение" и наполнить самостоятельно
-// Из-за специфики работы, нет программной возможности снятия флага "Автозаполнение", по этому создается своя командная панель, а стандартная скрывается полностью.
-// Имя новой командной панели <ИмяСписка>+"КоманднаяПанель2"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьТаблицаФормы(Форма,
- ИмяТаблицы,
- РодительТаблицы,
- ПутьКДанным,
- СтруктураКолонок = Неопределено,
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- СвояКоманднаяПанель = Ложь,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураКолонок);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий);
- ОпределитьЭлементФормы(Форма, РодительТаблицы);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- Если СвояКоманднаяПанель Тогда
- ГруппаДинамическогоСписка = СоздатьГруппаОбычнаяБезОтображения(
- Форма, СтрШаблон("ДополнительнаяГруппаКоманднаяПанель%1", ИмяТаблицы), РодительТаблицы, 1, 1, 1,, ЭлементПеред);
- КоманднаяПанельСписка = СоздатьГруппаКоманднаяПанель(Форма, СтрШаблон("%1КоманднаяПанель2", ИмяТаблицы), ГруппаДинамическогоСписка);
- ТаблицаФормы = СоздатьЭлементФормы(Форма, ИмяТаблицы, Тип("ТаблицаФормы"), ГруппаДинамическогоСписка);
- ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
- Иначе
- ТаблицаФормы = СоздатьЭлементФормы(Форма, ИмяТаблицы, Тип("ТаблицаФормы"), РодительТаблицы, ЭлементПеред);
- КонецЕсли;
-
- ТаблицаФормы.ПутьКДанным = ПутьКДанным;
-
- СоздатьКолонкиДляТаблицыФормы(Форма, ТаблицаФормы, СтруктураКолонок);
-
- УстановитьСвойстваЭлементу(ТаблицаФормы, СтруктураСвойств);
- УстановитьСобытияЭлементу(ТаблицаФормы, СтруктураСобытий);
-
- Возврат ТаблицаФормы;
-
-КонецФункции
-
-// Создать обычную группу без отображения
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяГруппы - Строка - Имя элемента на форме
-// РодительГруппы - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// ГруппировкаГруппы - Число - Принимаемые значения:
-// 1 - Горизонтальная
-// 2 - Вертикальная
-// 3 - В ячейке
-// 0 - Авто
-// РастягиватьГоризонтально - Число - Принимаемые значения:
-// 1 - Истина
-// 2 - Ложь
-// 0 - Авто
-// ОтображатьВШапке - Булево - Если необходимо вывести заголовок
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьГруппаКолонокТаблицыФормы(Форма,
- ИмяГруппы,
- РодительГруппы,
- ГруппировкаГруппы = 0,
- РастягиватьГоризонтально = 0,
- ОтображатьВШапке = Ложь,
- Заголовок = "",
- СтруктураСвойств = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ОпределитьЭлементФормы(Форма, РодительГруппы);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяГруппы, Тип("ГруппаФормы"), РодительГруппы, ЭлементПеред);
- НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКолонок;
- НовыйЭлемент.ОтображатьВШапке = ОтображатьВШапке;
- НовыйЭлемент.Заголовок = Заголовок;
-
- ПолучитьСостояниеГруппировкиКолонкиЭлемента(НовыйЭлемент, ГруппировкаГруппы);
- ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(НовыйЭлемент, РастягиватьГоризонтально);
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создание специфического элемента, выпадающий список.
-// Создается автоматически строковый реквизит с идентичным названием
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяСписка - Строка - Имя элемента на форме
-// РодительСписка - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - отображаемый заголовок кнопки
-// МассивЗначений - Массив - массив значений выбора из списка (содержит строковый тип)
-// РедактированиеТекста - Булево - Редактирование текста, если Ложь, то можно выбирать только из списка
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьВыпадающийСписок(Форма,
- ИмяСписка,
- РодительСписка,
- ЗаголовокЭлемента = "",
- МассивЗначений,
- РедактированиеТекста = Ложь,
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- СоздатьРеквизит(Форма, ИмяСписка, ОписаниеТипаСтрока(100));
- НовыйРеквизит = Форма[ИмяСписка];
- НовыйЭлемент = СоздатьПоле(Форма, ИмяСписка, РодительСписка, ЗаголовокЭлемента, 1, ИмяСписка,
- СтруктураСвойств, СтруктураСобытий, ЭлементПеред);
- НовыйЭлемент.КнопкаВыпадающегоСписка = Истина;
-
- Для Каждого ТекущийЭлемент Из МассивЗначений Цикл
- НовыйЭлемент.СписокВыбора.Добавить(ТекущийЭлемент);
- КонецЦикла;
-
- Если ЗаголовокЭлемента <> "" Тогда
- НовыйЭлемент.Заголовок = ЗаголовокЭлемента;
- КонецЕсли;
-
- НовыйЭлемент.РедактированиеТекста = РедактированиеТекста;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создание специфического элемента, переключатель
-// Создается автоматически реквизит с типом число с идентичным названием
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяПереключателя - Строка - Имя элемента на форме
-// РодительЭлемента - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - отображаемый заголовок кнопки
-// МассивЗначений - Массив - Массив значений выбора из списка (содержит строковый тип),
-// Важно отметить, что номер в массиве соответствует номеру в списке выбора переключателя.
-// тВидПереключателя - Число - Принимает значения:
-// 1 - Переключатель
-// 2 - Тумблер
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьПереключатель(Форма,
- ИмяПереключателя,
- РодительЭлемента,
- ЗаголовокЭлемента = "",
- МассивЗначений,
- тВидПереключателя,
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- СоздатьРеквизит(Форма, ИмяПереключателя, ОписаниеТипаЧисло(10, 0));
- НовыйРеквизит = Форма[ИмяПереключателя];
- НовыйЭлемент = СоздатьПоле(Форма, ИмяПереключателя, РодительЭлемента, ЗаголовокЭлемента, 4, ИмяПереключателя,
- СтруктураСвойств, СтруктураСобытий, ЭлементПеред);
-
- Если ЗаголовокЭлемента <> "" Тогда
- НовыйЭлемент.Заголовок = ЗаголовокЭлемента;
- КонецЕсли;
-
- Если тВидПереключателя <> 0 Тогда
-
- НаборВидов = "Переключатель
- |Тумблер";
- ВидПоля = СокрЛП(СтрПолучитьСтроку(НаборВидов, тВидПереключателя));
- НовыйЭлемент.ВидПереключателя = ВидПереключателя[ВидПоля];
- КонецЕсли;
-
- Счетчик = 0;
- Для Каждого ТекущийЭлемент Из МассивЗначений Цикл
- НовыйЭлемент.СписокВыбора.Добавить(Счетчик, ТекущийЭлемент);
- Счетчик = Счетчик + 1;
- КонецЦикла;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создание поля гиперссылки
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяПоля - Строка - Имя элемента на форме
-// РодительПоля - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - заголовок элемента
-// БезЗаголовка - Булево - по умолчанию заголовок не выводится
-// ПутьКДанным - Строка - Путь к данным значения
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьПолеГиперссылка(Форма,
- ИмяПоля,
- РодительПоля,
- Заголовок = "",
- БезЗаголовка = Истина,
- ПутьКДанным = "",
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий);
- ОпределитьЭлементФормы(Форма, РодительПоля);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПоля, Тип("ПолеФормы"), РодительПоля, ЭлементПеред);
- НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи;
- НовыйЭлемент.Гиперссылка = Истина;
-
- Если БезЗаголовка Тогда
- НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
- КонецЕсли;
-
- Если Заголовок <> "" Тогда
- НовыйЭлемент.Заголовок = Заголовок;
- КонецЕсли;
-
- Если ПутьКДанным <> "" Тогда
- НовыйЭлемент.ПутьКДанным = ПутьКДанным;
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
- УстановитьСобытияЭлементу(НовыйЭлемент, СтруктураСобытий);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-// Создание поля Надпись
-//
-// Параметры:
-// Форма - ФормаКлиентскогоПриложения - Форма на которой создаются элементы
-// ИмяПоля - Строка - Имя элемента на форме
-// РодительПоля - Строка - достаточно указать название элемента формы
-// - Элементы - можно в качестве родителя передать элемент формы
-// Заголовок - Строка - заголовок элемента
-// БезЗаголовка - Булево - по умолчанию заголовок не выводится
-// ПутьКДанным - Строка - Путь к данным значения
-// СтруктураСвойств - Структура - Содержит значения свойств, где ключ название свойства и значение
-// СтруктураСобытий - Структура - Содержит значения событий, где ключ название события и в значение название процедуры тип "строка"
-// ЭлементПеред - Строка - достаточно указать название элемента формы перед которым требуется вставить новый элемент
-// - Элементы - можно передать элемент формы
-//
-Функция СоздатьПолеНадписи(Форма,
- ИмяПоля,
- РодительПоля,
- Заголовок = "",
- БезЗаголовка = Истина,
- ПутьКДанным = "",
- СтруктураСвойств = Неопределено,
- СтруктураСобытий = Неопределено,
- ЭлементПеред = Неопределено) Экспорт
-
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСвойств);
- ЕслиСтруктураНеопределеноТоНовая(СтруктураСобытий);
- ОпределитьЭлементФормы(Форма, РодительПоля);
- ОпределитьЭлементФормы(Форма, ЭлементПеред);
-
- НовыйЭлемент = СоздатьЭлементФормы(Форма, ИмяПоля, Тип("ПолеФормы"), РодительПоля, ЭлементПеред);
- НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи;
-
- Если БезЗаголовка Тогда
- НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
- КонецЕсли;
-
- Если Заголовок <> "" Тогда
- НовыйЭлемент.Заголовок = Заголовок;
- КонецЕсли;
- Если ПутьКДанным <> "" Тогда
- НовыйЭлемент.ПутьКДанным = ПутьКДанным;
- КонецЕсли;
-
- УстановитьСвойстваЭлементу(НовыйЭлемент, СтруктураСвойств);
- УстановитьСобытияЭлементу(НовыйЭлемент, СтруктураСобытий);
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УдалениеЭлементовИРеквизитов
-
-// Удалить реквизиты ранее созданный программно!
-//
-//Параметры:
-// МассивУдаляемыхРеквизитов - Массив - Содержит строковые типы с именами реквизитов, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
-Процедура УдалитьРеквизиты(Форма, МассивУдаляемыхРеквизитов) Экспорт
-
- Форма.ИзменитьРеквизиты(, МассивУдаляемыхРеквизитов);
-
-КонецПроцедуры
-
-// Удалить реквизит ранее созданный программно!
-//
-//Параметры:
-// ИмяРеквизита - Строка - Имя удаляемого реквизита, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
-Процедура УдалитьРеквизит(Форма, ИмяРеквизита) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УдалитьРеквизиты(Форма, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИмяРеквизита));
-
-КонецПроцедуры
-
-// Удалить элементы ранее созданный программно!
-//
-//Параметры:
-// МассивУдаляемыхЭлементов - Массив - Содержит строковые типы с именами удаляемых элементов, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
-Процедура УдалитьЭлементы(Форма, МассивУдаляемыхЭлементов) Экспорт
-
- Для Каждого ТекущийЭлемент Из МассивУдаляемыхЭлементов Цикл
- Если Форма.Элементы.Найти(ТекущийЭлемент) <> Неопределено Тогда
- Форма.Элементы.Удалить(Форма.Элементы[ТекущийЭлемент]);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры
-
-// Удалить элемент ранее созданный программно!
-//
-//Параметры:
-// ИмяРеквизита - Строка - Имя удаляемого элемента на форме, ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
-Процедура УдалитьЭлемент(Форма, ИмяЭлемента) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначенияКлиентСервер = Неопределено;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- УдалитьЭлементы(Форма, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИмяЭлемента));
-
-КонецПроцедуры
-
-// Удалить элемент и реквизит ранее созданный программно!
-//
-//Параметры:
-// ИмяРеквизитаЭлемента - Строка - Имя удаляемого элемента и реквизита на форме СОВПАДАЕТ!!! и ТОЛЬКО СОЗДАННЫЕ ПРОГРАММНО!
-Процедура УдалитьРеквизитИЭлемент(Форма,ИмяРеквизитаЭлемента) Экспорт
-
- УдалитьРеквизит(Форма, ИмяРеквизитаЭлемента);
- УдалитьЭлемент(Форма, ИмяРеквизитаЭлемента);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Свойства
-
-// Основные свойства поля ввода
-//
-// Параметры:
-//Заголовок - Строка - Заголовок поля на форме
-//Вид - ВидПоляФормы - Вид поля формы клиентского приложения
-//ПутьКДанным - Строка - Путь к данным реквизита формы или объекта
-//ПоложениеЗаголовка - ПоложениеЗаголовкаЭлементаФормы - Определяет положение заголовка относительно поля в макете формы. Следует заметить, что для отключения вывода заголовка следует установить это свойство в значение Нет.
-//Видимость - Булево - Видимость элемента на форме
-//Доступность - Булево - Доступность элемента на форме
-//ТолькоПросмотр - Булево - Только просмотр элемента на форме
-//ПропускатьПриВводе - Булево - Указывает необходимость пропуска поля при вводе данных
-// - Неопределено - Авто
-//АктивизироватьПоУмолчанию - Булево - Если свойство установлено, данный элемент будет активизирован при открытии формы
-//ВажностьПриОтображении - ВажностьПриОтображении - Указывает важность элемента при отображении (используется для адаптации формы к ширине экрана мобильного устройства)
-//Маска - Строка - (Поле ввода) Содержит посимвольную строку маски интерактивного ввода текста в поле.
-//В строке маски допустимо использование следующих специальных символов:
-//! - любой введенный символ преобразуется в верхний регистр;
-//9 - допустимо ввести произвольный символ цифры;
-//# - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;
-//N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);
-//U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;
-//X (латинского алфавита) - допустимо ввести произвольный символ;
-//^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;
-//h - допустим ввод символов обозначения шестнадцатеричных цифр;
-//@ - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.
-//Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2".
-//Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\".
-//Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". В этом случае использоваться будет та маска, к которой подходит введенный текст.
-//РежимПароля - Булево - (Поле ввода, поле надписи) Содержит признак специального режима для ввода пароля, в котором все вводимые символы отображаются символом "*" (звездочка).
-// - Неопределено - Авто
-//МногострочныйРежим - Булево - Управляет многострочным режимом в поле ввода.
-//РасширенноеРедактирование - Булево - (Поле ввода) Если свойство установлено в Истина, то включается расширенный режим редактирования, при котором само поле ввода обрабатывает нажатие клавиши TAB (в текст вставляется символ табуляции и переход к следующему полю не происходит), а также доступен поиск по тексту с помощью стандартных действий.
-//Гиперссылка - Булево - (Поле надписи, поле картинки) можно обработать событие гиперссылки "ОбработкаНавигационнойСсылки"
-//
-Функция СтруктураСвойствОсновные(Заголовок = "",
- Вид = Неопределено,
- ПутьКДанным = "",
- ПоложениеЗаголовка = Неопределено,
- Видимость = Неопределено,
- Доступность = Неопределено,
- ТолькоПросмотр = Неопределено,
- ПропускатьПриВводе = Неопределено,
- АктивизироватьПоУмолчанию = Неопределено,
- Маска = "",
- РежимПароля = Неопределено,
- МногострочныйРежим = Неопределено,
- РасширенноеРедактирование = Неопределено,
- Гиперссылка = Неопределено) Экспорт
-
- СтруктураСвойств = Новый Структура;
-
- Если Заголовок <> "" Тогда СтруктураСвойств.Вставить("Заголовок", Заголовок) КонецЕсли;
- Если Вид <> Неопределено Тогда СтруктураСвойств.Вставить("Вид", Вид) КонецЕсли;
- Если ПутьКДанным <> "" Тогда СтруктураСвойств.Вставить("ПутьКДанным", ПутьКДанным) КонецЕсли;
- Если ПоложениеЗаголовка <> Неопределено Тогда СтруктураСвойств.Вставить("ПоложениеЗаголовка", ПоложениеЗаголовка) КонецЕсли;
- Если Видимость <> Неопределено Тогда СтруктураСвойств.Вставить("Видимость", Видимость) КонецЕсли;
- Если Доступность <> Неопределено Тогда СтруктураСвойств.Вставить("Доступность", Доступность) КонецЕсли;
- Если ТолькоПросмотр <> Неопределено Тогда СтруктураСвойств.Вставить("ТолькоПросмотр", ТолькоПросмотр) КонецЕсли;
- Если ПропускатьПриВводе <> Неопределено Тогда СтруктураСвойств.Вставить("ПропускатьПриВводе", ПропускатьПриВводе) КонецЕсли;
- Если АктивизироватьПоУмолчанию <> Неопределено Тогда СтруктураСвойств.Вставить("АктивизироватьПоУмолчанию", АктивизироватьПоУмолчанию) КонецЕсли;
- Если Маска <> "" Тогда СтруктураСвойств.Вставить("Маска", Маска) КонецЕсли;
- Если РежимПароля <> Неопределено Тогда СтруктураСвойств.Вставить("РежимПароля", РежимПароля) КонецЕсли;
- Если МногострочныйРежим <> Неопределено Тогда СтруктураСвойств.Вставить("МногострочныйРежим", МногострочныйРежим) КонецЕсли;
- Если РасширенноеРедактирование <> Неопределено Тогда СтруктураСвойств.Вставить("РасширенноеРедактирование", РасширенноеРедактирование) КонецЕсли;
- Если Гиперссылка <> Неопределено Тогда СтруктураСвойств.Вставить("Гиперссылка", Гиперссылка) КонецЕсли;
-
- Возврат СтруктураСвойств;
-
-КонецФункции
-
-// Свойства Подсказка
-//
-// Параметры:
-// Подсказка - Строка - Текст подсказки
-// ОтображениеПодсказки - ОтображениеПодсказки - Задает способ отображения подсказки элемента формы
-// ПодсказкаВвода - Строка - Текст подсказки ввода в поле формы
-Функция СтруктураСвойствПодсказка(Подсказка = Неопределено,
- ОтображениеПодсказки = Неопределено,
- ПодсказкаВвода = Неопределено) Экспорт
-
- СтруктураСвойств = Новый Структура;
-
- Если Подсказка <> Неопределено Тогда СтруктураСвойств.Вставить("Подсказка", Подсказка) КонецЕсли;
- Если ОтображениеПодсказки <> Неопределено Тогда СтруктураСвойств.Вставить("ОтображениеПодсказки", ОтображениеПодсказки) КонецЕсли;
- Если ПодсказкаВвода <> Неопределено Тогда СтруктураСвойств.Вставить("ПодсказкаВвода", ПодсказкаВвода) КонецЕсли;
-
- Возврат СтруктураСвойств;
-
-КонецФункции
-
-// Свойства размеров
-//
-// Параметры:
-// Ширина - Число - Ширина элемента
-// Высота - Число - Высота элемента
-// АвтоМаксимальнаяШирина - Булево - Отключение автоматической ширины
-// МаксимальнаяШирина - Число - Максимальная ширина элемента на форме, работает если АвтоМаксимальнаяШирина - ОТКЛЮЧЕНА
-// АвтоМаксимальнаяВысота - Булево - Отключение автоматической высоты
-// МаксимальнаяВысота - Число - Максимальная высота элемента на форме, работает если АвтоМаксимальнаяВысота - ОТКЛЮЧЕНА
-// РастягиватьПоГоризонтали - Булево - Если требуется принудительно задать автоматическое растягивание по ширине
-// РастягиватьПоВертикали - Булево - Если требуется принудительно задать автоматическое растягивание по высоте
-// тГоризонтальноеПоложение - Число - Принимаемые значения:
-// 1 - Лево
-// 2 - Центр
-// 3 - Право
-// 0 - Авто
-// тГоризонтальноеПоложениеВШапке - Число - Принимаемые значения:
-// 1 - Лево
-// 2 - Центр
-// 3 - Право
-// 0 - Авто
-// тГоризонтальноеПоложениеВПодвале - Число - Принимаемые значения:
-// 1 - Лево
-// 2 - Центр
-// 3 - Право
-// 0 - Авто
-//
-Функция СтруктураСвойствРасположение(Ширина = Неопределено,
- Высота = Неопределено,
- АвтоМаксимальнаяШирина = Неопределено,
- МаксимальнаяШирина = Неопределено,
- АвтоМаксимальнаяВысота = Неопределено,
- МаксимальнаяВысота = Неопределено,
- РастягиватьПоГоризонтали = Неопределено,
- РастягиватьПоВертикали = Неопределено,
- тГоризонтальноеПоложение = Неопределено,
- тГоризонтальноеПоложениеВШапке = Неопределено,
- тГоризонтальноеПоложениеВПодвале = Неопределено) Экспорт
-
- СтруктураСвойств = Новый Структура;
-
- Если Ширина <> Неопределено Тогда СтруктураСвойств.Вставить("Ширина", Ширина) КонецЕсли;
- Если Высота <> Неопределено Тогда СтруктураСвойств.Вставить("Высота", Высота) КонецЕсли;
- Если АвтоМаксимальнаяШирина <> Неопределено Тогда СтруктураСвойств.Вставить("АвтоМаксимальнаяШирина", АвтоМаксимальнаяШирина) КонецЕсли;
- Если МаксимальнаяШирина <> Неопределено Тогда СтруктураСвойств.Вставить("МаксимальнаяШирина", МаксимальнаяШирина) КонецЕсли;
- Если АвтоМаксимальнаяВысота <> Неопределено Тогда СтруктураСвойств.Вставить("АвтоМаксимальнаяВысота", АвтоМаксимальнаяВысота) КонецЕсли;
- Если МаксимальнаяВысота <> Неопределено Тогда СтруктураСвойств.Вставить("МаксимальнаяВысота", МаксимальнаяВысота) КонецЕсли;
- Если РастягиватьПоГоризонтали <> Неопределено Тогда СтруктураСвойств.Вставить("РастягиватьПоГоризонтали", РастягиватьПоГоризонтали) КонецЕсли;
- Если РастягиватьПоВертикали <> Неопределено Тогда СтруктураСвойств.Вставить("РастягиватьПоВертикали", РастягиватьПоВертикали) КонецЕсли;
- Если тГоризонтальноеПоложение <> Неопределено Тогда СтруктураСвойств.Вставить("ГоризонтальноеПоложение", ПолучитьГоризонтальноеПоложение(тГоризонтальноеПоложение)) КонецЕсли;
- Если тГоризонтальноеПоложениеВШапке <> Неопределено Тогда СтруктураСвойств.Вставить("ГоризонтальноеПоложениеВШапке", ПолучитьГоризонтальноеПоложение(тГоризонтальноеПоложениеВШапке)) КонецЕсли;
- Если тГоризонтальноеПоложениеВПодвале <> Неопределено Тогда СтруктураСвойств.Вставить("ГоризонтальноеПоложениеВПодвале", ПолучитьГоризонтальноеПоложение(тГоризонтальноеПоложениеВПодвале)) КонецЕсли;
-
- Возврат СтруктураСвойств;
-
-КонецФункции
-
-// Свойства Таблицы формы
-//
-// Параметры:
-// Отображение - ОтображениеТаблицы - Отображение данных в таблице
-// РежимВводаСтрок - РежимВводаСтрокТаблицы - Режим ввода строк в таблице
-// РежимВыделения - РежимВыделенияТаблицы - Определяет режим выделения строк в таблице
-// РежимВыделенияСтроки - РежимВыделенияСтрокиТаблицы - Определяет режим выделения строки в таблице
-// Шапка - Булево - Определяет наличие шапки у таблицы
-// Подвал - Булево - Определяет наличие подвала у таблицы
-// АвтоВводНовойСтроки - Булево - Содержит признак автоматического ввода новой строки после заполнения текущей
-// ВысотаВСтрокахТаблицы - Число - Содержит высоту таблицы. Задается в строках. Указывает количество строк, отображаемых в области данных таблицы. Таблица занимает такую высоту, чтобы разместились шапка, подвал и заданное число строк в области данных. Число строк в общем случае не является числом записей данных, отображаемых в таблице, так как одна запись данных может выводиться в несколько строк таблицы. Более того, разные строки данных могут занимать разную высоту
-Функция СтруктураСвойствТаблицыФормы(Отображение = Неопределено,
- РежимВводаСтрок = Неопределено,
- РежимВыделения = Неопределено,
- РежимВыделенияСтроки = Неопределено,
- Шапка = Неопределено,
- Подвал = Неопределено,
- АвтоВводНовойСтроки = Неопределено,
- ВысотаВСтрокахТаблицы = Неопределено) Экспорт
-
- СтруктураСвойств = Новый Структура;
-
- Если Отображение <> Неопределено Тогда СтруктураСвойств.Вставить("Отображение", Отображение) КонецЕсли;
- Если РежимВводаСтрок <> Неопределено Тогда СтруктураСвойств.Вставить("РежимВводаСтрок", РежимВводаСтрок) КонецЕсли;
- Если РежимВыделения <> Неопределено Тогда СтруктураСвойств.Вставить("РежимВыделения", РежимВыделения) КонецЕсли;
- Если РежимВыделенияСтроки <> Неопределено Тогда СтруктураСвойств.Вставить("РежимВыделенияСтроки", РежимВыделенияСтроки) КонецЕсли;
- Если Шапка <> Неопределено Тогда СтруктураСвойств.Вставить("Шапка", Шапка) КонецЕсли;
- Если Подвал <> Неопределено Тогда СтруктураСвойств.Вставить("Подвал", Подвал) КонецЕсли;
- Если АвтоВводНовойСтроки <> Неопределено Тогда СтруктураСвойств.Вставить("АвтоВводНовойСтроки", АвтоВводНовойСтроки) КонецЕсли;
- Если ВысотаВСтрокахТаблицы <> Неопределено Тогда СтруктураСвойств.Вставить("ВысотаВСтрокахТаблицы", ВысотаВСтрокахТаблицы) КонецЕсли;
-
- Возврат СтруктураСвойств;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-// Функция - Очистить от запрещенных символов
-//
-// Параметры:
-// ПроверяемаяСтрока - Строка - Имя элемента
-// ДопРазрешенныеСимволы - Строка - Дополнительно разрешенные символы
-//
-// Возвращаемое значение:
-// Строка - Имя элемента очищенное от запрещенных символов
-//
-Функция ОчиститьОтЗапрещенныхСимволов(ПроверяемаяСтрока, ДопРазрешенныеСимволы = Неопределено)
-
- Если НЕ ЗначениеЗаполнено(ПроверяемаяСтрока) Тогда
- Возврат ПроверяемаяСтрока;
- КонецЕсли;
-
- ОчищеннаяСтрока = "";
-
- РазрешенныеСимволы = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" +
- "abcdefghijklmnopqrstuvwxyzQWERTYUIOPASDFGHJKLZXCVBNM" +
- "0123456789_";
-
- Если ЗначениеЗаполнено(ДопРазрешенныеСимволы) Тогда
- РазрешенныеСимволы = СтрШаблон("%1%2", РазрешенныеСимволы, ДопРазрешенныеСимволы);
- КонецЕсли;
-
- Для Сч = 1 по СтрДлина(СокрЛП(ПроверяемаяСтрока)) Цикл
-
- ТекСимв = Сред(ПроверяемаяСтрока, Сч, 1);
- Если Найти(РазрешенныеСимволы, ТекСимв) > 0 Тогда
- ОчищеннаяСтрока = СтрШаблон("%1%2", ОчищеннаяСтрока, ТекСимв);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат ОчищеннаяСтрока;
-
-КонецФункции
-
-Процедура ЕслиСтруктураНеопределеноТоНовая(ТекущаяСруктура)
-
- Если ТекущаяСруктура = Неопределено Тогда
- ТекущаяСруктура = Новый Структура;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОпределитьЭлементФормы(Форма, Элемент)
-
- Если Элемент = Неопределено Тогда
- Возврат
- КонецЕсли;
-
- Если ТипЗнч(Элемент) = Тип("Строка") Тогда
- // Может прийти "ИмяТаблицы.КоманднаяПанель"
- Иерархия = СтрРазделить(Элемент, ".");
- Элемент = Форма.Элементы;
- Для Каждого Шаг Из Иерархия Цикл
- Элемент = Элемент[Шаг];
- КонецЦикла;
- КонецЕсли;
-КонецПроцедуры
-
-Процедура ПолучитьСостояниеРастягиванияЭлементаПоГоризонтали(Элемент, Состояние)
-
- Если Состояние = 1 Тогда
- Элемент.РастягиватьПоГоризонтали = Истина;
- ИначеЕсли Состояние = 2 Тогда
- Элемент.РастягиватьПоГоризонтали = Ложь;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьСостояниеРастягиванияЭлементаПоВертикали(Элемент, Состояние)
-
- Если Состояние = 1 Тогда
- Элемент.РастягиватьПоВертикали = Истина;
- ИначеЕсли Состояние = 2 Тогда
- Элемент.РастягиватьПоВертикали = Ложь;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьСостояниеГруппировкиЭлемента(Элемент, Состояние)
-
- Если Состояние = 1 Тогда
- Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
- ИначеЕсли Состояние = 2 Тогда
- Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
- ИначеЕсли Состояние = 3 Тогда
- Элемент.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьСостояниеГруппировкиКолонкиЭлемента(Элемент, Состояние)
-
- Если Состояние = 1 Тогда
- Элемент.Группировка = ГруппировкаКолонок.Горизонтальная;
- ИначеЕсли Состояние = 2 Тогда
- Элемент.Группировка = ГруппировкаКолонок.Вертикальная;
- ИначеЕсли Состояние = 3 Тогда
- Элемент.Группировка = ГруппировкаКолонок.ВЯчейке;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция СоздатьЭлементФормы(Форма, ИмяЭлемента, ТипЭлемента, РодительЭлемента, ЭлементПеред = Неопределено)
-
- Если ЭлементПеред = Неопределено Тогда
- НовыйЭлемент = Форма.Элементы.Добавить(ОчиститьОтЗапрещенныхСимволов(ИмяЭлемента), ТипЭлемента, РодительЭлемента);
- Иначе
- НовыйЭлемент = Форма.Элементы.Вставить(ОчиститьОтЗапрещенныхСимволов(ИмяЭлемента), ТипЭлемента, РодительЭлемента, ЭлементПеред);
- КонецЕсли;
-
- Возврат НовыйЭлемент;
-
-КонецФункции
-
-Процедура СоздатьКолонкиДляТаблицыФормы(Форма, ТаблицаФормы, СтруктураКолонок, ЭтоДС = Ложь)
-
- ИмяСписка = ТаблицаФормы.Имя;
- Для Каждого ТекущаяКолонка Из СтруктураКолонок Цикл
- ИмяКолонки = ТекущаяКолонка.Ключ;
- НоваяКолонкаТаблицы = СоздатьЭлементФормы(Форма, СтрШаблон("%1%2", ИмяСписка, ИмяКолонки), Тип("ПолеФормы"), ТаблицаФормы);
- НоваяКолонкаТаблицы.Вид = ?(ЭтоДС, ВидПоляФормы.ПолеНадписи, ВидПоляФормы.ПолеВвода);
- Если ТекущаяКолонка.Значение <> "" Тогда
- НоваяКолонкаТаблицы.Заголовок = ТекущаяКолонка.Значение
- КонецЕсли;
- НоваяКолонкаТаблицы.ПутьКДанным = СтрШаблон("%1.%2", ТаблицаФормы.ПутьКДанным, ИмяКолонки);
- КонецЦикла;
-
-КонецПроцедуры
-
-Функция ПолучитьГоризонтальноеПоложение(ШифрПоложения)
-
- Если ШифрПоложения = 1 Тогда
- нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево;
- ИначеЕсли ШифрПоложения = 2 Тогда
- нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр;
- ИначеЕсли ШифрПоложения = 3 Тогда
- нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Право;
- Иначе
- нГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Авто;
- КонецЕсли;
-
- Возврат нГоризонтальноеПоложение;
-
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.xml" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.xml"
deleted file mode 100644
index f17b7efc..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __СправочникиОбработкаЗаполнения
-
-
- ru
- Справочники обработка заполнения
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl"
deleted file mode 100644
index c59c2956..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\227\320\260\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Ext/Module.bsl"
+++ /dev/null
@@ -1,72 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Справочники событие "Обработка заполнения" (вызов сервера): обработка событий при заполнении
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при вводе элемента справочника на основании, а также при выполнении метода Заполнить,
-// а также при интерактивном вводе нового.
-//
-// Параметры:
-// Источник - СправочникОбъект - Объект, обрабатываемый подпиской на события.
-// ДанныеЗаполнения - Произвольный - Значение, которое используется как основание для заполнения.
-// ТекстЗаполнения - Строка, Неопределено - Текст, используемый для заполнения справочника.
-// СтандартнаяОбработка - Булево - Признак выполнения стандартной (системной) обработки события.
-//
-Процедура СправочникиОбработкаЗаполнения(Источник, ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.СправочникиОбработкаЗаполнения().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(ДанныеЗаполнения);
- ПараметрыМетода.Добавить(ТекстЗаполнения);
- ПараметрыМетода.Добавить(СтандартнаяОбработка);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216.xml" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216.xml"
deleted file mode 100644
index 222e7565..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __СправочникиПередЗаписью
-
-
- ru
- Справочники перед записью
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl"
deleted file mode 100644
index 7f005667..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\320\265\321\200\320\265\320\264\320\227\320\260\320\277\320\270\321\201\321\214\321\216/Ext/Module.bsl"
+++ /dev/null
@@ -1,68 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Справочники событие "Перед записью" (вызов сервера): обработка событий перед записью
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает перед выполнением записи элемента справочника.
-// Процедура-обработчик вызывается после начала транзакции записи, но до начала записи элемента справочника.
-//
-// Параметры:
-// Источник - СправочникОбъект - Объект, обрабатываемый подпиской на события.
-// Отказ - Булево - Признак отказа от записи элемента.
-//
-Процедура СправочникиПередЗаписью(Источник, Отказ) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.СправочникиПередЗаписью().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(Отказ);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270.xml" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270.xml"
deleted file mode 100644
index b78a3c3a..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __СправочникиПриЗаписи
-
-
- ru
- Справочники при записи
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl"
deleted file mode 100644
index 9005bec7..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\227\320\260\320\277\320\270\321\201\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,68 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Справочники событие "При записи" (вызов сервера): обработка событий при записи
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при записи объекта.
-// Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.
-//
-// Параметры:
-// Источник - СправочникОбъект - Объект, обрабатываемый подпиской на события.
-// Отказ - Булево - Признак отказа от записи.
-//
-Процедура СправочникиПриЗаписи(Источник, Отказ) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Отказ Или Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.СправочникиПриЗаписи().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(Отказ);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.xml" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.xml"
deleted file mode 100644
index 05d9bd25..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270.xml"
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- __СправочникиПриКопировании
-
-
- ru
- Справочники при копировании
-
-
-
- false
- false
- true
- true
- false
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl" "b/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl"
deleted file mode 100644
index e73c8137..00000000
--- "a/release/CommonModules/__\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\272\320\270\320\237\321\200\320\270\320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\270/Ext/Module.bsl"
+++ /dev/null
@@ -1,67 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Справочники событие "При копировании" (вызов сервера): обработка событий при копировании
-
-#Область ПрограммныйИнтерфейс
-
-// Возникает при создании элемента справочника копированием.
-//
-// Параметры:
-// Источник - СправочникОбъект - Объект, обрабатываемый подпиской на события.
-// ОбъектКопирования - СправочникОбъект - Исходный элемент, который является источником копирования.
-//
-Процедура СправочникиПриКопировании(Источник, ОбъектКопирования) Экспорт
-
- // ++ Обход ошибки отстутствия модуля БСП, не переносить
- ОбщегоНазначения = __ВспомогательныйМодульНеПереносить;
- // -- Обход ошибки отстутствия модуля БСП, не переносить
-
- Если Источник.ОбменДанными.Загрузка Тогда
- Возврат;
- КонецЕсли;
-
- ИмяМетода = __ОбщегоНазначенияПовтИсп.СправочникиПриКопировании().Получить(ТипЗнч(Источник));
-
- Если ЗначениеЗаполнено(ИмяМетода) Тогда
- Попытка
-
- ПараметрыМетода = Новый Массив;
- ПараметрыМетода.Добавить(Источник);
- ПараметрыМетода.Добавить(ОбъектКопирования);
-
- ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, ПараметрыМетода);
-
- Исключение
- ВызватьИсключение СтрШаблон("%1%2Имя метода: %3", ОписаниеОшибки(), Символы.ПС, ИмяМетода);
- КонецПопытки;
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml" "b/release/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
deleted file mode 100644
index 0f2f9099..00000000
--- "a/release/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.xml"
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- __СтроковыеФункцииКлиентСервер
-
-
- ru
- Строковые функции клиент сервер
-
-
- en
- Lines client server
-
-
-
- false
- true
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git "a/release/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/release/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
deleted file mode 100644
index d374bc4c..00000000
--- "a/release/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl"
+++ /dev/null
@@ -1,227 +0,0 @@
-// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, включая доработку типовых конфигураций.
-//
-// Copyright 2017-2024 First BIT company
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/firstBitSportivnaya/PSSL/
-// e-mail: ivssmirnov@1bit.com
-// Версия: 1.0.0.1
-//
-// Требования: платформа 1С версии 8.3.17 и выше
-
-////////////////////////////////////////////////////////////////////////////////
-// Работа со строками (клиент, сервер): Модуль содержит методы работы со строками.
-
-#Область ПрограммныйИнтерфейс
-
-// Разбирает строку с разделителями и упаковывает значения в массив.
-//
-// Параметры:
-// ИсходнаяСтрока - Строка
-// Разделитель - Строка
-// ПоНарастающей - Булево (По умолчанию = Ложь) .
-//
-// ВозвращаемоеЗначение:
-// Массив
-//
-Функция РазобратьСтрокуСРазделителями(ИсходнаяСтрока, Разделитель, ПоНарастающей = Ложь) Экспорт
-
- Результат = Новый Массив;
-
- Список = __ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСРазделителями(ИсходнаяСтрока, Разделитель);
- Если ПоНарастающей Тогда
- НарастающаяСтрока = "";
- Для Каждого СтрокаСписка Из Список Цикл
-
- НарастающаяСтрока = ?(ПустаяСтрока(НарастающаяСтрока),
- СтрокаСписка, СтрШаблон("%1.%2", НарастающаяСтрока, СтрокаСписка));
- Результат.Добавить(НарастающаяСтрока);
- КонецЦикла;
- Иначе
- Результат = Список;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Возвращает текст с добавлением/удаление разделителя "|".
-//
-// Параметры:
-// Текст - Строка - Обрабатываемый текст.
-// Добавить - Булево - Признак добавления/удаления вертикальной черты.
-//
-// Возвращаемое значение:
-// Строка - Результат обработки строки.
-//
-Функция УбратьДобавитьВертикальнуюЧерту(Текст, Добавить = Ложь) Экспорт
-
- ТекстовыйДокумент = Новый ТекстовыйДокумент;
- ТекстовыйДокумент.УстановитьТекст(Текст);
- КоличествоСтрок = ТекстовыйДокумент.КоличествоСтрок();
-
- Если Добавить Тогда
-
- Для Сч = 1 По КоличествоСтрок Цикл
-
- ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(Сч);
-
- Если Сч = 1 Тогда
- ТекущаяСтрока = """" + ТекущаяСтрока;
- Иначе
-
- ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, """", """""");
- ТекущаяСтрока = СтрШаблон("|%1", ТекущаяСтрока);
-
- Если Сч = КоличествоСтрок Тогда
- ТекущаяСтрока = СтрШаблон("%1%2", ТекущаяСтрока, """");
- КонецЕсли;
- КонецЕсли;
-
- ТекстовыйДокумент.ЗаменитьСтроку(Сч, ТекущаяСтрока);
- КонецЦикла;
- Иначе
-
- Для Сч = 1 По КоличествоСтрок Цикл
-
- ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(Сч);
-
- Если Сч = 1 Тогда
- ТекущаяСтрока = Сред(ТекущаяСтрока, 2);
- ИначеЕсли Сч = КоличествоСтрок Тогда
- ТекущаяСтрока = Сред(ТекущаяСтрока, 1, СтрДлина(ТекущаяСтрока) - 1);
- КонецЕсли;
-
- ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, """""", """");
- ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, "|", "");
-
- ТекстовыйДокумент.ЗаменитьСтроку(Сч, ТекущаяСтрока);
- КонецЦикла;
- КонецЕсли;
-
- Результат = ТекстовыйДокумент.ПолучитьТекст();
- Результат = Сред(Результат, 1, СтрДлина(Результат) - 1);
-
- Возврат Результат;
-
-КонецФункции
-
-// Подставляет параметры в строку. Максимально возможное число параметров - 9.
-// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы.
-//
-// Параметры:
-// ШаблонСтроки - Строка - шаблон строки с параметрами (вхождениями вида "%<номер параметра>",
-// например "%1 пошел в %2");
-// Параметр1 - Строка - значение подставляемого параметра.
-// Параметр2 - Строка
-// Параметр3 - Строка
-// Параметр4 - Строка
-// Параметр5 - Строка
-// Параметр6 - Строка
-// Параметр7 - Строка
-// Параметр8 - Строка
-// Параметр9 - Строка
-//
-// Возвращаемое значение:
-// Строка - текстовая строка с подставленными параметрами.
-//
-// Пример:
-// СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел
-// в Зоопарк".
-//
-Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
- Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
- Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
- Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
-
- ЕстьПараметрыСПроцентом = СтрНайти(Параметр1, "%")
- Или СтрНайти(Параметр2, "%")
- Или СтрНайти(Параметр3, "%")
- Или СтрНайти(Параметр4, "%")
- Или СтрНайти(Параметр5, "%")
- Или СтрНайти(Параметр6, "%")
- Или СтрНайти(Параметр7, "%")
- Или СтрНайти(Параметр8, "%")
- Или СтрНайти(Параметр9, "%");
-
- Если ЕстьПараметрыСПроцентом Тогда
- Возврат ПодставитьПараметрыСПроцентом(ШаблонСтроки, Параметр1,
- Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
- КонецЕсли;
-
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%1", Параметр1);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%2", Параметр2);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%3", Параметр3);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%4", Параметр4);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%5", Параметр5);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%6", Параметр6);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%7", Параметр7);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%8", Параметр8);
- ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%9", Параметр9);
- Возврат ШаблонСтроки;
-
-КонецФункции
-
-// Вставляет параметры в строку, учитывая, что в параметрах могут использоваться подстановочные слова %1, %2 и т.д.
-Функция ПодставитьПараметрыСПроцентом(Знач СтрокаПодстановки,
- Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
- Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
- Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено)
-
- Результат = "";
- Позиция = СтрНайти(СтрокаПодстановки, "%");
- Пока Позиция > 0 Цикл
- Результат = Результат + Лев(СтрокаПодстановки, Позиция - 1);
- СимволПослеПроцента = Сред(СтрокаПодстановки, Позиция + 1, 1);
- ПодставляемыйПараметр = Неопределено;
- Если СимволПослеПроцента = "1" Тогда
- ПодставляемыйПараметр = Параметр1;
- ИначеЕсли СимволПослеПроцента = "2" Тогда
- ПодставляемыйПараметр = Параметр2;
- ИначеЕсли СимволПослеПроцента = "3" Тогда
- ПодставляемыйПараметр = Параметр3;
- ИначеЕсли СимволПослеПроцента = "4" Тогда
- ПодставляемыйПараметр = Параметр4;
- ИначеЕсли СимволПослеПроцента = "5" Тогда
- ПодставляемыйПараметр = Параметр5;
- ИначеЕсли СимволПослеПроцента = "6" Тогда
- ПодставляемыйПараметр = Параметр6;
- ИначеЕсли СимволПослеПроцента = "7" Тогда
- ПодставляемыйПараметр = Параметр7
- ИначеЕсли СимволПослеПроцента = "8" Тогда
- ПодставляемыйПараметр = Параметр8;
- ИначеЕсли СимволПослеПроцента = "9" Тогда
- ПодставляемыйПараметр = Параметр9;
- КонецЕсли;
- Если ПодставляемыйПараметр = Неопределено Тогда
- Результат = Результат + "%";
- СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 1);
- Иначе
- Результат = Результат + ПодставляемыйПараметр;
- СтрокаПодстановки = Сред(СтрокаПодстановки, Позиция + 2);
- КонецЕсли;
- Позиция = СтрНайти(СтрокаПодстановки, "%");
- КонецЦикла;
- Результат = Результат + СтрокаПодстановки;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти // ПрограммныйИнтерфейс
-
-#Область СлужебныеПроцедурыИФункции
-
-#КонецОбласти // СлужебныеПроцедурыИФункции
diff --git "a/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270.xml" "b/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270.xml"
deleted file mode 100644
index fe100807..00000000
--- "a/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270.xml"
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- __ПодсистемаУправлениеИнтеграциями
-
-
- ru
- Подсистема управление интеграциями
-
-
-
- false
- false
-
-
-
\ No newline at end of file
diff --git "a/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270/Ext/Picture.xml" "b/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270/Ext/Picture.xml"
deleted file mode 100644
index dba17d47..00000000
--- "a/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270/Ext/Picture.xml"
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270/Ext/Picture/Picture.png" "b/release/CommonPictures/__\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\320\260\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217\320\274\320\270/Ext/Picture/Picture.png"
deleted file mode 100644
index 1393c9d3df9ae179ec75972a4ada590a41eb416f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3148
zcmV-S472lzP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
z0004ZNklUQHWA3u0vKXLDZl%RJiDJE?h5`LoXb@FMJ=)InQ~Xm-WvrEa5kP
z1>Z1_PS}jIxP%Mn!Cl5fc8y$WLjD#$VRzZjlQ@qXXu(_vU&Uzw
zBXK@2HtMh~S-dDy`GSvYIM{&`aqkUU@f!80#SqSg_$TgVG9?VfNfF**U&eAK*7t;9
zIEB3xB&!If6W&AY#9rJ+H%=w>4HYeHFK=N6&A68Nx8N}L<9HUSP=Qq;&Y>~PgZPT3
zwD1Ej*Bj$PS}2{Zng8|NKjYcI7O5YLS(w=
-
-
-
- __Реквизит
-
-
- ru
- Реквизит
-
-
-
- false
- false
-
-
-
\ No newline at end of file
diff --git "a/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202/Ext/Picture.xml" "b/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202/Ext/Picture.xml"
deleted file mode 100644
index 4b647c7e..00000000
--- "a/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202/Ext/Picture.xml"
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202/Ext/Picture/Picture.bmp" "b/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202/Ext/Picture/Picture.bmp"
deleted file mode 100644
index a69323c80b1607bb8335590971a15d57cdef0ae6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 826
zcmZ?rwPI!f11lh@0mK4O%*Y@C7H5FULpTWX|A+)
-
-
-
- __Реквизиты
-
-
- ru
- Реквизиты
-
-
- Реквизиты
- false
- false
-
-
-
\ No newline at end of file
diff --git "a/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\321\213/Ext/Picture.xml" "b/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\321\213/Ext/Picture.xml"
deleted file mode 100644
index 15ee198b..00000000
--- "a/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\321\213/Ext/Picture.xml"
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\321\213/Ext/Picture/Picture.bmp" "b/release/CommonPictures/__\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\202\321\213/Ext/Picture/Picture.bmp"
deleted file mode 100644
index 29806950ac9df509c49bafd501dd2658576ccb0c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 826
zcmZ?rwPI!f11lh@0mK4O%*Y@C7H5FULpTWXKV86?nZ_WL20}BD5Kha_%*3h%kNW@E
dwBS@vq6AjQ06l`!7;KKguYT11I0KWG5&-SslJx)p
diff --git a/release/CommonTemplates/__BSLEditor.xml b/release/CommonTemplates/__BSLEditor.xml
deleted file mode 100644
index 137cb9e0..00000000
--- a/release/CommonTemplates/__BSLEditor.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- __BSLEditor
-
-
- ru
- BSLEditor
-
-
-
- BinaryData
-
-
-
\ No newline at end of file
diff --git a/release/CommonTemplates/__BSLEditor/Ext/Template.bin b/release/CommonTemplates/__BSLEditor/Ext/Template.bin
deleted file mode 100644
index 359ba23667bc6815ee3e41461069f1aaa235ffe7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1239635
zcmV(`K-0faO9KQH00ICA0EVzGQy&+@TsH{-00}Pu015yA0AXWvX>V?GE^2etT5WIJ
z))oF