2_3_1_88
This commit is contained in:
1 parent
00b9f21404
commit
3d1db4a506
2112 files changed
+224261
-95824
No files matched your search
@@ -3,27 +3,29 @@
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обработка результата выполнения.
|
||||
// Регистрация результата работы для вывода на клиенте.
|
||||
|
||||
// Формирует шаблон результата выполнения.
|
||||
// Формирует структуру для регистрации результата выполнения и последующего вывода.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// Возвращаемое значение:
|
||||
// Результат - Структура - Результат выполнения операции, который необходимо вывести.
|
||||
// * Шаги - СписокЗначений - Шаги сценария.
|
||||
// * Представление - Имя шага.
|
||||
// * Значение - Параметры шага.
|
||||
//
|
||||
Функция НовыйРезультатВыполнения(Результат = Неопределено) Экспорт
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Функция ОписаниеРезультатаВыполнения(Результат = Неопределено) Экспорт
|
||||
Если Результат = Неопределено Тогда
|
||||
Результат = Новый Структура;
|
||||
КонецЕсли;
|
||||
|
||||
Результат.Вставить("ВыводОповещения", Новый Структура("Использование, Заголовок, Ссылка, Текст, Картинка", Ложь));
|
||||
Результат.Вставить("ВыводСообщения", Новый Структура("Использование, Текст, ПутьКРеквизитуФормы", Ложь));
|
||||
Результат.Вставить("ВыводПредупреждения", Новый Структура("Использование, Заголовок, Текст, ПутьКРеквизитуФормы, ТекстОшибок", Ложь));
|
||||
Результат.Вставить("ОповещениеФорм", Новый Структура("Использование, ИмяСобытия, Параметр, Источник", Ложь));
|
||||
Результат.Вставить("ОповещениеДинамическихСписков", Новый Структура("Использование, СсылкаИлиТип", Ложь));
|
||||
|
||||
Если Не Результат.Свойство("Шаги") Тогда
|
||||
Результат.Вставить("Шаги", Новый СписокЗначений);
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
@@ -32,42 +34,34 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// ИзмененныеОбъекты - Массив - Ссылки измененных объектов.
|
||||
// СсылкаИлиТипИлиМассив - Массив - Тип или ссылки измененных объектов.
|
||||
//
|
||||
Процедура ОповеститьДинамическиеСписки(Результат, ИзмененныеОбъекты) Экспорт
|
||||
Если ТипЗнч(ИзмененныеОбъекты) <> Тип("Массив") Или ИзмененныеОбъекты.Количество() = 0 Тогда
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ОповеститьДинамическиеСписки(Результат, СсылкаИлиТипИлиМассив) Экспорт
|
||||
Если СсылкаИлиТипИлиМассив = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Результат.Свойство("ОповещениеДинамическихСписков") Тогда
|
||||
Результат.Вставить("ОповещениеДинамическихСписков", Новый Структура("Использование, СсылкаИлиТип", Ложь));
|
||||
КонецЕсли;
|
||||
Оповещение = Результат.ОповещениеДинамическихСписков;
|
||||
Оповещение.Использование = Истина;
|
||||
|
||||
Значение = Оповещение.СсылкаИлиТип;
|
||||
ЗначениеЗаполнено = ЗначениеЗаполнено(Значение);
|
||||
|
||||
Если ИзмененныеОбъекты.Количество() = 1 И НЕ ЗначениеЗаполнено Тогда
|
||||
Оповещение.СсылкаИлиТип = ИзмененныеОбъекты[0];
|
||||
Иначе
|
||||
// Преобразование оповещения в массив.
|
||||
ТипЗначения = ТипЗнч(Значение);
|
||||
Если ТипЗначения <> Тип("Массив") Тогда
|
||||
Оповещение.СсылкаИлиТип = Новый Массив;
|
||||
Если ЗначениеЗаполнено Тогда
|
||||
Оповещение.СсылкаИлиТип.Добавить(?(ТипЗначения = Тип("Тип"), Значение, ТипЗначения));
|
||||
// Преобразование оповещения в массив.
|
||||
МассивТипов = Новый Массив;
|
||||
ТипЗначения = ТипЗнч(СсылкаИлиТипИлиМассив);
|
||||
Если ТипЗначения = Тип("Массив") Тогда
|
||||
Для Каждого Элемент Из СсылкаИлиТипИлиМассив Цикл
|
||||
ТипЭлемента = ТипЗнч(Элемент);
|
||||
Если ТипЭлемента = Тип("Тип") Тогда
|
||||
ТипЭлемента = Элемент;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Добавление типов измененных объектов.
|
||||
Для Каждого ИзмененныйОбъект Из ИзмененныеОбъекты Цикл
|
||||
ТипИзмененногоОбъекта = ТипЗнч(ИзмененныйОбъект);
|
||||
Если Оповещение.СсылкаИлиТип.Найти(ТипИзмененногоОбъекта) = Неопределено Тогда
|
||||
Оповещение.СсылкаИлиТип.Добавить(ТипИзмененногоОбъекта);
|
||||
Если МассивТипов.Найти(ТипЭлемента) = Неопределено Тогда
|
||||
МассивТипов.Добавить(ТипЭлемента);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
МассивТипов.Добавить(СсылкаИлиТипИлиМассив);
|
||||
КонецЕсли;
|
||||
|
||||
ДобавитьШаг(Результат, "ОповеститьДинамическиеСписки", Новый Структура("МассивТипов", МассивТипов));
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет в структуру информацию о событии, о котором надо оповестить все открытые формы.
|
||||
@@ -75,20 +69,24 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// ИмяСобытия - Строка - Имя события, которое используется для первичной идентификации сообщений принимающими формами.
|
||||
// Параметр - Произвольный - Набор данных, которые используются принимающей формой для обновления состава.
|
||||
// Источник - Произвольный - Источник оповещения, например форма-источником.
|
||||
// ИмяСобытия - Строка - Имя события, которое используется для первичной идентификации сообщения принимающими формами.
|
||||
// Параметр - Произвольный - Набор данных, который может использоваться принимающей формой для обновления.
|
||||
// Источник - Произвольный - Источник оповещения.
|
||||
//
|
||||
Процедура РезультатВыполненияДобавитьОповещениеОткрытыхФорм(Результат, ИмяСобытия, Параметр = Неопределено, Источник = Неопределено) Экспорт
|
||||
Если Не Результат.Свойство("ОповещениеФорм") Тогда
|
||||
Результат.Вставить("ОповещениеФорм", Новый Массив);
|
||||
ИначеЕсли ТипЗнч(Результат.ОповещениеФорм) = Тип("Структура") Тогда // Структуру в массив структур.
|
||||
ОповещениеФорм = Результат.ОповещениеФорм;
|
||||
Результат.ОповещениеФорм = Новый Массив;
|
||||
Результат.ОповещениеФорм.Добавить(ОповещениеФорм);
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ОповеститьОткрытыеФормы(Результат, ИмяСобытия, Параметр = Неопределено, Источник = Неопределено) Экспорт
|
||||
Если ИмяСобытия = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ОповещениеФорм = Новый Структура("Использование, ИмяСобытия, Параметр, Источник", Истина, ИмяСобытия, Параметр, Источник);
|
||||
Результат.ОповещениеФорм.Добавить(ОповещениеФорм);
|
||||
|
||||
ОповещениеФорм = Новый Структура("ИмяСобытия, Параметр, Источник");
|
||||
ОповещениеФорм.ИмяСобытия = ИмяСобытия;
|
||||
ОповещениеФорм.Параметр = Параметр;
|
||||
ОповещениеФорм.Источник = Источник;
|
||||
|
||||
ДобавитьШаг(Результат, "ОповеститьОткрытыеФормы", ОповещениеФорм);
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет в структуру информацию об узлах дерева, которые необходимо "развернуть".
|
||||
@@ -104,21 +102,20 @@
|
||||
// СПодчиненными - Булево - Необязательный. Раскрывать ли подчиненные узлы.
|
||||
// Значение по умолчанию: Ложь (не раскрывать подчиненные узлы).
|
||||
//
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура РазвернутьУзлыДерева(Результат, ИмяТаблицы, Идентификатор = "*", СПодчиненными = Ложь) Экспорт
|
||||
Если Идентификатор = Неопределено Тогда
|
||||
Если ИмяТаблицы = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Результат.Свойство("РазворачиваемыеУзлы") Тогда
|
||||
Результат.Вставить("РазворачиваемыеУзлы", Новый Массив);
|
||||
КонецЕсли;
|
||||
|
||||
РазворачиваемыйУзел = Новый Структура("ИмяТаблицы, Идентификатор, СПодчиненными");
|
||||
РазворачиваемыйУзел.ИмяТаблицы = ИмяТаблицы;
|
||||
РазворачиваемыйУзел.Идентификатор = Идентификатор;
|
||||
РазворачиваемыйУзел.СПодчиненными = СПодчиненными;
|
||||
|
||||
Результат.РазворачиваемыеУзлы.Добавить(РазворачиваемыйУзел);
|
||||
ДобавитьШаг(Результат, "РазвернутьУзлыДерева", РазворачиваемыйУзел);
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет в структуру информацию, необходимую для вывода предупреждения или текста ошибки.
|
||||
@@ -127,21 +124,25 @@
|
||||
// Параметры:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// Текст - Строка - Текст предупреждения.
|
||||
// ТекстОшибок - Строка - Необязательный. Тексты ошибок, которые при желании может просмотреть пользователь.
|
||||
// Подробно - Строка - Необязательный. Тексты ошибок, которые при желании может просмотреть пользователь.
|
||||
// Заголовок - Строка - Необязательный. Заголовок окна.
|
||||
// ПутьКРеквизитуФормы - Строка - Необязательный. Путь к реквизиту формы, значение которого вызывало ошибку.
|
||||
//
|
||||
Процедура ВывестиПредупреждение(Результат, Текст, ТекстОшибок = "", Заголовок = "", ПутьКРеквизитуФормы = "") Экспорт
|
||||
ВыводПредупреждения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ВыводПредупреждения");
|
||||
Если ВыводПредупреждения = Неопределено Тогда
|
||||
ВыводПредупреждения = Новый Структура("Использование, Заголовок, Текст, ПутьКРеквизитуФормы, ТекстОшибок", Ложь);
|
||||
Результат.Вставить("ВыводПредупреждения", ВыводПредупреждения);
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ВывестиПредупреждение(Результат, Текст, Подробно = "", Заголовок = "", ПутьКРеквизитуФормы = "") Экспорт
|
||||
Если ПустаяСтрока(Текст) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ВыводПредупреждения.Использование = Истина;
|
||||
|
||||
ВыводПредупреждения = Новый Структура("Заголовок, Текст, ПутьКРеквизитуФормы, Подробно");
|
||||
ВыводПредупреждения.Заголовок = Заголовок;
|
||||
ВыводПредупреждения.Текст = Текст;
|
||||
ВыводПредупреждения.ТекстОшибок = ТекстОшибок;
|
||||
ВыводПредупреждения.Подробно = Подробно;
|
||||
ВыводПредупреждения.ПутьКРеквизитуФормы = ПутьКРеквизитуФормы;
|
||||
|
||||
ДобавитьШаг(Результат, "ВывестиПредупреждение", ВыводПредупреждения);
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет в структуру информацию, необходимую для вывода сообщения о неверно заполненных полях формы.
|
||||
@@ -152,15 +153,19 @@
|
||||
// Текст - Строка - Текст сообщения.
|
||||
// ПутьКРеквизитуФормы - Строка - Необязательный. Путь к реквизиту формы, значение которого вызывало ошибку.
|
||||
//
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ВывестиСообщение(Результат, Текст, ПутьКРеквизитуФормы = "") Экспорт
|
||||
ВыводСообщения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ВыводСообщения");
|
||||
Если ВыводСообщения = Неопределено Тогда
|
||||
ВыводСообщения = Новый Структура("Использование, Текст, ПутьКРеквизитуФормы", Ложь);
|
||||
Результат.Вставить("ВыводСообщения", ВыводСообщения);
|
||||
Если ПустаяСтрока(Текст) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ВыводСообщения.Использование = Истина;
|
||||
|
||||
ВыводСообщения = Новый Структура("Текст, ПутьКРеквизитуФормы");
|
||||
ВыводСообщения.Текст = Текст;
|
||||
ВыводСообщения.ПутьКРеквизитуФормы = ПутьКРеквизитуФормы;
|
||||
|
||||
ДобавитьШаг(Результат, "ВывестиСообщение", ВыводСообщения);
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет в структуру информацию, необходимую для вывода всплывающего оповещения.
|
||||
@@ -168,76 +173,112 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// Заголовок - Строка - Заголовок оповещения.
|
||||
// Текст - Строка - Текст оповещения.
|
||||
// Заголовок - Строка - Заголовок оповещения. Чтобы выводилась вся строка рекомендуется длина 40 или меньше.
|
||||
// Текст - Строка - Текст оповещения. Чтобы выводилась вся строка рекомендуется длина 40 или меньше.
|
||||
// Ссылка - Строка - Навигационная ссылка для перехода к объекту конфигурации.
|
||||
// Картинка - Картинка - Картинка оповещения.
|
||||
//
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ВывестиОповещение(Результат, Заголовок, Текст = "", Картинка = Неопределено, Ссылка = "") Экспорт
|
||||
ВыводОповещения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ВыводОповещения");
|
||||
Если ВыводОповещения = Неопределено Тогда
|
||||
ВыводОповещения = Новый Структура("Использование, Заголовок, Ссылка, Текст, Картинка", Ложь);
|
||||
Результат.Вставить("ВыводОповещения", ВыводОповещения);
|
||||
Если ПустаяСтрока(Заголовок) И ПустаяСтрока(Текст) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ВыводОповещения.Использование = Истина;
|
||||
ВыводОповещения.Заголовок = Заголовок;
|
||||
ВыводОповещения.Ссылка = Ссылка;
|
||||
ВыводОповещения.Текст = Текст;
|
||||
ВыводОповещения.Картинка = Картинка;
|
||||
|
||||
ВыводОповещения = Новый Структура("Заголовок, Ссылка, Текст, Картинка");
|
||||
ВыводОповещения.Заголовок = Заголовок;
|
||||
ВыводОповещения.Ссылка = Ссылка;
|
||||
ВыводОповещения.Текст = Текст;
|
||||
ВыводОповещения.Картинка = Картинка;
|
||||
|
||||
ДобавитьШаг(Результат, "ВывестиОповещение", ВыводОповещения);
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет в структуру информацию, необходимую для открытия формы.
|
||||
// Действие выполняется на клиенте после вызова СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения(Результат).
|
||||
//
|
||||
// Параметры:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// ПолноеИмя - Строка - Полный путь к открываемой форме.
|
||||
// Параметры - Структура - Необязательный. Параметры открываемой формы.
|
||||
// РежимОкна - РежимОткрытияОкнаФормы - Необязательный. Блокировать ли окно владельца.
|
||||
//
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ВывестиФорму(Результат, ПолноеИмя, Параметры = Неопределено, РежимОкна = Неопределено) Экспорт
|
||||
Если ПустаяСтрока(ПолноеИмя) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыводФормы = Новый Структура("ПолноеИмя, Параметры, РежимОкна");
|
||||
ВыводФормы.ПолноеИмя = ПолноеИмя;
|
||||
ВыводФормы.Параметры = Параметры;
|
||||
ВыводФормы.РежимОкна = РежимОкна;
|
||||
|
||||
ДобавитьШаг(Результат, "ВывестиФорму", ВыводФормы);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Табличный документ
|
||||
|
||||
// Вычисляет сумму выделенных ячеек и возвращает ее представление.
|
||||
// Рассчитывает показатели числовых ячеек в табличном документе.
|
||||
//
|
||||
// Параметры:
|
||||
// ТабличныйДокумент - ТабличныйДокумент - Таблица, для которой вычисляет сумма ячеек.
|
||||
// ТабличныйДокумент - ТабличныйДокумент - Таблица, для которой требуется расчет.
|
||||
// ВыделенныеОбласти
|
||||
// - Неопределено - При вызове с клиента этот параметр будет определен автоматически.
|
||||
// - Массив - При вызове с сервера в этот параметр следует передавать области,
|
||||
// предварительно вычисленные на клиенте
|
||||
// при помощи функции ОтчетыКлиент.ВыделенныеОбласти(ТабличныйДокумент).
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Представление суммы выделенных ячеек.
|
||||
// Возвращаемое значение:
|
||||
// Структура - Результаты расчета выделенных ячеек.
|
||||
// * Количество - Число - Количество выделенных ячеек.
|
||||
// * КоличествоЧисловых - Число - Количество числовых ячеек.
|
||||
// * Сумма - Число - Сумма выделенных ячеек с числами.
|
||||
// * Среднее - Число - Сумма выделенных ячеек с числами.
|
||||
// * Минимум - Число - Сумма выделенных ячеек с числами.
|
||||
// * Максимум - Число - Максимум выделенных ячеек с числами.
|
||||
// * НуженВызовСервера - Булево - Ложь когда вычисление на клиенте нецелесообразно и нужен вызов сервера.
|
||||
//
|
||||
// См. также:
|
||||
// ОтчетыКлиент.ВыделенныеОбласти().
|
||||
//
|
||||
Функция СуммаЯчеек(ТабличныйДокумент, ВыделенныеОбласти) Экспорт
|
||||
Функция РасчетЯчеек(ТабличныйДокумент, ВыделенныеОбласти) Экспорт
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Количество", 0);
|
||||
Результат.Вставить("КоличествоНеПустых", 0);
|
||||
Результат.Вставить("КоличествоЧисловых", 0);
|
||||
Результат.Вставить("Сумма", 0);
|
||||
Результат.Вставить("Минимум", Неопределено);
|
||||
Результат.Вставить("Максимум", Неопределено);
|
||||
Результат.Вставить("НуженВызовСервера", Ложь);
|
||||
|
||||
Если ВыделенныеОбласти = Неопределено Тогда
|
||||
#Если Клиент Тогда
|
||||
ВыделенныеОбласти = ТабличныйДокумент.ВыделенныеОбласти;
|
||||
#Иначе
|
||||
Возврат НСтр("ru = 'Не указано значение параметра ""ВыделенныеОбласти"".'");
|
||||
ВызватьИсключение НСтр("ru = 'Не указано значение параметра ""ВыделенныеОбласти"".'");
|
||||
#КонецЕсли
|
||||
КонецЕсли;
|
||||
|
||||
#Если Клиент И Не ТолстыйКлиентОбычноеПриложение Тогда
|
||||
КоличествоВыделенныхОбластей = ВыделенныеОбласти.Количество();
|
||||
Если КоличествоВыделенныхОбластей = 0 Тогда
|
||||
Возврат ""; // Нет ни одного числа.
|
||||
ИначеЕсли КоличествоВыделенныхОбластей >= 100 Тогда
|
||||
Возврат "<"; // Нужен вызов сервера.
|
||||
КонецЕсли;
|
||||
КоличествоВыделенныхЯчеек = 0;
|
||||
#КонецЕсли
|
||||
|
||||
Сумма = Неопределено;
|
||||
ПроверенныеЯчейки = Новый Соответствие;
|
||||
|
||||
Для Каждого ВыделеннаяОбласть Из ВыделенныеОбласти Цикл
|
||||
#Если Клиент Тогда
|
||||
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента")
|
||||
И ТипЗнч(ВыделеннаяОбласть) <> Тип("Структура") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ВыделеннаяОбластьВерх = ВыделеннаяОбласть.Верх;
|
||||
ВыделеннаяОбластьНиз = ВыделеннаяОбласть.Низ;
|
||||
ВыделеннаяОбластьЛево = ВыделеннаяОбласть.Лево;
|
||||
ВыделеннаяОбластьВерх = ВыделеннаяОбласть.Верх;
|
||||
ВыделеннаяОбластьНиз = ВыделеннаяОбласть.Низ;
|
||||
ВыделеннаяОбластьЛево = ВыделеннаяОбласть.Лево;
|
||||
ВыделеннаяОбластьПраво = ВыделеннаяОбласть.Право;
|
||||
|
||||
Если ВыделеннаяОбластьВерх = 0 Тогда
|
||||
@@ -261,13 +302,14 @@
|
||||
ВыделеннаяОбластьНиз = ТабличныйДокумент.ВысотаТаблицы;
|
||||
КонецЕсли;
|
||||
|
||||
ВыделеннаяОбластьВысота = ВыделеннаяОбластьНиз - ВыделеннаяОбластьВерх;
|
||||
ВыделеннаяОбластьШирина = ВыделеннаяОбластьПраво - ВыделеннаяОбластьЛево;
|
||||
ВыделеннаяОбластьВысота = ВыделеннаяОбластьНиз - ВыделеннаяОбластьВерх + 1;
|
||||
ВыделеннаяОбластьШирина = ВыделеннаяОбластьПраво - ВыделеннаяОбластьЛево + 1;
|
||||
|
||||
Результат.Количество = Результат.Количество + ВыделеннаяОбластьШирина * ВыделеннаяОбластьВысота;
|
||||
#Если Клиент И Не ТолстыйКлиентОбычноеПриложение Тогда
|
||||
КоличествоВыделенныхЯчеек = КоличествоВыделенныхЯчеек + ВыделеннаяОбластьШирина * ВыделеннаяОбластьВысота;
|
||||
Если КоличествоВыделенныхЯчеек >= 1000 Тогда
|
||||
Возврат "<"; // Нужен вызов сервера.
|
||||
Если Результат.Количество >= 1000 Тогда
|
||||
Результат.НуженВызовСервера = Истина;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
@@ -289,11 +331,16 @@
|
||||
Иначе
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Результат.КоличествоНеПустых = Результат.КоличествоНеПустых + 1;
|
||||
Если ТипЗнч(Число) = Тип("Число") Тогда
|
||||
Если Сумма = Неопределено Тогда
|
||||
Сумма = Число;
|
||||
Результат.КоличествоЧисловых = Результат.КоличествоЧисловых + 1;
|
||||
Результат.Сумма = Результат.Сумма + Число;
|
||||
Если Результат.КоличествоЧисловых = 1 Тогда
|
||||
Результат.Минимум = Число;
|
||||
Результат.Максимум = Число;
|
||||
Иначе
|
||||
Сумма = Сумма + Число;
|
||||
Результат.Минимум = Мин(Число, Результат.Минимум);
|
||||
Результат.Максимум = Макс(Число, Результат.Максимум);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -301,12 +348,88 @@
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Если Сумма = Неопределено Тогда
|
||||
Возврат ""; // Нет ни одного числа.
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Формат(Сумма, "ЧН=0");
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Регистрация результата работы для вывода на клиенте.
|
||||
|
||||
// Добавляет в структуру информацию, необходимую для вывода предупреждения и текста ошибки.
|
||||
// Действие выполняется на клиенте после вызова СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения(Результат).
|
||||
//
|
||||
// Параметры:
|
||||
// Результат - Структура - См. СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
// ВводныйТекст - Строка - Текст предупреждения.
|
||||
// ИнформацияОбОшибке - ИнформацияОбОшибке - Необязательный. Тексты ошибок, которые при желании может просмотреть пользователь.
|
||||
//
|
||||
// См. также:
|
||||
// СтандартныеПодсистемыКлиент.ПоказатьРезультатВыполнения().
|
||||
//
|
||||
Процедура ВывестиИнформациюОбОшибке(Результат, ВводныйТекст, ИнформацияОбОшибке) Экспорт
|
||||
Кратко = ВводныйТекст + Символы.ПС + ИсходнаяПричинаОшибки(ИнформацияОбОшибке);
|
||||
Подробно = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||
ВывестиПредупреждение(Результат, Кратко, Подробно);
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Работа с ошибками.
|
||||
|
||||
// Формирует краткое представление исходной проблемы из информации об ошибке.
|
||||
//
|
||||
// Параметры:
|
||||
// ИнформацияОбОшибке - ИнформацияОбОшибке - Информация об ошибке.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Краткое представление ошибки.
|
||||
//
|
||||
Функция ИсходнаяПричинаОшибки(ИнформацияОбОшибке) Экспорт
|
||||
ОписаниеОшибки = ИнформацияОбОшибке.Описание;
|
||||
ПричинаОшибки = ИнформацияОбОшибке.Причина;
|
||||
Пока ПричинаОшибки <> Неопределено Цикл
|
||||
ОписаниеОшибки = ПричинаОшибки.Описание;
|
||||
ПричинаОшибки = ПричинаОшибки.Причина;
|
||||
КонецЦикла;
|
||||
Возврат ОписаниеОшибки;
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Регистрация результата работы для последующего вывода на клиенте.
|
||||
|
||||
// Регистрирует сведения для вывода информации.
|
||||
Процедура ДобавитьШаг(Результат, ИмяПроцедуры, ПараметрыПроцедуры)
|
||||
Если Не Результат.Свойство("Шаги") Тогда
|
||||
Результат.Вставить("Шаги", Новый СписокЗначений);
|
||||
КонецЕсли;
|
||||
Результат.Шаги.Добавить(ПараметрыПроцедуры, ИмяПроцедуры);
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Работа со строками (кандидат для строковых функций).
|
||||
|
||||
// Определяет примерное число строк с учетом переносов.
|
||||
Функция ЧислоСтрок(Текст, ОтсечкаПоШирине, ПриводитьКРазмерамЭлементовФормы = Истина) Экспорт
|
||||
ЧислоСтрок = СтрЧислоСтрок(Текст);
|
||||
ЧислоПереносов = 0;
|
||||
Для НомерСтроки = 1 По ЧислоСтрок Цикл
|
||||
Строка = СтрПолучитьСтроку(Текст, НомерСтроки);
|
||||
ЧислоПереносов = ЧислоПереносов + Цел(СтрДлина(Строка)/ОтсечкаПоШирине);
|
||||
КонецЦикла;
|
||||
ПримерноеЧислоСтрок = ЧислоСтрок + ЧислоПереносов;
|
||||
Если ПриводитьКРазмерамЭлементовФормы Тогда
|
||||
Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
|
||||
Коэффициент = 4/5; // В 8.2 в высоту 4 вмещается примерно 5 строк текста.
|
||||
Иначе
|
||||
Коэффициент = 2/3; // В такси в высоту 2 вмещается примерно 3 строки текста.
|
||||
КонецЕсли;
|
||||
ПримерноеЧислоСтрок = Цел((ПримерноеЧислоСтрок+1)*Коэффициент);
|
||||
КонецЕсли;
|
||||
Возврат ПримерноеЧислоСтрок;
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Reference in new issue
Block a user