Особенности использования типов данных, предназначенных для манипулирования объектами базы данных
В модели разработки прикладных решений 1С:Предприятия для ряда сущностей предметной области используется объектный подход манипулирования данными. Эти сущности описываются в конфигурации объектами метаданных: Справочник , Документ , ПланВидовХарактеристик , ПланСчетов и ПланВидовРасчета . С точки зрения модели данных 1С:Предприятия, в базе данных для этих сущностей хранятся объекты. Разумеется, язык запросов предоставляет доступ к этим сущностям, как и ко всем другим данным, в модели реляционных таблиц. Но доступ специализированными объектами встроенного языка, предназначенными для манипулирования этими данными, предоставляется именно в объектной технике.
Рассмотрим состав типов, используемых для манипулирования этими сущностями в конфигурации. Мы будем рассматривать состав типов и их использование на примере справочника. Для других перечисленных объектов метаданных имеется аналогичный состав типов.
Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Кроме того, он имеет метод ТипВсеСсылки() , который позволяет получить значение ОписаниеТипов, содержащее типы ссылок всех справочников конфигурации. Например, с помощью данного значения (используя метод СодержитТип() ) можно проверить, является ли тип некоторого значениям типом ссылки какого-либо справочника.
Тип СправочникМенеджер предоставляют доступ к общим действиям, относящимся к конкретному справочнику. С помощью его методов выполняются действия, относящиеся к справочнику, а не к его конкретным объектам. Например, его методы позволяют создать новый объект или найти объект по коду. Менеджер является своего рода «точкой входа» в конкретный справочник в объектной модели встроенного языка.
Заметим, что объекты типа СправочникиМенеджер и СправочникМенеджер имеются в системе в единственном экземпляре.
Подробнее остановимся на типах СправочникСсылка и СправочникОбъект . На следующем рисунке изображено хранение справочника в базе данных.
Справочник хранится в таблице. Запись таблицы определяет объект базы данных – элемент справочника. Объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных представляет собой запись основной таблицы и строки табличных частей.
В таблице справочника присутствует поле Ссылка , которое хранит значения, однозначно идентифицирующие объекты (элементы справочника) в базе данных 1С:Предприятия. Если в какой либо другой таблице нужно сослаться на некоторый объект базы данных, то в поле этой таблицы будет храниться именно значение ссылки.
Для манипулирования справочником во встроенном языке существуют два основных типа СправочникСсылка.ХХХХ и СправочникОбъект.ХХХХ , где ХХХХ — имя справочника в метаданных. Важно, что имеются отдельные типы для каждого справочника, они появляются в системе при создании справочника в метаданных. Таким образом, типы ссылок двух разных справочников не будут совпадать между собой.
Назначение типов СправочникСсылка и СправочникОбъект существенно различается. Значение типа СправочникСсылка – хранит ссылку, идентифицирующую объект в базе данных, а значение типа СправочникОбъект позволяет считывать и записывать данные объекта.
Значение типа СправочникСсылка используется везде, где нужно хранить ссылку на элемент. Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в поле Ссылка таблицы справочника. Это значение хранится в полях других таблиц базы данных, выбирается в поле ввода, указывается в параметрах запроса при поиске по ссылке и т.д. Важно, что значение типа СправочникСсылка можно сравнивать с другим значением типа СправочникСсылка и они буду всегда равны, если это ссылка на один и тот же объект в базе данных (независимо от способа получения и от того откуда получено значение).
Значение типа СправочникОбъект используется в основном для создания нового объекта, изменения существующего объекта и удаления объекта. Кроме того, СправочникОбъект используется для отображения и редактирования всех данных элемента справочника в форме элемента. Также СправочникОбъект используется при редактировании строки списка справочника (при отображении строк списка СправочникОбъект не используется). Для одного и того же элемента справочника можно получить несколько объектов типа СправочникОбъект . При сравнении этих значений они будут равны, только если это один и тот же объект встроенного языка. Два объекта встроенного языка, полученные для одного элемента справочника, не будут равны, даже если в них считан один и тот же объект базы данных и совпадают все данные объекта.
Объект может быть создан с помощью менеджера справочника. В этом случае создается новый объект, которого еще нет в базе данных. Если его записать, то появится новый объект в базе данных. Объект может быть получен из ссылки. В этом случае из базы данных считывается существующий объект, на который указывает ссылка. Объект также может быть получен из выборки ( СправочникВыборка ). В этом случае данные объекта заполняются данными, считанными в процессе считывания выборки.
СправочникОбъект оптимизирует запись изменений в базу данных. Например, Если не менялись реквизиты самого объекта, то будет записываться только минимальная информация об изменении. Если не менялись строки табличной части, то табличная часть не будет записываться. Если менялись только отдельные строки или добавлялись строки, то будут записываться только измененные и добавленные строки. Однако если строки удалялись или изменялся порядок строк, то будут записываться все строки табличной части.
Для объектов обеспечивается оптимистическая блокировка. То есть объект не может быть записан, если он был изменен в базе данных после считывания. Этот механизм обеспечивает логическую целостность изменения объектов. Каждый, кто меняет объект, может быть уверен, что его изменения не «затрут» изменений сделанных другими пользователями (сессиями) или другими объектами в этой же сессии. Такая блокировка не препятствует изменению объекта другими сессиями или этой сессией. Однако если с момента считывания объекта и до попытки его записи объект был изменен в базе данных, то запись не будет выполнена.
Кроме того, существует механизм пессимистической блокировки, который запрещает изменения другими сессиями или этой сессией, до снятия блокировки этим объектом встроенного языка. Данный механизм необходимо включать в явном виде методом Заблокировать() . В основном он предназначен для блокировки объектов, редактируемых в форме. Расширение формы элемента справочника автоматически включает блокировку, чтобы пользователь был уверен что, начав редактировать объект, он сможет его записать.
И СправочникСсылка , и СправочникОбъект предоставляют доступ через свойства к данным объекта — значениям полей таблицы. Однако это происходит совершенно по-разному, так как назначение и использование этих типов принципиально отличается. Значение СправочникОбъект хранит свойства непосредственно в объекте встроенного языка. Они заполняются при считывании существующего объекта значениями из базы данных, а для нового объекта инициализируются значениями по умолчанию. Значение СправочникСсылка при обращении к свойствам осуществляет считывание информации из базы данных. Однако чтобы считывание происходило не при каждом обращении – данные объектов кэшируются системой. Если обращаться через ссылки к свойствам одного и того же объекта базы данных, то считывание данных будет происходить только при первом обращении, а так же после того как система выгрузит этот объект из кэша. Данные объекта удерживаются в кэше около 20 минут, но после интервала в 20 секунд при очередном обращении будет выполняться проверка того, что объект в базе данных не менялся, и, при необходимости, выполняется обновление данных в кэше. Если объект записывается в данной сессии, то он сразу обновляется в кэше. Также имеются ограничения на количество объектов хранимых в кэше. Следует заметить, что в рамках транзакции система использует отдельный кэш, поэтому обращение к данным объекта через ссылки в транзакциях гарантированно выдает актуальные данные.
Тип СправочникВыборка предназначен для динамического обхода элементов справочника. Механизм выборок для объектных таблиц не имеет существенных отличий от выборок других таблиц. Можно заметить, что считанные в выборке элементы могут быть получены в качестве значений типа СправочникОбъект . При этом они не будут повторно считываться из базы данных. Следует учитывать, что выборка всегда считывает данные объектов целиком (все поля и все табличные части).
Тип СправочникСписок предназначен для динамического просмотра данных справочника в элементе управления ТабличноеПоле. У него может быть настроен состав считываемых полей (колонок), отбор и сортировка. Список осуществляет считывание данных порциями в процессе навигации пользователем в табличном поле.
Кроме указанных типов значений справочник определяет несколько расширений элементов управления и форм, предназначенных для интерактивного ввода и просмотра, данных справочника. Расширения не являются типами данных, а добавляют специфические свойства, методы и события к соответствующим объектам. Кроме того, расширения определяют некоторое специфическое поведение форм и элементов управления при конфигурировании и работе пользователя с системой.
Что такое справочники
Справочник – унифицированное описание массива условно-постоянной информации, каждый экземпляр которого имеет одинаковые структуру, правила изменения, правила распространения, правила идентификации и консолидации.
Классификатор – это справочник, в структуру которого входит один не участвующий в идентификации атрибут.
Единая система нормативной справочной информации (далее – ЕСНСИ) – федеральная государственная информационная система, которая предназначена для обеспечения единой точки доступа к справочной информации (НСИ).
Данная справочная информация используется в государственных и муниципальных информационных системах, где все заинтересованные стороны – участники информационного взаимодействия – могут получить:
- Описание справочников/классификаторов, а также базовых государственных информационных ресурсов;
- Актуальные данные справочников и классификаторов.
В ЕСНСИ для пользователя доступно несколько типов справочников:
- Простой справочник – тип справочника, представляющий собой массив данных с заданной Пользователем структурой.
- Справочник-агрегатор простых справочников – тип справочника, имеющий собственную структуру, массив данных которого формируется из входящих в его состав справочников-доноров. В свою очередь справочники-доноры содержат в себе только массив данных и не имеющих собственной структуры, обновляемых и распространяемых совместно.
- Иерархический справочник – тип справочника, обеспечивающий возможность формирования многоуровневой иерархии с возможность ведения, хранения и распространения связей между родительской и дочерней записями .
Структура справочника
- Строка;
- Целое число;
- Дата;
- Дробное число;
- Ссылка;
- Логический тип;
- Текст.
Тип строка
- Наименование атрибута (обязательное поле).
- Длина (максимальное значение 255 символов) – необязательное поле.
- Выражение – необязательный атрибут.
- Выбор отметки «База составного ключа».
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле
- Проверка орфографии.
- Проверка нецензурной лексики.
Тип целое число
- Наименование атрибута (обязательное поле).
- Выбор отметки «База составного ключа».
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле.
- Диапазон значений – необязательное поле.
Тип Дата
- Наименование атрибута (обязательное поле).
- Выбор отметки «База составного ключа».
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле.
- Диапазон – необязательное поле.
Тип Дробное число
- Наименование атрибута (обязательное поле).
- Выбор отметки «База составного ключа».
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле
- Диапазон значений – необязательное поле.
Тип Логический
- -true (истина, «да», логическая единица «1»);
- false (ложь, «нет», логический ноль «0»).
- Наименование атрибута (обязательное поле).
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле.
Тип Текст
- Наименование атрибута (обязательное поле).
- Длина (более 255 символов) – необязательное поле.
- Выражение – необязательный атрибут.
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле.
- Проверка орфографии.
- Проверка нецензурной лексики.
Тип Ссылка
- Выбор отметки «Обязательность заполнения» атрибута – необязательное поле.
- Справочник из списка.
- Атрибут из справочника.
- Тип Ссылка не подлежит изменению
- Любой тип атрибута можно изменить на тип Текст или тип Строка
- Для ключевого атрибута доступна смена типа только на строку.
- Ограничения на количество символов для строки можно только увеличить.
Автозаполнение полей в справочниках-донорах
Для справочников-доноров реализована возможность выбирать и заполнять константными значениями атрибуты, у которых есть свойство Автоматическое заполнение в справочнике-доноре (Рисунок 1). При создании новой записи справочника-донора поле с этим свойством заполняется автоматически. Данное свойство недоступно, если атрибут выбран в качестве уникального идентификатора ключа записи (База составного ключа).
Рисунок 1 – Заполнение структуры справочника-агрегатора.
Если у справочника-агрегатора есть донор хотя бы с одним автозаполняемым полем, то у атрибутов справочника-агрегатора становится неактивно для редактирования – имя атрибута и чекбокс автозаполнения (Рисунок 2).

Рисунок 2 – Вид структуры справочника-агрегатора после создания справочника-донора.
Указывать константные значения для автозаполняемых атрибутов пользователь может на этапе создания справочника-донора (Рисунок 3).

Рисунок 3 – Создание справочника-донора.
На вкладке атрибутов у справочника-донора и справочника-агрегатора проставляются метки «Автозаполнение», если поле было заполнено при создании автозаполняемым значением (Рисунок 4).

Рисунок 4 – Просмотр атрибутного состава справочника-донора/справочника-агрегатора.
При заполнении значений в доноре автозаполняемые поля неактивны и сразу заполнены значениями, которые были введены при создании донора (Рисунок 5).

Рисунок 5 – Создание записи в справочнике-доноре.
Дополнительные поля
Если вы хотите сохранить информацию, для которой нет подходящего поля в документе или справочнике, вы можете создать дополнительные поля.
Дополнительные поля также отображаются в списках документов и справочниках. Их можно использовать в фильтрах, массовом редактировании, импорте и экспорте.
Максимальное доступное количество дополнительных полей для одного типа объектов — 100. Так, можно добавить 100 дополнительных полей в товары, 100 — в отгрузки и т. д.
Для вывода полей на печать можно создать дополнительные шаблоны.
Дополнительные поля используются при синхронизации с интернет-магазинами. Информация из заказа интернет-магазина попадет в заказ покупателя в МоемСкладе, если название и тип данных дополнительного поля и поля из интернет-магазина совпадают.
Если в связанных документах создать поля с одинаковыми названиями и типами, то при создании одного документа на основе другого значение из поля скопируется.
Вы можете настроить количество полей, которые будут отображаться в строке документа, в личных настройках.
Для разделения товаров с одним артикулом по цветам, размерам и прочим подобным характеристикам, мы рекомендуем использовать модификации товаров.
Создание дополнительных полей
- Перейдите в список документов или в справочник, к которому вы хотите добавить поле.
- Откройте настройки дополнительных полей, для этого нажмите на кнопку с шестеренкой в правой части экрана.
- Для добавления поля нажмите на кнопку +Поле.

- Заполните настройки:
- Название — название поля, которое будет видно пользователям.
- Тип — тип данных, которые будут храниться в поле.
После сохранения изменить тип поля будет нельзя.

Типы полей
Вы можете выбрать тип поля, наиболее подходящий для вашей задачи:

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

- Текст — для длинного текста, поддерживает перенос строк. Например, дополнительный комментарий или описание.

- Число целое — для целых значений. Например, для указания габаритов.

- Число дробное — для чисел с дробной частью. Например, для описания свойств товара.

- Флажок — для значений типа да/нет. Например, для описания наличия у товара какой-либо характеристики.
Поля типа «Флажок» нельзя импортировать из Excel
- Дата — для выбора даты и времени из календаря. Например, дата выдачи доверенности или срок ее действия.

- Файл — для прикрепления файлов. Например, отсканированного договора или инструкции по сборке. Файлы JPG и PNG пользователи смогут увидеть прямо в браузере, другие типы файлов, пользователи смогут скачать на компьютер.

- Ссылка — для адреса в интернете. Например, ссылка на карточку товара в интернет-магазине. При щелчке, ссылка откроется в новой вкладке браузера.

Тип изменений в справочнике: что это и какие бывают?

Справочники — это наборы данных, которые используются для хранения и организации информации. Они могут быть использованы для хранения данных о людях, компаниях, продуктах и многом другом. Как и любые другие данные, справочники должны быть поддерживаемыми и обновляемыми.
Один из способов обновления справочников — это использование типов изменений. Тип изменения указывает, какое действие было выполнено с данными в справочнике. Это может быть добавление нового элемента, удаление существующего элемента или изменение информации о существующем элементе.
Когда выполняется операция изменения в справочнике, тип изменения может быть записан вместе с другими данными, такими как идентификатор элемента, название, описание и другие атрибуты. Это позволяет отслеживать историю изменений и анализировать, какие действия были выполнены с данными в разные моменты времени.
Например, если мы имеем справочник с информацией о клиентах, мы можем использовать типы изменений для отслеживания, когда клиент был добавлен, изменен или удален из справочника. Это может быть полезно для анализа того, как изменения данных клиента влияют на другие аспекты бизнеса, такие как продажи или уровень обслуживания.
Использование типов изменений также может помочь в управлении доступом к справочникам. Например, разные типы изменений могут быть разрешены или запрещены для разных пользователей или групп пользователей. Это помогает обеспечивать безопасность данных и предотвращать несанкционированный доступ или изменение информации в справочнике.
Понятие типов изменений в справочнике
Тип изменений в справочнике — это специальный атрибут, который указывает, какие данные могут быть изменены в справочнике, а какие — нет. Тип изменений определяет, какие поля доступны для редактирования и удаления, а какие — только для чтения.
Для каждого элемента справочника можно указать один из следующих типов изменений:
- Полный доступ — все поля элемента доступны для редактирования и удаления. Это наиболее распространенный тип изменений.
- Только чтение — все поля элемента доступны только для чтения. Этот тип изменений используется, когда необходимо предоставить пользователям возможность просмотра данных, но не допускать их изменение.
- Ограниченный доступ — только некоторые поля элемента доступны для редактирования и удаления. Этот тип изменений используется, когда нужно ограничить возможности редактирования определенных полей.
Тип изменений в справочнике определяется в момент его создания или изменения и может быть изменен в любой момент времени. Определение типа изменений позволяет контролировать доступ к данным и обеспечивает защиту от случайных или нежелательных изменений.
При работе со справочником пользователи могут видеть только те поля, которые доступны для редактирования или чтения, в зависимости от их роли и прав доступа. Это обеспечивает безопасность данных и предотвращает возможные ошибки или некорректные изменения.
Как работают типы изменений?
Типы изменений в справочнике позволяют определить вид изменений, которые могут быть внесены в справочник. Всего существует три основных типа изменений:
- Добавление — тип изменений, указывающий на добавление новой информации в справочник. При добавлении новых данных необходимо указать их описание, значения и другую необходимую информацию.
- Изменение — тип изменений, указывающий на изменение существующих данных в справочнике. При изменении данных необходимо указать их новое значение или описание, а также причину изменения.
- Удаление — тип изменений, указывающий на удаление существующих данных из справочника. При удалении данных необходимо указать причину удаления и возможные альтернативы.
В процессе работы с справочником типы изменений могут использоваться для отслеживания и контроля изменений, а также для обеспечения надлежащей документации и аудита.
Пример использования типов изменений:
Использование типов изменений помогает организовать процесс работы с справочниками и обеспечить точность и актуальность данных в них.
На что следует обратить внимание при использовании типов изменений
Использование типов изменений в справочнике может значительно облегчить и ускорить процесс управления изменениями и поддержки справочника. Однако, при работе с типами изменений следует обратить внимание на несколько важных аспектов:
- Определение всех необходимых типов изменений Важно задокументировать все типы изменений, которые могут возникнуть в справочнике. Это позволит предусмотреть их варианты обработки и понять, как они могут повлиять на другие элементы справочника.
- Установка четких правил применения типов изменений Для эффективного использования типов изменений следует установить четкие правила и руководства по их применению. Это поможет предотвратить возникновение непредвиденных ситуаций и способствовать консистентности изменений в справочнике.
- Регулярное обновление типов изменений Справочник и его область применения могут меняться со временем, поэтому важно регулярно обновлять типы изменений. Это позволит адаптировать справочник к новым требованиям и внедрить необходимые изменения, чтобы он оставался актуальным.
- Анализ влияния изменений на другие элементы справочника При внесении изменений в справочник, необходимо анализировать их влияние на другие элементы справочника. Некорректные или неожиданные изменения могут повлиять на работу других систем, которые используют этот справочник.
- Документирование изменений и их причин Важно задокументировать все изменения, внесенные в справочник, а также причины их внесения. Это позволит лучше понять историю изменений и помочь в будущем анализировать и исправлять возможные ошибки или проблемы.
Следуя этим рекомендациям, можно эффективно использовать типы изменений в справочнике и обеспечить его стабильность и актуальность в долгосрочной перспективе.
Импорт и экспорт типов изменений
В справочнике типы изменений могут быть экспортированы и импортированы для удобства работы с базой данных.
Импорт и экспорт типов изменений позволяют передавать информацию о типах изменений между различными экземплярами базы данных или даже между различными проектами.
Импорт типов изменений
Для импорта типов изменений необходимо выполнить следующие шаги:
- Открыть окно импорта типов изменений.
- Выбрать файл, содержащий типы изменений для импорта.
- Нажать кнопку «Импорт».
После выполнения этих шагов, типы изменений из файла будут импортированы в справочник и станут доступными для использования в базе данных.
Экспорт типов изменений
Для экспорта типов изменений необходимо выполнить следующие шаги:
- Открыть окно экспорта типов изменений.
- Выбрать типы изменений, которые необходимо экспортировать.
- Нажать кнопку «Экспорт».
- Выбрать место сохранения файла с экспортированными типами изменений.
После выполнения этих шагов, выбранные типы изменений будут экспортированы в файл и будут доступны для импорта в другие экземпляры базы данных или проекты.
Импорт и экспорт типов изменений упрощают работу с справочником и позволяют эффективно передавать информацию о типах изменений между различными проектами или разработчиками.
Вопрос-ответ
Что такое тип изменений в справочнике и как они работают?
Тип изменений в справочнике определяет, какие виды изменений могут быть внесены в данные справочника. Каждый тип изменений содержит определенный набор полей и правил, которые определяют, какие данные могут быть изменены и какие действия должны быть предприняты при внесении этих изменений. Например, тип изменений может определять, что при изменении адреса клиента необходимо также обновить контактную информацию. Типы изменений позволяют упростить и автоматизировать процесс внесения изменений в справочник, что повышает его эффективность и точность.
Какие типы изменений могут быть внесены в справочнике?
Типы изменений в справочнике могут быть разнообразными и зависят от конкретного контекста и задачи. Некоторые общие типы изменений, которые могут быть внесены в справочнике, включают в себя добавление новых записей, удаление существующих записей, изменение существующих данных, перемещение записей между категориями, обновление связанных данных и т.д. Конкретные типы изменений и их описание определяются в соответствии с требованиями и целями использования справочника.
Как работает тип изменений в справочнике?
Тип изменений в справочнике работает путем определения набора полей и правил, которые управляют процессом внесения изменений. Когда пользователь хочет внести изменения в данные справочника, он выбирает соответствующий тип изменений. Затем открывается форма, где пользователь может ввести новые значения или изменить существующие. При сохранении изменений, система проверяет их на соответствие определенным правилам. Например, если установлено правило, что при изменении адреса клиента также должна быть обновлена контактная информация, система автоматически обновит связанные данные. Типы изменений позволяют обеспечить консистентность и правильность данных в справочнике.
