|
Центрируется текущая строка в табличной части |
☑ |
0
Автосервис
07.06.19
✎
13:05
|
Добрый день!
Платформа 8.3.12.1567
Есть документ с табличной частью (номенклатура, цены, количество и т.п.), есть реквизит на форме типа "надпись". Логика проста: активизируем какой-либо элемент из табличной части и в надпись выводится некая информация о выбранной номенклатуре, динамика увеличения/снижения цены и т.п.
Изначально делал так:
&НаКлиенте
Процедура ЗапасыПриАктивизацииСтроки(Элемент)
Элементы.ИнформацияОНоменклатуре.Заголовок = ПолучитьИнформационнуюСтроку(Элементы.Запасы.ТекущиеДанные.Номенклатура);
КонецПроцедуры
Процедура "ПолучитьИнформационнуюСтроку" выполняется на сервере. После ее внедрения 1С теперь всегда пытается спозиционировать текущую строку в центре экрана, что неочень удобно пользователям. Прочитал в СП:
Синтаксис:
ПриАктивизацииСтроки()
Примечание:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
Ладно, согласен, далеко не оптимально каждый раз обращаться к серверу когда пользователь просто так тыкает по строкам. В табличную часть формы добавил еще одну колонку "ИнформацияОНоменклатуре", описал ее заполнение при открытии и обновление при редактировании строки. В итоге получилось так:
&НаКлиенте
Процедура ЗапасыПриАктивизацииСтроки(Элемент)
Элементы.ИнформацияОНоменклатуре.Заголовок = Элементы.Запасы.ТекущиеДанные.ИнформацияОНоменклатуре;
КонецПроцедуры
Все-равно центрирует, хотя уже вроде нет серверных обращений. Если закомментировать эту строку, то центрирование исчезает. Или обращение к текущим данным и есть серверное обращение?
|
|
1
RomanYS
07.06.19
✎
13:18
|
Посмотри описание Заголовок в СП.
Вероятно там будет:
"Изменение свойства на клиенте может потребовать обращения к серверу."
|
|
2
singlych
07.06.19
✎
13:19
|
Изменение заголовка приводит к перерисовыванию формы, поэтому текущая строка сбрасывается. Попробуй вместо заголовка заюзать текстовый реквизит формы с элементом типа поле надписи.
|
|
3
Автосервис
07.06.19
✎
13:23
|
(1),(2) Я понял. Спасибо за подсказку. Сейчас попробую. Отпишусь о результатах.
|
|
4
Автосервис
07.06.19
✎
13:27
|
&НаКлиенте
Процедура ЗапасыПриАктивизацииСтроки(Элемент)
Элементы.ИнформацияОНоменклатуре.Заголовок = "123";
КонецПроцедуры
Так не центрирует, хотя заголовок обновляется.
|
|
5
singlych
07.06.19
✎
13:31
|
(4) Рандомные заголовки позадавай.
|
|
6
Автосервис
07.06.19
✎
13:35
|
Спасибо за советы, помогли. Создал реквизит формы, путь к данным указал как "Элементы.Запасы.ТекущиеДанные.ИнформацияОНоменклатуре". Все нормально работает. Осталось только оформить подобающе :)
|
|