powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Как работает ПриВыводеСтроки?
16 сообщений из 16, страница 1 из 1
Как работает ПриВыводеСтроки?
    #35874715
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пинайте ногами изучаю 1С недавно.

Использую процедуру ПриВыводеСтроки(<Оформление строки>, <Данные строки>) для подстановки в значени в колонку (например, артикул для номенклатуры в табличном поле).
Решил проверить когда возникает это событие и вставил команду Сообщить("Выводим") и увидел такие странности:
1. В табличной части одна строка, а ПриВыводеСтроки вызываетс 3 раза. Никаких ссылок на эту процедуру в тексте модуля нет.
2. Эта процедура вызывается не только во время прорисовки строк, но и при движении мышкой и при нажатии клавиш. Например все строки выведены и эта процедура уже не вызывается, но если переместить мышку или нажать клавиши в других элементах окна происходит вызов этой процедуры.

Как же так? Получается обновление строк происходит постоянно и соответсвенно постоянно пересчет процедур (и возможно перечитывание данных из БД).
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35874784
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие вызывается при перерисовке формы. Вместо "ПриВыводеСтроки" лучше использовать "ПриПолученииДанных" табличного поля.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35874917
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дак вся проблема в том, что я использовал и эту процедуру (ПриПолученииДанных) и там точно такая же фигня!
Можете проверить. Вставьте в обработчик ПриПолученииДанных табличной части документа команду Сообщить("Входим"). Потом откройте документ, после того как отработает процедура и остановится, попробуйте мышку поведите вниз или вверх за пределы окна документа, а потом тоже верните её движением вверх или вниз на документ. Происходит вызов процедуры ПриПолученииДанных.
У меня 1С 8.1.13.41
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35874968
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема в чем? медленно? Кэшируй в ТЗ, читай оттуда не дергая БД.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35874982
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я понимаю, что можно решить через ТЗ, но блин о какой производительности (как рекламирует 1С) может идти речь при таком раскладе? При каждом движении мышки происходит поиск в ТЗ. Причем еще нужно отслеживать все изменения в табличной части чтобы кешировать (например добавление строки)...
Офигеть. Я изменяю стандартную конфу 1С 8.1 Управление торговлей для Украины. Там практически в каждом документе есть обработка табличной части по обработчику ПриВыводеСтроки...
Нда. Весело.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35875005
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно на вывод строки ничего тяжелого не вешают... доп. поля выводят какие-нибудь не сложные и т.п. Никаких расчетов не делают. Ибо смысл
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35875707
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне, например, нужно выводить (требование отдела закупки) возле номенклатуры артикул поставщика. Артикул поставщика хранится в регистре сведений. Т.е. мне прийдется писать выборку в кеш и отслеживание изенений строк. И так по многим документам закупки.
Ну что ж раз другого решения нет и 1С в очередной раз подсунула свинью, будем выкручиваться.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35875939
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрец,

Вам же написали - пользуйтесь событием "ПриПолученииДанных" вместо "ПриВыводеСтроки", тогда все вопросы кэширования будут разруливаться системой по необходимости. Если в вашей типовой конфе "ПриВыводеСтроки" повсеместно используются - это бардак, меняйте. Иначе с производительностью действительно будут напряги.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35876987
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я писал
Дак вся проблема в том, что я использовал и эту процедуру (ПриПолученииДанных) и там точно такая же фигня!
Можете проверить. Вставьте в обработчик ПриПолученииДанных табличной части документа команду Сообщить("Входим"). Потом откройте документ, после того как отработает процедура и остановится, попробуйте мышку поведите вниз или вверх за пределы окна документа, а потом тоже верните её движением вверх или вниз на документ. Происходит вызов процедуры ПриПолученииДанных.
У меня 1С 8.1.13.41

Эта процедура ПриПолученииДанных делает тоже самое. Не верите проверьте.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35877231
DmitriyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В "ПриПолученииДанных" вам возвращается набор строк, которые будут выведены в табличное поле. Их все можно обработать за один проход. По сравнению с "ПриВыводеСтроки" выигрыш очевиден.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35877262
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>В "ПриПолученииДанных" вам возвращается набор строк, которые будут выведены в табличное поле. Их все можно обработать за один проход.

нельзя. обрабатывается только то что выводится "на экран" + небольшой кэш.

соответственно чем меньше ТЧ на форме и больше ТЧ в объекте - чем чаще будет срабатывать при скроллинге
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35877268
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то что строка уже выводилась 1С "не помнит" и считает по новой.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35881614
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ да просто проверьте в вышеуказанных процедурах добавьте команду Сообщить("Выводим") чтобы было легче отследить и посмотрите в каких случаях срабатывают эти обработчики. Они срабатывают НЕ ТОЛЬКО ПРИ ПОЛУЧЕНИИ ДАННЫХ но и при движении мышкой вверх/вниз за пределы окна документа. Т.е. получае6тся 1С постоянно получает данные при движении мыши? Это жесть.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35882033
Terv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮрецНарод да просто проверьте в вышеуказанных процедурах добавьте команду Сообщить("Выводим") чтобы было легче отследить и посмотрите в каких случаях срабатывают эти обработчики. Они срабатывают НЕ ТОЛЬКО ПРИ ПОЛУЧЕНИИ ДАННЫХ но и при движении мышкой вверх/вниз за пределы окна документа. Т.е. получае6тся 1С постоянно получает данные при движении мыши? Это жесть.
раньше не было такого точно, ПриПолучениеДанных срабатывала, только при скроллинге ...
сейчас проверять лень ибо скорее врете Вы.
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35882582
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮрецНарод да просто проверьте в вышеуказанных процедурах добавьте команду Сообщить("Выводим") чтобы было легче отследить и посмотрите в каких случаях срабатывают эти обработчики. Они срабатывают НЕ ТОЛЬКО ПРИ ПОЛУЧЕНИИ ДАННЫХ но и при движении мышкой вверх/вниз за пределы окна документа. Т.е. получае6тся 1С постоянно получает данные при движении мыши? Это жесть.

Если колесико крутить, да - будет скроллинг, будут данные подгружаться, будет "ПриПолученииДанных" срабатывать. Но только для новых строк, которые появляются при этом в поле списка . Обработчик "ПриВыводеСтроки" будет обрабатываться при отрисовке всех видимых строк. Поэтому будут лаги и траблы с производительностью
...
Рейтинг: 0 / 0
Как работает ПриВыводеСтроки?
    #35882746
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспрос закрыт.
Уже обозвали лгуном не проверивши лично.
О том как ДОЛЖНЫ работать данные обработки я знаю, но КАК они работают я вижу никто не в курсе.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как работает ПриВыводеСтроки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]