RDT1C/DataProcessors/ирНастройкаЖурналаРегистрации/Ext/ObjectModule.bsl
2016-12-04 00:14:16 +03:00

86 lines
4.1 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.

Процедура УстановитьФлажкиПотомков(СтрокаДерева) Экспорт
Для Каждого СтрокаДереваПотомок Из СтрокаДерева.Строки Цикл
СтрокаДереваПотомок.Метка = СтрокаДерева.Метка;
УстановитьФлажкиПотомков(СтрокаДереваПотомок);
КонецЦикла;
КонецПроцедуры // ЭлементыФормы.ДеревоПолей.ТекущаяСтрока()
Процедура УстановитьФлажкиРодителей(СтрокаДерева, ТрехЗначныйФлажок = Ложь) Экспорт
Родитель = СтрокаДерева.Родитель;
Если Родитель = Неопределено Тогда
Возврат;
КонецЕсли;
ИтоговаяМетка = Истина;
КоличествоЛожь = 0;
Для Каждого СтрокаСосед Из Родитель.Строки Цикл
Если СтрокаСосед.Метка = 0 Тогда
КоличествоЛожь = КоличествоЛожь + 1;
Если Не ТрехЗначныйФлажок Тогда
ИтоговаяМетка = Ложь;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ТрехЗначныйФлажок Тогда
ИтоговаяМетка = ?(КоличествоЛожь = Родитель.Строки.Количество(), 0, ?(КоличествоЛожь = 0, 1, 2));
КонецЕсли;
Если ИтоговаяМетка <> Родитель.Метка Тогда
Родитель.Метка = ИтоговаяМетка;
УстановитьФлажкиРодителей(Родитель, ТрехЗначныйФлажок);
КонецЕсли;
КонецПроцедуры // УстановитьФлажкиРодителей()
Процедура УстановитьФлажокСтрокиПоПодчиненным(СтрокаДерева, ТрехЗначныйФлажок = Ложь) Экспорт
Если СтрокаДерева.Строки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ИтоговаяМетка = Истина;
КоличествоЛожь = 0;
Для Каждого ПодчиненнаяСтрока Из СтрокаДерева.Строки Цикл
УстановитьФлажокСтрокиПоПодчиненным(ПодчиненнаяСтрока, ТрехЗначныйФлажок);
Если ПодчиненнаяСтрока.Метка = 0 Тогда
КоличествоЛожь = КоличествоЛожь + 1;
КонецЕсли;
ИтоговаяМетка = ИтоговаяМетка И ПодчиненнаяСтрока.Метка ;
КонецЦикла;
Если ТрехЗначныйФлажок Тогда
ИтоговаяМетка = ?(КоличествоЛожь = СтрокаДерева.Строки.Количество(), 0, ?(КоличествоЛожь = 0, 1, 2));
КонецЕсли;
СтрокаДерева.Метка = ИтоговаяМетка;
КонецПроцедуры
Функция ЕстьПолеСсылкаВТаблицеПолейРегистрации(ТаблицаПолейРегистрации) Экспорт
Результат = Ложь;
Для Каждого СтрокаТаблицы Из ТаблицаПолейРегистрации Цикл
Если СтрокаТаблицы.ПолеРегистрации.Количество() = 1 И СтрокаТаблицы.ПолеРегистрации[0].Значение = "Ссылка" Тогда
Результат = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции