|
Как обойти циклом по каждой колонке по отдельности | ☑ | ||
---|---|---|---|---|
0
Nepredumal
13.05.20
✎
10:29
|
добрый день ,помогите пжлста как как обойти циклом по каждой колонке по отдельности,и в каждой колонке выделять мин и макс
|
|||
1
Fish
13.05.20
✎
10:33
|
Изложите более подробно задачу: что за колонки, что означает выделять мин и макс? УФ или ОФ и т.д.
|
|||
2
Nepredumal
13.05.20
✎
10:38
|
Есть тз,в ней есть числа,я выделяю для всех колонок максимальное и минимальное значение ,а мне нужно чтобы по каждой колонке выделить мин и макс,это отчет оф
|
|||
3
Fish
13.05.20
✎
10:42
|
(2) "это отчет оф" - Отчет на СКД?
|
|||
4
Nepredumal
13.05.20
✎
10:42
|
нет,обычный
|
|||
5
Михаил Козлов
13.05.20
✎
10:45
|
Опять непонятно: если отчет, то это табличный документ - при чем здесь таблица значений.
Как формируете отчет: сами выводите по макету или штатный, скажем Универсальный отчет. Очевидное, что приходит в голову: найдите и запомните мин/макс в каждой колонке (в тз) и при выводе отчета выделите их. Если речь о том, как найти мин/макс в каждой колонке ТЗ, то циклом по колонкам и в нем циклом по строкам. |
|||
6
Ненавижу 1С
гуру
13.05.20
✎
10:51
|
(5) отчет это НЕ табличный документ
|
|||
7
Nepredumal
13.05.20
✎
10:54
|
(5) Да именно это меня и интересовало ,как найти и запомнить макс и мин
|
|||
8
WhiteDragon93
13.05.20
✎
11:05
|
(7) написать запрос к ТЗ с функциями МИНИМУМ и МАКСИМУМ для каждой колонки.
|
|||
9
WhiteDragon93
13.05.20
✎
11:08
|
+ (8)
ВЫБРАТЬ МИНИМУМ(ТЗДляОбработки.Колонка1) КАК МинимумКолонка1, МАКСИМУМ(ТЗДляОбработки.Колонка1) КАК МаксимумКолонка1, МИНИМУМ(ТЗДляОбработки.Колонка2) КАК МинимумКолонка2, МАКСИМУМ(ТЗДляОбработки.Колонка2) КАК МаксимумКолонка2 ИЗ &ТЗДляОбработки КАК ТЗДляОбработки |
|||
10
Nepredumal
13.05.20
✎
11:10
|
Колонки динамически создаются
|
|||
11
Nepredumal
13.05.20
✎
11:17
|
ДанныеСотрудниковЗапериод = Новый Структура ;
СписокСотрудников = Новый Массив ; Для Каждого Стр Из Сотрудники Цикл Если Стр.Выбран Тогда СписокСотрудников.Добавить(Стр.Сотрудник) ; КонецЕсли; КонецЦикла; СоотПоказателейКИменамВЗапросе = Новый Соответствие ; СоотПоказателейКИменамВЗапросе.Вставить(Перечисления.ПоказателиСотрудников.ОбщиеВремяЗвонка, "ВремяЗвонков") ; СоотПоказателейКИменамВЗапросе.Вставить(Перечисления.ПоказателиСотрудников.КоличествоВходящихЗвонков, "Входящее") ; СоотПоказателейКИменамВЗапросе.Вставить(Перечисления.ПоказателиСотрудников.КоличествоИсходящихЗвонков, "Исходящее") ; СоотПоказателейКИменамВЗапросе.Вставить(Перечисления.ПоказателиСотрудников.КоличествоЗаказов, "КоличествоЗаказов") ; СоотПоказателейКИменамВЗапросе.Вставить(Перечисления.ПоказателиСотрудников.ОбщаяСуммаЗаказа, "СуммаЗаказов") ; СоотПоказателейКИменамВЗапросе.Вставить(Перечисления.ПоказателиСотрудников.НизкаяАктивность, "СлабаяАктивность") ; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Пользователи.Ссылка КАК Пользователь, | ЕСТЬNULL(Званки.ВремяЗвонков, 0) КАК ВремяЗвонков, | ЕСТЬNULL(Званки.Входящее, 0) КАК Входящее, | ЕСТЬNULL(Званки.Исходящее, 0) КАК Исходящее, | ЕСТЬNULL(Заказы.КоличествоЗаказов, 0) КАК КоличествоЗаказов, | ЕСТЬNULL(Заказы.СуммаЗаказов, 0) КАК СуммаЗаказов, | ЕСТЬNULL(Активность.СлабаяАктивность, 0) КАК СлабаяАктивность, | МАКСИМУМ(ЕСТЬNULL(Званки.ВремяЗвонков, 0) + ЕСТЬNULL(Званки.Входящее, 0) + ЕСТЬNULL(Званки.Исходящее, 0) + ЕСТЬNULL(Заказы.КоличествоЗаказов, 0) + ЕСТЬNULL(Заказы.СуммаЗаказов, 0) + ЕСТЬNULL(Активность.СлабаяАктивность, 0)) КАК Поле1, | МИНИМУМ(ЕСТЬNULL(Званки.ВремяЗвонков, 0) + ЕСТЬNULL(Званки.Входящее, 0) + ЕСТЬNULL(Званки.Исходящее, 0) + ЕСТЬNULL(Заказы.КоличествоЗаказов, 0) + ЕСТЬNULL(Заказы.СуммаЗаказов, 0) + ЕСТЬNULL(Активность.СлабаяАктивность, 0)) КАК Поле2 |ИЗ | Справочник.Пользователи КАК Пользователи | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | Событие.Ответственный КАК Пользователь, | СУММА(РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, СЕКУНДА)) КАК ВремяЗвонков, | СУММА(ВЫБОР | КОГДА Событие.ТипСобытия = ЗНАЧЕНИЕ(Перечисление.ВходящееИсходящееСобытие.Входящее) | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ) КАК Входящее, | СУММА(ВЫБОР | КОГДА Событие.ТипСобытия = ЗНАЧЕНИЕ(Перечисление.ВходящееИсходящееСобытие.Исходящее) | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ) КАК Исходящее | ИЗ | Документ.Событие КАК Событие | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЗвонков КАК ИсторияЗвонков | ПО Событие.ИдЗвонка = ИсторияЗвонков.ИДЗвонка | И (ИсторияЗвонков.ВидНеобработаногоЗвонка = ЗНАЧЕНИЕ(Перечисление.ВидыНеобработаныхЗвонков.Недозвон)) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИзбранныеКонтрагентыДляКнигиТелефонии КАК ИзбранныеКонтрагентыДляКнигиТелефонии | ПО Событие.Контрагент = ИзбранныеКонтрагентыДляКнигиТелефонии.Контрагент | ГДЕ | Событие.Дата МЕЖДУ &НачалоПериода И &КонецПериода | И Событие.Ответственный В(&Сотрудник) | И РАЗНОСТЬДАТ(Событие.НачалоСобытия, Событие.ОкончаниеСобытия, МИНУТА) <= 70 | И Событие.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТелефонныйЗвонок) | И НЕ Событие.НачалоСобытия = ДАТАВРЕМЯ(1, 1, 1) | И НЕ Событие.ОкончаниеСобытия = ДАТАВРЕМЯ(1, 1, 1) | И Событие.НачалоСобытия < Событие.ОкончаниеСобытия | И ИсторияЗвонков.ВидНеобработаногоЗвонка ЕСТЬ NULL | И ИзбранныеКонтрагентыДляКнигиТелефонии.Контрагент ЕСТЬ NULL | | СГРУППИРОВАТЬ ПО | Событие.Ответственный) КАК Званки | ПО (Званки.Пользователь = Пользователи.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗаказПокупателя.Ответственный КАК Пользователь, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПокупателя.Ссылка) КАК КоличествоЗаказов, | СУММА(ЗаказПокупателя.СуммаДокумента) КАК СуммаЗаказов | ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя | ГДЕ | ЗаказПокупателя.Ответственный В(&Сотрудник) | И ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода | И НЕ ЗаказПокупателя.ПометкаУдаления | И НЕ ЗаказПокупателя.СтатусЗаказа.СтатусОтмена | | СГРУППИРОВАТЬ ПО | ЗаказПокупателя.Ответственный) КАК Заказы | ПО (Заказы.Пользователь = Пользователи.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | СлабаяАктивностьМенеджеров.Менеджер КАК Пользователь, | КОЛИЧЕСТВО(СлабаяАктивностьМенеджеров.ВидСобытия) КАК СлабаяАктивность | ИЗ | РегистрСведений.СлабаяАктивностьМенеджеров КАК СлабаяАктивностьМенеджеров | ГДЕ | СлабаяАктивностьМенеджеров.Период МЕЖДУ &НачалоПериода И &КонецПериода | И СлабаяАктивностьМенеджеров.Менеджер В(&Сотрудник) | | СГРУППИРОВАТЬ ПО | СлабаяАктивностьМенеджеров.Менеджер) КАК Активность | ПО Пользователи.Ссылка = Активность.Пользователь |ГДЕ | Пользователи.Ссылка В(&Сотрудник) | |СГРУППИРОВАТЬ ПО | Пользователи.Ссылка, | ЕСТЬNULL(Званки.ВремяЗвонков, 0), | ЕСТЬNULL(Званки.Входящее, 0), | ЕСТЬNULL(Званки.Исходящее, 0), | ЕСТЬNULL(Заказы.КоличествоЗаказов, 0), | ЕСТЬNULL(Заказы.СуммаЗаказов, 0), | ЕСТЬNULL(Активность.СлабаяАктивность, 0)"; Запрос.УстановитьПараметр("Сотрудник", СписокСотрудников); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); СоотвествиеМин= новый Соответствие ; СоотвествиеМакс= новый Соответствие ; РезультатЗапроса = Запрос.Выполнить(); Выб = РезультатЗапроса.Выбрать(); Пока Выб.Следующий() Цикл ТекущийПоказательПользователя = 0 ; ИмяКолонкиСотрудникаВРасшифровке = НумерацияСотрудников.Получить(Выб.Пользователь) ; Для Каждого Стр Из Показатели Цикл Если Стр.Выбран Тогда Если Стр.Показатель = Перечисления.ПоказателиСотрудников.НизкаяАктивность Тогда ТекущийПоказательПользователя = ТекущийПоказательПользователя + Выб[СоотПоказателейКИменамВЗапросе.Получить(Стр.Показатель)] * Стр.Коэффициент * -1; Иначе ТекущийПоказательПользователя = ТекущийПоказательПользователя + Выб[СоотПоказателейКИменамВЗапросе.Получить(Стр.Показатель)] * Стр.Коэффициент ; КонецЕсли; КонецЕсли; КонецЦикла; ДанныеСотрудниковЗапериод.Вставить(ИмяКолонкиСотрудникаВРасшифровке, ТекущийПоказательПользователя) ; МинимальныйПоказательПоСотруднику = Мин(МинимальныйПоказательПоСотруднику, ?(ТекущийПоказательПользователя = 0, МинимальныйПоказательПоСотруднику, ТекущийПоказательПользователя)) ; МаксимальныйПоказательПоСотруднику = Макс(МаксимальныйПоказательПоСотруднику, ?(ТекущийПоказательПользователя = 0, МаксимальныйПоказательПоСотруднику, ТекущийПоказательПользователя)) ; КонецЦикла; Возврат ДанныеСотрудниковЗапериод ; |
|||
12
Lexey_
13.05.20
✎
11:57
|
(11) Званки..
|
|||
13
Йохохо
13.05.20
✎
12:09
|
(12) Званки это ЛИДы
|
|||
14
kda26
13.05.20
✎
12:14
|
Воронка продаж о_О
|
|||
15
mistеr
13.05.20
✎
13:22
|
(7) Создать два массива длиной по количеству колонок. Пройти циклом по ТЗ, считать мин и макс, сохранять в массивах.
|
|||
16
Chameleon1980
13.05.20
✎
14:08
|
{10) запрос тоже можно динамически собрать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |