Заполнение таблицы значений

1. 25.11.21 09:51 Сейчас в теме
Доброго времени суток.

Первая таблица это выгруженная таблица из запроса, вторая таблица - это таблица значений (Управляемой Формы). Как написать код для заполнения таблицы значений из таблицы запроса? Пример на картинке
Прикрепленные файлы:
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 58 25.11.21 10:13 Сейчас в теме
(1)1. получить из таблицы запроса всю уникальную номенклатуру.
2. Пробежаться по списку номенклатуры из п.1 циклом, производя поиск строк в таблице из запроса по номенклатуре для получения списка месяцев.
3. Пробежаться по списку месяцев из п.2 циклом и заполнить колонки в ТЧ на форме.
3. VictorRGB2 13 25.11.21 10:15 Сейчас в теме
ну по картинке. вроде просто
берем и перекладываем в готовую таблицу из Номеклатура\все месяцы года
а дальше циклом по таблице запроса, только отсортировать ее по дата\номенклатура
и знай себе строки заполняй

что-то такое, навскидку
ТЗ_Нужная = Новый ТаблицаЗначений
ТЗ_Нужная.Колонки.Добавить("Номегклатура")
ТЗ_Нужная.Колонки.Добавить("Январь")
... добавлем весь год
ТЗ_Нужная.Колонки.Добавить("Декабрь")

ТЗ_Запроса.Сортировать("Дата Возр, Номеклатура Возр");
Для Каждого стр Из ТЗ_Запроса Цикл
 Если ТЗ_Нужная.НайтиСтроки(Новый Структура("Номенклатура", стр.Номенклатура)).Количество() <> 0 Тогда
  Продолжить
 КонецЕсли
 массивСтрокНом = ТЗ_Запроса.НайтиСтроки(Новый Структура("Номенклатура", стр.Номенклатура))
 Для Каждого стрМассива Из массивСтрокНом Цикл
  новаяСтр = ТЗ_НужнаяДобавить()
  новаяСтр.Номеклатура = стрМассива.Номеклатура
  // вот тут надо вычислить месяц даты стрМассива и заполнить нужную колонку (можно вынести как отдельную функцию для заполнения, чтобы красиво было)
  месяцСтр = Месяц(стрМассива.Дата)
  Если месяцСтр = 1 Тогда
   новаяСтр.Январь = стрМассива.Количество
  КонецЕсли
  ...
  Если месяцСтр = 12 Тогда
   новаяСтр.Декабрь = стрМассива.Количество
  КонецЕсли
 КонецЦикла
 КонецЦикла
Показать
4. soft_wind 25.11.21 10:22 Сейчас в теме
(1) попробуйте такой код, только свои наименования реквизитов замените

НовСтрока = Неопределено;
ТаблицаФормы.Очистить();//сброс старых данных
Для каждого лкСтр Из РезультатТЗ Цикл
	//перебираем все строчки результата запроса
	Если НовСтрока = Неопределено или НовСтрока.Номенклатура <> лкСтр.Номенклатура Тогда
		//смена товара, добавляем новую строчку в ТЗ формы	
		НовСтрока = ТаблицаФормы.Добавить();
		НовСтрока.Номенклатура = лкСтр.Номенклатура;
	КонецЕсли; 
	//по дате определяем Имя колонки и заполняем количество
	НовСтрока[ПолучитьИмяКолонкиПоДате(лкСтр.Дата)].Количество = лкСтр.Количество;
КонецЦикла; 
Показать
5. soft_wind 25.11.21 10:28 Сейчас в теме
(4) или если колонки ТЗ на форме так и называются Январь, Февраль, ...
то можно использовать такую команду


//по дате определяем Имя колонки и заполняем количество
НовСтрока[Формат(лкСтр.Дата,"ДФ=ММММ")].Количество = лкСтр.Количество;
6. Satoshi_Nakamoto 25.11.21 11:49 Сейчас в теме
(5)
или если колонки ТЗ на форме так и называются Январь, Февраль, ...

Да, есть такие колонки. Большое спасибо.
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Тестировщик 1С
Санкт-Петербург
зарплата от 60 000 руб. до 120 000 руб.
Полный день

Архитектор НСИ
Москва
зарплата от 250 000 руб. до 300 000 руб.
Полный день

Аналитик 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 220 000 руб.
Полный день

Руководитель отдела разработки
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день