По теме из базы знаний
- Установка в запросе таблицы значений в качестве параметра
- Консоль запросов для управляемых форм, с поддержкой параметров (и заполнением их) в виде Таблицы значений и списка значений
- Преобразование структуры в таблицу значений
- Конструктор сравнения таблиц значения, в том числе из внешней базы
- Как передать Таблицу Значений в Динамический Список?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)1. получить из таблицы запроса всю уникальную номенклатуру.
2. Пробежаться по списку номенклатуры из п.1 циклом, производя поиск строк в таблице из запроса по номенклатуре для получения списка месяцев.
3. Пробежаться по списку месяцев из п.2 циклом и заполнить колонки в ТЧ на форме.
2. Пробежаться по списку номенклатуры из п.1 циклом, производя поиск строк в таблице из запроса по номенклатуре для получения списка месяцев.
3. Пробежаться по списку месяцев из п.2 циклом и заполнить колонки в ТЧ на форме.
ну по картинке. вроде просто
берем и перекладываем в готовую таблицу из Номеклатура\все месяцы года
а дальше циклом по таблице запроса, только отсортировать ее по дата\номенклатура
и знай себе строки заполняй
что-то такое, навскидку
берем и перекладываем в готовую таблицу из Номеклатура\все месяцы года
а дальше циклом по таблице запроса, только отсортировать ее по дата\номенклатура
и знай себе строки заполняй
что-то такое, навскидку
ТЗ_Нужная = Новый ТаблицаЗначений
ТЗ_Нужная.Колонки.Добавить("Номегклатура")
ТЗ_Нужная.Колонки.Добавить("Январь")
... добавлем весь год
ТЗ_Нужная.Колонки.Добавить("Декабрь")
ТЗ_Запроса.Сортировать("Дата Возр, Номеклатура Возр");
Для Каждого стр Из ТЗ_Запроса Цикл
Если ТЗ_Нужная.НайтиСтроки(Новый Структура("Номенклатура", стр.Номенклатура)).Количество() <> 0 Тогда
Продолжить
КонецЕсли
массивСтрокНом = ТЗ_Запроса.НайтиСтроки(Новый Структура("Номенклатура", стр.Номенклатура))
Для Каждого стрМассива Из массивСтрокНом Цикл
новаяСтр = ТЗ_НужнаяДобавить()
новаяСтр.Номеклатура = стрМассива.Номеклатура
// вот тут надо вычислить месяц даты стрМассива и заполнить нужную колонку (можно вынести как отдельную функцию для заполнения, чтобы красиво было)
месяцСтр = Месяц(стрМассива.Дата)
Если месяцСтр = 1 Тогда
новаяСтр.Январь = стрМассива.Количество
КонецЕсли
...
Если месяцСтр = 12 Тогда
новаяСтр.Декабрь = стрМассива.Количество
КонецЕсли
КонецЦикла
КонецЦикла
Показать
(1) попробуйте такой код, только свои наименования реквизитов замените
НовСтрока = Неопределено;
ТаблицаФормы.Очистить();//сброс старых данных
Для каждого лкСтр Из РезультатТЗ Цикл
//перебираем все строчки результата запроса
Если НовСтрока = Неопределено или НовСтрока.Номенклатура <> лкСтр.Номенклатура Тогда
//смена товара, добавляем новую строчку в ТЗ формы
НовСтрока = ТаблицаФормы.Добавить();
НовСтрока.Номенклатура = лкСтр.Номенклатура;
КонецЕсли;
//по дате определяем Имя колонки и заполняем количество
НовСтрока[ПолучитьИмяКолонкиПоДате(лкСтр.Дата)].Количество = лкСтр.Количество;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот