RDT1C/DataProcessors/ирУправлениеИтогамиРегистров/Ext/ObjectModule.bsl
Администратор fe8a36fccc .
2021-01-31 19:53:11 +03:00

104 lines
8.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
Процедура ВыполнитьКомандуПользователя(ВыделенныеСтроки, Команда, ПериодИтогов = Неопределено) Экспорт
Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(ВыделенныеСтроки.Количество(), Команда);
Для каждого СтрокаТаблицы Из ВыделенныеСтроки Цикл
ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
Если СтрокаТаблицы.ТипРегистра = "РегистрНакопления" Тогда
РегистрМенеджер = РегистрыНакопления[СтрокаТаблицы.ИмяРегистра];
ИначеЕсли СтрокаТаблицы.ТипРегистра = "РегистрБухгалтерии" Тогда
РегистрМенеджер = РегистрыБухгалтерии[СтрокаТаблицы.ИмяРегистра];
КонецЕсли;
Попытка
Если Команда = "ВключитьИспользованиеИтогов" Тогда
РегистрМенеджер.УстановитьИспользованиеИтогов(Истина);
СтрокаТаблицы.ИспользованиеИтогов = Истина;
ИначеЕсли Команда = "ВыключитьИспользованиеИтогов" Тогда
РегистрМенеджер.УстановитьИспользованиеИтогов(Ложь);
СтрокаТаблицы.ИспользованиеИтогов = Ложь;
ИначеЕсли Команда = "ВключитьТекущиеИтоги" Тогда
Если Истина
И СтрокаТаблицы.ТипРегистра = "РегистрНакопления"
И СтрокаТаблицы.ВидРегистра = "Обороты"
Тогда
Продолжить;
КонецЕсли;
РегистрМенеджер.УстановитьИспользованиеТекущихИтогов(Истина);
СтрокаТаблицы.ИспользованиеТекущихИтогов = Истина;
ИначеЕсли Команда = "ВыключитьТекущиеИтоги" Тогда
Если Истина
И СтрокаТаблицы.ТипРегистра = "РегистрНакопления"
И СтрокаТаблицы.ВидРегистра = "Обороты"
Тогда
Продолжить;
КонецЕсли;
РегистрМенеджер.УстановитьИспользованиеТекущихИтогов(Ложь);
СтрокаТаблицы.ИспользованиеТекущихИтогов = Ложь;
ИначеЕсли Команда = "ВключитьРазделениеИтогов" Тогда
РегистрМенеджер.УстановитьРежимРазделенияИтогов(Истина);
СтрокаТаблицы.РазделениеИтогов = Истина;
ИначеЕсли Команда = "ВыключитьРазделениеИтогов" Тогда
РегистрМенеджер.УстановитьРежимРазделенияИтогов(Ложь);
СтрокаТаблицы.РазделениеИтогов = Ложь;
ИначеЕсли Команда = "УстановитьГраницыИтогов" Тогда
Если Ложь
Или (Истина
И СтрокаТаблицы.ТипРегистра = "РегистрНакопления"
И СтрокаТаблицы.ВидРегистра = "Остатки")
Или СтрокаТаблицы.ТипРегистра = "РегистрБухгалтерии"
Тогда
РегистрМенеджер.УстановитьПериодРассчитанныхИтогов(ПериодИтогов.МаксимальнаяДата);
СтрокаТаблицы.ПериодИтогов = ПериодИтогов.МаксимальнаяДата;
Если Не ирОбщий.РежимСовместимостиМеньше8_3_4Лкс() Тогда
РегистрМенеджер.УстановитьМинимальныйПериодРассчитанныхИтогов(ПериодИтогов.МинимальнаяДата);
СтрокаТаблицы.ПериодНачалаИтогов = ПериодИтогов.МинимальнаяДата;
КонецЕсли;
КонецЕсли;
ИначеЕсли Команда = "ПересчитатьИтоги" Тогда
РегистрМенеджер.ПересчитатьИтоги();
ИначеЕсли Команда = "ПересчитатьТекущиеИтоги" Тогда
Если Истина
И СтрокаТаблицы.ТипРегистра = "РегистрНакопления"
И СтрокаТаблицы.ВидРегистра = "Обороты"
Тогда
Продолжить;
КонецЕсли;
РегистрМенеджер.ПересчитатьТекущиеИтоги();
ИначеЕсли Команда = "ПересчитатьИтогиЗаПериод" Тогда
РегистрМенеджер.ПересчитатьИтогиЗаПериод(ПериодИтогов.НачалоПериода, ПериодИтогов.КонецПериода);
КонецЕсли;
Исключение
Если ПрерыватьПриОшибке Тогда
ВызватьИсключение;
КонецЕсли;
ирОбщий.СообщитьЛкс("Ошибка обработки регистра """ + СтрокаТаблицы.ПолноеИмя + """: " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Если ВыделенныеСтроки.Количество() > 0 Тогда
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
КонецЕсли;
КонецПроцедуры
//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf";
//ирПортативный #Если Клиент Тогда
//ирПортативный Контейнер = Новый Структура();
//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
//ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
//ирПортативный ирПортативный.Открыть();
//ирПортативный КонецЕсли;
//ирПортативный #Иначе
//ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта
//ирПортативный #КонецЕсли
//ирПортативный ирОбщий = ирПортативный.ПолучитьОбщийМодульЛкс("ирОбщий");
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");