вычисляемая колонка в форме документа #339214


#0 by pavel_tr
Есть документ, в нём 3 вычисляемые колонки, все нужны для работы. При открытии формы 1С начинает считать формулы, причём для документа из 1 строки считает она по 3 раза каждую. Можно ли с этим что-то сделать? При количестве строк в документе > 50 открытие заметно подтормаживает
#1 by ТелепатБот
#2 by DrZombi
Читать мануал по 1С и юзать функцию ПриЗаписиПерепроводить(<?>); Синтаксис: ПриЗаписиПерепроводить(<Режим>) Назначение: Установить режим перепроведения при записи проведенного документа. Параметры: <Режим> - число:  1 - обязательно перепроведение при записи уже проведенного документа;   0 - не обязательно перепроведение при записи уже проведенного документа. Замечание: Метод доступен только в Модуле формы документа и работает с документом доступным в локальном контексте.
#3 by DrZombi
+ Сори немого опичатался ВыполнятьФормулуТолькоПриИзменении(<?>); Синтаксис: ВыполнятьФормулуТолькоПриИзменении(<Режим>) Назначение: Установка режима выполнения формулы выбранного поля табличной части документа. Параметры: <Режим> - число: 1 - формула вызывается только при изменении значения поля, 0 - вызывается и при переходе между полями. Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма. Подробнее см. в документации, глава 'Атрибуты и методы контекста Модуля формы'
#4 by ZZeRRo
А за один проход табличной части никак не посчитать?
#5 by pavel_tr
Поясните пожалуйста, как эта функцифя влияет на многократный вызов формул элементов диалога? Мне нужно чтоб на форме в колонках были нужные мне цифры, но чтобы считалось всё по 1 разу для каждой колонки
#6 by savaB
Это к чему?
#7 by pavel_tr
+ ага, сейчас проверю...
#8 by savaB
Тогда колонки не вычисляемые и функция (процедура) устанавливает значения. Хотя ...
#9 by pavel_tr
+ никакой разницы! При открытии формы считает трижды формулы для всех строк, потом при перемещении по строкам независимо от режима, - считает формулу текущей строки В принципе, тормозит только открытие, при перемещении пересчёт устраивает. Как можно с этой проблемой бороться?
#10 by savaB
1. если СКЛ - прямой запрос    2. первая функция - получение данных, остальные две обращаються к готовым переменным
#11 by Mashinist
Ну так вставь программный триггер на свою формулу, если очень нужно...
#12 by ZZeRRo
а что у тебя по этому поводу написано в процедуре ПриОткрытии?
#13 by pavel_tr
уже на прямых всё, так бы повесились. Да, так пробовал делать, но всё равно оставшаяся формула будет трижды вызываться, т.е. никакой разницы
#14 by pavel_tr
в ПриОткрытии ничего подозрительного - устанавливается идимость некоторых реквизитов, ПриЗаписиПерепроводить, да и всё...
#15 by pavel_tr
можно поподробнее?
#16 by savaB
разница в том, что не будет обращения к базе ( первая функция выполняет запрос, устанавливает итоги в переменные, а вторая функция просто возвращает переменную)
#17 by pavel_tr
Сейчас попробовал оставить 1 колонку с формулой - она тоже вызывается три раза! Где-то косяк чтоли? Там вроде негде косячить-то... 1й раз понятно - отрисовка формы при открытии, 2й тоже понятно - т.к. 1я строка является текущей после открытия, но зачем 3й раз вызов? И откуда?
#18 by pavel_tr
Порядок вызова функции при открытии документа из 3 строк: (оставлена 1 колонка с функцией)
#19 by pavel_tr
неа. просто вместо того, чтобы вычисляться в формуле каждой ячейки, значения будут вычисляться в формуле одной из них. Общее количество обращений к базе не изменится (только если одним запросом всё выдёргивать, а тут данные разные, это не выгодно делать)
#20 by AlexP
А нет ли где "Форма.Обновить" или каких других функций, вызывающих перерисовку формы ???
#21 by pavel_tr
Форма.Обновить есть, но из ПриОткрытии она не вызывается
#22 by AlexP
Она вызывается другой функции, которая в свою очередь вызывается из текста на форме?  :)
#23 by pavel_tr
Она вызывается после выгрузки ТЧ в ТЗ, свёртки и загрузки обратно. На форме были 3 строки с суммами ещё Сейчас вот издеваюсь... Скопировал тот гнусный документ, оставил 1 колонку с формулой, все реквизиты с формы удалил. Всё равно, зараза, 3 раза считает формулу. Добавил новый документ + 3 вычисляемые колонки в него - считаются по 1 разу каждая. Пытаюсь вот понять, вдеж всё-таки косяк...
#24 by pavel_tr
Разобрался! Текстовым колонкам с формулой был назначен идентификатор! Как только его убрал - всё отлично, все формулы считаются 1 раз для каждой строки. Ура!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С