Имя: Пароль:
1C
1С v8
Многострадальная процедура ПриПолученииДанных
0 CyberDream
 
24.09.13
15:55
Есть задача. Нужно чтобы, при определнных условиях раскрашивались поля в форме списка справочника.

Справочник - ФизическиеЛица. Если, СотрудникОрганмзации, к которому привязано данное физическое лицо уволен, то поле с физическим лдицом должно быть закрашено.

Поскольку физических лиц дофига, процедура ПриВыводе строки - не тру, поскольку есть обращение к БД и вся эта фигня будет жестко тормозить.

Идем в сторону "ПриПолученииДанных".

Вот тут вопрос. Форма списка ФизическиеЛица простейшая, никаких отборов там не используется. Ставим в процедуре "ПриПолученииДанных" точку останова и открываем форму списка... Тут... происходит какая-то нездоровая фигня. Процедура вызывается для каждой строчки табличного поля отдельно, более того, ситуация повторяется, если прокрутить список вниз или вверх.... Пока туплю.... объяснения сему нет.... Помагайте....
1 Euguln
 
24.09.13
15:57
(0) Принудительное обновление формы?
2 CyberDream
 
24.09.13
15:58
(0) Перекопал все - ничего похожего не нашел
3 Жан Пердежон
 
24.09.13
15:58
переходите на управляемые формы, там это реализовано)
4 ДемонМаксвелла
 
24.09.13
15:58
ИМХО при получении данных ты заставляешь платформу получать данные заново
5 CyberDream
 
24.09.13
15:59
(3) УФ это круто, но, к сожалению, Бухгалтерии для Украины на УФ еще не придумали
6 CyberDream
 
24.09.13
16:00
(4) Догда какая разница между ПриВыводеСтроки и ПриПолученииДанных. Сами 1С в ИТС для обработки данных из БД рекомендуют использовать ПриПолученииДанных вместо ПриВыводеСтроки
7 МойКодУныл
 
24.09.13
16:00
(24) при прокрутке оно и будет вызываться, т.к. появляются новые "видимые данные". А вот при выводе - и правда нездоровая фигня))).
8 Поросенок Петр
 
24.09.13
16:03
(5) Напили одну упр форму для справочника и включи галку юзать УФ в обычном режиме.
9 CyberDream
 
24.09.13
16:22
Короче... заманался я искать.... время поджимает. Ща сделал через ПривыводеСтроки. Как-нить на досуге поковыряю. Пока пусть клиент хавает так. Вроде глазами тормозов не заметно, а там подумаем.
10 Старик Юзергад
 
24.09.13
16:23
Читай СП
11 CyberDream
 
24.09.13
16:33
(10)

у тебя такое в СП написано?

----------
ТабличноеПоле (TableBox)
ПриПолученииДанных (OnDataGet)
Синтаксис:

ПриПолученииДанных(<ОформленияСтрок>)
Параметры:

<ОформленияСтрок>

Тип: ОформленияСтрок.
Коллекция оформления строк табличного поля.
Данную коллекцию нельзя использовать вне обработчика, т.к в момент вызова обработчика события она напрямую связана с коллекцией видимых строк табличного поля, а после окончания обработки события ее содержимое может не соответствовать коллекции видимых строк.
Описание:

Возникает при получении данных табличным полем, после обработки событий ПриВыводеСтроки.
----------

Думаешь я не читал???
12 Kreont
 
24.09.13
16:47
(0) да ниче там не скажется на скорости, все нормально ,аналогично доделывал такое
13 y22-k
 
24.09.13
16:55
(0) так и должно по идее быть в чем проблема то? первый раз он обрабатывает одну строку потом все что на экране
14 Bober
 
24.09.13
17:33
(0) около 9 лет 1с пишет, что при выводе строки оставлено для совместимости, пользуйтесь ПриПолученииДанных.
Если меняются данные при получении данных, то процесс обновления запускается снова и так до бесконечности.
15 Bober
 
24.09.13
17:33
(0) ПриПолученииДанных
16 Михаил Козлов
 
24.09.13
18:03
Можно еще хранить свой кэш, в котором запоминать (для физ. лица) нужное значение (например, соответствие с ключом = ссылке на физ. лицо); при прокрутке туда-сюда не нужно будет формировать данные.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший