// приведем порядок ТЗ к единообразию
// это исключит проблеммы с разным порядком элементов
мТЗ.Колонки.Добавить("СтрокаДляХеш");
ТипБулево = ТипЗнч(Истина);
Для каждого эл Из мТЗ Цикл
Если ТипЗнч(эл.Объект) = ТипБулево Тогда
эл.СтрокаДляХеш = ?(эл.Объект, "True", "False");
Иначе
эл.СтрокаДляХеш = СокрЛП(эл.Объект.УникальныйИдентификатор());
КонецЕсли;
КонецЦикла;
мТЗ.Сортировать ("СтрокаДляХеш");
// теперь строим строку для хеширования
СтрокаСпискаДаных = "";
Для каждого эл Из мТЗ Цикл
СтрокаСпискаДаных = СтрокаСпискаДаных + эл.СтрокаДляХеш + ";";
КонецЦикла;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший