Требуется вставить строку в середину табличной части в цикле по условию. К примеру у нас есть табличная часть «Запасы», есть переменная «Номенклатура». Обходим строки табличной части программно. Если «Номенклатура» заполнена, после текущей строки вставляем еще 1 строку, заполняем реквизиты строки. Оставшиеся строки сдвигаются.
Модуль формы элемента, пример кода:
СтрТч = 0; Пока СтрТч < Объект.Запасы.Количество() Цикл Если ЗначениеЗаполнено(Номенклатура) Тогда НовСтрВставка = Объект.Запасы.Вставить(СтрТч); НовСтрВставка.Номенклатура = Выборка.Номенклатура; НовСтрВставка.ЕдиницаИзмерения = Выборка.Номенклатура.ЕдиницаИзмерения; НовСтрВставка.Количество = 1; Объект.Запасы.Сдвинуть(СтрТч, 1); // первый параметр - номер строки, с 0 // второй параметр - на сколько позиций нужно подвинуть строку // при отрицательном значении строки будут двигаться назад СтрТч = СтрТч + 1; КонецЕсли; СтрТч = СтрТч + 1; КонецЦикла;
Оставить комментарий