ZUBR @ Вчера, 17:12
,
Намагання в циклах знаходити потрібне значення - несінитниця.
Ваш код:
А=ТЗ.ТекущаяСтрока();// ЗАПОМИНАЕМ СТРОКУ И ПРИСВАИВАЕМ ЕЕ ПЕРЕМЕННОЙ А
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Если (ТЗ.ЗАКАЗ=Расх.НомерЗаказа) Тогда
ТЗ.СуммаАкс = Расх.Итог("СуммаСНДС");
КонецЕсли;
КонецЦикла;
Можете замінити на:
лпНомерЗаказа = Расх.НомерЗаказа;
лпНомерИскомойСтроки = "";
Если ТЗ.НайтиЗначение(лпНомерЗаказа,лпНомерИскомойСтроки,"ЗАКАЗ") = 1 Тогда
//Якщо потрібно вставити в поточну (нову) строку, використовуєте:
ТЗ.СуммаАкс = Расх.Итог("СуммаСНДС");
//Але якщо потрібно вставити в лпНомерИскомойСтроки, потрібно:
ТЗ.УстановитьЗначение(лпНомерИскомойСтроки,"СуммаАкс",Расх.Итог("СуммаСНДС"));
КонецЕсли;
При використанні метода НоваяСтрока(), ТекущаяСтрока() = "" і визначати її потрібно за допомогою ТЗ.НомерСтроки або ТЗ.КоличествоСтрок().
Позиціонування через ПолучитьСтрокуПоНомеру() може спрацьовувати не вірно, оскільки в процесі обробки даних може відбуватися "зміщення"
(як приклад, видалення стрічок) і ТекущаяСтрока() вже <> КоличествоСтрок().
Користуйтеся методами НайтиЗначение(), ПолучитьЗначение() та УстановитьЗначение(). Уявляйте собі що у Вас не 200 стрічок та 200 документів,
а по 200 000 тих і тих, тоді модель ВыбратьСтроки() и Пока ПолучитьСтроку() = 1 Цикл використовуватимете лише тільки один раз.
Сообщение отредактировал Sharzem - 23.09.20, 9:08
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)