Почему задваиваются движения 1С

preview_player
Показать описание
А по промокоду yellowclub получишь 10% скидку.

Вот тут сам вопрос:
Рекомендации по теме
Комментарии
Автор

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

blizfivefivefive
Автор

Если в форме присутствуют динамические списки, то данные в них будут отбираться только те, которые выводятся пользователю.
Этот флаг выбирает данные всегда, т.е. на форме они не будут отображаться, но в "этотобъект" будут присутствовать

ixycevw
Автор

Экземпляр документа может генерироваться или изменяться не только интерпретатором на сервере, но и интерпретатором на клиенте (как интерактивно, так и программно). Логично, что для тонкого конфигурирования работы с документом на клиенте, помимо реквизитов и табличных частей, должно быть доступно управление записями подчиненных регистров (это такая же неотъемлемая часть документа как и его свойства). А флаг "Использовать всегда" у свойств всего лишь предоставляет возможность разработчику самостоятельно управлять составом свойств для клиентской (например, для экономии трафика между клиентом и сервером за счет отключения не используемых на клиенте свойств документа).


Если мы генерируем движения на клиенте, то логично, что обратно на сервер вернется экземпляр с заполненным движениями, поэтому этот момент надо будет учесть в обработчике проведения.


Один из реальных сценариев использования клиента для генерации движений можно увидеть в документе "Корректировка регистров" из УТ 11.4, который отключен от механизма проведения (поэтому отсутствует обработчик проведения) и у него включен обсуждаемый флаг на форме объекта, в которой должны генерироваться движения.

olegm
Автор

Очень интересная рубрика. Быстро и интересно

SeregaIvanovVrn
Автор

Приведу ИТС) -
Свойство "Использовать всегда" объектов конфигурации
При работе с управляемой формой существует возможность не передавать все данные с сервера на клиента.

При создании формы на сервере платформа анализирует состав элементов и определяет, с какими данными они связаны. Соответственно, остальные данные можно не передавать на клиента. Но может потребоваться доступ к этим данным из модуля на клиенте. Для этого введено свойство Использовать всегда. Если у реквизита данное свойство установлено, он будет передан на клиента независимо от того, связан ли с ним какой-либо элемент формы.

По умолчанию свойство Использовать всегда установлено для всех реквизитов формы, за исключением случаев:

Движения документа. В стандартной форме объекта документа они не отображаются. И их данные на клиенте, как правило, не нужны. Таким образом, экономится трафик, и не выполняется лишний запрос к базе данных – движения нельзя прочитать одним запросом с самим документом.
Константы. Если добавить в конфигурацию новую константу, то при установленном свойстве она будет передаваться во все формы констант, которые были созданы раньше и ничего об этой константе не "знали". А это не только лишний трафик, но и необходимость иметь права на чтение данной константы. Поэтому для констант свойство Использовать всегда по умолчанию не установлено.
Также данное свойство по умолчанию отключено для многих колонок динамических списков, особенно тех, которые автоматически формируются платформой. Таким образом, часть колонок динамического списка выводится на форму, остальные используются в запросе, при этом на форму не выводятся. Если эти колонки требуются для работы каких-то программных алгоритмов формы, то для них следует установить свойство Использовать всегда.

Жаль, полного доступа нет на ИТС)

rumik
Автор

Если человека два, то зачем показывать 4 пальца?

nihaoarigato
Автор

Флаг означает что данные выбираются, даже если нет элементов на форме, которые отображают эти данные. Открыли форму, данные прочитали. Начали записывать и к уже существующим движения добавляются новые.

maksspiridonov
Автор

Зачем нужен - не очень понятно. MVC.
При инициализации формы, когда она собирается на сервере, ещё до события ПриЧтенииНаСеовере. Там же где остальные реквизиты "связываются" с данными формы - к объекту дополняются наборы движений (коллекции ДФК)

ilya
Автор

Отличное видео!
А по поводу глюков платформы с движениями - за много лет сталкивался всего пару раз (в 8.2, ОФ): автоудаление движений отключено, в обработке проведения первыми строками идет принудительная очистка движений, потом запись новых. Документов - по 20 тысяч в день. И были считанные случаи, когда документ проведен, а движений нет. Единственное объяснение - по какой-то причине SQL отрабатывает удаление движений (которое в коде расположено раньше) позже, чем запись новых (или платформа 1С отдает пустой набор в SQL).

androidtc
Автор

Флаг заставляет 1с копировать объект из контекста в контекст при смене контекста исполнения

kefmdksalw
Автор

Симптомы? Причины? Главное результат и не всегда нужно ставить Всегда )) школьник блин ! ))

Андрей
Автор

Не проверял, но мое предположение следующее:
Флаг позволят работать с движениями объекта также как с реквизитами объекта.
При установке флага на движениях, движения могут быть сформированы на форме, а не отдельной процедурой в модуле объекта.
При записи в модуль объекта средствами платформы передаются сформированные на форме движения, что и приводит к "задваиванию", в случае если в модуле объекта заполнена обработка проведения.

Anton-niun
Автор

Вы и без этого флага можете получить такую же ошибку. Просто вытащите движения на форму.

timko_nzt
Автор

То есть я правильно понял что это всё для директивы &НаКлиенте?

panalike
Автор

Только один ✋человек увидел его ошибку

xtwtkfq
Автор

Да уж, а я ответил почему такое в обычной форме, привычка

jfxyvdy