ИТЗ: заполнить колонку по выражению..?

Автор Злоп, 20 февраля 2026, 21:03

« назад - далее »

Злоп

Можно ли как-то заполнить колонку по выражению..?
Например, есть колонка, и хочу заполнить нечетными числами, начиная с 1...?

ADirks

Таки есть, но почему-то не документировано. Причин не помню совершенно :)

Метод ЗаполнитьКолонкуПоАлгоритму(Индекс, Алгоритм, ИмяКолонки)

пример
Процедура ЗаполнитьПоАлгоритму()
	ит = СоздатьОбъект("ИндексированнаяТаблица");
	ит.НоваяКолонка("Зн");
	
	Для н = 1 По 1000 Цикл
		ит.НоваяСтрока();
	КонецЦикла;

	
	ТекстМодуля = "
	|Перем зн;
	|Функция NextValue()
	|	Если зн = 0 Тогда
	|		зн = 1;
	|	Иначе
	|		зн = зн + 2;
	|	КонецЕсли;
	|	Возврат зн;
	|КонецФункции
	|зн = 0;
	|";
	Модуль = СоздатьОбъект("ВыполняемыйМодуль");
	Модуль.УстановитьМодуль(ТекстМодуля);
	Модуль.НазначитьКонтекст(Контекст);
	Модуль.КомпилироватьМодуль();
	Модуль.ВыполнитьМодуль();
	
	ит.ЗаполнитьКолонкуПоАлгоритму(, "Зн", Модуль);
	
	//РедакторТЗ(ит);
	ит.Показать();
КонецПроцедуры

ADirks

а ещё такой вариант есть
ЗаполнитьКолонкуПоАлгоритму(Индекс, Алгоритм, СтартовоеЗначение, Инкремент)

пример
Процедура ЗаполнитьПоАлгоритму2()
	ит = СоздатьОбъект("ИндексированнаяТаблица");
	ит.НоваяКолонка("Зн");
	
	Для н = 1 По 1000 Цикл
		ит.НоваяСтрока();
	КонецЦикла;

	
	ит.ЗаполнитьКолонкуПоАлгоритму(, "Зн", 1, 2);
	
	//РедакторТЗ(ит);
	ит.Показать();
КонецПроцедуры