v8: Обработка по загрузке данных из файла Эксель в регистр сведений. #657680


#0 by razbiralshik
Обработка по загрузке данных из файла Эксель в регистр сведений. Нажимаем загрузить, загружаются данные в табличное поле. Причем, в табличное поле должны попасть только те строки Экселя, которые были изменены по сравнению с в предыдущей загрузкой (условный например, прошлый раз была строка номер 1 с данными: йцу, цук, уке, она загрузилась в РС, теперь в строке номер 1 данные такие: йцу, цук, 123. Это значит что эту строку необходимо загрузить в табличный документ). Загрузку я сделал, но теперь необходимо сделать, чтобы подкрашивались те ячейки табличного поля, в которых произошло изменение, например в желтый цвет. При загрузке стоит условие где сравниваются по ячейкам поля прошлой загрузки и текущей, если поле изменилось то переменная становится в истину: Если НЕ СокрЛП(СтрРезульт.НазваниеВторичногоСтатуса) = СокрЛП(НазваниеВторичногоСтатуса) Тогда                                    НазваниеВторичногоСтатусаИзменен = Истина;                                КонецЕсли; СтрТабл = ЭлементыФормы.ТаблицаЗагрузки.ТекущаяСтрока; (делаю именно так, чтобы юзвери видели как табличное поле заполняется) идет переход в процедуру: И тут возникает засада! Когда добавляется первая строчка в ТП, все отрабатывает нормально, в цикле всего одно значение, он обходит его и получаем то что необходимо. Когда добавляется вторая строчка в ТП, эта процедура не обращается к новой строчке, а начинает обход ТП с самого начала, получается что два раза и тут уже раскраска становится не та что мне нужна... не те поля закрашиваются. Подскажите, как закрасить только необходимые ячейки?
#1 by mikecool
"Когда добавляется вторая строчка в ТП, эта процедура не обращается к новой строчке, а начинает обход ТП с самого начала" - не раскрашивать уже раскрашенные, ваш кеп
#2 by mikecool
вапчето ПриПолученииДанных вызывается один раз для отображаемого массива, заполни сразу все ТП и не парься
#3 by razbiralshik
тогда придется для каждого поля создать поле значение для раскраски, число полей увеличится вдвое!
#4 by Фокусник
Флаги ДопОборудованиеАвтомобиляИзменен  и НазваниеВторичногоСтатусаИзменен  должны быть реквизитами того того объекта (ТаблицаЗначений, ТабличнаяЧасть и т.д.), который отображается в ТабличномПоле, т.е. условие должно быть вида:
#5 by razbiralshik
ну да, я знаю это вариант, видимо придется добавлять реквизиты ТЧ... коли других способов нет
#6 by Фокусник
А как иначе? Любое "обновление данных" (их будет много, например при каждой прокрутке табличного поля) должно выполнять правильно раскраску, а не только "первое" :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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