Последняя строка табличной части в цикле #781293


#0 by Vitalii72
Помогите разобраться, необходимо получить подледную строку табличной части в цикле и потом записать объект. Делаю вот так, запись проходит, только записывает первые строки по каждому элементу ( Значение.Дата(реквизит копия табличной части для формы списка) = Стр.ТекущаяДата; Попытка Исключение Сообщить("Не удалось записать объект " + Значение + ОписаниеОшибки);
#1 by DrShad
а нахрена во-первых каждый раз в цикле получать объект, а во-вторых каждый раз его записывать? и в-третьих код не соответствует сабжу
#2 by Euguln
Выборка.ТабличнаяЧасть[Выборка.ТабличнаяЧасть.Количество-1]
#3 by Vitalii72
В цикле получаю значение строки табличной части, если вы про строку Значение.Дата(реквизит копия табличной части для формы списка), то в скобках написал специально для форума комментарий. Это в цикле будет показывать подледную строку?
#4 by Euguln
Исключение Сообщить("Не удалось записать объект " + Значение + ОписаниеОшибки);
#5 by Vitalii72
Без "Для каждого из цикл" не доступна строка Стр.ТекущаяДата.
#6 by Vitalii72
Пишет, что индекс находится за пределами массива
#7 by Vitalii72
У разных контрагентов, разное количество строк табличной части.
#8 by Jonny_Khomich
ну сделай ещё условие, чтобы количество строк в ТЧ было больше 0. Скажи номер телефона фирмы в которой ты работаешь, я туда позвоню.
#9 by МимохожийОднако
ТвойОбъект=Выборка.ПолучитьОбъект; ТвойОбъект.ЕгоТЧ.Получить(ТвойОбъект.ЕгоТЧ.Количество-1)
#10 by Vitalii72
Значение индекса выходит за границы диапазона (( А вообще может есть другой вариант, как можно при открытие формы списка получать автоматом значения из табличной части в дублирующие реквизиты?
#11 by FIXXXL
и ты для этого перебираешь весь спр.Контрагенты? пятница, да...
#12 by Vitalii72
К сожалению да (((. Корень проблемы был в том, что в форму списка не смог найти, как можно добавить столбцы из табличной части. Решил сделать два реквизита дублирующие, при сохранение в элементе сделал, чтобы он записывал значение последней строки. А вот, чтобы по всем контрагентам значение последних строк табличной части встали в дублирующие реквизиты это проблема. Контрагентов больше 1000, в ручную пересохранять стрельнусь.
#13 by FIXXXL
задачу расскажи ты чет не то делаешь
#14 by FIXXXL
и конфу-режим работы уточни
#15 by ovrfox
Все таки я не понял, зачем перебирать табличные части К ним что - нельзя обратиться по наименованию? Если в табличной части 0 строк, то куда идет попытка присвоения даты? Нужно это обязательно запретить!
#16 by ovrfox
#17 by Vitalii72
К ним что - нельзя обратиться по наименованию? В форме списка? Если в табличной части 0 строк, не надо значит записывать значение в дублирующие реквизиты.
#18 by Vitalii72
Конфа управляемое приложение.
#19 by ovrfox
Какая разница в какой приложении? Меня смутило название табличной части "ТабличнаяЧасть"
#20 by FIXXXL
тебе надо в списке ТЧ отобразить что ли?
#21 by Vitalii72
Она у меня так и называется "ТабличнаяЧасть".
#22 by Vitalii72
Да, причём по последним строкам табличной части. А то он контрагента выводить по несколько штук с разными строками.
#23 by ovrfox
Еще раз в чем проблема? В форме списка в серверном контексте доступна табличная часть Если Количество> 0 То ТабличнаяЧасть[Количество-1] и есть последняя строка Что с ней нужно сделать? При чем здесь перебор всех элементов справочника? ИЛИ , все же это обработка, которая должна что-то сделать? Что?
#24 by Vitalii72
Выдаёт ошибку, Индекс находится за границами массива
#25 by ovrfox
Потому что ты не проверил, что количество строк может быть равно 0
#26 by Vitalii72
То ТабличнаяЧасть[Количество-1] и есть последняя строка Нужно записать её в дублирующий реквизит. У меня выдаёт ошибку почему то.
#27 by ovrfox
Если в табличной части ни одной строки (а у тебя явно есть элемент (или группа) с такими свойствами), то обращение к -1-й строке и вызовет указанную ошибку.
#28 by DAVI
добавь условие Если Значение.ТабличнаяЧасть.Количество > 0 тогда
#29 by ovrfox
Но ты не записываеш строку в дублирующий реквизит, ты записываешь дублирующий реквизит в строку. При этом ты не проверяешь, что хотя бы одна строка есть.
#30 by Vitalii72
Да уже сам понял и написал, ошибка пропала спасибо. Сейчас буду дальше разбираться.
#31 by ovrfox
А мог бы еще по сообщению догадаться
#32 by Vitalii72
Ногами не бить, учусь, да ещё и пятница ))).
#33 by Vitalii72
Но ты не записываеш строку в дублирующий реквизит, ты записываешь дублирующий реквизит в строку. То, есть должно быть наоборот? Выборка.ТекущаяДата = Значение.ТабличнаяЧасть[Значение.ТабличнаяЧасть.Количество-1].Дата;
#34 by Vitalii72
Мда, сам туплю. Должно быть не Выборка.ТекущаяДата, а Значение.ТекущаяДата.
#35 by newbling
Я не понял задачу.
#36 by newbling
Может там динамические списки?
#37 by Vitalii72
Всё получилось, всем огромное спасибо )) хороших выходных!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С