3_1_5_192
This commit is contained in:
1 parent
ebd39458e4
commit
8e46accf22
72 files changed
+1407
-670
No files matched your search
@@ -219,7 +219,7 @@
|
||||
// ИмяТабличногоДокумента - Строка - имя реквизита формы типа ТабличныйДокумент, показатели которого рассчитываются.
|
||||
// ТекущаяКоманда - Строка - имя команды расчета показателя, например, "РассчитатьСумму".
|
||||
// Определяет, какой показатель является основным.
|
||||
// МинимальноеКоличество - Число
|
||||
// МинимальноеКоличество - Число
|
||||
//
|
||||
Процедура РассчитатьПоказатели(Форма, ИмяТабличногоДокумента, ТекущаяКоманда = "", МинимальноеКоличество = 0) Экспорт
|
||||
|
||||
@@ -231,43 +231,38 @@
|
||||
ТекущаяКоманда = ТекущаяКомандаРасчетаПоказателей(Элементы);
|
||||
КонецЕсли;
|
||||
|
||||
// Расчет показателей.
|
||||
РасчетныеПоказатели = ОбщегоНазначенияКлиентСервер.РасчетныеПоказателиЯчеек(
|
||||
ТабличныйДокумент, ПолеТабличногоДокумента);
|
||||
ПараметрыРасчета = ОбщегоНазначенияКлиентСервер.ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента);
|
||||
|
||||
// Установка значений показателей.
|
||||
ЗаполнитьЗначенияСвойств(Форма, РасчетныеПоказатели);
|
||||
|
||||
// Переключение и форматирование показателей.
|
||||
КомандыПоказателей = КомандыПоказателей();
|
||||
|
||||
Для Каждого Команда Из КомандыПоказателей Цикл
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, Команда.Ключ, "Пометка", Ложь);
|
||||
Если ПараметрыРасчета.РассчитатьНаСервере Тогда
|
||||
|
||||
ДлительнаяОперация = СтандартныеПодсистемыВызовСервера.РасчетныеПоказателиЯчеек(
|
||||
ТабличныйДокумент, ПараметрыРасчета.ВыделенныеОбласти, Форма.УникальныйИдентификатор);
|
||||
|
||||
Если ДлительнаяОперация = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
|
||||
ПараметрыОжидания.ФормаВладелец = Форма;
|
||||
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("Форма", Форма);
|
||||
ДополнительныеПараметры.Вставить("ТекущаяКоманда", ТекущаяКоманда);
|
||||
ДополнительныеПараметры.Вставить("МинимальноеКоличество", МинимальноеКоличество);
|
||||
|
||||
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПродолжитьРасчетПоказателей", ЭтотОбъект, ДополнительныеПараметры);
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
|
||||
|
||||
Иначе
|
||||
|
||||
РасчетныеПоказатели = ОбщегоНазначенияКлиентСервер.РасчетныеПоказателиЯчеек(
|
||||
ТабличныйДокумент, ПолеТабличногоДокумента, ПараметрыРасчета);
|
||||
|
||||
ЗавершитьРасчетПоказателей(Форма, ТекущаяКоманда, МинимальноеКоличество, РасчетныеПоказатели);
|
||||
|
||||
ЗначениеПоказателя = РасчетныеПоказатели[Команда.Значение];
|
||||
Элементы[Команда.Значение].ФорматРедактирования = ФорматРедактированияПоказателя(ЗначениеПоказателя);
|
||||
КонецЦикла;
|
||||
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, ТекущаяКоманда, "Пометка", Истина);
|
||||
|
||||
// Вывод основного показателя.
|
||||
ТекущийПоказатель = КомандыПоказателей[ТекущаяКоманда];
|
||||
|
||||
Если РасчетныеПоказатели.Количество >= МинимальноеКоличество Тогда
|
||||
Форма.Показатель = Форма[ТекущийПоказатель];
|
||||
Элементы.Показатель.ФорматРедактирования = Элементы[ТекущийПоказатель].ФорматРедактирования;
|
||||
КонецЕсли;
|
||||
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(
|
||||
Элементы, "КомандыВидовПоказателей", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
|
||||
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(
|
||||
Элементы, "ВыбратьПоказатель", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
|
||||
|
||||
// Кэширование состояния выбора показателей.
|
||||
Форма.ОсновнойПоказатель = ТекущаяКоманда;
|
||||
Форма.РазвернутьОбластьПоказателей = Элементы.РассчитатьВсеПоказатели.Пометка;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Управляет признаком видимости панели расчетных показателей.
|
||||
@@ -994,6 +989,65 @@
|
||||
|
||||
#Область ТабличныйДокумент
|
||||
|
||||
Процедура ПродолжитьРасчетПоказателей(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Статус = "Ошибка" Тогда
|
||||
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Статус <> "Выполнено" Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
РасчетныеПоказатели = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
|
||||
|
||||
ЗавершитьРасчетПоказателей(
|
||||
ДополнительныеПараметры.Форма,
|
||||
ДополнительныеПараметры.ТекущаяКоманда,
|
||||
ДополнительныеПараметры.МинимальноеКоличество,
|
||||
РасчетныеПоказатели);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗавершитьРасчетПоказателей(Форма, ТекущаяКоманда, МинимальноеКоличество, РасчетныеПоказатели)
|
||||
|
||||
Элементы = Форма.Элементы;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Форма, РасчетныеПоказатели);
|
||||
|
||||
КомандыПоказателей = КомандыПоказателей();
|
||||
|
||||
Для Каждого Команда Из КомандыПоказателей Цикл
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, Команда.Ключ, "Пометка", Ложь);
|
||||
|
||||
ЗначениеПоказателя = РасчетныеПоказатели[Команда.Значение];
|
||||
Элементы[Команда.Значение].ФорматРедактирования = ФорматРедактированияПоказателя(ЗначениеПоказателя);
|
||||
КонецЦикла;
|
||||
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, ТекущаяКоманда, "Пометка", Истина);
|
||||
|
||||
ТекущийПоказатель = КомандыПоказателей[ТекущаяКоманда];
|
||||
|
||||
Если РасчетныеПоказатели.Количество >= МинимальноеКоличество Тогда
|
||||
Форма.Показатель = Форма[ТекущийПоказатель];
|
||||
Элементы.Показатель.ФорматРедактирования = Элементы[ТекущийПоказатель].ФорматРедактирования;
|
||||
КонецЕсли;
|
||||
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(
|
||||
Элементы, "КомандыВидовПоказателей", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
|
||||
|
||||
ИзменитьСвойствоЭлементаРасчетаПоказателей(
|
||||
Элементы, "ВыбратьПоказатель", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
|
||||
|
||||
Форма.ОсновнойПоказатель = ТекущаяКоманда;
|
||||
Форма.РазвернутьОбластьПоказателей = Элементы.РассчитатьВсеПоказатели.Пометка;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТекущаяКомандаРасчетаПоказателей(ЭлементыФормы)
|
||||
|
||||
Перем ТекущаяКоманда;
|
||||
|
||||
Reference in new issue
Block a user