Удаление колонок из таблицы значений

1. user1316148 16.11.21 16:48 Сейчас в теме
Есть ТЗ в которой первые 3 колонки всегда будут оставаться как есть, а остальные будут удаляться. (остальных может быть много) + может на вход передаваться номер колонки (индекс) эту колонку тоже нужно оставлять.
По теме из базы знаний
Найденные решения
5. user1627869 19.11.21 09:12 Сейчас в теме
&НаСервере
Процедура ОчиститьТЗ(Знач ТЗ, Знач Индекс = Неопределено)
	
	Если Индекс = Неопределено Тогда
		Если ТЗ.Колонки.Количество() > 3 Тогда
			Для _и = 3 По ТЗ.Колонки.Количество() - 1 Цикл
				ТЗ.Колонки.Удалить(3);
			КонецЦикла;
		Иначе
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Количество колонок меньше трех!";
			Сообщение.Сообщить();
			Возврат;
		КонецЕсли;
					
	ИначеЕсли Индекс > ТЗ.Колонки.Количество() - 1 Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Значение индекса превышает количество колонок!";
		Сообщение.Сообщить();
		Возврат;
		
	ИначеЕсли Индекс < 2 Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Нельзя удалять первые три колонки!";
		Сообщение.Сообщить();
		Возврат;
		
	Иначе
		_ж = 3; // Счетчик смещения удаления 
		Для _и = _ж По ТЗ.Колонки.Количество() - 1 Цикл
			Если _и  = Индекс Тогда
				_ж = _ж + 1;
			Иначе
				ТЗ.Колонки.Удалить(_ж);
			КонецЕсли;
		КонецЦикла;	
		
	КонецЕсли;
				
		
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 16.11.21 16:48 Сейчас в теме
Продолжайте наблюдение.
t278; МихаилМ; user1671936; Zontax39; +4 Ответить
3. ivan1703 78 16.11.21 17:23 Сейчас в теме
Все правильно, не сдавайтесь!
4. Pixar0000 17.11.21 11:55 Сейчас в теме
5. user1627869 19.11.21 09:12 Сейчас в теме
&НаСервере
Процедура ОчиститьТЗ(Знач ТЗ, Знач Индекс = Неопределено)
	
	Если Индекс = Неопределено Тогда
		Если ТЗ.Колонки.Количество() > 3 Тогда
			Для _и = 3 По ТЗ.Колонки.Количество() - 1 Цикл
				ТЗ.Колонки.Удалить(3);
			КонецЦикла;
		Иначе
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Количество колонок меньше трех!";
			Сообщение.Сообщить();
			Возврат;
		КонецЕсли;
					
	ИначеЕсли Индекс > ТЗ.Колонки.Количество() - 1 Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Значение индекса превышает количество колонок!";
		Сообщение.Сообщить();
		Возврат;
		
	ИначеЕсли Индекс < 2 Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Нельзя удалять первые три колонки!";
		Сообщение.Сообщить();
		Возврат;
		
	Иначе
		_ж = 3; // Счетчик смещения удаления 
		Для _и = _ж По ТЗ.Колонки.Количество() - 1 Цикл
			Если _и  = Индекс Тогда
				_ж = _ж + 1;
			Иначе
				ТЗ.Колонки.Удалить(_ж);
			КонецЕсли;
		КонецЦикла;	
		
	КонецЕсли;
				
		
КонецПроцедуры
Показать
6. user1316148 03.12.21 13:31 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот