() DmitriyDI, Что бы еще ускорится, нужно немного изменить порядок обхода. Сначала обходить колонки, внутри -- строки (а не наоборот). И кроме того
ЗначенияГруппировок = ПолучитьЗначенияГруппировокОтчета()
можно перенести во внутренний цикл. Тем самым те колонки, которые для редактирования не интересны, не будут прогоняться, соответственно времени на прогонку затрачено будет в 2 или >2 раз меньше
Для кол = ДокументРезультат.ФиксацияСлева+1 по ДокументРезультат.ШиринаТаблицы цикл
Для ряд = ДокументРезультат.ФиксацияСверху+1 по ДокументРезультат.ВысотаТаблицы цикл
ТекущаяОбласть = ДокументРезультат.Область(ряд, кол, ряд, кол);
если ТекущаяОбласть.Расшифровка = Неопределено Тогда Продолжить; КонецЕсли;
ЗначенияРасшифровки = ПолучитьВсеЗначенияРасшифровки(ДанныеРасшифровки.Элементы[ТекущаяОбласть.Расшифровка]);
Если ЗначенияРасшифровки.Свойство("КолонкаДляРедактирования") Тогда
ТекущаяОбласть.Защита=ложь;
ЗначенияГруппировок = ПолучитьЗначенияГруппировокОтчета(ДанныеРасшифровки, ТекущаяОбласть.Расшифровка, "КолонкаДляРедактирования", Новый Структура("Товар, Клиент"),ОбработкаРасшифровки);
.
.
.
Иначе
// !Добавить прерывание цикла для неинтересных колонок
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показать