На днях пришлось разбирать следующую проблему: при обходе выборки формировался список значений и передавался в параметры расшифровки табличного документа. Но в результирующем документе расшифровка содержала отличные от расчетных значения. Причем в отладчике было видно, что в параметры заходят верные данные.
Я набросал простой код, моделирующий ситуацию. Результатом обработки должен стать табличный документ, содержащий столбец чисел. При расшифровке значения должен выдаваться список значений, содержащий следующие данные: для 1 - 1; для 2 - 1, 2; для 3 - 1, 2, 3. В результате получаем для всех чисел один и тот же список: 1, 2, 3. Почему?
Я набросал простой код, моделирующий ситуацию. Результатом обработки должен стать табличный документ, содержащий столбец чисел. При расшифровке значения должен выдаваться список значений, содержащий следующие данные: для 1 - 1; для 2 - 1, 2; для 3 - 1, 2, 3. В результате получаем для всех чисел один и тот же список: 1, 2, 3. Почему?
Макет = ПолучитьМакет("Макет");
ОблСтрока = Макет.ПолучитьОбласть("Строка");
спЗначений = Новый СписокЗначений;
ТабДок = ЭлементыФормы.ТабДок;
ТабДок.Очистить();
Для а = 1 По 3 Цикл
спЗначений.Очистить();
Для б = 1 По а Цикл
спЗначений.Добавить(б);
КонецЦикла;
ОблСтрока.Параметры.ТекЗначение = а;
ОблСтрока.Параметры.спЗначений = спЗначений;
ТабДок.Вывести(ОблСтрока);
КонецЦикла;
ТабДок.ТолькоПросмотр = Истина;
ОблСтрока = Макет.ПолучитьОбласть("Строка");
спЗначений = Новый СписокЗначений;
ТабДок = ЭлементыФормы.ТабДок;
ТабДок.Очистить();
Для а = 1 По 3 Цикл
спЗначений.Очистить();
Для б = 1 По а Цикл
спЗначений.Добавить(б);
КонецЦикла;
ОблСтрока.Параметры.ТекЗначение = а;
ОблСтрока.Параметры.спЗначений = спЗначений;
ТабДок.Вывести(ОблСтрока);
КонецЦикла;
ТабДок.ТолькоПросмотр = Истина;
Предлагаю скачать обработку, чтобы в этом убедиться и найти решение.
Поменяйте в цикле "спЗначений.Очистить();" на "спЗначений = Новый СписокЗначений;" - и будет Вам счастье
ОтветитьУдалить