Табличная часть. Переместить две строки одновременно вниз или вверх.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Добавить 2 кнопки, двигающие вверх и вниз выделенный массив строк табличной части (на 1 шаг)
&НаСервере
Процедура Доп1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ДобавитьКомандыНаФорму()
КонецПроцедуры
&НаСервере
Процедура ДобавитьКомандыНаФорму()
// Создадим команду
Команда = ЭтаФорма.Команды.Добавить("ПереместитьВверх1");
Команда.Действие = "ПереместитьВверх1";
Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша._1,,,Истина);
// Создадим кнопку и привяжем к ней команду
Кнопка = ЭтаФорма.Элементы.Вставить("ПереместитьВверх1", Тип("КнопкаФормы"),
ЭтаФорма.Элементы.КоманднаяПанельТовары,ЭтаФорма.Элементы.ГруппаТорговоеОборудование);
Кнопка.Заголовок = "[^]";
Кнопка.Картинка = БиблиотекаКартинок.ПереместитьВверх;
Кнопка.ИмяКоманды = "ПереместитьВверх1";
Кнопка.ПоложениеВКоманднойПанели=ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели;
Команда = ЭтаФорма.Команды.Добавить("ПереместитьВниз1");
Команда.Действие = "ПереместитьВниз1";
Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша._2,,,Истина);
Кнопка = ЭтаФорма.Элементы.Вставить("ПереместитьВниз1", Тип("КнопкаФормы"),
ЭтаФорма.Элементы.КоманднаяПанельТовары,ЭтаФорма.Элементы.ГруппаТорговоеОборудование);
Кнопка.Заголовок = "[v]";
Кнопка.Картинка = БиблиотекаКартинок.ПереместитьВниз;
Кнопка.ИмяКоманды = "ПереместитьВниз1";
Кнопка.ПоложениеВКоманднойПанели=ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели;
КонецПроцедуры
&НаКлиенте
Процедура ПереместитьВверх1(Команда)
ВыделенныеСтроки=Элементы.Товары.ВыделенныеСтроки;
Сортировать(ВыделенныеСтроки,"ВОЗР");
Для каждого Строка Из ВыделенныеСтроки Цикл
текСтрока=Объект.Товары.НайтиПоИдентификатору(Строка);
Если текСтрока.НомерСтроки >1 Тогда
Объект.Товары.Сдвинуть(текСтрока.НомерСтроки-1,-1);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПереместитьВниз1(Команда)
ВыделенныеСтроки=Элементы.Товары.ВыделенныеСтроки;
Сортировать(ВыделенныеСтроки,"УБЫВ");
Для каждого Строка Из ВыделенныеСтроки Цикл
текСтрока=Объект.Товары.НайтиПоИдентификатору(Строка);
Если текСтрока.НомерСтроки < Объект.Товары.Количество() Тогда
Объект.Товары.Сдвинуть(текСтрока.НомерСтроки-1,1);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура Сортировать(Массив,НаправлениеСортировкиСтрока="ВОЗР")
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот