Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 00:35

Окраска строки табличного поля по условию

Автор lia171, 17 ноя 2012, 15:50

0 Пользователей и 1 гость просматривают эту тему.

lia171

Добрый день! Есть задача,в УТ 10.3, в документе "Перемещение товаров" имеется два табличных поля на разных закладках и нужно сравнить позиции номенклатуры, т.е. если во второй ТЧ нет позиции а в первой есть то она окрашивается в красный цвет, а если совпадают позиции то цвет остается неизменным. Позиции сравниваются по наименованию. Попробовал накидать код, вот все что удалось сделать, но ни чего не получается :dfbsdfbsdf: . я новичек в программировании поэтому прошу помощи!



Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
   СтруктураДляПоиска1 = Новый Структура("Номенклатура", ЭлементыФормы.Товары.ТекущаяСтрока.Номенклатура);
   МассивСтрок1 = Товары.НайтиСтроки(СтруктураДляПоиска1);

       
        СтруктураДляПоиска2 = Новый Структура("Номенклатура", Прием.ТекущаяСтрока.Номенклатура);
   МассивСтрок2 = ПриемНаСклад.НайтиСтроки(СтруктураДляПоиска2);



Для каждого СтрокаСписка Из МассивСтрок1 Цикл      
   Если ????    тогда
      СтрокаСписка.ЦветФона = Новый Цвет(155, 155, 155);      
   КонецЕсли;
КонецЦикла; 
КонецПроцедуры


lia171

как присвоить цвет строке знаю, подскажите как сравнить строки двух табличных частей?

mixqn

Ну вообще, алгоритм тут совсем не хитрый. Если он вызывает у вас сложности, скорее всего, вам нужно получить какое-то базовое образование (не по 1С) ну или на худой конец почитать что-то.

По теме: номенклатурные позиции должны быть в строках с тем же номером, или это не важно, главное, чтобы номенклатура была в обоих таблицах?

lia171

номенклатура будет в обеих таблицах одинакова по коду, но если позиции нет во второй ТЧ то в первой она подсвечивается красным.

mixqn

lia171, судя по вашему ответу, вы не поняли мой вопрос. ну либо не смогли сформулировать свою мысль.
в общем я не понял, при чем тут вообще код, когда объектные данные (как то справочник или документ) надо сравнивать по ссылке, ну не суть.

итак, еще раз попробую сформулировать задачу, как я ее понял из всего написанного вами: есть 2 таблицы А и Б, в обоих есть колонка Номенклатура (тип СправочникСсылка.Номенклатура), нужно в таблице А выделить цветом все строки, Номенклатура в которых не найдено в таблице Б (ну то есть нет в таблице Б такой номенклатуры).
Верно?

lia171


mixqn

Нет ничего проще :)
Суть алгоритма: проходим в цикле по строкам ТЧ А, проверяем, есть ли Номенклатура в Б, если нет - подсвечиваем.
Вот вам примерный вид кода (на основе вашего первого поста):
Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
Если Прием.Найти(ОформлениеСтроки.ДанныеСтроки.Номенклатура) = Неопределено Тогда
ОформлениеСтроки.ЦветФона = Новый Цвет(155, 155, 155);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

lia171

а прием - это обращение к ТЧ-2?
Добавлено: 17 ноя 2012, 21:51


и правда просто), может подскажете какую умную литературу по программированию 1с? А то много всего не знаю за что взяться. спасибо!

mixqn

всегда всем советую Радченко. а вообще, ищите по форуму. подобные вопросы тут задавались уже очень много раз. сейчаст нет времени ответить подробнее/поискать самому, может завтра скину ссылки на темы на нашем же форуме, ну или быстрее найдите самостоятельно.
Добавлено: 17 ноя 2012, 23:26


Цитата: lia171 от 17 ноя 2012, 21:29а прием - это обращение к ТЧ-2?
да.
честно, не особо вчитывался в ваш первоначальный код (поскольку при беглом осмотре сразу было понятно, что он не правильный), поэтому взял то имя переменной, какое попалось на глаза и это была строка
Цитата: lia171 от 17 ноя 2012, 15:50СтруктураДляПоиска2 = Новый Структура("Номенклатура", Прием.ТекущаяСтрока.Номенклатура);
сейчас уже после вашего вопроса посмотрел код внимательнее и понял, что вторая ТЧ по всей видимости называется ПриемНаСклад.
Ну в общем, главное - суть алгоритма вы поняли.

lia171

да да, с этим вы угадали), суть понял, щас надо количество сравнить

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск