Здравствуйте. Имеется не большая проблема.
Был дописан модуль, суть работы которого при наборе расходной накладной первая позиция, которую мы выбили, автоматически копируется в следующую позицию, далее нажимая F4 мы можем выбрать следующие по списку ТМЦ. Сделано было для того, что бы при наборе накладной бросало именно в тот каталог, в котором Вы был до этого, а не главный список как сделано а программе изначально. (подбором не пользуюсь, так как это занимает долго времени, особенно тяжело когда в накладной 200-300 позиций.)
Ошибка, которая появляется "Индекс находится за границей массива".
Ошибка ссылается на этот участок кода:
СтрокаТабличнойЧасти.Номенклатура=ТЗ[(СтрокаТабличнойЧасти.НомерСТроки-2)].Номенклатура;
Ошибка появляется лишь в двух случаях, если накладную ЗАПИСАТЬ или провести. После этого, если войти в накладную и попытаться добавить несколько позиций, первая позиция добавляется без проблем, при добавлении второй вылетает ошибка.
Версия: 1с Предприятие 8,2 (8,2,16,368)
Ниже приведён код модуля:
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока)
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
Если СтрокаТабличнойЧасти.НомерСТроки>1 Тогда
Если СтрокаТабличнойЧасти.Номенклатура.Пустая() Тогда
Если Ссылка.Пустая() Тогда
Если Не ТекущаяНоменклатура.Пустая() Тогда
СтрокаТабличнойЧасти.Номенклатура=ТекущаяНоменклатура;
КонецЕсли;
Иначе
ТекЗапрос = Новый Запрос;
ТекЗапрос.Текст="
|Выбрать
|Товары.Номенклатура
|Из
|Документ.РеализацияТоваровУслуг.Товары как Товары
|ГДЕ
|Товары.Ссылка = &Ссылка";
ТекЗапрос.Параметры.Вставить("Ссылка", Ссылка);
ТЗ = ТекЗапрос.Выполнить().Выгрузить();
СтрокаТабличнойЧасти.Номенклатура=ТЗ[(СтрокаТабличнойЧасти.НомерСТроки-2)].Номенклатура;
КонецЕсли;
КонецЕсли;
КонецЕсли;
УстановитьСвойстваПоляВводаЦены(СтрокаТабличнойЧасти.Номенклатура);
// Обнулим флаг при изменении табличной части
мПерерасчетПроизведен = ЛОЖЬ;
КонецПроцедуры // ТоварыПриНачалеРедактирования()
P.S. прошу прощения, если где то допустил ошибку или неточность, на форуме первый раз и пытался создавть тему по всем правилам форума. с Уважением, Виталий.
Сообщение отредактировал Vofka - 04.02.13, 9:40