![]() |
|
Не работает отбор в таблице значений 🠗 (Волшебник 12.05.2025 09:18) |
☑ | ||
---|---|---|---|---|
0
rookie2025
11.05.25
✎
17:56
|
Делаю на СКД отчет, с набором данных объект.
В модуле объекта при компановке результата во внешние наборы данных передаю таблицу значений. Ее собираю вот этой функцией: "&НаСервере Функция ЗаполнитьДележку() Дележка = Новый ТаблицаЗначений; Дележка.Колонки.Добавить("Менеджер"); Дележка.Колонки.Добавить("ПроцентДележки"); Дележка.Колонки.Добавить("СуммаДележки"); Дележка.Колонки.Добавить("ЗаказКлиента"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | РасчетыСКлиентами.Период КАК Период, | РасчетыСКлиентами.Регистратор КАК Регистратор, | РасчетыСКлиентами.ОбъектРасчетов КАК ЗаказКлиента, | ВЫБОР | КОГДА РасчетыСКлиентами.Оплачивается <> 0 | ТОГДА РасчетыСКлиентами.Оплачивается | ИНАЧЕ РасчетыСКлиентами.Сумма | КОНЕЦ КАК Приход, | РасчетыСКлиентами.ХозяйственнаяОперация КАК ХозяйственнаяОперация, | РасчетыСКлиентами.ОбъектРасчетов.Менеджер КАК Менеджер, | РасчетыСКлиентами.ОбъектРасчетов.Подразделение КАК Подразделение, | РасчетыСКлиентами.ОбъектРасчетов.Организация КАК Организация, | РасчетыСКлиентами.ОбъектРасчетов.Контрагент КАК Контрагент, | РасчетыСКлиентами.ФормаОплаты КАК ФормаОплаты |ИЗ | РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами |ГДЕ // | РасчетыСКлиентами.Период МЕЖДУ &ДатаНачала И &ДатаОкончания | РасчетыСКлиентами.Период МЕЖДУ ДАТАВРЕМЯ(2024,10,1,0,0,0) И ДАТАВРЕМЯ(2025,1,1,0,0,0) | И РасчетыСКлиентами.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента)"; Выборка = Запрос.Выполнить().Выбрать(); Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | ДП_УчастникиЗаказа.Менеджер КАК Менеджер, | ДП_УчастникиЗаказа.Процент КАК Процент, | 0 КАК СуммаДележки, | ДП_УчастникиЗаказа.ЗаказКлиента.Ссылка КАК Заказ |ИЗ | РегистрСведений.ДП_УчастникиЗаказа КАК ДП_УчастникиЗаказа"; ТабДележки = Запрос1.Выполнить().Выгрузить(); Пока Выборка.Следующий() Цикл стрОтбор = Новый Структура("Заказ", Выборка.ЗаказКлиента); МассивСтрок = ТабДележки.НайтиСтроки(стрОтбор); Если МассивСтрок.Количество()>0 Тогда //еcть дележки, НомерСтр=0; Для каждого выбстрока из МассивСтрок Цикл номерСтр=НомерСтр+1; Если номерстр>1 тогда НоваяСтрока=Дележка.Добавить(); НоваяСтрока.ЗаказКлиента=Выборка.ЗаказКлиента; КонецЕсли; НоваяСтрока.Менеджер=Выбстрока.Менеджер; НоваяСтрока.СуммаДележки=Выборка.Приход; НоваяСтрока.ПроцентДележки = Выбстрока.Процент; КонецЦикла; Иначе //нет дележки все на менеджера указнного в заказе НоваяСтрока=Дележка.Добавить(); НоваяСтрока.ЗаказКлиента=Выборка.ЗаказКлиента; НоваяСтрока.Менеджер=Выборка.Менеджер; НоваяСтрока.СуммаДележки=Выборка.Приход; НоваяСтрока.ПроцентДележки = 100; КонецЕсли; КонецЦикла; Возврат Дележка; КонецФункции // ()" переменная МассивСтрок всегда неопределено, отбор не работает. как поправить? |
|||
1
Chai Nic
11.05.25
✎
18:00
|
Вроде бы ТЗ должна быть с типизированными полями
|
|||
2
Мультук
гуру
11.05.25
✎
18:06
|
(0)
1) Ради интереса посмотри в отладчике типЗнч() у РасчетыСКлиентами.ОбъектРасчетов (Выборка.ЗаказКлиента) и внезапно это справочник, Карл (с) 2) В качестве говнокода можно наверное написать | РасчетыСКлиентами.ОбъектРасчетов.Объект КАК ЗаказКлиента, |
|||
3
Лодырь
11.05.25
✎
18:27
|
А почему дележка в цикле, а не в запросе?
|
|||
4
rookie2025
11.05.25
✎
19:02
|
(2) Спасибо, изменение запросов проблему решило, все работает.
p.s. новичку с опытом в пару месяцев пока еще простительно говнокодить. |
|||
5
craxx
11.05.25
✎
20:43
|
(4) Новичку как раз говнокодить НЕ простительно, иначе потом войдет в привычку. Делать надо сразу нормально.
|
|||
6
Рэйв
12.05.25
✎
08:12
|
(3)Выполнение запроса в цикле наше все:-)
|
|||
7
Stepashkin
12.05.25
✎
08:27
|
(5) 👍
|
|||
8
maxab72
12.05.25
✎
08:35
|
Философский вопрос: Если в цикле обращаться к функции глобального модуля в которой есть запрос, это считается моветоном или нет?
|
|||
9
Климов Сергей
12.05.25
✎
09:18
|
(8) Да, если ты знаешь, что в функции есть такой запрос.
|
|||
10
Fish
гуру
12.05.25
✎
09:04
|
(9) А если не знаешь, то норм?
|
|||
11
lucky_
12.05.25
✎
09:10
|
(8) не нужно путать философские вопросы с тупыми.
|
|||
12
Мультук
гуру
12.05.25
✎
09:14
|
Может заведём отдельную тему на форуме -- "утренний пук в лужу" ?
Будем постить туда котят, фотки завтрака. Умные мысля а-ля -- "нельзя обращаться через три точки, иначе придёт адский сотона" ? |
|||
13
Волшебник
12.05.25
✎
09:18
|
(12) Говноветка получится
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |