#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С
- Регистр сведений или регистр накоплений. Опыта работы с v8 нет.
- v8 строка подключения V8.Connect
- Волшебнику и всем кто поможет по теме "v8 УРБД на v8 за четыре шага"
- v8: при v8 = Новый COMОбъект("V8.Application") дает ошибку ..
- v8: Не могу подключиться из V8 к V8
- v8: есть ли аналоги openconf для 1с v8
- v8: Как удалить 1С v8 ?
- v8: при загрузке данных из файла автообмена программа зависает наглухо
- v8: Замена регистра накопления регистром сведений, минус к производительности?
В этой группе 1С
- 1С как создать внешний отчет, программно?
- Не срабатывает доступность/недоступность элементов при повторном открытии формы.
- Условие ИЛИ в конструкторе запроса
- Запрос к табличной части справочника
- УТ 10.3 Как в документе заказ покупателя получить контактные данные!
- ошибка: данные объекта модифицированы
- Как заполнить реквизиты предопределенных элементов справочника
- УТ10 или Розница?
- Вызов веб-сервиса 1С из php: ничего не возвращает
- Как получить данные из одного документа в другой?
- Как отменить закрытие экранных форм при нажатии кнопки Esc
- v7: при Записи Договора ошибка "Не выбран элемент!" Комп 7.7
- Ограничение базовой версии
- Ограничения рабочих процессов сервера 1С
- Таблица значений. добавление колонок через цикл.
- Ошибка блокировки файла
- v8: при загрузке ИБ в SQL вылетает вот такая ошибка
- Нарушение прав доступа
- электронная почта в 1С документооборот
- УФ: Где и как сохранить оформление ячейки табличного документа?