Имя: Пароль:
1C
1С v8
Как выделить строку через выполнение условия?
, , ,
0 Maratuster
 
27.07.15
10:08
Всем привет. Люди добрые, подскажите какой код нужно использовать, чтобы при определенных условиях выделялась строка документа.

Ситуация такая: есть форма, на форме ТЧ. Прописал для ТЧ код - появилась колонка с возможностью выставить флажок. Когда ставлю флажок, выделяется строка. Но, при установке нескольких флажков - выделяется только последняя отмеченная строка.
Подскажите, что нужно прописать, чтобы при установке флажка строка выделялась (или несколько строк).
1 НЕА123
 
27.07.15
10:14
ПриВыводеСтроки, ПриПолцченииДанных
?
2 Maratuster
 
27.07.15
10:25
(1) при получении. А вообще - при изменении флажка должно. Там даже событие есть такое ПриИзмененииФлажка. Мне сам оператор интересен
3 DrShust
 
27.07.15
10:29
(0) В условном оформлении формы не пойдёт?
4 palpetrovich
 
27.07.15
10:29
(2) какой оператор? ...Уф, неУФ?
5 НЕА123
 
27.07.15
10:57
режимВыделения?
6 Maratuster
 
27.07.15
10:58
(3) Как вариант рассмотреть можно. Я еще учусь, поэтому возникаю такие не состыковки.
7 Maratuster
 
27.07.15
10:59
(4) Форма обычная, не УФ.
8 Maratuster
 
27.07.15
10:59
(5) множественный
9 НЕА123
 
27.07.15
11:00
ВыделенныеСтроки?
10 Maratuster
 
27.07.15
11:02
(9) Поясните, не совсем понял.
11 lxndr
 
27.07.15
11:03
(0) ктрл + клац
12 Maratuster
 
27.07.15
11:04
(11) установка флажка. Могу код скинуть, если проблема в нем, то хоть это узнаю
13 Maratuster
 
27.07.15
11:30
Люди, тема еще открыта. Помогите советом...
14 palpetrovich
 
27.07.15
12:04
(13) ну, ежели "Форма обычная, не УФ", можно так:

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

только Процедуру СписокПриПолученииДанных "привяжи" к форме, а не просто скопируй отсюда ...ну или код туда всавь , если она уже есть
15 Zhuravlik
 
27.07.15
12:11
(0) нужно просто выделить строку цветом, или именно выделить (т.е. при нажатии на del выделенные строки удалятся)?
16 Maratuster
 
27.07.15
12:13
(15) Именно выделить. Если я их через ctrl+клик выделяется все (выделение цветом у меня установлено). Мне Нужно, чтобы они именно выбирались для дальнейшей их обработки
17 Фокусник
 
27.07.15
12:28
(14)+ красить в белый не обязательно, т.к. по умолчанию он и так белый.
18 Zhuravlik
 
27.07.15
12:29
(16) имхо, штатно этого сделать нельзя. Но можно эмулировать нажатие клавиш скриптом vbs. Т.е.
1) Установка активности для строки ТП (тоже вопрос...)
2) выполнение скрипта
На 77 делал нечто подобное, с ТП от 1С++
19 Zhuravlik
 
27.07.15
12:31
(19) ерунду сморозил. Если скрипт нажимает Ctrl + Click, то он и делает ее активной...
20 Zhuravlik
 
27.07.15
12:34
Сначала делаем активным само ТП, берем отсортированный массив номеров строк, далее в цикле:
1) Переход по клавише "Стрелка вниз" к нужной строке
2) Ctrl + Click
как-то так.
Пример самого скрипта гуглится
21 Maratuster
 
27.07.15
13:20
(20) Спасибо. Скрипт поищу. Отпишусь о результате, как проверю
22 НЕА123
 
27.07.15
13:28
(10)
СП
ТабличноеПоле (TableBox)
ВыделенныеСтроки (SelectedRows)
Использование:

Только чтение.
Описание:

Тип: ВыделенныеСтрокиТабличногоПоля.
Содержит коллекцию выделенных строк табличного поля.

Доступность:

Толстый клиент.
23 Maratuster
 
28.07.15
06:43
(22) Прописывал условие, что если выделенных строк более 1, тогда кнопка доступна. Не работает
24 Адинэснег
 
28.07.15
08:04
Для Каждого СтрОф Из ОформленияСтрок Цикл
        Если СтрОф.ДанныеСтроки.фл Тогда
             СтрОф.ЦветФона = Новый Цвет(255,0,0)
         КонецЕсли;
КонецЦикла;
25 Maratuster
 
28.07.15
08:53
(24) Пишет, что переменная "ОформленияСтрок" не определена. Хотя выше используется эта переменная
26 Maratuster
 
28.07.15
08:57
(25) Сделал ее глобальной переменной - больше не ругается. (24) не работает код
27 hhhh
 
28.07.15
09:09
(26) ОформленияСтрок сделал глобальной переменной?!?!?
28 1Сергей
 
28.07.15
09:13
Maratuster, как ты себе представляешь как это будет работать?

Тебе нужно чтобы определенные строки при определенных условиях ВСЕГДА были выделены? Тогда пользователь просто не сможет редактировать Табличную часть.
29 Chameleon1980
 
28.07.15
09:18
(27) тоже улыбнуло
(25) в событии тп ПриПолученииДанных смотри переменные
30 Lexey_
 
28.07.15
09:26
(26) молодец, выкрутился))а еще можно закомментировать, тоже ругаться не будет)
31 Maratuster
 
28.07.15
10:23
(28) Мне нужно, чтобы при установки флажка выделялся документ(то есть вся строка). Соответственно, если документов выделяю более 1, то выделяться должны все. Это, например, для переноса данных их документа в ТЧ другого документа.
А у меня получается, что при установке нескольких флажков, выделяется только тот документ, который я последним отмечал.
32 1Сергей
 
28.07.15
11:10
(31) для этого достаточно только флажков. Нет надобности выделять строки
33 Maratuster
 
28.07.15
11:25
(32) Если бы так и было, я бы не просил помощи. Мне не суть важно, чтобы цветом выделялась строка. Мне главное, чтобы документ при установке флажка выбирался.
34 Maratuster
 
30.07.15
06:18
Начну с самого начала, чтобы понятнее было.
В документе "АктОбОказанииПроизводственныхУслух" на вкладке материалы есть подменю "Заполнить". По заданию мне надо добавить в это подменю кнопку заполнить по требованиям-накладным. При нажатии на нее должен выходить список документов "ТребованиеНакладная", и при выборе документов значение ТЧ вкладки Материалы заполняется из значений документов. Так вот, документы "ТребованиеНакладная" необходимо выделять флажком, то есть, выбрал 2 и более документов - ТЧ заполнилась значениями из них. А У меня получается, что я выделяю 2 и более, а значение переносится только из того документа, который я последним выделил.
35 1Сергей
 
30.07.15
06:25
(34) Значит ты не правильно написал процедуру, которая вызывается по твоей кнопке Заполнить
36 Maratuster
 
30.07.15
06:34
(35) Процедура КоманднаяПанельМатериалыЗаполнитьПоТН(Кнопка)    
    
    ФормаВыбора = Документы.ТребованиеНакладная.ПолучитьФормуВыбора(,, ЭтотОбъект);
    Если ЗначениеЗаполнено(Организация) Тогда
        Отбор = ФормаВыбора.Отбор.Организация;
        Отбор.ВидСравнения  = ВидСравнения.Равно;
        Отбор.Значение      = Организация;
        Отбор.Использование = Истина;
        ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Организация.Доступность = Ложь;
    КонецЕсли;
    
    Если ОтражатьВУправленческомУчете И ЗначениеЗаполнено(Подразделение) Тогда
        Отбор = ФормаВыбора.Отбор.Подразделение;
        Отбор.ВидСравнения  = ВидСравнения.Равно;
        Отбор.Значение      = Подразделение;
        Отбор.Использование = Истина;
    КонецЕсли;
    
    Если ОтражатьВБухгалтерскомУчете И ЗначениеЗаполнено(ПодразделениеОрганизации) Тогда
        Отбор = ФормаВыбора.Отбор.ПодразделениеОрганизации;
        Отбор.ВидСравнения  = ВидСравнения.Равно;
        Отбор.Значение      = ПодразделениеОрганизации;
        Отбор.Использование = Истина;
    КонецЕсли;
    
    ФормаВыбора.РежимВыбора = Истина;
    ДокТН = ФормаВыбора.ОткрытьМодально();
    ФормаВыбора.МножественныйВыбор = Истина;
    
    Если НЕ ЗначениеЗаполнено(ДокТН) Тогда
        Возврат;
    КонецЕсли;
    
    Для Каждого СтрокаТЧ Из ДокТН.Материалы Цикл
        НоваяСтрока = Материалы.Добавить();
        ЗаполнитьЗначенияСвойств( НоваяСтрока, СтрокаТЧ);
    КонецЦикла;
    
КонецПроцедуры
37 Maratuster
 
30.07.15
06:36
(35) Процедура аналогична процедуре из кнопки "ДобавитьПоТребованиямНакладным".
38 Maratuster
 
04.08.15
10:22
Мне тут подсказали, что можно сделать через цикл. То есть, сравниваем содержание ТЧ основного документа и содержание ТЧ других документов. При совпадении значений документ в форме выбора выделяется цветом и галочкой.
В связи с этим у меня вопрос: каким оператором пользоваться?
39 Maratuster
 
04.08.15
10:23
(36) кстати, код убрал. Просто добавил колонку на форме
40 hhhh
 
04.08.15
11:15
(38) просто пользуйся типовым подбором. А все эти свои измышления выкинь.
41 Maratuster
 
04.08.15
12:41
(40) можете пример привести, чтобы я легче понял?
Закон Брукера: Даже маленькая практика стоит большой теории.