+ доп функции
This commit is contained in:
parent
29d5d1769f
commit
bb635b5074
@ -1,11 +1,11 @@
|
|||||||
|
&НаСервере
|
||||||
|
Перем Кеш;
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||||
//УИ_ОбщегоНазначения.ФормаИнструментаПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
|
//УИ_ОбщегоНазначения.ФормаИнструментаПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Функция СтрокуВДату(СтрокаДата)
|
Функция СтрокуВДату(СтрокаДата)
|
||||||
Попытка
|
Попытка
|
||||||
@ -447,10 +447,225 @@
|
|||||||
ОткрытьФорму("ВнешняяОбработка.ИнформацияОЛицензиях1С.Форма.ФормаАктивацииЛицензии", ПараметрыОткрытия);
|
ОткрытьФорму("ВнешняяОбработка.ИнформацияОЛицензиях1С.Форма.ФормаАктивацииЛицензии", ПараметрыОткрытия);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#Область Кеш
|
||||||
|
Функция Кеш_Установить(Ключ, Значение)
|
||||||
|
Если Неопределено = Кеш Тогда
|
||||||
|
Кеш = Новый Соответствие;
|
||||||
|
КонецЕсли;
|
||||||
|
Кеш[Ключ] = Значение;
|
||||||
|
Возврат Значение;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция Кеш_Получить(Ключ)
|
||||||
|
Результат = Неопределено;
|
||||||
|
Если НЕ Неопределено = Кеш Тогда
|
||||||
|
Результат = Кеш.Получить(Ключ);
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область Функциональщина
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция ВыполнитьФрагмент(Знач Код, Вход, ИмяВход = "Вход", ИмяВыход = "Выход", Инициализировать = Ложь, _ = Неопределено)
|
||||||
|
Выход = ?(Инициализировать, Вход, Неопределено);
|
||||||
|
|
||||||
|
Если НЕ "Вход" = ИмяВход Тогда
|
||||||
|
Код = СтрШаблон("%1=Вход;%2", ИмяВход, Код);
|
||||||
|
КонецЕсли;
|
||||||
|
Если НЕ "Выход" = ИмяВыход Тогда
|
||||||
|
Код = СтрШаблон("%1;Выход=%2", Код, ИмяВыход);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Выполнить(Код);
|
||||||
|
|
||||||
|
Возврат Выход;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Мап(Код, Коллекция, _ = Неопределено)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого Элемент Из Коллекция Цикл
|
||||||
|
НовыйЭлемент = ВыполнитьФрагмент(Код, Элемент, "Элемент", "Результат", Истина, _);
|
||||||
|
Результат.Добавить(НовыйЭлемент);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Фильтр(КодУсловия, Коллекция, _ = Неопределено)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого Элемент Из Коллекция Цикл
|
||||||
|
Условие = ВыполнитьФрагмент(КодУсловия, Элемент, "Элемент", "Условие", , _);
|
||||||
|
Если Условие Тогда
|
||||||
|
Результат.Добавить(Элемент);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция ВыполнитьФрагмент_ДляСвертки(Знач Код, Элемент, Знач Результат, _ = Неопределено)
|
||||||
|
Выполнить(Код);
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Свернуть(Код, Коллекция, Знач Результат = Неопределено, _ = Неопределено)
|
||||||
|
Для Каждого Элемент Из Коллекция Цикл
|
||||||
|
Результат = ВыполнитьФрагмент_ДляСвертки(Код, Элемент, Результат, _);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция ВзятьНеБольше(Коллекция, Знач Количество)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
Для Каждого ТекСтр Из Коллекция Цикл
|
||||||
|
Если 1 > Количество Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат.Добавить(ТекСтр);
|
||||||
|
|
||||||
|
Количество = Количество - 1;
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Пропустить(Коллекция, Знач Количество)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
Для Каждого ТекСтр Из Коллекция Цикл
|
||||||
|
Если 0 < Количество Тогда
|
||||||
|
Количество = Количество - 1;
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат.Добавить(ТекСтр);
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Обратить(Знач Коллекция)
|
||||||
|
Если 0 = Коллекция.Количество() Тогда
|
||||||
|
Возврат Коллекция;
|
||||||
|
КонецЕсли;
|
||||||
|
Результат = Новый Массив;
|
||||||
|
Для Смещение = 1 По Коллекция.Количество() Цикл
|
||||||
|
ТекИндекс = Коллекция.Количество() - Смещение;
|
||||||
|
Результат.Добавить(Коллекция[ТекИндекс]);
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Ключи(Знач КоллекцияКЗ)
|
||||||
|
Возврат Мап("Результат = Элемент.Ключ", КоллекцияКЗ);
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Значения(Знач КоллекцияКЗ)
|
||||||
|
Возврат Мап("Результат = Элемент.Значение", КоллекцияКЗ);
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция СимволыВСтроке(Знач Стр)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
Для Сч = 1 По СтрДлина(Стр) Цикл
|
||||||
|
Результат.Добавить(Сред(Стр, Сч, 1));
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция МассивПоДиапазонуЧисел(Число_С, Число_По)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
Для ТекЧисло = Число_С По Число_По Цикл
|
||||||
|
Результат.Добавить(ТекЧисло);
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция ЭтоКоллекция(ЧтоТо)
|
||||||
|
Результат = Ложь;
|
||||||
|
Если Неопределено = ЧтоТо Тогда
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
Для Каждого ТекСтр Из ЧтоТо Цикл
|
||||||
|
Прервать;
|
||||||
|
КонецЦикла;
|
||||||
|
Результат = Истина;
|
||||||
|
Исключение
|
||||||
|
;
|
||||||
|
КонецПопытки;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция Транспонировать(МассивМассивов)
|
||||||
|
// аналог zip || транспонирует двумерный массив
|
||||||
|
Результат = Новый Массив;
|
||||||
|
МинКоличество = Неопределено;
|
||||||
|
|
||||||
|
Для Каждого ТекМассив Из МассивМассивов Цикл
|
||||||
|
Если Неопределено = МинКоличество Тогда
|
||||||
|
МинКоличество = ТекМассив.Количество();
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
МинКоличество = Мин(МинКоличество, ТекМассив.Количество());
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если 0 = МинКоличество Тогда
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Индекс = 0 По МинКоличество - 1 Цикл
|
||||||
|
Элемент = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого ТекМассив Из МассивМассивов Цикл
|
||||||
|
Элемент.Добавить(ТекМассив[Индекс]);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Результат.Добавить(Элемент);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
Функция ОбходДерева(Дерево, Знач КодСтроки = "", Знач ВШирину = Ложь)
|
||||||
|
Результат = Новый Массив;
|
||||||
|
|
||||||
|
Очередь = Новый Массив;
|
||||||
|
Очередь.Добавить(Дерево);
|
||||||
|
Пока Очередь.Количество() > 0 Цикл
|
||||||
|
Индекс_Следующий = ?(ВШирину, 0, Очередь.ВГраница());
|
||||||
|
Узел = Очередь.Получить(Индекс_Следующий);
|
||||||
|
Очередь.Удалить(Индекс_Следующий);
|
||||||
|
|
||||||
|
Результат.Добавить(Узел);
|
||||||
|
|
||||||
|
Строки = Неопределено;
|
||||||
|
// для массива массивов не нужно определять свойство где лежат строки
|
||||||
|
Если ПустаяСтрока(КодСтроки) Тогда
|
||||||
|
Строки = Узел;
|
||||||
|
Иначе
|
||||||
|
Строки = Вычислить(КодСтроки);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НЕ ЭтоКоллекция(Строки) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого ТекСтр Из Строки Цикл
|
||||||
|
Очередь.Добавить(ТекСтр);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Функция SPS_ЭтоWindows()
|
Функция SPS_ЭтоWindows()
|
||||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||||
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
|
Возврат СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
|
||||||
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64;
|
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user