Имя: Пароль:
1C
1С v8
Раскраска справочника номенклатура
0 kojinandrej
 
23.09.11
11:16
Процедура СписокПриВыводеСтроки

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ТоварыОрганизаций.КоличествоОстаток КАК Остаток
|ИЗ
|    РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизаций
|ГДЕ
|    ТоварыОрганизаций.Номенклатура.Наименование = &Номенклатура";    
Запрос.Параметры.Вставить("Номенклатура",ДанныеСтроки.Наименование);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Остаток < 0 Тогда
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Красный;
Иначе
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Синий;
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Белый;
КонецЕсли;
КонецЦикла



Помогите оптимизировать тормозит справочник страшно
1 ZanderZ
 
23.09.11
11:18
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Синий;
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Белый; - это вообще странное колдунство
2 banco
 
23.09.11
11:19
может условие не по наименованию делать а по ссылке? И еще использовать событие При Получении данных
3 Ткачев
 
23.09.11
11:25
Цикл зачем ?
4 Irbis
 
23.09.11
11:29
(0) Это извращение так справочник раскрашивать. Неужели отчетов не хватает, ну по кнопочке остатки показывать, но вот так скопом ....
5 cViper
 
23.09.11
11:29
Используй процедуру ПриПолученииДанных()
6 cViper
 
23.09.11
11:30
+(5) Вернее событие Табличного поля.
7 zak555
 
23.09.11
11:30
(1) за Динамо автор болеет - хочет сине-белых
8 cViper
 
23.09.11
11:31
а вообще конечно (4) прав
9 kojinandrej
 
23.09.11
11:33
Я уже и с бубном танцевал. Быстрее не получается. Все просто привыкли что в семерке так было вот и достали
10 banco
 
23.09.11
11:33
да и еще параметры виртуальной таблицы использовать
11 unregistered
 
23.09.11
11:33
(0) Смотри пример с ИТС:

http://www.its.1c.ru/db/metod81#content:2805:1
12 kojinandrej
 
23.09.11
11:36
если бы она еще было оф тогда я бы глянул
13 Ткачев
 
23.09.11
11:39
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ЕСТЬNULL(ТоварыОрганизаций.КоличествоОстаток, 0) КАК Остаток
|ИЗ
|    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура = &Номенклатура) КАК ТоварыОрганизаций";    
Запрос.Параметры.Вставить("Дата",ТекущаяДата());
Запрос.Параметры.Вставить("Номенклатура",ДанныеСтроки.Ссылка);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Если Выборка.Остаток < 0 Тогда
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Красный;
Иначе
ОформлениеСтроки.Ячейки.Наименование.ЦветТекста = WebЦвета.Синий;
КонецЕсли;
КонецЕсли;
14 H A D G E H O G s
 
23.09.11
11:44
15 H A D G E H O G s
 
23.09.11
11:44
(13) Плохо.
16 unregistered
 
23.09.11
11:45
(12) >> если бы она еще было оф

Кто "она" и что означает "оф"?

Ты что нищий пират без подписки на ИТС?
17 Ткачев
 
23.09.11
11:46
(15)Почему? там ведь "Процедура СписокПриВыводеСтроки ", значит идет по текущей строке.
На работоспособность не проверял, я копипастил.
18 acsent
 
23.09.11
11:46
При виде кода из (0) из уст вырывается только одна фраза
е..аный тыж божеж мой
19 H A D G E H O G s
 
23.09.11
11:47
(16) Капер.
Набигает на сайты типа Мисты, грабит кот, подрывает могущество державы 1С.
20 cViper
 
23.09.11
11:47
(17) Смотри (6) и (14)
21 H A D G E H O G s
 
23.09.11
11:47
(17) Почитай (14)
22 unregistered
 
23.09.11
11:48
Вывод остатков в справочнике Номенклатура:

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
 // Соответствие создается для заполнения остатков в строках табличного поля
 Соответствие = Новый Соответствие;
 // Заполнение параметра - массива значений ссылками на отображаемые строки табличного поля
 СсылкиМассив = Новый Массив;
 Для каждого Стр из ОформленияСтрок Цикл
    СсылкиМассив.Добавить(Стр.ДанныеСтроки.Ссылка);
    Соответствие.Вставить(Стр.ДанныеСтроки.Ссылка, Стр);
 КонецЦикла;
 // Сформировать запрос для получения остатков
 ЗапросОстатка = Новый Запрос;
 ЗапросОстатка.Текст = "ВЫБРАТЬ
 | УчетНоменклатурыОстатки.Номенклатура,
 | УчетНоменклатурыОстатки.КоличествоОстаток
 |ИЗ
 | РегистрНакопления.УчетНоменклатуры.Остатки(, Номенклатура В (&Номенклатура)) КАК УчетНоменклатурыОстатки";
 ЗапросОстатка.УстановитьПараметр("Номенклатура", СсылкиМассив);
 Выборка = ЗапросОстатка.Выполнить().Выбрать();
 //Вывести остаток в строку, найденную в соответствии по номенклатуре из запроса
 Пока Выборка.Следующий() Цикл
    Соответствие.Получить(Выборка.Номенклатура).Ячейки.Остаток.Значение = Выборка.КоличествоОстаток;
 КонецЦикла;
КонецПроцедуры
23 Ткачев
 
23.09.11
11:57
(21)Так там весь список крутить будет, причем постоянно.
24 H A D G E H O G s
 
23.09.11
11:59
(23) Где? Почему?
25 cViper
 
23.09.11
12:01
(23) Нет. не весь список. Сколько юзер отмотает, столько и будет передано в параметре ОформленияСтрок.
26 cViper
 
23.09.11
12:03
+(25) 3 строки, значит будет 3 строки передано. Список целиком, будет весь список. Однозначно это будет быстрее чем делать запрос в ПриВыводеСтроки().
27 H A D G E H O G s
 
23.09.11
12:11
(26) +
При малейшем чихе (список сдвинули на 1 позицию) - ПриВыводеСтроки опять вызовется для всех отображаемых (и уже обработанных) строк.
28 Ткачев
 
23.09.11
12:11
(25)Ну да, просто у меня эта процедура из нескольких мест вызывается и не влияет на видимость колонки.
29 kojinandrej
 
23.09.11
14:27
(22) ну вывел я остатки, а разукрасить???
30 kojinandrej
 
23.09.11
14:28
(13) Ты хоть проверял??? Красит всю номенклатуру
31 vmv
 
23.09.11
14:29
вот поэтому в 8.2 и убрали

СписокПриВыводеСтроки


чтобы такой бред туда не совали
32 kojinandrej
 
23.09.11
14:36
(31) Я так понял нужно бросить эту затею
33 H A D G E H O G s
 
23.09.11
14:42
(31) Там появился ПроизвольныйЗапрос ДинамическогоСписка, что чуток похуже будет.
34 H A D G E H O G s
 
23.09.11
14:42
(32) Да.
И идти мыть полы.
http://lurkmore.ru/Вон%20из%20профессии
35 Синий зуб
 
23.09.11
14:44
(33) Чем похуже то? А то я посмотрел управляемую форму списка документов Заявка на расходование средств с группировками и раскраской строк по условию - вроде красиво все.
36 H A D G E H O G s
 
23.09.11
14:50
(35) Остатки фильтруются ЛевымСоединением, а не параметров ВТ.
37 H A D G E H O G s
 
23.09.11
14:51
(35) Были уже холивары , и не раз.
За уточнениями - к Мане.
38 unregistered
 
23.09.11
15:09
(29) >> а разукрасить???

Может мне тебя еще и в >|<опу расцеловать?

Тебе пример дали как . Потрудись сам переложить его на свою конкретную задачу. Тем более, что там надо всего пару строчек написать/изменить.
Ошибка? Это не ошибка, это системная функция.