Имя: Пароль:
1C
1С v8
Отчет версионирование криво отображает ТЧ справочников
0 cons74
 
11.02.16
10:16
В типовой УПП если изменить строку ТЧ справочника - отчет выводит сравнение как "добавлено и удалено" вместо "изменено". Кто-нибудь сталкивался/исправлял?
1 cw014
 
11.02.16
10:18
Ну и хорошо
2 cons74
 
11.02.16
10:24
Нашел

// Принимает на вход две строки из табличных частей с одинаковой структурой и сравнивает их.
// Строки считаются измененными, если у них совпадает хотя бы одна колонка.
Функция ПроверитьСтрокиНаРавенство(Строка1, Строка2, НаборКолонок)
3 cons74
 
11.02.16
12:27
// Принимает на вход две строки из табличных частей с одинаковой структурой и сравнивает их.
// Строки считаются измененными, если у них совпадает хотя бы одна колонка.
Функция ПроверитьСтрокиНаРавенство(Строка1, Строка2, НаборКолонок)
    
    ЧислоОдинаковыхКолонок = 0;
    ЧислоКолонок = 0;
    
    //-, 11.02.2016. Добавлено: если в ТЧ всего одна колонка
    Если НаборКолонок.Количество() = 1 Тогда
        Возврат Истина;
    КонецЕсли;
    //-, 11.02.2016, конец блока.
    
    Для Каждого Колонка Из НаборКолонок Цикл
        ЧислоКолонок = ЧислоКолонок + 1;
        Если Строка1[Колонка.Имя] = Строка2[Колонка.Имя] Тогда
            ЧислоОдинаковыхКолонок = ЧислоОдинаковыхКолонок + 1;
        КонецЕсли;
    КонецЦикла;
    
    Если (ЧислоОдинаковыхКолонок/ЧислоКолонок) >= КритерийДоступаНаРавенствоСтрок() Тогда
        Возврат Истина;
    КонецЕсли;
    
    Возврат Ложь;
    
КонецФункции

// Возвращает доступ - отношение числа неизмененных колонок в строке табличной
// части к общему числу колонок. На данный момент доступ - 3/5. Т.е. если
// при сравнении двух строк в двух табличной частях с одинаковым составом колонок
// изменилось всего 2 колонки из 5 то считается, что это та же самая строка.
//
Функция КритерийДоступаНаРавенствоСтрок()
    //Возврат (0.6);
    //-, 11.02.2016. Изменено: всегда будем считать строку измененной, а не удаленной и добавленной
    Возврат(0);
КонецФункции