Простая причина, почему не работала свертка ТЗ

Использовал проверку того, изменились ли движения по регистру, чтобы лишний раз не писать в регистр:

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

Но почему-то показывало модифицированность таблицы, хотя данные не менялись.

Причина была в том, что таблица значений сворачивалась. Измерения и ресурсы для свертки были прописаны правильно, но суммы не схлопывались по партиям:

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

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *