1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2024-11-21 17:56:47 +02:00

Parameters and variables in custom func (#67)

Доработана подсистема произвольных функций
This commit is contained in:
DenisUshakov 2024-05-07 17:11:59 +03:00 committed by GitHub
parent 37712a2817
commit f17690e9fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 535 additions and 301 deletions

View File

@ -55,6 +55,8 @@
СписокТипов.Добавить("Массив", НСтр("ru = 'Массив'"));
СписокТипов.Добавить("Структура", НСтр("ru = 'Структура'"));
СписокДобавленныхТипов = СписокТипов.Скопировать();
Для каждого Стр Из НеПримитивныеТипы Цикл
ЗначениеТипа = XMLТип(Стр.Значение).ИмяТипа;
ПредставлениеТипа = Строка(Стр.Значение);
@ -381,8 +383,9 @@
//
Процедура ЗаполнитьПараметры(Объект) Экспорт
Объект.ПараметрыФункции.Очистить();
Если Объект.Контекст = Перечисления.__КонтекстыВыполненияПользовательскихФункций.ЗагрузкаЭксель Тогда
Объект.ПараметрыФункции.Очистить();
ДобавитьПараметрыЗагрузкаЭксель(Объект);
КонецЕсли;
@ -395,27 +398,65 @@
// Выполняет добавляет параметр при отсутствии.
//
// Параметры:
// ИмяПараметра - Строка.
// Объект - СправочникОбъект.__ПользовательскиеФункции - Изменяемый объект.
// ИмяПараметра - Строка - Имя добавляемого параметра.
// ТипПараметра - Строка - Подставляемый тип в строковом, по умолчанию остается пустой.
//
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра)
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)
ТипСтрокой = ТипСтрокой(ТипПараметра);
ДанныеПоиска = Объект.ПараметрыФункции.НайтиСтроки(
Новый Структура("Наименование", ИмяПараметра));
Если Не ДанныеПоиска.Количество() Тогда
Если Не ЗначениеЗаполнено(ДанныеПоиска) Тогда
НоваяСтрока = Объект.ПараметрыФункции.Добавить();
НоваяСтрока.Наименование = ИмяПараметра;
НоваяСтрока.Идентификатор = Новый УникальныйИдентификатор;
НоваяСтрока.Тип = ТипСтрокой;
КонецЕсли;
КонецПроцедуры
Функция ТипСтрокой(Тип)
Если Тип = Неопределено Тогда
Возврат "";
КонецЕсли;
СписокДобавленныхТипов = Новый СписокЗначений;
СформироватьСписокТипов(СписокДобавленныхТипов);
ТипСтрокой = Строка(Тип);
ТипНайден = Ложь;
Для Каждого ЭлементСписка Из СписокДобавленныхТипов Цикл
Если ЭлементСписка.Представление = ТипСтрокой Тогда
ТипНайден = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ТипНайден Тогда
ТипСтрокой = XMLТип(Тип).ИмяТипа;
КонецЕсли;
Возврат ТипСтрокой;
КонецФункции
// Добавляет параметры, необходимые для контекста ЗагрузкаЭксель.
//
//
// Параметры:
// Объект - СправочникОбъект.__ПользовательскиеФункции - Изменяемый объект.
//
Процедура ДобавитьПараметрыЗагрузкаЭксель(Объект)
ТипСтруктура = Тип("Структура");
ТипСтрока = Тип("Строка");
НайтиДобавитьПараметр(Объект, "СтрокаЗагрузки");
НайтиДобавитьПараметр(Объект, "ДанныеЗагрузки");
НайтиДобавитьПараметр(Объект, "СтрокаПравил");
НайтиДобавитьПараметр(Объект, "ДанныеЗагрузки", ТипСтруктура);
НайтиДобавитьПараметр(Объект, "СтрокаПравил", ТипСтрока);
КонецПроцедуры

View File

@ -14,11 +14,42 @@
<WindowOpeningMode>LockWholeInterface</WindowOpeningMode>
<AutoTitle>false</AutoTitle>
<Customizable>false</Customizable>
<CommandBarLocation>Top</CommandBarLocation>
<VerticalScroll>useIfNecessary</VerticalScroll>
<CommandSet>
<ExcludedCommand>Abort</ExcludedCommand>
<ExcludedCommand>Cancel</ExcludedCommand>
<ExcludedCommand>Ignore</ExcludedCommand>
<ExcludedCommand>No</ExcludedCommand>
<ExcludedCommand>OK</ExcludedCommand>
<ExcludedCommand>RestoreValues</ExcludedCommand>
<ExcludedCommand>Retry</ExcludedCommand>
<ExcludedCommand>SaveValues</ExcludedCommand>
<ExcludedCommand>Yes</ExcludedCommand>
</CommandSet>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill>
<ChildItems>
<Button name="КомандаОК" id="15">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.КомандаОК</CommandName>
<ExtendedTooltip name="КомандаОКРасширеннаяПодсказка" id="25"/>
</Button>
<Button name="ФормаЗакрыть" id="31">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отмена</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ФормаЗакрытьРасширеннаяПодсказка" id="32"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="ChoiceProcessing">ОбработкаВыбора</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
@ -84,39 +115,6 @@
</InputField>
</ChildItems>
</UsualGroup>
<CommandBar name="ГруппаДействияФормы" id="14">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа действия формы</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Group actions forms</v8:content>
</v8:item>
</Title>
<HorizontalLocation>Right</HorizontalLocation>
<ExtendedTooltip name="ГруппаДействияФормыРасширеннаяПодсказка" id="24"/>
<ChildItems>
<Button name="КомандаОК" id="15">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.КомандаОК</CommandName>
<ExtendedTooltip name="КомандаОКРасширеннаяПодсказка" id="25"/>
</Button>
<Button name="Закрыть" id="16">
<Type>CommandBarButton</Type>
<Representation>PictureAndText</Representation>
<CommandName>Form.StandardCommand.Close</CommandName>
<ExtendedTooltip name="ЗакрытьРасширеннаяПодсказка" id="26"/>
</Button>
<Button name="Справка" id="17">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Help</CommandName>
<ExtendedTooltip name="СправкаРасширеннаяПодсказка" id="27"/>
</Button>
</ChildItems>
</CommandBar>
</ChildItems>
<Attributes>
<Attribute name="ЛогическоеВыражение" id="2">
@ -195,21 +193,6 @@
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="СписокПеременных" id="6">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список переменных</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Variables List</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueListType</v8:Type>
</Type>
</Attribute>
<Attribute name="НадписьСинтаксис" id="7">
<Title>
<v8:item>
@ -244,6 +227,21 @@
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="АдресЗначений" id="9">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Адрес значений</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="КомандаОК" id="1">

View File

@ -25,10 +25,8 @@
Параметры.Свойство("Режим", Режим);
Если Параметры.Свойство("Переменные") Тогда
Для Каждого ТекущаяПеременна Из Параметры.Переменные Цикл
СписокПеременных.Добавить(ТекущаяПеременна.Значение);
КонецЦикла;
Если Параметры.Свойство("ЗначенияЗаполнения") Тогда
АдресЗначений = ПоместитьВоВременноеХранилище(Параметры.ЗначенияЗаполнения, УникальныйИдентификатор);
КонецЕсли;
НадписьСинтаксис = НСтр("ru = '?(<ЛогическоеВыражение>,<ВыражениеЕслиИстина>,<ВыражениеЕслиЛожь>)';
@ -90,7 +88,7 @@
Процедура КомандаОК(Команда)
ОбновитьВыражениеРезультат();
Закрыть(ВыражениеРезультат);
ОповеститьОВыборе(Новый Структура("Поле", ВыражениеРезультат));
КонецПроцедуры
@ -103,7 +101,7 @@
&НаКлиенте
Процедура ОбновитьВыражениеРезультат()
ВыражениеРезультат = СтрШаблон("?(%1, %2, %3);", ЛогическоеВыражение, ВыражениеИстина, ВыражениеЛожь);
ВыражениеРезультат = СтрШаблон("?(%1, %2, %3)", ЛогическоеВыражение, ВыражениеИстина, ВыражениеЛожь);
КонецПроцедуры
@ -116,28 +114,22 @@
ПараметрыФормы.Вставить("Режим", Режим);
Если СписокПеременных.Количество() Тогда
ПараметрыФормы.Вставить("Переменные", СписокПеременных.ВыгрузитьЗначения());
КонецЕсли;
Если Не ПустаяСтрока(АдресЗначений) Тогда
ПараметрыФормы.Вставить("АдресЗначений", АдресЗначений);
КонецЕсли;
ПараметрыФормы.Вставить("ИмяПриемника", ИмяПриемника);
ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля",
ПараметрыФормы, ЭтотОбъект,,,,
Новый ОписаниеОповещения("ВыборПоляЗавершение", ЭтотОбъект, Новый Структура("ИмяПриемника", ИмяПриемника)),
РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
// Обработчик оповещения "ВыборПоляЗавершение".
//
// Параметры:
// РезСтруктура - КодВозвратаДиалога.
// ДополнительныеДанные - Структура.
//
&НаКлиенте
Процедура ВыборПоляЗавершение(Результат, ДополнительныеДанные) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы[ДополнительныеДанные.ИмяПриемника].ВыделенныйТекст = Результат.Имя;
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Элементы[ВыбранноеЗначение.ИмяПриемника].ВыделенныйТекст = ВыбранноеЗначение.Поле;
КонецЕсли;
ОбновитьВыражениеРезультат();
КонецЕсли;

View File

@ -16,6 +16,17 @@
<CommandName>Form.Command.СохранитьРезультат</CommandName>
<ExtendedTooltip name="ФормаСохранитьРезультатРасширеннаяПодсказка" id="21"/>
</Button>
<Button name="ФормаЗакрыть" id="38">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отмена</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ФормаЗакрытьРасширеннаяПодсказка" id="39"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>

View File

@ -16,6 +16,17 @@
<CommandName>Form.Command.СохранитьРезультат</CommandName>
<ExtendedTooltip name="ФормаСохранитьРезультатРасширеннаяПодсказка" id="21"/>
</Button>
<Button name="ФормаЗакрыть" id="22">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отмена</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ФормаЗакрытьРасширеннаяПодсказка" id="23"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>

View File

@ -16,6 +16,17 @@
<CommandName>Form.Command.СохранитьРезультат</CommandName>
<ExtendedTooltip name="ФормаСохранитьРезультатРасширеннаяПодсказка" id="38"/>
</Button>
<Button name="ФормаЗакрыть" id="39">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отмена</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ФормаЗакрытьРасширеннаяПодсказка" id="40"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>

View File

@ -25,7 +25,7 @@
Если Параметры.Свойство("АдресЗначения", АдресЗначения) Тогда
Таблица = ПолучитьИзВременногоХранилища(АдресЗначения);
Если Таблица <> Неопределено Тогда
Если ТипЗнч(Таблица) = Тип("ТаблицаЗначений") И ЗначениеЗаполнено(Таблица.Колонки) Тогда
Для Каждого Колонка Из Таблица.Колонки Цикл
// Заполняем таблицу колонок
нСтрока = КолонкиТаблицыЗначений.Добавить();

View File

@ -151,6 +151,16 @@
Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.ФормаМассива" Тогда
текДанные = Элементы.ПараметрыФункции.ТекущиеДанные;
текДанные.АдресЗначения = ВыбранноеЗначение.Адрес;
ИначеЕсли ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;
ИначеЕсли ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Модифицированность = Истина;
View().selectedText(ВыбранноеЗначение.Поле);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@ -244,8 +254,7 @@
ТекДанные.ТипВФорме = ВыбранныйЭлемент.Представление;
// Доработать, отражение количество элементов в коллекции, условное оформление - цвет текста, запрет изменения
ТекДанные.ЗначениеВФорме = ВыбранныйЭлемент.Представление;
ПустаяКоллекция = Новый(Тип(ВыбранныйЭлемент.Значение));
ТекДанные.АдресЗначения = ПоместитьВоВременноеХранилище(ПустаяКоллекция, Новый УникальныйИдентификатор);
ТекДанные.АдресЗначения = СоздатьКоллекциюИПоместитьВХранилище(ВыбранныйЭлемент.Значение);
Иначе
ИнициализацияТипаИЗначенияПараметра(ТекДанные, ВыбранныйЭлемент);
КонецЕсли;
@ -425,6 +434,7 @@
Процедура ДобавитьПараметры()
Справочники.__ПользовательскиеФункции.ЗаполнитьПараметры(Объект);
ПрочитатьТипыИЗначенияПараметров(Объект);
ПолучитьНазваниеПодпрограммыСПараметрамиСервер(Истина);
КонецПроцедуры // ДобавитьПараметры()
@ -467,15 +477,15 @@
СтруктураОтбора.Вставить("Идентификатор", ТекущийПараметр.Идентификатор);
АктивныеСтроки = Объект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора);
Если ЗначениеЗаполнено(АктивныеСтроки) Тогда
Если ЗначениеЗаполнено(АктивныеСтроки) И ЗначениеЗаполнено(ТекущийПараметр.Тип) Тогда
Представление = Строка(Тип(ТекущийПараметр.Тип));
АктивныеСтроки[0].ТипВФорме = Представление;
// Доработать, отражение количество элементов в коллекции, условное оформление - цвет текста, запрет изменения
АктивныеСтроки[0].ЗначениеВФорме = Представление;
НастройкаПараметра = Неопределено;
Если ПрочитатьЗначения Тогда
НастройкаПараметра = НастройкиПараметров.Получить(ТекущийПараметр.Идентификатор);
ЗначениеПараметраФункции(АктивныеСтроки[0], НастройкаПараметра);
КонецЕсли;
ЗначениеПараметраФункции(АктивныеСтроки[0], НастройкаПараметра);
КонецЕсли;
КонецЦикла;
@ -484,19 +494,19 @@
&НаСервере
Процедура ЗначениеПараметраФункции(СтрокаТаблицы, Настройка)
Если Настройка = Неопределено Тогда
Возврат;
КонецЕсли;
Если СтрокаТаблицы.Тип = "ТаблицаЗначений"
Или СтрокаТаблицы.Тип = "Структура"
Или СтрокаТаблицы.Тип = "Массив" Тогда
Если ТипЗнч(Настройка.Значение) <> Тип("Строка") Тогда
Если Настройка <> Неопределено И ТипЗнч(Настройка.Значение) <> Тип("Строка") Тогда
СтрокаТаблицы.АдресЗначения = ПоместитьВоВременноеХранилище(Настройка.Значение, Новый УникальныйИдентификатор);
КонецЕсли;
СтрокаТаблицы.ЗначениеВФорме = СтрокаТаблицы.ТипВФорме;
Иначе
СтрокаТаблицы.ЗначениеВФорме = Настройка.Значение;
Массив = Новый Массив;
Массив.Добавить(Тип(СтрокаТаблицы.Тип));
Описание = Новый ОписаниеТипов(Массив);
Значение = Описание.ПривестиЗначение(Тип(СтрокаТаблицы.Тип));
СтрокаТаблицы.ЗначениеВФорме = ?(Настройка <> Неопределено, Настройка.Значение, Значение);
КонецЕсли;
КонецПроцедуры
@ -542,67 +552,20 @@
ПараметрыФормы = Новый Структура;
МассивИменПеременных = Новый Массив;
ДополнитьПараметрыОткрытияФормы(ПараметрыФормы);
Для Каждого ТекСтрока Из Объект.Переменные Цикл
МассивИменПеременных.Добавить(ТекСтрока.Имя);
КонецЦикла;
ПараметрыФормы.Вставить("Переменные",МассивИменПеременных);
ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля", ПараметрыФормы, ЭтотОбъект,,,,
Новый ОписаниеОповещения("ОткрытьФормуВыбораПоляЗавершение", ЭтотОбъект),
РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры // ОткрытьФормуВыбораПоля()
// Оработчик оповещения "ОткрытьФормуВыбораПоляЗавершение".
//
// Параметры:
// РезСтруктура - Структура.
// Параметры - Структура.
//
&НаКлиенте
Процедура ОткрытьФормуВыбораПоляЗавершение(Результат, Параметры) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Объект.КодПодпрограммы = СтрШаблон("%1 %2", Объект.КодПодпрограммы, Результат.Имя);
УстановитьИсполняемыйКод();
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьКонструкторУсловногоВыражения()
ПараметрыФормы = Новый Структура;
СписокПеременных = Новый СписокЗначений;
Для Каждого Элемент Из Объект.Переменные Цикл
СписокПеременных.Добавить(Элемент.Имя);
КонецЦикла;
ДополнитьПараметрыОткрытияФормы(ПараметрыФормы);
ПараметрыФормы.Вставить("Переменные", СписокПеременных);
ОткрытьФорму(КлючОбъекта("УсловныйОператор"), ПараметрыФормы, ЭтотОбъект,,,,
Новый ОписаниеОповещения("ОткрытьКонструкторУсловногоВыраженияЗавершение", ЭтотОбъект));
КонецПроцедуры
// Процедура обработчик оповещения "ОткрытьКонструкторУсловногоВыраженияЗавершение".
//
// Параметры:
// РезВыражение - Строка.
// Параметры - Структура.
//
&НаКлиенте
Процедура ОткрытьКонструкторУсловногоВыраженияЗавершение(Результат, Параметры) Экспорт
Если ТипЗнч(Результат) = Тип("Строка") Тогда
Объект.КодПодпрограммы = СтрШаблон("%1 %2", Объект.КодПодпрограммы, Результат);
УстановитьИсполняемыйКод();
КонецЕсли;
ОткрытьФорму(КлючОбъекта("УсловныйОператор"), ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
@ -631,6 +594,27 @@
Возврат "Справочник.__ПользовательскиеФункции.Форма." + ИмяФормы;
КонецФункции
&НаКлиенте
Процедура ДополнитьПараметрыОткрытияФормы(ПараметрыОткрытия)
ЗначенияЗаполнения = Новый Структура;
МассивИменПеременных = Новый Массив;
Для Каждого ТекСтрока Из Объект.Переменные Цикл
МассивИменПеременных.Добавить(ТекСтрока.Имя);
КонецЦикла;
ЗначенияЗаполнения.Вставить("Переменные", МассивИменПеременных);
МассивИменПараметров = Новый Массив;
Для Каждого ТекСтрока Из Объект.ПараметрыФункции Цикл
МассивИменПараметров.Добавить(ТекСтрока.Наименование);
КонецЦикла;
ЗначенияЗаполнения.Вставить("Параметры", МассивИменПараметров);
ПараметрыОткрытия.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения);
КонецПроцедуры
#Область ОбработчикиСобытийПоляРедактора
&НаКлиенте
@ -2005,7 +1989,8 @@
&НаСервереБезКонтекста
Функция ТипСтрока(Знач Значение)
СписокДобавленныхТипов = Справочники.__ПользовательскиеФункции.СформироватьСписокТипов();
СписокДобавленныхТипов = Новый СписокЗначений;
Справочники.__ПользовательскиеФункции.СформироватьСписокТипов(СписокДобавленныхТипов);
ТипСтрока = Строка(Тип(Значение));
Если Значение = "СписокЗначений" Тогда
@ -2085,6 +2070,16 @@
КонецФункции
&НаСервереБезКонтекста
Функция СоздатьКоллекциюИПоместитьВХранилище(Знач Значение)
ПустаяКоллекция = Новый(Тип(Значение));
АдресЗначения = ПоместитьВоВременноеХранилище(ПустаяКоллекция, Новый УникальныйИдентификатор);
Возврат АдресЗначения;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -10,11 +10,69 @@
<v8:content>Field Selection</v8:content>
</v8:item>
</Title>
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<AutoTitle>false</AutoTitle>
<Customizable>false</Customizable>
<VerticalScroll>useIfNecessary</VerticalScroll>
<CommandSet>
<ExcludedCommand>Abort</ExcludedCommand>
<ExcludedCommand>Cancel</ExcludedCommand>
<ExcludedCommand>Ignore</ExcludedCommand>
<ExcludedCommand>No</ExcludedCommand>
<ExcludedCommand>OK</ExcludedCommand>
<ExcludedCommand>RestoreValues</ExcludedCommand>
<ExcludedCommand>Retry</ExcludedCommand>
<ExcludedCommand>SaveValues</ExcludedCommand>
<ExcludedCommand>Yes</ExcludedCommand>
</CommandSet>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill>
<ChildItems>
<Button name="КомандаОК" id="14">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.КомандаОК</CommandName>
<ExtendedTooltip name="КомандаОКРасширеннаяПодсказка" id="33"/>
</Button>
<Button name="ФормаЗакрыть" id="43">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отмена</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ФормаЗакрытьРасширеннаяПодсказка" id="44"/>
</Button>
<ButtonGroup name="КомандыСвернутьРазвернуть" id="37">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команды свернуть развернуть</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команды свернуть развернуть</v8:content>
</v8:item>
</ToolTip>
<Representation>Compact</Representation>
<ExtendedTooltip name="КомандыСвернутьРазвернутьРасширеннаяПодсказка" id="38"/>
<ChildItems>
<Button name="РазвернутьСтроки" id="39">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.РазвернутьСтроки</CommandName>
<ExtendedTooltip name="РазвернутьСтрокиРасширеннаяПодсказка" id="40"/>
</Button>
<Button name="СвернутьСтроки" id="41">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СвернутьСтроки</CommandName>
<ExtendedTooltip name="СвернутьСтрокиРасширеннаяПодсказка" id="42"/>
</Button>
</ChildItems>
</ButtonGroup>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
@ -102,54 +160,6 @@
</CheckBoxField>
</ChildItems>
</Table>
<CommandBar name="ДействияФормы" id="12">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Действия формы</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Form Actions</v8:content>
</v8:item>
</Title>
<HorizontalLocation>Right</HorizontalLocation>
<ExtendedTooltip name="ДействияФормыРасширеннаяПодсказка" id="32"/>
<ChildItems>
<Button name="КомандаОК" id="14">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.КомандаОК</CommandName>
<ExtendedTooltip name="КомандаОКРасширеннаяПодсказка" id="33"/>
</Button>
<Button name="Закрыть" id="15">
<Type>CommandBarButton</Type>
<Representation>Text</Representation>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отмена</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Cancel</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ЗакрытьРасширеннаяПодсказка" id="34"/>
</Button>
<Button name="КомандаОбновить" id="18">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаОбновить</CommandName>
<ExtendedTooltip name="КомандаОбновитьРасширеннаяПодсказка" id="35"/>
</Button>
<Button name="Справка" id="13">
<Type>CommandBarButton</Type>
<CommandName>Form.StandardCommand.Help</CommandName>
<ExtendedTooltip name="СправкаРасширеннаяПодсказка" id="36"/>
</Button>
</ChildItems>
</CommandBar>
</ChildItems>
<Attributes>
<Attribute name="Поля" id="1">
@ -271,21 +281,6 @@
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="Переменные" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Переменные</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Variables</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueListType</v8:Type>
</Type>
</Attribute>
<Attribute name="ОписаниеСправочники" id="4">
<Title>
<v8:item>
@ -316,6 +311,21 @@
<v8:Type>v8:TypeDescription</v8:Type>
</Type>
</Attribute>
<Attribute name="ИмяПриемника" id="6">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Имя приемника</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="КомандаОК" id="1">
@ -338,33 +348,43 @@
<Action>КомандаОК</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="КомандаОбновить" id="2">
<Command name="СвернутьСтроки" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обновить</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Refresh</v8:content>
<v8:content>Свернуть строки</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обновить</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Refresh</v8:content>
<v8:content>Свернуть строки</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.Refresh</xr:Ref>
<xr:Ref>StdPicture.CollapseAll</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаОбновить</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
<Action>СвернутьСтроки</Action>
</Command>
<Command name="РазвернутьСтроки" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Развернуть строки</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Развернуть строки</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.ExpandAll</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>РазвернутьСтроки</Action>
</Command>
</Commands>
</Form>

View File

@ -25,17 +25,21 @@
Параметры.Свойство("Режим", Режим);
Если Параметры.Свойство("Переменные") Тогда
Для Каждого Имя Из Параметры.Переменные Цикл
Переменные.Добавить(Имя);
КонецЦикла;
КонецЕсли;
Параметры.Свойство("ИмяПриемника", ИмяПриемника);
ЗначенияЗаполнения = Неопределено;
Если Параметры.Свойство("АдресЗначений") Тогда
ЗначенияЗаполнения = ПолучитьИзВременногоХранилища(Параметры.АдресЗначений);
КонецЕсли;
Если Параметры.Свойство("ЗначенияЗаполнения") Тогда
ЗначенияЗаполнения = Параметры.ЗначенияЗаполнения;
КонецЕсли;
ЗаполнитьДерево(ЗначенияЗаполнения);
ОписаниеСправочники = Справочники.ТипВсеСсылки();
ОписаниеДокументы = Документы.ТипВсеСсылки();
ОбновитьДерево();
Если Не Поля.ПолучитьЭлементы().Количество() Тогда
__ОбщегоНазначенияСлужебный.СообщитьПользователю(НСтр("ru='Нет полей для выбора.';en='No fields to select.'"),,,, Отказ);
КонецЕсли;
@ -49,9 +53,9 @@
&НаКлиенте
Процедура ПоляВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Результат = СформироватьРезСтруктуру(Элементы.Поля.ТекущаяСтрока);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Закрыть(Результат);
ВыбраннаяСтрока = Элементы.Поля.ТекущиеДанные;
Если ВыбраннаяСтрока.Доступно Тогда
ВыбратьПолеИЗакрыть(ВыбраннаяСтрока.Имя);
КонецЕсли;
КонецПроцедуры
@ -71,6 +75,23 @@
КонецПроцедуры
&НаКлиенте
Процедура РазвернутьСтроки(Команда)
__СтандартныеПодсистемыСлужебныйКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "Поля");
КонецПроцедуры
&НаКлиенте
Процедура СвернутьСтроки(Команда)
ВсеСтроки = Элементы.Поля;
Для Каждого ДанныеСтроки Из Поля.ПолучитьЭлементы() Цикл
ВсеСтроки.Свернуть(ДанныеСтроки.ПолучитьИдентификатор());
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@ -78,16 +99,12 @@
&НаКлиенте
Процедура КомандаОК(Команда)
ТекущаяСтрока = Элементы.Поля.ТекущаяСтрока;
Результат = СформироватьРезСтруктуру(ТекущаяСтрока);
Закрыть(Результат);
ВыбраннаяСтрока = Элементы.Поля.ТекущиеДанные;
Если ВыбраннаяСтрока.Доступно Тогда
ВыбратьПолеИЗакрыть(ВыбраннаяСтрока.Имя);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаОбновить(Команда)
ОбновитьДерево();
__ОбщегоНазначенияСлужебныйКлиент.СообщитьПользователю(НСтр("ru = 'Выбрано недоступное поле!'"));
КонецПроцедуры
@ -95,23 +112,13 @@
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОбновитьДерево()
&НаКлиенте
Процедура ВыбратьПолеИЗакрыть(ИмяПоля)
ДанныеДерева = Поля.ПолучитьЭлементы();
ДанныеДерева.Очистить();
Если Переменные.Количество() Тогда
ЭлементВерх = ДанныеДерева.Добавить();
ЗаполнитьЭлементДерева(ЭлементВерх, "Переменные",,,,, БиблиотекаКартинок.__Реквизиты);
Коллекция = ЭлементВерх.ПолучитьЭлементы();
Для Каждого ТекущаяПеременная Из Переменные Цикл
ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная.Значение,,, Истина, Истина);
КонецЦикла;
КонецЕсли;
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("Поле", ИмяПоля);
ПараметрыВыбора.Вставить("ИмяПриемника", ИмяПриемника);
ОповеститьОВыборе(ПараметрыВыбора);
КонецПроцедуры
@ -153,43 +160,6 @@
КонецПроцедуры
&НаСервере
Функция СобратьИмена(СтрокаСтарт)
Результат = "";
Если СтрокаСтарт <> Неопределено Тогда
Результат = СтрокаСтарт.Имя;
СтрокаРодитель = СтрокаСтарт.ПолучитьРодителя();
Если СтрокаРодитель <> Неопределено Тогда
Результат = СобратьИмена(СтрокаРодитель) + "." + Результат;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Функция СформироватьРезСтруктуру(ИдСтроки)
Результат = Неопределено;
Если ТипЗнч(ИдСтроки) = Тип("Число") Тогда
ТекущаяСтрока = Поля.НайтиПоИдентификатору(ИдСтроки);
Если Не ТекущаяСтрока = Неопределено И ТекущаяСтрока.Доступно Тогда
Результат = Новый Структура("Имя");
Результат.Имя = СобратьИмена(ТекущаяСтрока);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Процедура РазвернутьПодчиненные(ИдСтроки)
@ -266,4 +236,32 @@
КонецПроцедуры
// Процедура заполняет дерево формы "Поля"
//
// Параметры:
// ЗначенияЗаполнения - Структура - переданные значения
// * Ключ - Строка - Имя класса (переменные, параметры и т.д.)
// * Значение - Массив из Строка - Имена выбираемых полей.
//
&НаСервере
Процедура ЗаполнитьДерево(ЗначенияЗаполнения = Неопределено)
Если ЗначенияЗаполнения = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеДерева = Поля.ПолучитьЭлементы();
Для Каждого Пара Из ЗначенияЗаполнения Цикл
ЭлементВерх = ДанныеДерева.Добавить();
ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ,,,,, БиблиотекаКартинок.__Реквизиты);
Коллекция = ЭлементВерх.ПолучитьЭлементы();
Для Каждого ТекущаяПеременная Из Пара.Значение Цикл
ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная,,, Истина, Истина);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
#КонецОбласти

View File

@ -1869,6 +1869,7 @@
Продолжить;
КонецЕсли;
Переменные.Вставить(ВыборкаПерем.Имя, ВыборкаПерем.Значение);
ЗаменаПодстроки(ТекстФункции, ВыборкаПерем.Имя, "Переменные.");
КонецЦикла;
Параметры = ПодставитьПараметрыВФункцию(ТекстФункции, Параметры, ВыборкаТЧ, Отказ);
@ -2393,7 +2394,7 @@
//
Функция ПодставитьПараметрыВФункцию(Текст, Параметры, Выборка, Отказ = Ложь)
Парам = Новый Структура;
ВозвращаемыеПараметры = Новый Структура;
Пока Выборка.Следующий() Цикл
Значение = Неопределено;
Если Параметры.Свойство(Выборка.Наименование, Значение) Тогда
@ -2414,11 +2415,11 @@
Продолжить;
КонецЕсли;
Парам.Вставить(Выборка.Наименование, Значение);
ЗаменаПодстроки(Текст, Выборка.Наименование);
ВозвращаемыеПараметры.Вставить(Выборка.Наименование, Значение);
ЗаменаПодстроки(Текст, Выборка.Наименование, "Параметры.");
КонецЦикла;
Возврат Парам;
Возврат ВозвращаемыеПараметры;
КонецФункции
@ -2428,10 +2429,10 @@
// Параметры:
// Текст - Строка - Исходный текст
// Ключ - Строка - По ключу осуществляется поиск и замена
// Префикс - Строка - Для инициализации параметров и переменных при выполнении пользовательской функции
//
Процедура ЗаменаПодстроки(Текст, Ключ)
Процедура ЗаменаПодстроки(Текст, Ключ, Префикс)
Префикс = "Параметры.";
Позиция = СтрНайти(Текст, Ключ);
Пока Позиция > 0 Цикл
@ -2441,11 +2442,13 @@
СимволПосле = Сред(Текст, Позиция + СтрДлина(Ключ), 1);
КодПосле = КодСимвола(НРег(СимволПосле));
ДлинаПрефикса = 0;
Если ЭтоДопустимыйСимвол(КодДо) И ЭтоДопустимыйСимвол(КодПосле) Тогда
Текст = СтрЗаменить(Текст, СимволДо + Ключ + СимволПосле, СимволДо + Префикс + Ключ + СимволПосле);
ДлинаПрефикса = СтрДлина(Префикс);
КонецЕсли;
Позиция = СтрНайти(Текст, Ключ, НаправлениеПоиска.СНачала, Позиция + СтрДлина(Префикс) + 1);
Позиция = СтрНайти(Текст, Ключ, НаправлениеПоиска.СНачала, Позиция + ДлинаПрефикса + 1);
КонецЦикла;
@ -2464,7 +2467,8 @@
Если КодСимвола >= 48 И КодСимвола <= 57 // Цифры
Или КодСимвола >= 97 И КодСимвола <= 122 // (en) буквы
Или КодСимвола > 127 Тогда // региональные коды
Или КодСимвола > 127 // региональные коды
Или КодСимвола = 46 Или КодСимвола = 34 Тогда // точка(.), кавычка(")
Возврат Ложь;
КонецЕсли;

View 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="ae6bcb04-5364-4d8c-a78f-861a075989ec">
<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>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -0,0 +1,58 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
//
#Область ПрограммныйИнтерфейс
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
#Область МетодыАналогиБСП
// Аналог метода БСП. Разворачивает узлы указанного дерева на форме.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма, на которой размещен элемент управления с деревом значений.
// ИмяЭлементаФормы - Строка - имя элемента с таблицей формы (деревом значений) и связанного с ней
// реквизита формы (должны совпадать).
// ИдентификаторСтрокиДерева - Произвольный - идентификатор строки дерева, которую требуется развернуть.
// Если указано "*", то будут развернуты все узлы верхнего уровня.
// Если указано Неопределено, то строки дерева развернуты не будут.
// Значение по умолчанию: "*".
// РазвернутьСПодчиненными - Булево - если Истина, то следует раскрыть также и все подчиненные узлы.
// По умолчанию Ложь.
//
Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
ТаблицаЭлемент = Форма.Элементы[ИмяЭлементаФормы];
Если ИдентификаторСтрокиДерева = "*" Тогда
Узлы = Форма[ИмяЭлементаФормы].ПолучитьЭлементы();
Для Каждого Узел Из Узлы Цикл
ТаблицаЭлемент.Развернуть(Узел.ПолучитьИдентификатор(), РазвернутьСПодчиненными);
КонецЦикла;
Иначе
ТаблицаЭлемент.Развернуть(ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View 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="83961597-8445-4844-8e0b-0e5d3fc575b2">
<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>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -0,0 +1,47 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
//
#Область ПрограммныйИнтерфейс
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
#Область ПереадресацияМетодов
// См. __СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева.
Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
Модуль = ПолучитьМодуль();
Модуль.РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПолучитьМодуль()
Возврат __ОбщегоНазначенияКлиент.ОбщийМодуль("СтандартныеПодсистемыКлиент", "__СтандартныеПодсистемыКлиент");
КонецФункции
#КонецОбласти

View File

@ -311,7 +311,9 @@
<CommonModule>__СправочникиПередЗаписью</CommonModule>
<CommonModule>__СправочникиПриЗаписи</CommonModule>
<CommonModule>__СправочникиПриКопировании</CommonModule>
<CommonModule>__СтандартныеПодсистемыКлиент</CommonModule>
<CommonModule>__СтандартныеПодсистемыПовтИсп</CommonModule>
<CommonModule>__СтандартныеПодсистемыСлужебныйКлиент</CommonModule>
<CommonModule>__СтандартныеПодсистемыСлужебныйПовтИсп</CommonModule>
<CommonModule>__СтроковыеФункцииКлиентСервер</CommonModule>
<CommonModule>__СтроковыеФункцииСлужебныйКлиентСервер</CommonModule>