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

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

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

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

Можно ли в 1С:Предприятие создать «свой» тип данных (например, «ИсточникВыплаты» или «ЦенаНоменклатуры»), чтобы затем использовать его в реквизитах/параметрах при доработке логики автоматического заполнения документа «Ведомость в кассу»?

Да, для этого используются общие реквизиты - они и создают новый тип данных.
Неправильно: общие реквизиты - это механизм хранения/распространения значения по объектам конфигурации, но они не создают новый тип данных и не заменяют механизм унификации типов.
Создать свой тип можно только в расширении конфигурации, и назначение расширения значения не имеет.
Неправильно: определение пользовательского типа выполняется объектом конфигурации «Определяемый тип» и не ограничено сценарием «только расширение»; расширения решают другие задачи (изменение/дополнение функционала).
Да, это делается через объект конфигурации «Определяемый тип» (в коде используется как ОпределяемыйТип.<ИмяТипа>).
Правильно: «Определяемый тип» - специальный объект конфигурации, который позволяет описать единый тип данных и затем применять его в реквизитах/табличных частях/параметрах, обращаясь к нему в коде как ОпределяемыйТип.<ИмяОпределяемогоТипа>.
Нет, платформа не позволяет создавать собственные типы данных - можно использовать только стандартные типы.
Неправильно: в платформе предусмотрен механизм «Определяемые типы», который как раз и создан для задания повторно используемых типов и упрощения разработки/внедрения подсистем.
Свой тип можно создать только в расширении с назначением «Дополнение».
Неправильно: назначение расширения не является условием для появления механизма определяемых типов; «Определяемые типы» - штатный объект конфигурации и применяется независимо от сценария расширения.

Пояснение

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