Не работает отбор в таблице значений

1. user2105001 11.05.25 17:21 Сейчас в теме
Делаю на СКД отчет, с набором данных объект.
В модуле объекта при компановке результата во внешние наборы данных передаю таблицу значений. Ее собираю вот этой функцией:
"&НаСервере
Функция ЗаполнитьДележку()
	
	Дележка = Новый ТаблицаЗначений;
	Дележка.Колонки.Добавить("Менеджер");
	Дележка.Колонки.Добавить("ПроцентДележки");
	Дележка.Колонки.Добавить("СуммаДележки");
	Дележка.Колонки.Добавить("ЗаказКлиента");
	
	Запрос = Новый Запрос; 
	Запрос.Текст = 
	    "ВЫБРАТЬ РАЗЛИЧНЫЕ
	    |	РасчетыСКлиентами.Период КАК Период,
	    |	РасчетыСКлиентами.Регистратор КАК Регистратор,
	    |	РасчетыСКлиентами.ОбъектРасчетов КАК ЗаказКлиента,
	    |	ВЫБОР
	    |		КОГДА РасчетыСКлиентами.Оплачивается <> 0
	    |			ТОГДА РасчетыСКлиентами.Оплачивается
	    |		ИНАЧЕ РасчетыСКлиентами.Сумма
	    |	КОНЕЦ КАК Приход,
	    |	РасчетыСКлиентами.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
	    |	РасчетыСКлиентами.ОбъектРасчетов.Менеджер КАК Менеджер,
	    |	РасчетыСКлиентами.ОбъектРасчетов.Подразделение КАК Подразделение,
	    |	РасчетыСКлиентами.ОбъектРасчетов.Организация КАК Организация,
	    |	РасчетыСКлиентами.ОбъектРасчетов.Контрагент КАК Контрагент,
	    |	РасчетыСКлиентами.ФормаОплаты КАК ФормаОплаты
	    |ИЗ
	    |	РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами
	    |ГДЕ
	   // |	РасчетыСКлиентами.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	   	|	РасчетыСКлиентами.Период МЕЖДУ ДАТАВРЕМЯ(2024,10,1,0,0,0) И ДАТАВРЕМЯ(2025,1,1,0,0,0)
		|	И РасчетыСКлиентами.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента)";
	Выборка = Запрос.Выполнить().Выбрать();	

	Запрос1 = Новый Запрос;
	Запрос1.Текст = 
		"ВЫБРАТЬ
		|	ДП_УчастникиЗаказа.Менеджер КАК Менеджер,
		|	ДП_УчастникиЗаказа.Процент КАК Процент,
		|	0 КАК СуммаДележки,
		|	ДП_УчастникиЗаказа.ЗаказКлиента.Ссылка КАК Заказ
		|ИЗ
		|	РегистрСведений.ДП_УчастникиЗаказа КАК ДП_УчастникиЗаказа";
	
	ТабДележки = Запрос1.Выполнить().Выгрузить();  
	
	Пока Выборка.Следующий() Цикл
			стрОтбор = Новый Структура("Заказ", Выборка.ЗаказКлиента);
			МассивСтрок = ТабДележки.НайтиСтроки(стрОтбор);  
			Если МассивСтрок.Количество()>0 Тогда //еcть дележки, 
				НомерСтр=0;
				Для каждого выбстрока из МассивСтрок Цикл
					номерСтр=НомерСтр+1;
					Если номерстр>1 тогда
						НоваяСтрока=Дележка.Добавить();
						НоваяСтрока.ЗаказКлиента=Выборка.ЗаказКлиента; 
					КонецЕсли;	
					НоваяСтрока.Менеджер=Выбстрока.Менеджер;	
					НоваяСтрока.СуммаДележки=Выборка.Приход;
					НоваяСтрока.ПроцентДележки = Выбстрока.Процент; 
				КонецЦикла;	
			Иначе	 //нет дележки  все на менеджера указнного в заказе
				НоваяСтрока=Дележка.Добавить();
				НоваяСтрока.ЗаказКлиента=Выборка.ЗаказКлиента;
				НоваяСтрока.Менеджер=Выборка.Менеджер;	
				НоваяСтрока.СуммаДележки=Выборка.Приход;
				НоваяСтрока.ПроцентДележки = 100;
			КонецЕсли;
	КонецЦикла;	
	

	Возврат Дележка;

КонецФункции // ()"
Показать

переменная МассивСтрок всегда неопределено, отбор не работает. Как поправить?
По теме из базы знаний
Найденные решения
5. user2105001 11.05.25 19:05 Сейчас в теме
Проблема решена. Была проблема в запросах в типах значения.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 11.05.25 18:02 Сейчас в теме
(1)
переменная МассивСтрок всегда неопределено, отбор не работает. Как поправить?

Единственный вариант, когда МасивСтрок будет неопределено в этом коде, это когда первый запрос ничего не возвращает. Пустой результат запроса.
3. user2105001 11.05.25 18:05 Сейчас в теме
(2) нет, запросы возвращают данные. в первом запросе 190 строк, во втором 3000
4. spacecraft 11.05.25 18:13 Сейчас в теме
(3) тогда МассивСтрок не может быть Неопределено.
5. user2105001 11.05.25 19:05 Сейчас в теме
Проблема решена. Была проблема в запросах в типах значения.
6. karamazoff 127 11.05.25 21:36 Сейчас в теме
Зачем так издеваться над скд? скд как раз для того чтобы не писать свой говнокод, всего 2 регистра, почему нормально не написать это действительно в скд? Зачем такие извращения?
user1936660; user1832003; +2 Ответить
7. user2105001 14.05.25 21:17 Сейчас в теме
(6) будь это возможно собрать в скд, делалось бы там. Базу их с учетом то не видели, специфику не знаете.
9. user1832003 57 16.05.25 03:33 Сейчас в теме
(7) тот говнокод что написан в посте легко пишется в скд без произвольного кода. Просто ты не осилил язык запросов 1с ( по факту переведенный sql и некоторым изменением положения ключей)
8. пользователь 14.05.25 23:11
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот