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

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

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

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

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

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

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

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


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