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:
parent
37712a2817
commit
f17690e9fb
@ -55,6 +55,8 @@
|
||||
СписокТипов.Добавить("Массив", НСтр("ru = 'Массив'"));
|
||||
СписокТипов.Добавить("Структура", НСтр("ru = 'Структура'"));
|
||||
|
||||
СписокДобавленныхТипов = СписокТипов.Скопировать();
|
||||
|
||||
Для каждого Стр Из НеПримитивныеТипы Цикл
|
||||
ЗначениеТипа = XMLТип(Стр.Значение).ИмяТипа;
|
||||
ПредставлениеТипа = Строка(Стр.Значение);
|
||||
@ -381,8 +383,9 @@
|
||||
//
|
||||
Процедура ЗаполнитьПараметры(Объект) Экспорт
|
||||
|
||||
Объект.ПараметрыФункции.Очистить();
|
||||
|
||||
Если Объект.Контекст = Перечисления.__КонтекстыВыполненияПользовательскихФункций.ЗагрузкаЭксель Тогда
|
||||
Объект.ПараметрыФункции.Очистить();
|
||||
ДобавитьПараметрыЗагрузкаЭксель(Объект);
|
||||
КонецЕсли;
|
||||
|
||||
@ -395,27 +398,65 @@
|
||||
// Выполняет добавляет параметр при отсутствии.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяПараметра - Строка.
|
||||
// Объект - СправочникОбъект.__ПользовательскиеФункции - Изменяемый объект.
|
||||
// ИмяПараметра - Строка - Имя добавляемого параметра.
|
||||
// ТипПараметра - Строка - Подставляемый тип в строковом, по умолчанию остается пустой.
|
||||
//
|
||||
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра)
|
||||
Процедура НайтиДобавитьПараметр(Объект, ИмяПараметра, ТипПараметра = Неопределено)
|
||||
|
||||
ТипСтрокой = ТипСтрокой(ТипПараметра);
|
||||
|
||||
ДанныеПоиска = Объект.ПараметрыФункции.НайтиСтроки(
|
||||
Новый Структура("Наименование", ИмяПараметра));
|
||||
|
||||
Если Не ДанныеПоиска.Количество() Тогда
|
||||
Если Не ЗначениеЗаполнено(ДанныеПоиска) Тогда
|
||||
НоваяСтрока = Объект.ПараметрыФункции.Добавить();
|
||||
НоваяСтрока.Наименование = ИмяПараметра;
|
||||
НоваяСтрока.Идентификатор = Новый УникальныйИдентификатор;
|
||||
НоваяСтрока.Тип = ТипСтрокой;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТипСтрокой(Тип)
|
||||
|
||||
Если Тип = Неопределено Тогда
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
СписокДобавленныхТипов = Новый СписокЗначений;
|
||||
СформироватьСписокТипов(СписокДобавленныхТипов);
|
||||
|
||||
ТипСтрокой = Строка(Тип);
|
||||
|
||||
ТипНайден = Ложь;
|
||||
Для Каждого ЭлементСписка Из СписокДобавленныхТипов Цикл
|
||||
Если ЭлементСписка.Представление = ТипСтрокой Тогда
|
||||
ТипНайден = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ТипНайден Тогда
|
||||
ТипСтрокой = XMLТип(Тип).ИмяТипа;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТипСтрокой;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет параметры, необходимые для контекста ЗагрузкаЭксель.
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект.__ПользовательскиеФункции - Изменяемый объект.
|
||||
//
|
||||
Процедура ДобавитьПараметрыЗагрузкаЭксель(Объект)
|
||||
|
||||
ТипСтруктура = Тип("Структура");
|
||||
ТипСтрока = Тип("Строка");
|
||||
НайтиДобавитьПараметр(Объект, "СтрокаЗагрузки");
|
||||
НайтиДобавитьПараметр(Объект, "ДанныеЗагрузки");
|
||||
НайтиДобавитьПараметр(Объект, "СтрокаПравил");
|
||||
НайтиДобавитьПараметр(Объект, "ДанныеЗагрузки", ТипСтруктура);
|
||||
НайтиДобавитьПараметр(Объект, "СтрокаПравил", ТипСтрока);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -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">
|
||||
|
@ -25,10 +25,8 @@
|
||||
|
||||
Параметры.Свойство("Режим", Режим);
|
||||
|
||||
Если Параметры.Свойство("Переменные") Тогда
|
||||
Для Каждого ТекущаяПеременна Из Параметры.Переменные Цикл
|
||||
СписокПеременных.Добавить(ТекущаяПеременна.Значение);
|
||||
КонецЦикла;
|
||||
Если Параметры.Свойство("ЗначенияЗаполнения") Тогда
|
||||
АдресЗначений = ПоместитьВоВременноеХранилище(Параметры.ЗначенияЗаполнения, УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
НадписьСинтаксис = НСтр("ru = '?(<ЛогическоеВыражение>,<ВыражениеЕслиИстина>,<ВыражениеЕслиЛожь>)';
|
||||
@ -90,7 +88,7 @@
|
||||
Процедура КомандаОК(Команда)
|
||||
|
||||
ОбновитьВыражениеРезультат();
|
||||
Закрыть(ВыражениеРезультат);
|
||||
ОповеститьОВыборе(Новый Структура("Поле", ВыражениеРезультат));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -103,7 +101,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьВыражениеРезультат()
|
||||
|
||||
ВыражениеРезультат = СтрШаблон("?(%1, %2, %3);", ЛогическоеВыражение, ВыражениеИстина, ВыражениеЛожь);
|
||||
ВыражениеРезультат = СтрШаблон("?(%1, %2, %3)", ЛогическоеВыражение, ВыражениеИстина, ВыражениеЛожь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -116,28 +114,22 @@
|
||||
|
||||
ПараметрыФормы.Вставить("Режим", Режим);
|
||||
|
||||
Если СписокПеременных.Количество() Тогда
|
||||
ПараметрыФормы.Вставить("Переменные", СписокПеременных.ВыгрузитьЗначения());
|
||||
КонецЕсли;
|
||||
Если Не ПустаяСтрока(АдресЗначений) Тогда
|
||||
ПараметрыФормы.Вставить("АдресЗначений", АдресЗначений);
|
||||
КонецЕсли;
|
||||
ПараметрыФормы.Вставить("ИмяПриемника", ИмяПриемника);
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля",
|
||||
ПараметрыФормы, ЭтотОбъект,,,,
|
||||
Новый ОписаниеОповещения("ВыборПоляЗавершение", ЭтотОбъект, Новый Структура("ИмяПриемника", ИмяПриемника)),
|
||||
РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
|
||||
ОткрытьФорму("ОбщаяФорма.__ФормаВыбораПоля", ПараметрыФормы, ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обработчик оповещения "ВыборПоляЗавершение".
|
||||
//
|
||||
// Параметры:
|
||||
// РезСтруктура - КодВозвратаДиалога.
|
||||
// ДополнительныеДанные - Структура.
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ВыборПоляЗавершение(Результат, ДополнительныеДанные) Экспорт
|
||||
|
||||
Если ТипЗнч(Результат) = Тип("Структура") Тогда
|
||||
Элементы[ДополнительныеДанные.ИмяПриемника].ВыделенныйТекст = Результат.Имя;
|
||||
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
|
||||
|
||||
Если ИсточникВыбора.ИмяФормы = "ОбщаяФорма.__ФормаВыбораПоля" Тогда
|
||||
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
|
||||
Элементы[ВыбранноеЗначение.ИмяПриемника].ВыделенныйТекст = ВыбранноеЗначение.Поле;
|
||||
КонецЕсли;
|
||||
ОбновитьВыражениеРезультат();
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
Если Параметры.Свойство("АдресЗначения", АдресЗначения) Тогда
|
||||
Таблица = ПолучитьИзВременногоХранилища(АдресЗначения);
|
||||
Если Таблица <> Неопределено Тогда
|
||||
Если ТипЗнч(Таблица) = Тип("ТаблицаЗначений") И ЗначениеЗаполнено(Таблица.Колонки) Тогда
|
||||
Для Каждого Колонка Из Таблица.Колонки Цикл
|
||||
// Заполняем таблицу колонок
|
||||
нСтрока = КолонкиТаблицыЗначений.Добавить();
|
||||
|
@ -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 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция СоздатьКоллекциюИПоместитьВХранилище(Знач Значение)
|
||||
|
||||
ПустаяКоллекция = Новый(Тип(Значение));
|
||||
АдресЗначения = ПоместитьВоВременноеХранилище(ПустаяКоллекция, Новый УникальныйИдентификатор);
|
||||
|
||||
Возврат АдресЗначения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -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>
|
@ -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 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Процедура заполняет дерево формы "Поля"
|
||||
//
|
||||
// Параметры:
|
||||
// ЗначенияЗаполнения - Структура - переданные значения
|
||||
// * Ключ - Строка - Имя класса (переменные, параметры и т.д.)
|
||||
// * Значение - Массив из Строка - Имена выбираемых полей.
|
||||
//
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьДерево(ЗначенияЗаполнения = Неопределено)
|
||||
|
||||
Если ЗначенияЗаполнения = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеДерева = Поля.ПолучитьЭлементы();
|
||||
Для Каждого Пара Из ЗначенияЗаполнения Цикл
|
||||
ЭлементВерх = ДанныеДерева.Добавить();
|
||||
ЗаполнитьЭлементДерева(ЭлементВерх, Пара.Ключ,,,,, БиблиотекаКартинок.__Реквизиты);
|
||||
|
||||
Коллекция = ЭлементВерх.ПолучитьЭлементы();
|
||||
|
||||
Для Каждого ТекущаяПеременная Из Пара.Значение Цикл
|
||||
ЗаполнитьЭлементДерева(Коллекция.Добавить(), ТекущаяПеременная,,, Истина, Истина);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -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 Тогда // точка(.), кавычка(")
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
|
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="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>
|
@ -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/
|
||||
//
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#Область МетодыАналогиБСП
|
||||
|
||||
// Аналог метода БСП. Разворачивает узлы указанного дерева на форме.
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения - форма, на которой размещен элемент управления с деревом значений.
|
||||
// ИмяЭлементаФормы - Строка - имя элемента с таблицей формы (деревом значений) и связанного с ней
|
||||
// реквизита формы (должны совпадать).
|
||||
// ИдентификаторСтрокиДерева - Произвольный - идентификатор строки дерева, которую требуется развернуть.
|
||||
// Если указано "*", то будут развернуты все узлы верхнего уровня.
|
||||
// Если указано Неопределено, то строки дерева развернуты не будут.
|
||||
// Значение по умолчанию: "*".
|
||||
// РазвернутьСПодчиненными - Булево - если Истина, то следует раскрыть также и все подчиненные узлы.
|
||||
// По умолчанию Ложь.
|
||||
//
|
||||
Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
|
||||
|
||||
ТаблицаЭлемент = Форма.Элементы[ИмяЭлементаФормы];
|
||||
Если ИдентификаторСтрокиДерева = "*" Тогда
|
||||
Узлы = Форма[ИмяЭлементаФормы].ПолучитьЭлементы();
|
||||
Для Каждого Узел Из Узлы Цикл
|
||||
ТаблицаЭлемент.Развернуть(Узел.ПолучитьИдентификатор(), РазвернутьСПодчиненными);
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ТаблицаЭлемент.Развернуть(ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
@ -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>
|
@ -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/
|
||||
//
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#Область ПереадресацияМетодов
|
||||
|
||||
// См. __СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева.
|
||||
Процедура РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева = "*", РазвернутьСПодчиненными = Ложь) Экспорт
|
||||
|
||||
Модуль = ПолучитьМодуль();
|
||||
Модуль.РазвернутьУзлыДерева(Форма, ИмяЭлементаФормы, ИдентификаторСтрокиДерева, РазвернутьСПодчиненными);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПолучитьМодуль()
|
||||
Возврат __ОбщегоНазначенияКлиент.ОбщийМодуль("СтандартныеПодсистемыКлиент", "__СтандартныеПодсистемыКлиент");
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -311,7 +311,9 @@
|
||||
<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