mirror of
https://github.com/firstBitSportivnaya/PSSL.git
synced 2024-11-21 17:56:47 +02:00
parent
f5b9f0d42e
commit
2f3422b05d
@ -1,5 +1,8 @@
|
||||
# Подсистема "модификация форм"
|
||||
|
||||
## Описание
|
||||
|
||||
Предназначена для динамического формирования интерфейса. Также используется в случае изменения типовых форм.
|
||||
Предназначена для динамического формирования интерфейса. Также использовать в случае изменения типовых форма.
|
||||
|
||||
- Общий модуль **__МодификацияКонфигурацииПереопределяемый** используется для маршрутизации из серверных процедур (напр. **ПриСозданииНаСервере**) по дополнительным модулям разбитым по объектам (напр. **__МодификацияКонфигурацииПереопределяемыйДокумент**). В сам модуль **__МодификацияКонфигурацииПереопределяемый** могут добавляться обработчики событий которых нет изначально.
|
||||
@ -10,6 +13,71 @@
|
||||
- Использовать функции и процедуры общего модуля **__РаботаСФормами** для уменьшения объема текста при добавлении элементов (напр. **__РаботаСФормами.СоздатьПоле(Форма, "_ДемоДата", ГруппаНомерДата, "от", 1, "_ДемоДата")**)
|
||||
- В случае если для нужного типа объекта ещё не был создан общий модуль, создать его и добавить в подсистему **__МодификацияФорм**
|
||||
|
||||
## Расширение модификации формы
|
||||
|
||||
Проверка сущетсвует ли обработчик события в форме из которой была вызвана функция.
|
||||
|
||||
Порядок действий:
|
||||
- Если в общем модуле **__МодификацияКонфигурации<директива>Переопределяемый** нет функции **СуществуетОбработчикСобытия**, необходимо добавить согласно примеру ниже
|
||||
|
||||
```1C (BSL)
|
||||
Функция СуществуетОбработчикСобытия(ИмяФормы, Обработчик = "")
|
||||
|
||||
Если Обработчик = <ИмяПроверяемогоОбработчика> Тогда
|
||||
Список = __МодификацияКонфигурации<директива>ПовтИсп.СписокФорм<ИмяПроверяемогоОбработчика>();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Список.Получить(ИмяФормы) <> Неопределено;
|
||||
|
||||
КонецФункции
|
||||
```
|
||||
|
||||
- Создать в общем модуле **__МодификацияКонфигурации<директива>ПовтИсп** функцию с именем **СписокФорм<ИмяПроверяемогоОбработчика>**. Дополнить соответствие строковым представлением формы (Форма.ИмяФормы) в области // Добавление
|
||||
|
||||
```1C (BSL)
|
||||
Функция СписокФорм<ИмяОбработчика>() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
СписокФорм.Вставить("Документ.ДемоРаботаСФормами.Форма.ФормаДокумента", Истина);
|
||||
СписокФорм.Вставить("ПланВидовХарактеристик.__ПредопределенныеЗначения.Форма.ФормаСписка", Истина);
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
```
|
||||
|
||||
Пример вызова проверки из типового модуля конфигурации **МодификацияКонфигурацииПереопределяемый**:
|
||||
|
||||
```1C (BSL)
|
||||
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
|
||||
Если __МодификацияКонфигурацииПереопределяемый.СуществуетОбработчикСобытия(Форма.ИмяФормы, "ПриСозданииНаСервере") = Ложь Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
__МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка);
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
Пример вызова проверки в расширении, когда в типовой форме отсутствует вызов типового модуля **МодификацияКонфигурацииПереопределяемый**:
|
||||
|
||||
```1C (BSL)
|
||||
&После("ПриСозданииНаСервере")
|
||||
Процедура __ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка)
|
||||
|
||||
Если Отказ Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
//Проверяем необходимо ли модифицировать данную форму
|
||||
Если __МодификацияКонфигурацииПереопределяемый.СуществуетОбработчикСобытия(Форма.ИмяФормы, "ПриСозданииНаСервере") Тогда
|
||||
__МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
Демо-пример использования методов общего модуля
|
||||
|
||||
```1C (BSL)
|
||||
|
@ -52,4 +52,29 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Функция - Существует обработчик события
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяФормы - Строка - Форма.ИмяФормы
|
||||
// Обработчик - Строка - Имя проверяемого обработчика
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Возвращает истину, если в списке форм найдена форма
|
||||
//
|
||||
Функция СуществуетОбработчикСобытия(ИмяФормы, Обработчик = "") Экспорт
|
||||
|
||||
Если Обработчик = "ПриОткрытии" Тогда
|
||||
Список = __МодификацияКонфигурацииКлиентПовтИсп.СписокФормПриОткрытии();
|
||||
ИначеЕсли Обработчик = "ПередЗаписью" Тогда
|
||||
Список = __МодификацияКонфигурацииКлиентПовтИсп.СписокФормПередЗаписью();
|
||||
ИначеЕсли Обработчик = "ПослеЗаписи" Тогда
|
||||
Список = __МодификацияКонфигурацииКлиентПовтИсп.СписокФормПослеЗаписи();
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Список.Получить(ИмяФормы) <> Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти // ПрограммныйИнтерфейс
|
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<CommonModule uuid="32daac53-ed05-4afe-8150-74737c34ea47">
|
||||
<Properties>
|
||||
<Name>__МодификацияКонфигурацииКлиентПовтИсп</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Модификация конфигурации клиент повт исп</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>false</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DuringSession</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@ -0,0 +1,59 @@
|
||||
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
|
||||
// включая доработку типовых конфигураций.
|
||||
//
|
||||
// Copyright 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/
|
||||
//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция СписокФормПриОткрытии() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокФормПередЗаписью() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокФормПослеЗаписи() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -528,6 +528,35 @@
|
||||
|
||||
#КонецОбласти // ПроцедурыИФункцииРаботыСУсловнымОформлением
|
||||
|
||||
// Функция - Существует обработчик события
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяФормы - Строка - Форма.ИмяФормы
|
||||
// Обработчик - Строка - Имя проверяемого обработчика
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Возвращает истину, если в списке форм найдена форма
|
||||
//
|
||||
Функция СуществуетОбработчикСобытия(ИмяФормы, Обработчик = "") Экспорт
|
||||
|
||||
// Добавление
|
||||
Если Обработчик = "ПриЧтенииНаСервере" Тогда
|
||||
Список = __МодификацияКонфигурацииПовтИсп.СписокФормПриЧтенииНаСервере();
|
||||
ИначеЕсли Обработчик = "ПриСозданииНаСервере" Тогда
|
||||
Список = __МодификацияКонфигурацииПовтИсп.СписокФормПриСозданииНаСервере();
|
||||
ИначеЕсли Обработчик = "ПередЗаписьюНаСервере" Тогда
|
||||
Список = __МодификацияКонфигурацииПовтИсп.СписокФормПередЗаписьюНаСервере();
|
||||
ИначеЕсли Обработчик = "ПослеЗаписиНаСервере" Тогда
|
||||
Список = __МодификацияКонфигурацииПовтИсп.СписокФормПослеЗаписиНаСервере();
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Список.Получить(ИмяФормы) <> Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти // ПрограммныйИнтерфейс
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
23
src/cf/CommonModules/__МодификацияКонфигурацииПовтИсп.xml
Normal file
23
src/cf/CommonModules/__МодификацияКонфигурацииПовтИсп.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
|
||||
<CommonModule uuid="c3483359-a1ee-41b1-b99e-9e475429c847">
|
||||
<Properties>
|
||||
<Name>__МодификацияКонфигурацииПовтИсп</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Модификация конфигурации повт исп</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>true</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DuringSession</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@ -0,0 +1,72 @@
|
||||
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
|
||||
// включая доработку типовых конфигураций.
|
||||
//
|
||||
// Copyright 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/
|
||||
//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция СписокФормПриЧтенииНаСервере() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокФормПриСозданииНаСервере() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
СписокФорм.Вставить("Документ.ДемоРаботаСФормами.Форма.ФормаДокумента", Истина);
|
||||
СписокФорм.Вставить("ПланВидовХарактеристик.__ПредопределенныеЗначения.Форма.ФормаСписка", Истина);
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокФормПередЗаписьюНаСервере() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СписокФормПослеЗаписиНаСервере() Экспорт
|
||||
|
||||
СписокФорм = Новый Соответствие;
|
||||
|
||||
// Добавление
|
||||
|
||||
// КонецДобавления
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(СписокФорм);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -280,10 +280,12 @@
|
||||
<CommonModule>__КоннекторHTTP</CommonModule>
|
||||
<CommonModule>__МетодыРегламентныхЗаданийСервер</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииКлиентПереопределяемый</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииКлиентПовтИсп</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииКлиентСерверПереопределяемый</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииПереопределяемый</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииПереопределяемыйДокумент</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииПереопределяемыйПланВидовХарактеристик</CommonModule>
|
||||
<CommonModule>__МодификацияКонфигурацииПовтИсп</CommonModule>
|
||||
<CommonModule>__ОбновлениеИнформационнойБазыПБП</CommonModule>
|
||||
<CommonModule>__ОбщегоНазначенияВызовСервера</CommonModule>
|
||||
<CommonModule>__ОбщегоНазначенияКлиент</CommonModule>
|
||||
|
Loading…
Reference in New Issue
Block a user