Имя: Пароль:
1C
1С v8
УФ. Оформление списка
,
0 Бру
 
29.10.12
06:56
Доброе утро.
В справочнике Договоры есть таблица, где указаны фамилии и рядом указано значение согласован\не согласован
Мне нужно на форме списка по кнопочке сравнить пользователя и фамилию из этой таблицы  и подсветить договоры, где у этого человека стоит значение не согласован
Подскажите, пожалуйста, как можно это сделать.
1 cw014
 
29.10.12
07:05
Условное оформление
2 Бру
 
29.10.12
07:07
его и смотрю, как сделать по реквизитам оформление понятно, а как вот по реквизитам из табличной части не могу разобраться
3 cw014
 
29.10.12
07:17
А никак. Делаешь процедуру, в ней запрос, получаешь список ссылок, подставляешь как параметр с видом справнения "В списке"
4 Бру
 
29.10.12
07:21
а каким образом оформляется запрос? у меня ругается на строку Запрос = Новый Запрос;
5 Wobland
 
29.10.12
07:22
(4) запрос оформляется на сервере. это работа сервера - делать запросы
6 Wobland
 
29.10.12
07:23
кстати, не пора ли поговорить о том, как нужно оформлять ЛК?
7 Бру
 
29.10.12
08:00
(5) спасибо, запрос получился, но при оформлении закрашиваются почему-то все строки
8 Wobland
 
29.10.12
08:03
(7) неожиданный результат запроса?
9 Бру
 
29.10.12
08:08
(8) результат запроса правильный, Согласовано = Согласовано, но окрашиваются и те, что не согласованы
10 Wobland
 
29.10.12
08:09
(9) то есть, те, что не согласованы, отсутствуют в результате запроса?
11 Бру
 
29.10.12
08:13
(10)да, отсутствуют
12 Wobland
 
29.10.12
08:15
(11) значит, не так оформляешь. всё просто ;)
13 Бру
 
29.10.12
08:16
(12) это понятно)..осталось найти, что не так)
14 Wobland
 
29.10.12
08:19
(13) сама искать будешь?
15 Бру
 
29.10.12
08:20
от помощи тоже не откажусь)
16 Wobland
 
29.10.12
08:21
(15) ну что ж.. у меня с телепатией неважно, поэтому пока буду молча болеть за тебя
17 Бру
 
29.10.12
08:21
а при оформлении в левое значение добавляется выборка из запроса?
18 Wobland
 
29.10.12
08:22
(17) список справа
19 Wobland
 
29.10.12
08:23
что за выборка в этом месте вообще?
20 Бру
 
29.10.12
08:24
а слева, как оформляется? там получается должно быть поле из таблицы (Договор.Таблица.ПризнакСогласования), как правильно указать его?
21 Wobland
 
29.10.12
08:25
слева: ссылка, справа: некий список, вид сравнения: в списке
22 Бру
 
29.10.12
08:27
у меня было так, но получается неправильно, запуталась я уже
Фио = ИмяПользователя();
           
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Договоры.ПризнакСогласования,
   |    Договоры.Согласант
   |ИЗ
   |    Справочник.Договоры.Согласование КАК Договоры
   |ГДЕ
   |    Договоры.ПризнакСогласования = &ПризнакСогласования";


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

   ЭлементУсловия.ЛевоеЗначение = Признак;
   ЭлементУсловия.ВидСравнения =  ВидСравненияКомпоновкиДанных.Равно;
   ЭлементУсловия.ПравоеЗначение = Перечисления.ПризнакСогласования.Согласовано;
23 Wobland
 
29.10.12
08:31
левое значение - ссылка, правое значение - запрос.выполнить().выгрузить().выгрузитьколонку(), вид сравнения - в списке
24 Wobland
 
29.10.12
08:32
+(23) ну и как-то надо заставить запрос выдавать нужные ссылки, а не признак, согласантов (во слово!)  и прочий мусор
25 Бру
 
29.10.12
08:33
оу, получилось)подкрашиваются согласованные договоры, только кроме моих еще и других пользователей
26 Бру
 
29.10.12
08:35
осталось чужие отбросить
27 Wobland
 
29.10.12
08:38
Тематическая ветка форума подобна нераспустившейся розе, которую нужно осветить солнцем, помочь ей подняться. Только когда вопрос уже решён, девушке можно намекнуть про фотку... И тогда распустившаяся роза будет прекрасна!
28 Бру
 
29.10.12
08:39
(27) вопрос еще не до конца решен) 2 условия отказываются вместе работать. ничего не окрашивается
а фоточек на работе нет)
29 Wobland
 
29.10.12
08:45
(28) одно условие тебе нужно. и правильный список.
плохо Вы подготовились ко встрече со звёздами
30 Бру
 
29.10.12
08:49
(29) а по пользователю не нужно условие?

за все время первый раз у меня фотку просят здесь) а я и радовалась, что мне так везет))
31 Wobland
 
29.10.12
08:56
(30) запросом сделай нужный тебе список. со своими условиями, шахматами и поэтессами
только нам не везёт. или везёт, что не видим? ;)
32 Бру
 
29.10.12
09:04
что фоток не просят за помощь)
33 cw014
 
29.10.12
09:05
Ну так а мы просим
34 Бру
 
29.10.12
09:06
нужный список есть, там только один нужный договор, а у меня подкрашивает 2, кроме согласованного договора Администратора подкрашивает и согласованный договор Петрова
35 cw014
 
29.10.12
09:08
Тебе нужно кого подсвечивать договоры? Какого то конкретного пользователя?
36 Wobland
 
29.10.12
09:08
(32) как это не просят? или мы намёков не понимаем, намёки нам не нужны?
даёшь фотку!!
(34) вот какой запрос сделала, такую раскраску и получила
37 cw014
 
29.10.12
09:08
Может быть договор Петрова был согласован Администратором?
38 Бру
 
29.10.12
09:11
(37) нет
39 cw014
 
29.10.12
09:11
В табличной части договоров "согласант" (йопта) - какой тип имеет?
40 Бру
 
29.10.12
09:14
(39) справочник сотрудники
41 Бру
 
29.10.12
09:14
добавила фото, но она плохого качества)
42 Wobland
 
29.10.12
09:17
(41) девушка на нём вполне неплохого качества ;)
43 Wobland
 
29.10.12
09:20
запрос будем показывать?
44 Бру
 
29.10.12
09:21
(42) спасибо)
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Договоры.ПризнакСогласования,
   |    Договоры.Согласант
   |ИЗ
   |    Справочник.Договоры.Согласование КАК Договоры
   |ГДЕ
   |    Договоры.ПризнакСогласования = &ПризнакСогласования";
   
   Запрос.УстановитьПараметр("ПризнакСогласования", Перечисления.ПризнакСогласования.Согласовано );
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       Если ФИО = СокрЛП(Выборка.Согласант) тогда
       Признак = Выборка.ПризнакСогласования;
       Пользователь = СокрЛП(Выборка.Согласант);
           
       КонецЕсли;
   КонецЦикла;
45 Wobland
 
29.10.12
09:23
(44) опять двадцать пять.. я тебе о чём тут пол-ветки талдычил?
46 Бру
 
29.10.12
09:24
колонку выгрузить?
47 Wobland
 
29.10.12
09:26
тебе нужен список. список необходимых для УО ссылок. вот возьми и сделай список. ВыгрузитьКолонку для этого может очень даже пригодиться.
48 cw014
 
29.10.12
09:28
Фио = ИмяПользователя();
           
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    Договоры.Ссылка
   |ИЗ
   |    Справочник.Договоры.Согласование КАК Договоры
   |ГДЕ
   |    Договоры.ПризнакСогласования = &ПризнакСогласования И Договоры.Согласант = &Согласант";


   Запрос.УстановитьПараметр("ПризнакСогласования", Перечисления.ПризнакСогласования.Согласовано );

   Запрос.УстановитьПараметр("Согласант", Согласант );

   ЭлементУО = Список.УсловноеОформление.Элементы.Добавить();
   
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста" , WebЦвета.Малиновый);
   ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

   ЭлементУсловия.ЛевоеЗначение = Ссылка
   ЭлементУсловия.ВидСравнения =  ВидСравненияКомпоновкиДанных.ВСписке;
   ЭлементУсловия.ПравоеЗначение = Запрос.Выполнить.Выгрузить();
49 cw014
 
29.10.12
09:28
С последней строкой могу ошибиться - возможно придется грузить в список значений
50 Wobland
 
29.10.12
09:29
(49) Запрос.Выполнить.Выгрузить().ВыгрузитьКолонку(0) уже говорилось сегодня
51 cw014
 
29.10.12
09:30
(50) Млин, ну точно, как это я так ошибся, спасибо
52 cw014
 
29.10.12
09:31
(44) Фотка привлекательная
53 Wobland
 
29.10.12
09:32
и ещё. =ЗНАЧЕНИЕ(Перечисление.ПризнакСогласования.Согласовано) будет работать на миллисекунды быстрее ;)
54 cw014
 
29.10.12
09:33
(53) +1
55 Бру
 
29.10.12
09:35
пишет недостаточно фактических параметров
56 cw014
 
29.10.12
09:39
Где?
57 cw014
 
29.10.12
09:39
Фио = ИмяПользователя();

Ты физлиц по наименованию сравниваешь с пользователями? А если пользователь - cw014???
58 cw014
 
29.10.12
09:40
ЭлементУсловия.ЛевоеЗначение = Ссылка;

Забыл в конце ";"
59 Бру
 
29.10.12
09:42
(55) ошибку подправила
(57)ну, да, получается, поэтому я в запросе это условие сразу не ставила
60 cw014
 
29.10.12
09:43
Тогда в запросе
"И Договоры.Согласант.Наименование = &Согласант"
61 cw014
 
29.10.12
09:44
Запрос.УстановитьПараметр("Согласант", ИмяПользователя());
62 cw014
 
29.10.12
09:45
(60) А лучше так "И Договоры.Согласант.Наименование ПОДОБНО &Согласант";

Запрос.УстановитьПараметр("Согласант", ИмяПользователя() + "%");
63 Wobland
 
29.10.12
09:45
а ИмяПользователя() - это строка?
//я ответ знаю
64 cw014
 
29.10.12
09:46
(63) Нет конечно, это предопределенный справочник :)
65 Wobland
 
29.10.12
09:46
(62) зачем со строкой сравнивать? имхо тут лучше воззвать к параметрам сеанса про текущего пользователя. если есть, конечно
66 cw014
 
29.10.12
09:46
Вернее его предопределенный элемент
67 cw014
 
29.10.12
09:46
(65) О великие параметры сеанса, да снизойдет на вас благословение. Не будет ли у вас такого параметра, как "ТекущийПользователь" с типом, отличным от типа "Строка"?
68 Wobland
 
29.10.12
09:47
(66) ты девушку не путай тут, видишь, она и так насилу соображает ;)
69 Бру
 
29.10.12
09:47
ИмяПользователя из конфигуратора в Списке пользователей

Базу самописная, и я не стала справочник Пользователи делать
70 Wobland
 
29.10.12
09:47
(69) сознавайся, ты придумала слово "согласант"? или заказчик?
71 Бру
 
29.10.12
09:49
заказчик)
72 cw014
 
29.10.12
09:49
Зато физлица справочник есть
73 cw014
 
29.10.12
09:50
Тут если заказчик заерепенится - придется реквидиты "Агент" и "Принципал" заводить, а когда объекты обзываешь - обязательно все эти наименования с большой буквы... Жесть, но приходится терперть
74 Бру
 
29.10.12
09:52
окрашиваются все строки в списке
75 cw014
 
29.10.12
09:53
Бру, у меня есть в почта, высылай базу - посмотрю хотя бы
76 Бру
 
29.10.12
10:03
спасибо, большое, сейчас все перепроверила, удалила лишнее и получалось, то, что нужно)
77 Wobland
 
29.10.12
10:08
(76) алилуйя!