1. Общие механизмы, понятия и термины
#41

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

Если при доработке автозаполнения документа «Ведомость в кассу» вам нужно добавить единое поле, которое будет доступно сразу в нескольких объектах (например, в ведомостях и связанных документах) — можно ли в 1С:Предприятии создать «общий реквизит»?

Да, но только когда включено разделение данных (механизм областей данных)
Неправильно: общий реквизит можно создавать независимо от того, используется ли разделение данных. Разделение данных - это лишь один из сценариев применения общего реквизита (через специальное свойство), но не условие его существования.
Нет, платформа не умеет создавать общие реквизиты
Неправильно: общий реквизит является отдельным объектом метаданных и поддерживается платформой, его можно добавить и затем включить в состав нужных объектов конфигурации.
Да, но только если разделение данных отключено
Неправильно: общий реквизит создается и используется как при выключенном, так и при включенном разделении данных. При включенном варианте он может дополнительно участвовать в механизме разделения областей данных.
Да, общий реквизит создать можно
Правильно: общий реквизит - это объект метаданных, который позволяет добавить однотипное поле сразу в несколько прикладных объектов и использовать его либо как универсальный реквизит, либо как часть механизма разделения данных.

Пояснение

Развернутая подсказка с привязкой к автозаполнению «Ведомости в кассу». 1) Что такое общий реквизит Общий реквизит - это реквизит «сквозного» назначения, который можно подключить к нескольким объектам конфигурации (документам, справочникам, регистрам и т. п.). Он создается один раз, а затем через настройку состава указывается, в каких объектах он должен появиться. 2) Два типовых сценария использования - Как универсальное поле для хранения одинакового признака в разных объектах (например, «Источник финансирования», «Проект», «ЦФО», «Канал выплат», «Ответственный»). - Как элемент механизма разделения данных (когда общий реквизит помечается как разделитель и формирует независимые области данных внутри одной информационной базы). 3) Зачем это может понадобиться именно для «Ведомости в кассу» Автозаполнение ведомости опирается на параметры шапки (организация, месяц/период, касса, вид выплаты и т. п.) и подбирает строки табличной части (сотрудники и суммы к выплате). В реальных доработках часто нужно добавить дополнительный «контекст заполнения», который должен одинаково присутствовать в нескольких местах: - в самой ведомости (шапка), - в документах-источниках/документах учета выплат, - иногда - в регистрах/движениях, чтобы затем корректно формировать отчеты. Если такой контекст нужен в нескольких объектах сразу, общий реквизит помогает не заводить одно и то же поле вручную в каждом объекте. 4) Практический пример Допустим, вы хотите, чтобы «Ведомость в кассу» заполнялась только начислениями определенного источника финансирования. - Создаете общий реквизит «Финансирование». - Включаете его в состав документа «Ведомость в кассу» и в состав документов/регистраторов, по которым вы хотите отбирать суммы к выплате. - В алгоритме кнопки «Заполнить» используете значение «Финансирование» из шапки ведомости как дополнительный фильтр при подборе сотрудников и сумм. Так пользователь сможет выбрать финансирование один раз, а дальше ведомость заполнится «правильными» строками. 5) Лучшие практики при доработках, чтобы не сломать типовую логику заполнения - Общий реквизит добавляйте только когда признак действительно общий для многих объектов и должен участвовать в отборе/поиске/запросах. - Если нужно добавить поле «без вмешательства в структуру многих объектов» и оно не обязательно должно участвовать в запросах по метаданным, часто безопаснее использовать механизм дополнительных реквизитов (когда он доступен в конфигурации). - Для типовых конфигураций предпочтительнее делать изменения через расширения, а не прямую правку, чтобы обновления проходили спокойнее. - Логику подбора строк ведомости держите в серверных процедурах (общие модули/модули объектов), а в форме оставляйте только запуск заполнения и обновление интерфейса. Итог: общий реквизит - это штатный механизм платформы, который подходит, когда для автозаполнения «Ведомости в кассу» нужен единый дополнительный признак сразу в нескольких объектах или когда используется разделение данных.