1. user817897 24.03.20 00:15 Сейчас в теме

Как при динамическом добавлении колонок в ТЗ вставить значение?

Подскажите пожалуйста на обычных формах, как при динамическом добавлении колонок в ТЗ вставить значение?

	
РЗ = Запрос.Выполнить().Выгрузить();
	для Каждого строка из РЗ цикл
		
		Нед = НеделяГода(строка.ПериодНедели);			
		НоваяКолонка = 	ЭлементыФормы.ТЗ.Колонки.Добавить();
		НоваяКолонка.ТекстШапки = Нед;
		НоваяКолонка.Имя = Нед;

КонецЦикла();
Показать

В коде,создаю колонку,как сразу в её записать значение?
Ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
4. tusv 181 24.03.20 08:44 Сейчас в теме
(1)У Вас обычные формы.
Достаточно
ЭлементыФормы.ТЗ.Значение=Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТЗ.СоздатьКолонки();
2. burgomister 7 24.03.20 04:10 Сейчас в теме
1. Поскольку у вас цикл по строкам, значит колонок будет столько, сколько строк.
2. Присвоение значения в новой ячейке: строка.НоваяКолонка = что-то там;
3. То есть значение будет присвоено только в текущей строке в новой колонке.
4. Вообще очень странный код. Какая цель?
5. user817897 24.03.20 10:52 Сейчас в теме
(2) Цель такая:

Есть Набитый список номенклатуры подбором,далее заполняются автоматически где-то остатки,где-то количество для списания,и т.д. много разных данные.
Но мне необходимо между этими колонками каким-то образом создать 20 колонок динамических и заполнить в них данные продаж максимальное количество:
То есть Сегодня у нас 13-я неделя года, было продано по первой строке:
50неделя 51неделя 52неделя 53неделя 1неделя 2неделя и т.д. и в каждую колонку вбить помимо данных которе уже заполнены,заполнить эти динамические колонки.
Это как бы сказать будет (Документ - отчёт). Чтобы потом Человек которые будет анализировать эти 20 колонок и остальные колонки. и делать дальнейшие манипуляции с этим документом(нарядом на комплектацию)
8. user817897 24.03.20 11:31 Сейчас в теме
(2)вообще,по правильному было бы мне сделать создание колонок по какому-нибудь календарю) но хз как))
9. user817897 24.03.20 11:43 Сейчас в теме
(2) вот сам запрос:

Для каждого стр из  ЭтотОбъект.Товары цикл
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПродажиОбороты.Номенклатура,
		|	СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество,
		|	ПродажиОбороты.Период КАК ПериодНедели
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Неделя, ) КАК ПродажиОбороты
		|ГДЕ
		|	ПродажиОбороты.Номенклатура = &Номенклатура
		|
		|СГРУППИРОВАТЬ ПО
		|	ПродажиОбороты.Номенклатура,
		|	ПродажиОбороты.Период
		|
		|УПОРЯДОЧИТЬ ПО
		|	ПродажиОбороты.Период";
	
	Запрос.УстановитьПараметр("НачалоПериода", НачалоНедели(ТекущаяДата()-86400*150) );
	Запрос.УстановитьПараметр("КонецПериода", КонецНедели(ТекущаяДата()));
	Запрос.УстановитьПараметр("Номенклатура", стр.Номенклатура);
	
	РЗ = Запрос.Выполнить().Выгрузить();
	для Каждого строка из РЗ цикл
		
		Нед = НеделяГода(строка.ПериодНедели);			
		НоваяКолонка = 	ЭлементыФормы.ТЗ.Колонки.Добавить();
		НоваяКолонка.ТекстШапки = Нед;
		НоваяКолонка.Имя = Нед;
		
		//строка.количество сразу в эту колонку как внести?
	КонецЦикла;	

Прервать;

	КонецЦикла;
Показать
3. maksbl 11 24.03.20 06:13 Сейчас в теме
Перед циклом создай эту колонку и записывай в цикле значения в строку этой колонки.
danjer74; +1 Ответить
6. burgomister 7 24.03.20 10:58 Сейчас в теме
7. user817897 24.03.20 11:30 Сейчас в теме
(3) а как можно создать эти колонки,между уже существующими колонками,а не в конце всех колонок?
10. burgomister 7 24.03.20 12:12 Сейчас в теме
(7) Метод Вставить имеет следующий синтаксис:

Вставить(<Индекс>, <Имя>, <Тип>, <Заголовок>, <Ширина>)

Метод Вставить имеет синтаксис, как и у метода Добавить, но только появился первый параметр Индекс, он указывает тот индекс, на место которого будет вставляться новая колонка.

ОписаниеТиповСтрока = Новый ОписаниеТипов(«Строка»);
ОписаниеТиповДата   = Новый ОписаниеТипов(«Дата»)

ФИО = Новый ТаблицаЗначений;
ФИО.Колонки.Добавить(«Фамилия»,ОписаниеТиповСтрока,«Фамилия»,50);
ФИО.Колонки.Добавить(«Имя»,ОписаниеТиповСтрока,«Имя»,50);
ФИО.Колонки.Добавить(«Отчество»,ОписаниеТиповСтрока,«Отчество»,50);
ФИО.Колонки.Добавить(«ДатаРождения»,ОписаниеТиповДата,«Дата рождения»,10);

ФИО.Колонки.Вставить(3,«ФИО»,ОписаниеТиповСтрока,«ФИО»,50);
Показать


В нашем случае колонка ФИО встала точно между Отчеством и Датой рождения.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

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

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день