Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Центрируется текущая строка в табличной части

Центрируется текущая строка в табличной части
Я
   Автосервис
 
07.06.19 - 13:05
Добрый день!
Платформа 8.3.12.1567
Есть документ с табличной частью (номенклатура, цены, количество и т.п.), есть реквизит на форме типа "надпись". Логика проста: активизируем какой-либо элемент из табличной части и в надпись выводится некая информация о выбранной  номенклатуре, динамика увеличения/снижения цены и т.п.
Изначально делал так:

&НаКлиенте
Процедура ЗапасыПриАктивизацииСтроки(Элемент)
    Элементы.ИнформацияОНоменклатуре.Заголовок = ПолучитьИнформационнуюСтроку(Элементы.Запасы.ТекущиеДанные.Номенклатура);
КонецПроцедуры


Процедура "ПолучитьИнформационнуюСтроку" выполняется на сервере. После ее внедрения 1С теперь всегда пытается спозиционировать текущую строку в центре экрана, что неочень удобно пользователям. Прочитал в СП:

Синтаксис:
ПриАктивизацииСтроки()
Примечание:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

Ладно, согласен, далеко не оптимально каждый раз обращаться к серверу когда пользователь просто так тыкает по строкам. В табличную часть формы добавил еще одну колонку "ИнформацияОНоменклатуре", описал ее заполнение при открытии и обновление при редактировании строки. В итоге получилось так:

&НаКлиенте
Процедура ЗапасыПриАктивизацииСтроки(Элемент)
    Элементы.ИнформацияОНоменклатуре.Заголовок = Элементы.Запасы.ТекущиеДанные.ИнформацияОНоменклатуре;
КонецПроцедуры


Все-равно центрирует, хотя уже вроде нет серверных обращений. Если закомментировать эту строку, то центрирование исчезает. Или обращение к текущим данным и есть серверное обращение?
 
 
   RomanYS
 
1 - 07.06.19 - 13:18
Посмотри описание Заголовок в СП.
Вероятно там будет:
"Изменение свойства на клиенте может потребовать обращения к серверу."
   singlych
 
2 - 07.06.19 - 13:19
Изменение заголовка приводит к перерисовыванию формы, поэтому текущая строка сбрасывается. Попробуй вместо заголовка заюзать текстовый реквизит формы с элементом типа поле надписи.
   Автосервис
 
3 - 07.06.19 - 13:23
(1),(2) Я понял. Спасибо за подсказку. Сейчас попробую. Отпишусь о результатах.
   Автосервис
 
4 - 07.06.19 - 13:27
&НаКлиенте
Процедура ЗапасыПриАктивизацииСтроки(Элемент)
    Элементы.ИнформацияОНоменклатуре.Заголовок = "123";
КонецПроцедуры

Так не центрирует, хотя заголовок обновляется.
   singlych
 
5 - 07.06.19 - 13:31
(4) Рандомные заголовки позадавай.
   Автосервис
 
6 - 07.06.19 - 13:35
Спасибо за советы, помогли. Создал реквизит формы, путь к данным указал как "Элементы.Запасы.ТекущиеДанные.ИнформацияОНоменклатуре". Все нормально работает. Осталось только оформить подобающе :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.