Имя: Пароль:
1C
 
Изменение цвета фона строки
, ,
0 Casper21
 
05.12.15
23:56
Что нужно сделать или прочитать об этом ???
Надо когда нажимаем на табличном поле (Заказы на форме) на сроке, все товары (с табличного поля Товары на форме), которые соответствуют этому заказа засветились цветом.

надо написать что-то здесь ---> ТЗЗаказиПолеПриАктивизацииСтроки ????
а фон меняется как-то так ---> ЭлементыФормы.ТЗТовариПоле.ЦветФонаВыделения=ЦветКакойто ;

в первой ТЗ1 (Заказы) на форме есть такая же колонка как в ТЗ2 (Товары) ---> Замовлення = Замовлення тов
http://s019.radikal.ru/i632/1512/d7/31b5fc2e82b2.png
Надо что-то написать "Если строка_ТЗ1_нажата Тогда Засветить_соответствующие_сроки_в_ТЗ2".
1 Casper21
 
05.12.15
23:57
тз заказ


Функция ТаблицаРезультатаЗапроса() Экспорт
    Запрос = Новый Запрос;      
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РегСклад.Номенклатура КАК Наименование,
    |    РегСклад.КоличествоОстаток КАК Количество,
    |    РТУ.ЕдиницаИзмерения КАК ЕдиницыИзмерения,
    |    РТУ.Сумма КАК Сума,
    |    Доставка.Перевозчик КАК Перевозчик,
    |    Доставка.Отделение КАК НомерОтделения,
    |    ВЫБОР
    |        КОГДА Доставка.ВидОплаты = ЗНАЧЕНИЕ(Перечисление.ВидыОплаты.Наложенный)
    |            ТОГДА ""H""
    |        ИНАЧЕ NULL
    |    КОНЕЦ КАК НалПлатеж,
    |    Доставка.ТелефонПолучателя КАК Телефон,
    |    Доставка.АдресДоставки КАК АдресДоставки,
    |    Доставка.КонтактноеЛицоПолучателя КАК Получатель,
    |    РТУ.Номер КАК Номер,
    |    РТУ.Дата КАК Дата,
    |    РТУ.ЗаказПокупателяСсылка.Ссылка Как ЗаказП
    |ИЗ
    |    (ВЫБРАТЬ
    |        ТоварыКПередачеСоСкладовОстатки.Номенклатура КАК Номенклатура,
    |        ТоварыКПередачеСоСкладовОстатки.Склад КАК Склад,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи КАК ДокументПередачи,
    |        ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток КАК КоличествоОстаток,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Ссылка КАК ДокументПередачиСсылка,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Номер КАК ДокументПередачиНомер,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Дата КАК ДокументПередачиДата,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументРезерва.Ссылка КАК ДокументРезерваСсылка,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Грузоотправитель КАК ДокументПередачиГрузоотправитель,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Грузополучатель КАК ДокументПередачиГрузополучатель
    |    ИЗ
    |        РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&ДатаВибору, ) КАК ТоварыКПередачеСоСкладовОстатки
    |    ГДЕ
    |        ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток > 0) КАК РегСклад
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            РеализацияТоваровУслугТовары.Ссылка.Ссылка КАК Ссылка,
    |            РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |            РеализацияТоваровУслугТовары.Количество КАК Количество,
    |            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |            РеализацияТоваровУслугТовары.Сумма КАК Сумма,
    |            РеализацияТоваровУслугТовары.ЗаказПокупателя.Ссылка КАК ЗаказПокупателяСсылка,
    |            РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
    |            РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата
    |        ИЗ
    |            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары) КАК РТУ
    |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |                Доставка.ЗаказПокупателя КАК ЗаказПокупателя,
    |                Доставка.Перевозчик КАК Перевозчик,
    |                Доставка.Отделение КАК Отделение,
    |                Доставка.ВидОплаты КАК ВидОплаты,
    |                Доставка.ТелефонПолучателя КАК ТелефонПолучателя,
    |                Доставка.АдресДоставки КАК АдресДоставки,
    |                Доставка.КонтактноеЛицоПолучателя КАК КонтактноеЛицоПолучателя
    |            ИЗ
    |                РегистрСведений.Доставка КАК Доставка) КАК Доставка
    |            ПО РТУ.ЗаказПокупателяСсылка = Доставка.ЗаказПокупателя
    |        ПО РегСклад.ДокументПередачи.Ссылка = РТУ.Ссылка.Ссылка
    |            И РегСклад.Номенклатура = РТУ.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номер,
    |    Дата";
    Запрос.УстановитьПараметр("ДатаВибору",ДатаВибору);
    РезТабл = Запрос.Выполнить().Выгрузить();
        Возврат  РезТабл;
    
КонецФункции
2 Casper21
 
05.12.15
23:57
ТЗ Товари


Функция  ЗапитЗаказов() Экспорт
    
    Запрос = Новый Запрос;      
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РТУ.ЗаказПокупателяСсылка.Ссылка КАК ЗаказПокупател,
    |    РТУ.ЗаказПокупателяСсылка.Грузополучатель КАК КонтрагентЗаказа,
    |    РТУ.ЗаказПокупателяСсылка.СуммаДокумента КАК СуммаЗаказа
    |ИЗ
    |    (ВЫБРАТЬ
    |        ТоварыКПередачеСоСкладовОстатки.Номенклатура КАК Номенклатура,
    |        ТоварыКПередачеСоСкладовОстатки.Склад КАК Склад,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи КАК ДокументПередачи,
    |        ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток КАК КоличествоОстаток,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Ссылка КАК ДокументПередачиСсылка,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Номер КАК ДокументПередачиНомер,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Дата КАК ДокументПередачиДата,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументРезерва.Ссылка КАК ДокументРезерваСсылка,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Грузоотправитель КАК ДокументПередачиГрузоотправитель,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Грузополучатель КАК ДокументПередачиГрузополучатель
    |    ИЗ
    |        РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&ДатаВибору, ) КАК ТоварыКПередачеСоСкладовОстатки
    |    ГДЕ
    |        ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток > 0) КАК РегСклад
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            РеализацияТоваровУслугТовары.Ссылка.Ссылка КАК Ссылка,
    |            РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |            РеализацияТоваровУслугТовары.Количество КАК Количество,
    |            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |            РеализацияТоваровУслугТовары.Сумма КАК Сумма,
    |            РеализацияТоваровУслугТовары.ЗаказПокупателя.Ссылка КАК ЗаказПокупателяСсылка,
    |            РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
    |            РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата
    |        ИЗ
    |            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары) КАК РТУ
    |        ПО РегСклад.ДокументПередачи.Ссылка = РТУ.Ссылка.Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |    РТУ.ЗаказПокупателяСсылка.Ссылка,
    |    РТУ.ЗаказПокупателяСсылка.Грузополучатель,
    |    РТУ.ЗаказПокупателяСсылка.СуммаДокумента";
    
    Запрос.УстановитьПараметр("ДатаВибору",ДатаВибору);         
    ЗапРезультатЗаказов = Запрос.Выполнить().Выбрать();
    Возврат ЗапРезультатЗаказов;
    
    
Конецфункции
4 Vladal
 
06.12.15
01:44
Надо что-то написать "Если строка_ТЗ1_нажата Тогда Засветить_соответствующие_сроки_в_ТЗ2"

в ПриАктивизацииСтроки в исходной таблице запоминай искомое значение и во второй таблице в ПриПолученииДанных сравнивай значение текущих данных с этим значение и крась строку.
5 Vladal
 
06.12.15
02:07
Я делал похожее, когда в нескольких табличных частях документа (порядка 9 штук) надо было подсвечивать цветом (активировать) одну строку с выбранной в любой из других табличных частей организацией. В каждой табличной части была только одна строка с организацией. делал примерно так:

Для каждой табличной части писал такой обработчик:

Процедура ПолеВзаиморасчетыСКонтрагентамиПриАктивизацииСтроки(Элемент)
    АктивизироватьСтрокуОрганизацииВТабличныхПолях(Элемент);
КонецПроцедуры

// Обход элементов формы типа ТабличноеПоле с данными типа ТабличнаяЧастьДокумента
// и установка текущей строкой строку с организацией в активном табличном поле
//
Процедура АктивизироватьСтрокуОрганизацииВТабличныхПолях(Элемент)
    Для каждого ЭлементФормы Из мМассивТабличныхПолей Цикл
        Если ЭлементФормы = Элемент Тогда
            Продолжить;
        КонецЕсли;
        Если ЭлементФормы.Значение.Количество() = 0 Тогда
            Продолжить;
        КонецЕсли;
        НайденнаяСтрока = ЭлементФормы.Значение.Найти(Элемент.ТекущаяСтрока.Организация, "Организация");
        Если НайденнаяСтрока <> Неопределено Тогда
            Действие = ЭлементФормы.ПолучитьДействие("ПриАктивизацииСтроки");
            ЭлементФормы.УстановитьДействие("ПриАктивизацииСтроки", Неопределено);
            ЭлементФормы.ТекущаяСтрока = НайденнаяСтрока;
            ЭлементФормы.УстановитьДействие("ПриАктивизацииСтроки", Действие);
        Конецесли;
    КонецЦикла;
КонецПроцедуры // АктивизироватьСтрокуОрганизацииВТабличныхПолях


А массив табличных частей заполнял так:

    // Заполнить массив табличных полей с данными табличных частей документа
    // Чтобы не перебирать все элементы формы при смене текущей строки активного табличного поля
    мМассивТабличныхПолей = Новый Массив;
    Для каждого ЭлементФормы Из ЭтаФорма.ЭлементыФормы Цикл
        Если ТипЗнч(ЭлементФормы) = Тип("ТабличноеПоле")
            И ЭтотОбъект.Метаданные().ТабличныеЧасти.Найти(ЭлементФормы.Данные) <> Неопределено
            И ТипЗнч(ЭлементФормы.Значение) = Тип(ЭтотОбъект[ЭлементФормы.Данные]) Тогда
            мМассивТабличныхПолей.Добавить(ЭлементФормы);
        Конецесли;
    КонецЦикла;

Думаю, эти примеры будут полезны если не тебе, то другим.
6 Casper21
 
06.12.15
19:04
(5) спасибо, я позже попробую
7 Casper21
 
06.12.15
23:36
а если использовать ТЗ??
В ТЗ есть такое? ПолучитьДействие("ПриАктивизацииСтроки");

Процедура АктивизироватьСтрокуЗаказоВТабличныхПолях(Элемент)
    ЗаказНажатие = Элемент.ТекущаяСтрока.Замовлення;
    Для Каждого СтрокаИзГоловнаТаблицяЗамовлень Из ТЗТовари Цикл  //    ТЗТовари - ТЗ(ТабличноеПолеТоваров на форме)
        Если СтрокаИзГоловнаТаблицяЗамовлень.ЗамовленняТов = ЗаказНажатие Тогда
            Действие = СтрокаИзГоловнаТаблицяЗамовлень.ПолучитьДействие("ПриАктивизацииСтроки");  
            СтрокаИзГоловнаТаблицяЗамовлень.УстановитьДействие("ПриАктивизацииСтроки", Неопределено);
            СтрокаИзГоловнаТаблицяЗамовлень.ТекущаяСтрока = НайденнаяСтрока;
            СтрокаИзГоловнаТаблицяЗамовлень.УстановитьДействие("ПриАктивизацииСтроки", Действие)
        КонецЕсли;
        
КонецПроцедуры



Или создать массив из ТзТоваров и попробовать повторить то что у вас?
8 Casper21
 
07.12.15
09:13
Может еще кто-то знает?
9 aleks_default
 
07.12.15
09:18
Тебе в (5) все написали. Что тебе еще надо, хороняка?
10 Casper21
 
07.12.15
10:22
(9) (
11 Casper21
 
07.12.15
13:42
перем ЗаказазНомерОдин Экспорт;


Процедура ТЗЗаказиПолеПриАктивизацииСтроки(Элемент)
    
    ЗаказазНомерОдин = Элемент.ТекущаяСтрока.Замовлення;
    ЭлементыФормы.ТЗТовариПоле.ОбновитьСтроки();
    
КонецПроцедуры

Процедура ТЗТовариПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт         
    Если ДанныеСтроки.ЗамовленняТов = ЗаказазНомерОдин Тогда
        ОформлениеСтроки.ЦветФона = Новый Цвет(220, 220, 220);
    КонецЕсли;
КонецПроцедуры
AdBlock убивает бесплатный контент. 1Сергей