Базовый курс. МГ сессия от 03.02.2011

Разбираем новые вопросы от участников базового курса.

1. Оптимизация проведения документов.
Вы часто делаете акцент на том моменте, что нужно оптимизировать алгоритм, который выполняется в транзакции. 
И приводите такое узкое место, как модуль проведения документа. Мне на платформе 7.7 попадалось решение, где все тяжелые алгоритмы были вынесены в процедуры глобального модуля, в которых готовились таблицы с данными перед записью документа. 
И в момент проведения фактически происходила только запись этих подготовленных таблиц. 
Что если определить экспортный метод в модуле объекта документа, который будет готовить данные для движений по регистрам. А в обработке проведения, в транзакции, провести запись этих данных.
Я понимаю, что в этом случае штатные средства платформы по проведению документов и восстановлению последовательностей нам не доступны, по крайней мере так было в 7.7.
Но может быть есть еще какие-то подводные камни, которые сводят к минимуму преимущества данного подхода?

2. Использование структуры.
Практическое применение коллекций Структура и Фиксированная структура.
Насколько выгоднее их использовать с точки зрения производительности и т.д.

3. Кэширование возвращаемых значений.
Кэширование значений функции.
Приведите практические примеры применения этого механизма.

4. Компиляция модуля формы.
—Заметил, что основное тело модуля формы обработки почему-то выполняется 2 раза. —В чем причина такого поведения?

5. Серверные переменные модуля формы.
В модуле формы серверная переменная сохраняет значение только на время серверного вызова и не сохраняется между серверными вызовами, зачем она вообще нужна и где применяется на практике?

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментариев 6 на “Базовый курс. МГ сессия от 03.02.2011”

  1. По кэширование возвращаемых значений.
    Не понял утверждения “Первый раз будет выполнен серверный вызов, во всех остальных случаях обращение к серверу не будет выполняться”.
    Где располагается кэш серверного модуля? – на сервере или на клиенте? Я понимаю так – при первом вызове с клиента значение функции будет вычислено и помещено в серверный кэш, при последующих – возвращаться из серверного кэша без выполнения кода функции на сервере.
    Функция не должна содержать параметров, или кэшируются значения с учетом параметоров?
    Пример: ПолучитьКонтрагента(ИНН, КПП) – в теле функции запрос – может ли такая функция кэшироваться?
     

    • Хорошее уточнение, рассмотрим его в ближайшей мастер-группе.

  2. По ролику 1. Идея о контроле остатков во время транзакции верная, а вот пример не очень подходит. Какая разница когда мы получим остаток -30 в результате отмены проведения задним числом. Не сможет менеджер отменить поступление сразу, он его отменит через секунду. Все равно результат будет не корректным. Лучше все-таки сделать пример например с двумя реализациями.

  3. При сохранении  Оптимизация проведения документов. Часть 3. говорит что такой файл есть ссылаясь  Оптимизация проведения документов. Часть 2.

    Что то с сылками не то
    Проверте пожалуйсто