Менеджеры нуждаются в цветовом оформлении формы списка Заказов покупателей. Причем им хочется приблизительно такое:
Цвет текста строки должен быть зеленым - для закрытого (полностью отгруженного) заказа черным - для незакрытого заказа красным - для заказа по которому отгружено больше чем заказано
Цвет текста фона колонки "Картинка" должен быть красным - для неоплаченного заказа желтым - для частично оплаченного заказа зеленым - для полностью оплаченного заказа.
Самое примитивное решение - выполнять запросы по определению состояний отгрузки и оплаты заказов в процедуре "ПриВыводеСтроки" работает чересчур долго ибо в системе тысячи заказов.
Та это понятно. Я же написал, чтобы определить ХотимПерсиковый или ХотимЖелтый нужно выполнить запрос, а для тысячи строк запрос работает долго - меня менеджеры порежут.
ой...не дочитал доконца вопрос...извеняюсь. ...я так пологаю запрос не упростишь?
В принципе, как вариант, можно создать регистры сведений "СостоянияЗаказаПоОтгрузке" и "СостоянияЗаказаПоОплате", и писать запрос к ним - тогда, конечно, запрос упростишь.
Но, в этом случае нужно перелопатить очень много кода, чтобы правильно и вовремя заполнять эти регистры. Слишком много гемороя ради такой фуфельной задачки.
Та это понятно. Я же написал, чтобы определить ХотимПерсиковый или ХотимЖелтый нужно выполнить запрос, а для тысячи строк запрос работает долго - меня менеджеры порежут.
Уже лучше, но все равно тормозит страшно
ИМХО запросом решить это оптимальный вариант. Обычный перебор займет гораздо больше времени и ресурсов, а с регистрами -геморой.
Почти ветеран
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0
1. если можно то "&ЗаказПокупателя" засунуть в "РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаКон, куданить сюда)" (получается выбриатеся вся таблица..а потом на нее условие....если туды...то таблица выберится сразу с условием) 2. Дату в условие
Перепиши: 1. Обход строк получение всех заказов 2. Выполнение одного запроса 3. Обход строк и установка значений исходя из данных запроса.
Цитата(zetovich @ 13.08.09, 12:52)
1. если можно то "&ЗаказПокупателя" засунуть в "РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаКон, куданить сюда)" (получается выбриатеся вся таблица..а потом на нее условие....если туды...то таблица выберится сразу с условием) 2. Дату в условие
Спасибо, в таком виде работает ПОЧТИ без тормозов.
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)Если ЗапросСостоянияЗаказа = НеопределеноТогда
ЗапросСостоянияЗаказа = Новый Запрос;
ЗапросСостоянияЗаказа.Текст =
"ВЫБРАТЬ
| ЗаказыПокупателейОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
| ЗаказыПокупателейОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ЗаказыПокупателей.Остатки(, ЗаказПокупателя В (&ЗаказыПокупателя)) КАК ЗаказыПокупателейОстатки";
КонецЕсли;
ВыводимыеЗаказы = Новый Массив;
ДляКаждого Строка Из ОформленияСтрок Цикл
ВыводимыеЗаказы.Добавить(Строка.ДанныеСтроки.Ссылка);
КонецЦикла;
ЗапросСостоянияЗаказа.УстановитьПараметр("ЗаказыПокупателя", ВыводимыеЗаказы);
Выборка = ЗапросСостоянияЗаказа.Выполнить().Выбрать();
СтруктураПоиска = Новый Структура("ЗаказПокупателя");
ДляКаждого ОформлениеСтроки Из ОформленияСтрок Цикл
СтруктураПоиска.ЗаказПокупателя = ОформлениеСтроки.ДанныеСтроки.Ссылка;
СтрокаНайдена = Выборка.НайтиСледующий(СтруктураПоиска);
ЕслиНе СтрокаНайдена Тогда
ОформлениеСтроки.ЦветТекста = ЦветЗакрытыхЗаказов;
ИначеЕсли Выборка.КоличествоОстаток < 0Тогда
ОформлениеСтроки.ЦветТекста = ЦветПереотгруженныхЗаказов;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Почти ветеран
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0
ВыводимыеЗаказы = Новый Массив;
ДляКаждого Строка Из ОформленияСтрок Цикл
ВыводимыеЗаказы.Добавить(Строка.ДанныеСтроки.Ссылка);
КонецЦикла;
ЗапросСостоянияЗаказа.УстановитьПараметр("ЗаказыПокупателя", ВыводимыеЗаказы);
ВыводимыеЗаказы = Новый Массив;
ДляКаждого Строка Из ОформленияСтрок Цикл
ВыводимыеЗаказы.Добавить(Строка.ДанныеСтроки.Ссылка);
КонецЦикла;
ЗапросСостоянияЗаказа.УстановитьПараметр("ЗаказыПокупателя", ВыводимыеЗаказы);
Почти ветеран
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0
ой перепутал, нужно "ОформленияСтрок"... т.е. ЗапросСостоянияЗаказа.УстановитьПараметр("ЗаказыПокупателя", ОформленияСтрок.ВыгрузитьКолнку("Ссылка")); .........а мож в буфер не то скопировал...бывает.
ой перепутал, нужно "ОформленияСтрок"... т.е. ЗапросСостоянияЗаказа.УстановитьПараметр("ЗаказыПокупателя", ОформленияСтрок.ВыгрузитьКолнку("Ссылка")); .........а мож в буфер не то скопировал...бывает.
Было бы здорово, но так оно не работает. У объекта ОформленияСтрок есть только два метода "Получить()" и "Количество()".
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!