вывод номера строки табличной части, фиксация всех изменений #741453


#0 by pnamik
Есть некий код в процедуре ПередЗаписью, который проверяет табличные части документа Для Каждого ТЧ Из Мета.ТабличныеЧасти Цикл 1) При удалении строки выводится сообщение "изменено кол.строк" Как сделать так, чтобы выводилось более подробная информация, например Удалена строка №... Варианты НовСтр.НовоеЗначение=НомерСтроки.Накладная; или НовСтр.НовоеЗначение=НомСтр.Накладная; не подходят по причине ошибки Переменная не определена (НомСтр) 2) Если в документе сделать одно изменение (например менять количество в одной строке), потом без записи документа документа сделать второе изменение (например менять количество в другой строке), и записывать документ, фиксируется только одно (первое) изменение. Как устранить? Спасибо за возможные помощь и подсказку
#1 by pnamik
Первую проблему удалось решить так Теперь при удалении самой последней строки накладной выдает ошибку {Документ.ПриходнаяНакладная.Форма.ФормаДокумента}: Индекс находится за границами массива При удалении других строк нормально фиксирует
#2 by FIXXXL
А если порядок строк поменять? Раза три...
#3 by pnamik
Если один раз менять, фиксирует нормально, если несколько раз, только последнюю фиксирует
#4 by pnamik
в модуле объекта не подходит.  Как получить номер строки табличной части "Накладная" документа "Приходная Накладная"? Перепробовал всякие варианты Накладная.ТекСтрока.НомерСтроки НомСтр Строка (ТекСтрока.НомерСтроки) Ошибка Поле объекта не обнаружено
#5 by pnamik
или же другая ошибка {Документ.ПриходнаяНакладная}: Значение не является значением объектного типа (НомерСтроки)
#6 by pnamik
Ошибка {Документ.ПриходнаяНакладная}: Поле объекта не обнаружено (НомерСтроки)         НомСтр=ЭтотОбъект.Накладная.НомерСтроки;
#7 by pnamik
неужели ни у кого нет идей?
#8 by fishb1
У ЭтотОбъект.Накладная (если это ТЧ) не может быть свойства НомерСтроки. Лучше оставь как было, ты сейчас все сломаешь. :(
#9 by pnamik
Накладная это Табличная часть. Как с нее "выдрать" номер той строки, которая была удалена?
#10 by pnamik
сломать точно ничего не буду. Проверяю варианты, не подходит, возвращаюсь к исходной точке
#11 by pnamik
Накладная это табличная часть документа ПриходнойНакладной. Код в модуле документа в процедуре ПередЗаписью
#12 by fishb1
Объект ТЧ это по сути коллекция строк. Нужно циклом пройти по всем строкам в исходной ТЧ и если такой строки нет в измененной ТЧ, то значит она была удалена. Но по номеру строки связывать две тч не верно. Как уже говорили выше, пользователь может изменить порядок строк в измененной ТЧ. Нужно связывать по всем реквизитам, кроме номера строки, при условии, что значения будут уникальными.
#13 by Dmitriy_76
+ я бы гуид добавил в таб часть.. по нему бы и искал..
#14 by pnamik
в выше указанном коде если заменить Если Ссылка[ИмяТЧ][НомСтр][ИмяРек]<>ЭтотОбъект[ИмяТЧ][НомСтр][ИмяРек] Тогда .... ... ... НовСтр.Реквизит="ТЧ."+ИмяТЧ; с в истории объекта номер строки, где были изменения, показывает с минусом -1, т.е. если изменения произвел на строке 6, в истории документа эта строка будет показана как 5-я. Нумерация строк с нуля начинается. Но это неважно. Хоть так. Но, если меняю Если Ссылка[ИмяТЧ].Количество<>ЭтотОбъект[ИмяТЧ].Количество Тогда ... на Ругается Переменная не определена (НомСтр)
#15 by fishb1
Правильно ругается, у тебя НомСтр используется в цикле ниже по коду. Если я правильно понял суть задачи, нужно делать примерно так: ... ...
#16 by Drac0
Какова цель всего этого?
#17 by pnamik
Эта система (код) хранит историю изменения объектов. История потом выводится в виде таблички, что и где и когда менял. То, что Вы предлагаете, это явно не то. Если есть время могу по тиму дать доступ, чтобы смотреть
#18 by pnamik
Здесь нужно что-то такое НомСтр=ЭтотОбъект.ФормаДокумента.ТекСтрока.НомерСтроки; чтобы определить, что такое НомСтр
#19 by Drac0
Не майся фигней. Положи рядом новый документ ТвойДокумент_Версия ,добавь ему реквизиты Родитель ,Автор, времяВерсии и создавай при его при записи.
#20 by pnamik
тут все заново получится. а так работающий код, только одну строку нужно менять/добавить. кто смелее 312 263 519 8311 две минуты активен
#21 by pnamik
жаль никто пока не может помочь
#22 by pnamik
друзья, как все таки получить номер строки, чтобы номер выводился в истории?
#23 by pnamik
какой то замкнутый круг. в первой части кода получается вывести в макет номер строки. а на первой части никак. ошибки то поле не обнаружено, то значение не то, то индекс не тот.
#24 by МимохожийОднако
Добавь реквизит ИсторияНомеровСтрок и кидай туда что хочешь перед началом редактирования
#25 by asady
следить за изменением номеров строк ТЧ маразм.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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