Имя: Пароль:
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) можете пример привести, чтобы я легче понял?