0
Велимудр
20.11.20
✎
16:42
|
Приветы!
ЗУП 3.1 В документе табель или индивидуальный график при нажатии на кнопку записать происходит сдвиг текущей строки.
Т.е. выбрали Пупкина, нажали Записать, курсор таблицы сместился с Пупкина на Залупкина. Не смещается только первая строка, т.к. индекс 0.
Вроде бы хрен с ним, но по ТЗ нам надо отображать дополнительные дынные по сотруднику. Данные отображаются при выборе строки сотрудника.
Табельщик жалуется, что при записи активная строка меняется и:
1. Курсор сбивается на другую строку и где искать предыдущую непонятно
2. Дополнительные данные показывают неверные данные, что снова вводит в заблуждение.
Смещение происходит из-за того, что в табеле присутствуют пустые строки т.к. у сотрудника заполнена только одна строка, а отображаются две или больше.
При нажатии на кнопку "записать" пустые строки удаляются, документ записывается, и потом обратно добавляются пустые строки, но их идентификаторы в объекте уже не соответствуют идентификаторам на форме.
Сделал так: перед записью запоминаю сотрудника. а после записи пытаюсь найти этого сотрудника снова, но т.к. поиск идет не по элементам формы, а по строкам объекта, то идентификаторы строк не соответствуют идентификаторам на форме.
Как найти нужного сотрудника в элементе ТаблицаФормы? Перебора по строкам у нее нет
|
|
2
Велимудр
20.11.20
✎
20:06
|
Вдруг кто будет искать, вот так работает:
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
.............
ПодключитьОбработчикОжидания("УстановитьТекущуюСтрокуДанныеВремени", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьТекущуюСтрокуДанныеВремени() Экспорт
СтруктураОтбора = Новый Структура("Сотрудник, ПустаяСтрока", ТекСотрудник, Ложь);
Элементы.ДанныеОВремени.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураОтбора);
ТекИдентификатор = Элементы.ДанныеОВремени.ТекущиеДанные.ПолучитьИдентификатор();
Элементы.ДанныеОВремени.ОтборСтрок = Неопределено;
Элементы.ДанныеОВремени.ТекущаяСтрока = ТекИдентификатор;
ОтключитьОбработчикОжидания("УстановитьТекущуюСтрокуДанныеВремени");
КонецПроцедуры
|
|
3
Велимудр
20.11.20
✎
20:06
|
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
....................
ПодключитьОбработчикОжидания("УстановитьТекущуюСтрокуДанныеВремени", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьТекущуюСтрокуДанныеВремени() Экспорт
СтруктураОтбора = Новый Структура("Сотрудник, ПустаяСтрока", ТекСотрудник, Ложь);
Элементы.ДанныеОВремени.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураОтбора);
ТекИдентификатор = Элементы.ДанныеОВремени.ТекущиеДанные.ПолучитьИдентификатор();
Элементы.ДанныеОВремени.ОтборСтрок = Неопределено;
Элементы.ДанныеОВремени.ТекущаяСтрока = ТекИдентификатор;
ОтключитьОбработчикОжидания("УстановитьТекущуюСтрокуДанныеВремени");
КонецПроцедуры
|
|