|
перемещение строки в ТЧ | ☑ | ||
---|---|---|---|---|
0
Эльчин
10.05.19
✎
09:16
|
здравствуйте. есть таб. часть в форме документа. там 2 строки (Офис и Матбаа (подразделения предприятии)). сделал такой вещь. если в первом строке (Офис) вставит галочку на ОТКАЗ, открывается окно для выборке новую подразделению:
http://ximage.ru/index.php?id=1557468819 когда выбираю добавляется новая строка в ТЧ: http://ximage.ru/index.php?id=1557468841 до этого сделал. код так написал: &НаКлиенте Процедура СтруктурныеПодразделенияОтказПриИзменении(Элемент) Если Элементы.СтруктурныеПодразделения.ТекущиеДанные.Отказ И Элементы.СтруктурныеПодразделения.ТекущиеДанные.Выполнен Тогда П = Новый Структура; П.Вставить("Владелец", ЭтотОбъект); ОткрытьФорму("Справочник.СтруктурныеЕдиницы.ФормаВыбора", , Элементы.СтруктурныеПодразделения, , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура СтруктурныеПодразделенияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.СтруктурныеЕдиницы") Тогда строка = Объект.СтруктурныеПодразделения.Добавить(); строка.СтрукПод = ВыбранноеЗначение; строка.Номенклатура = Элементы.СтруктурныеПодразделения.ТекущиеДанные.Номенклатура; строка.ДатаДобавления = ТекущаяДата(); КонецЕсли; КонецПроцедуры сейчас надо делать так что бы после добавлении новой строки новая строка попадалась не на конец ТЧ, а после той строки которому поставил галочку на ОТКАЗ. как то запомнить эту сроку которую поставил ОТКАЗ, а потом при добавлении перемещать новую строку вверх. как делать? буду очень благодарен если поможете. извините из за ошибок в тексте |
|||
1
Rie
10.05.19
✎
09:26
|
(0) Когда обрабатываешь изменение флажка - запомни номер строки.
А когда обрабатываешь выбор подразделения, то не Строка = Объект.СтруктурныеПодразделения.Добавить(); а Строка = Объект.СтруктурныеПодразделения.Вставить(НужныйНомар); |
|||
2
Галахад
гуру
10.05.19
✎
09:29
|
Наверное так: Элементы.СтруктурныеПодразделения.ТекущиеДанные.НомерСтроки
|
|||
3
Эльчин
10.05.19
✎
09:33
|
(1) номер строки? а в справке Индекс требует
|
|||
4
Эльчин
10.05.19
✎
09:39
|
решил сразу добавить, а не открыт форму для выборки.
сделал так: &НаКлиенте Процедура СтруктурныеПодразделенияОтказПриИзменении(Элемент) Если Элементы.СтруктурныеПодразделения.ТекущиеДанные.Отказ И Элементы.СтруктурныеПодразделения.ТекущиеДанные.Выполнен Тогда ИндексТекСтроки = Объект.СтруктурныеПодразделения.Индекс(Элементы.СтруктурныеПодразделения.ТекущаяСтрока); Индекс = ИндексТекСтроки + 1; строка = Объект.СтруктурныеПодразделения.Вставить(Индекс); строка.СтрукПод = Элементы.СтруктурныеПодразделения.ТекущиеДанные.СтрукПод; строка.Номенклатура = Элементы.СтруктурныеПодразделения.ТекущиеДанные.Номенклатура; строка.ДатаДобавления = ТекущаяДата(); КонецЕсли; КонецПроцедуры вставляет в первую строку. когда сделаю так: &НаКлиенте Процедура СтруктурныеПодразделенияОтказПриИзменении(Элемент) Если Элементы.СтруктурныеПодразделения.ТекущиеДанные.Отказ И Элементы.СтруктурныеПодразделения.ТекущиеДанные.Выполнен Тогда строка = Объект.СтруктурныеПодразделения.Вставить(Элементы.СтруктурныеПодразделения.ТекущиеДанные.НомерСтроки + 1); строка.СтрукПод = Элементы.СтруктурныеПодразделения.ТекущиеДанные.СтрукПод; строка.Номенклатура = Элементы.СтруктурныеПодразделения.ТекущиеДанные.Номенклатура; строка.ДатаДобавления = ТекущаяДата(); КонецЕсли; КонецПроцедуры добавляет в последную строку. не могу разбиратся |
|||
5
Эльчин
10.05.19
✎
09:48
|
(4) + Элементы.СтруктурныеПодразделения.ТекущаяСтрока возвращает 0, тип Число. как выразить текущую строку для получение индекса?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |