1С 8.3 Перемещение строк Таблицы значений на Клиенте - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Перемещение строк Таблицы значений на Клиенте

Данные > Примеры кода 1С > 1С 8.3 Таблица значений
Автор: Lega. Ссылка: https://fastcode.im
Програмное перемещение строк ДанныхФормКоллекции(Таблица значений) на Клиенте в 1С 8.3:
// Вместо ТаблицаСоСпискомСтрок подставьте свою таблицу, с колонкой ПорядковыйНомер

&НаКлиенте
Процедура ПереместитьСтрокуВверх(Команда)

   ПереместитьСтроку(-1);

КонецПроцедуры

&НаКлиенте
Процедура ПереместитьСтрокуВниз(Команда)

   ПереместитьСтроку(1);

КонецПроцедуры

&НаКлиенте
Процедура ПереместитьСтроку(ГраницаСмещения)

   ТекущиеДанные = Элементы.ТаблицаСоСпискомСтрок.ТекущиеДанные;

   Если ТекущиеДанные = Неопределено Тогда
       Возврат;
   КонецЕсли;

   ТекущийПорядок = ТекущиеДанные.ПорядковыйНомер;
   НовыйПорядок = ТекущийПорядок + ГраницаСмещения;

   ОбновитьВсеСтроки = Истина;
   Если НовыйПорядок < 1 Тогда
       НовыйПорядок = ТаблицаСоСпискомСтрок.Количество();
   ИначеЕсли НовыйПорядок > ТаблицаСоСпискомСтрок.Количество() Тогда
       НовыйПорядок = 1;
   Иначе
       ОбновитьВсеСтроки = Ложь;
   КонецЕсли;

   ТекущийИндекс = ТекущийПорядок - 1;
   НовыйИндекс = НовыйПорядок - 1;

   Если ТекущийПорядок <> НовыйПорядок Тогда
       ДельтаСмещения = НовыйИндекс - ТекущийИндекс;
       ТаблицаСоСпискомСтрок.Сдвинуть(ТекущийИндекс, ДельтаСмещения);

       ПеремещаемаяСтрока = ТаблицаСоСпискомСтрок.Получить(НовыйИндекс);
       ПеремещаемаяСтрока.ПорядковыйНомер = НовыйПорядок;

       ЗамещаемаяСтрока = ТаблицаСоСпискомСтрок.Получить(ТекущийИндекс);
       ЗамещаемаяСтрока.ПорядковыйНомер = ТекущийПорядок;
   КонецЕсли;

   Если ОбновитьВсеСтроки Тогда
       ОбновитьПорядокВсехСтрок();
   КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ОбновитьПорядокВсехСтрок()

   Для Каждого СтрокаСписка Из ТаблицаСоСпискомСтрок Цикл
       СтрокаСписка.ПорядковыйНомер = ТаблицаСоСпискомСтрок.Индекс(СтрокаСписка) + 1;
   КонецЦикла;

КонецПроцедуры
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 17.05.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому