Делаю на СКД отчет, с набором данных объект.
В модуле объекта при компановке результата во внешние наборы данных передаю таблицу значений. Ее собираю вот этой функцией:
переменная МассивСтрок всегда неопределено, отбор не работает. Как поправить?
В модуле объекта при компановке результата во внешние наборы данных передаю таблицу значений. Ее собираю вот этой функцией:
"&НаСервере
Функция ЗаполнитьДележку()
Дележка = Новый ТаблицаЗначений;
Дележка.Колонки.Добавить("Менеджер");
Дележка.Колонки.Добавить("ПроцентДележки");
Дележка.Колонки.Добавить("СуммаДележки");
Дележка.Колонки.Добавить("ЗаказКлиента");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РасчетыСКлиентами.Период КАК Период,
| РасчетыСКлиентами.Регистратор КАК Регистратор,
| РасчетыСКлиентами.ОбъектРасчетов КАК ЗаказКлиента,
| ВЫБОР
| КОГДА РасчетыСКлиентами.Оплачивается <> 0
| ТОГДА РасчетыСКлиентами.Оплачивается
| ИНАЧЕ РасчетыСКлиентами.Сумма
| КОНЕЦ КАК Приход,
| РасчетыСКлиентами.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| РасчетыСКлиентами.ОбъектРасчетов.Менеджер КАК Менеджер,
| РасчетыСКлиентами.ОбъектРасчетов.Подразделение КАК Подразделение,
| РасчетыСКлиентами.ОбъектРасчетов.Организация КАК Организация,
| РасчетыСКлиентами.ОбъектРасчетов.Контрагент КАК Контрагент,
| РасчетыСКлиентами.ФормаОплаты КАК ФормаОплаты
|ИЗ
| РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами
|ГДЕ
// | РасчетыСКлиентами.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| РасчетыСКлиентами.Период МЕЖДУ ДАТАВРЕМЯ(2024,10,1,0,0,0) И ДАТАВРЕМЯ(2025,1,1,0,0,0)
| И РасчетыСКлиентами.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента)";
Выборка = Запрос.Выполнить().Выбрать();
Запрос1 = Новый Запрос;
Запрос1.Текст =
"ВЫБРАТЬ
| ДП_УчастникиЗаказа.Менеджер КАК Менеджер,
| ДП_УчастникиЗаказа.Процент КАК Процент,
| 0 КАК СуммаДележки,
| ДП_УчастникиЗаказа.ЗаказКлиента.Ссылка КАК Заказ
|ИЗ
| РегистрСведений.ДП_УчастникиЗаказа КАК ДП_УчастникиЗаказа";
ТабДележки = Запрос1.Выполнить().Выгрузить();
Пока Выборка.Следующий() Цикл
стрОтбор = Новый Структура("Заказ", Выборка.ЗаказКлиента);
МассивСтрок = ТабДележки.НайтиСтроки(стрОтбор);
Если МассивСтрок.Количество()>0 Тогда //еcть дележки,
НомерСтр=0;
Для каждого выбстрока из МассивСтрок Цикл
номерСтр=НомерСтр+1;
Если номерстр>1 тогда
НоваяСтрока=Дележка.Добавить();
НоваяСтрока.ЗаказКлиента=Выборка.ЗаказКлиента;
КонецЕсли;
НоваяСтрока.Менеджер=Выбстрока.Менеджер;
НоваяСтрока.СуммаДележки=Выборка.Приход;
НоваяСтрока.ПроцентДележки = Выбстрока.Процент;
КонецЦикла;
Иначе //нет дележки все на менеджера указнного в заказе
НоваяСтрока=Дележка.Добавить();
НоваяСтрока.ЗаказКлиента=Выборка.ЗаказКлиента;
НоваяСтрока.Менеджер=Выборка.Менеджер;
НоваяСтрока.СуммаДележки=Выборка.Приход;
НоваяСтрока.ПроцентДележки = 100;
КонецЕсли;
КонецЦикла;
Возврат Дележка;
КонецФункции // ()"
Показатьпеременная МассивСтрок всегда неопределено, отбор не работает. Как поправить?
По теме из базы знаний
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Групмейкер для таблицы значений.
- Как передать Таблицу Значений в Динамический Список?
- Расширенная функция поиска строк по таблице значений
- Шаблон получения таблицы значений выполнением СКД с настройкой в форме
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот