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

Оказалось, причина была простая.
В одной таблице данные брались из регистра, там пустые заказы и партии были пустыми ссылками, а в другую — из нетипизированной таблицы значений, где пустые значения этих полей были значением Неопределено.

Свежие комментарии