{ИмяРегистраСведений}
| Тип-одиночка {ИмяПодсистемы}::{ИмяРегистраСведений} Базовые типы: Объект, РегистрСведений |
| Доступность: КлиентИСервер |
Иерархия типа
graph TD;
РегистрСведений["РегистрСведений"]-->Объект["Объект"];
InformationRegisterName["{ИмяРегистраСведений}"]-->РегистрСведений["РегистрСведений"];
Вспомогательный объект с общей для конкретного регистра сведений функциональностью.
Для периодического регистра сведений вызов ПересчитатьРазрешенияДоступаДляОбъектов приводит к инициации вычисления разрешений как на чтение, так и на изменение (вызываются обработчики [.ВычислитьКлючДоступаДляЧтения] и [.ВычислитьКлючиДоступаДляИзменения], а тривиальные разрешения из ключей создаются автоматически).
Методы ЗаписатьСЗаменойСуществующей, Записать, УдалитьСПроверкойСуществующей и Удалить предназначены именно для оперирования отдельными записями. В смысле затрат вычислительных ресурсов они менее эффективны (в случае большого количестве записей - существенно) чем использование набора записей.
При этом варианты “без существующей” вообще не обладают ни какой дополнительной функциональностью - т.е. это просто короткий способ создать набор записей, заполнить отбор из ключа записи, добавить в него запись (только для “Записать”) и вызывать метод Записать. Варианты полезны при работе с записями регистра как со ссылочными объектами - с помощью них удобно изменять или удалять отдельные записи (при том что в самом регистре по сути не предусмотрено изменение или удаление - только запись набора записей) - обычно это требуется при реализации UI функциональности (без использования соответствующей стандартной функциональности пользовательского интерфейса).
Сравнение ссылочное
Методы
ComputeAccessKeysForRead
ВычислитьКлючиДоступаДляЧтения(Ключи: ЧитаемыйМассив<{ИмяРегистраСведений}.КлючИзмерений>): ЧитаемоеСоответствие<{ИмяРегистраСведений}.КлючИзмерений,ЧитаемыйМассив<КлючДоступа.Объект>| Доступность: Сервер |
| Аннотации: Обработчик |
Вызывается при необходимости рассчитать ключи доступа для чтения записей периодического регистра сведений.
Примеры
метод ВычислитьКлючиДоступаДляЧтения(
Ключи: ЧитаемыйМассив<ЦеныТоваров.КлючИзмерений>
): ЧитаемоеСоответствие<ЦеныТоваров.КлючИзмерений, ЧитаемыйМассив<КлючДоступа.Объект>>
знч результат = <ЦеныТоваров.КлючИзмерений, ЧитаемыйМассив<КлючДоступа.Объект>>{:}
для Ключ из Ключи
// Заполнение ключей доступа на основе значений из полей Ключ
...
;
возврат результат
;
ComputeAccessKeysForUpdate
ВычислитьКлючиДоступаДляИзменения(Записи: ЧитаемыйМассив<{ИмяРегистраСведений}.Запись>): ЧитаемоеСоответствие<{ИмяРегистраСведений}.Запись,ЧитаемыйМассив<КлючДоступа.Объект>| Доступность: Сервер |
| Аннотации: Обработчик |
Вызывается при необходимости рассчитать ключи доступа для изменения записей периодического регистра сведений.
Примеры
метод ВычислитьКлючиДоступаДляИзменения(
Записи: ЧитаемыйМассив<ЦеныТоваров.Запись>
): ЧитаемоеСоответствие<ЦеныТоваров.Запись, ЧитаемыйМассив<КлючДоступа.Объект>>
знч результат = <ЦеныТоваров.Запись, ЧитаемыйМассив<КлючДоступа.Объект>>{:}
для Запись из Записи
// Заполнение ключей доступа на основе значений из полей Запись
...
;
возврат результат
;
ВычислитьРазрешенияДоступа
ВычислитьРазрешенияДоступа(): ЧитаемыйМассив<РазрешениеДоступа>| Доступность: Сервер |
| Аннотации: Обработчик |
Заблокировать
Заблокировать(КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи)| Доступность: Сервер |
| Перегрузка: Заблокировать(КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи) |
Устанавливает исключительную блокировку на значения измерений заданные в ключе записи до конца транзакции. Если транзакция не активна - выбрасывается исключение [.ИсключениеНетАктивнойТранзакции].
Примеры
КурсыВалют.Заблокировать(Запись.КлючЗаписи)
Заблокировать
Заблокировать(КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи)| Доступность: Сервер |
| Перегрузка: Заблокировать(Отбор: {ИмяРегистраСведений}.НаборЗаписей.Отбор) |
Заблокировать
Заблокировать(Filter: InformationRegisterName.RecordSet.Filter)| Доступность: Сервер |
| Перегрузка: Заблокировать(КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи) |
Устанавливает исключительную блокировку на значения измерений используемые в отборе до конца транзакции. Если транзакция не активна - выбрасывается исключение ИсключениеНетАктивнойТранзакции.
Примеры
КурсыВалют.Заблокировать(НаборЗаписей.Отбор)
Записать
Записать(Запись: {ИмяРегистраСведений}.Запись)| Доступность: Сервер |
Пытается записать в БД новую запись или заместить существующую.
Фактически при вызове метода создаётся набор записей из одной записи Запись с отбором заполненным из ключа записи Запись, набор записывается с Замещать = Истина
В отличии от метода [ЗаписатьСЗаменойСуществующей] метод [Записать] является просто короткой формой создания набора записей, его заполнения и вызова его метода [Записать]. Ни какой дополнительной функциональностью он не обладает.
Примеры
КурсыВалют.Записать(Запись)
ЗаписатьСЗаменойСуществующей
ЗаписатьСЗаменойСуществующей(
Запись: {ИмяРегистраСведений}.Запись,
КлючСуществующейЗаписи: {ИмяРегистраСведений}.КлючЗаписи? = Неопределено,
МеткаВерсииСуществующейЗаписи: Байты? = Неопределено)| Доступность: Сервер |
Если значение параметра МеткаВерсииСуществующейЗаписи заполнено - оно должно соответствовать метки версии существующей (изменяемой) записи, а не записи Запись.
Записывает новую запись в БД или изменяет существующую. В случае изменения существующей записи, если значение параметра МеткаВерсииСуществующейЗаписи отличается от Неопределено - осуществляется контроль совпадения указанной метки версии с меткой версии записи в БД. Подробнее см. ниже.
Если параметр КлючСуществующейЗаписи имеет значение Неопределено - вызов предназначен для записи новой записи, в этом случае:
- значение параметр
МеткаВерсииСуществующейЗаписидолжно иметь значениеНеопределено(в противном случае будет выброшено исключение ИсключениеНедопустимыйАргумент) - проверяется отсутствие в базе БД записи с ключом равным ключу записи Запись
- при обнаружении такой записи выбрасывается исключение ИсключениеЗаписьНеУникальна
- запись
Записьзаписывается в БД
Если параметр КлючСуществующейЗаписи имеет значение отличное от Неопределено - вызов предназначен для изменения существующей записи, в этом случае:
- если значение параметра
МеткаВерсииСуществующейЗаписиимеет значениеНеопределено- проверяется наличие в БД записи с ключом равным ключу записи
Запись- при отсутствии записи выбрасывается исключение ИсключениеОдновременноеИзменениеСущности
- проверяется наличие в БД записи с ключом равным ключу записи
- если значение параметра
МеткаВерсииСуществующейЗаписиимеет значение отличное отНеопределено- проверяется наличие в БД записи с ключом равным ключу записи
Записьи меткой версии совпадающей сМеткаВерсииСуществующейЗаписи- при отсутствии записи выбрасывается исключение ИсключениеОдновременноеИзменениеСущности
- проверяется наличие в БД записи с ключом равным ключу записи
- исходная запись (с ключом
КлючСуществующейЗаписи) заменяется в БД на записьЗапись, при этом фактически- создаётся пустой набор записей с отбором заполненным из
КлючСуществующейЗаписи, набор записывается сЗамещать=Истина - создаётся набор записей из одной записи
Записьс отбором заполненным из ключа записиЗапись, набор записывается сЗамещать=Истина
- создаётся пустой набор записей с отбором заполненным из
Примеры
КурсыВалют.ЗаписатьСЗаменойСуществующей(Запись, ИсходнаяЗапись.КлючЗаписи, ИсходнаяЗапись.ПолучитьМеткуВерсии())
ПересчитатьРазрешенияДоступаДляОбъектов
ПересчитатьРазрешенияДоступаДляОбъектов(Объекты: ЧитаемыйМассив<{ИмяРегистраСведений}.Запись>)| Доступность: Сервер |
Пересчет разрешений на указанные записи регистра.
Примеры
КурсыВалют.ПересчитатьРазрешенияДоступаДляОбъектов(НаборЗаписей)
СоздатьФормуОбъекта
СоздатьФормуОбъекта(Ключ: {ИмяРегистраСведений}.КлючЗаписи?): ФормаОбъекта| Доступность: Клиент |
Создает форму объекта регистра сведений. Если регистру сведений назначена форма объекта, то будет создана форма ровно этого типа. Иначе будет создана автоматическая форма типа [<ИмяРегистраСведений>.АвтоматическаяФормаОбъекта]ИмяРегистраСведений>
Параметр Ключ определяет, какой объект будет редактироваться в форме. Если в качестве значения ключа передано Неопределено, то будет открыта форма нового объекта.
СоздатьФормуСписка
СоздатьФормуСписка(): ФормаСписка| Доступность: Клиент |
Создает форму списка регистра сведений. Если регистру сведений назначена форма списка, то будет создана форма ровно этого типа. Иначе будет создана автоматическая форма типа [<ИмяРегистраСведений>.АвтоматическаяФормаСписка]ИмяРегистраСведений>
Удалить
Удалить(КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи)| Доступность: Сервер |
Удаляет запись из БД без проверки существования
- запись запись (с ключом КлючЗаписи) удаляется из БД, при этом фактически
- создаётся пустой набор записей с отбором заполненным из КлючЗаписи, набор записывается с
Замещать=ИстинаВ отличии от метода УдалитьСПроверкойСуществующей метод Удалить является просто короткой формой создания набора записей, его заполнения и вызова его метода Записать. Ни какой дополнительной функциональностью он не обладает.
- создаётся пустой набор записей с отбором заполненным из КлючЗаписи, набор записывается с
Примеры
КурсыВалют.Удалить(КлючЗаписи)
УдалитьСПроверкойСуществующей
УдалитьСПроверкойСуществующей(
КлючЗаписи: {ИмяРегистраСведений}.КлючЗаписи,
МеткаВерсии: Байты? = Неопределено)| Доступность: Сервер |
Удаляет запись из БД с контролем совпадения указанной метки версии с меткой версии записи в БД.
- если
МеткаВерсии!=Неопредено- проверяется наличие в БД записи с ключом равным ключу записиЗаписьи меткой версии совпадающей сМеткаВерсии- при отсутствии записи выбрасывается исключение ИсключениеОдновременноеИзменениеСущности
- запись (с ключом
КлючЗаписи) удаляется из БД, при этом фактически- создаётся пустой набор записей с отбором заполненным из
КлючЗаписи, набор записывается сЗамещать=ИстинаЕслиМеткаВерсии==Неопределеноповедение совпадает с Удалить
- создаётся пустой набор записей с отбором заполненным из
Примеры
КурсыВалют.УдалитьСПроверкойСуществующей(Запись.КлючЗаписи, Запись.ПолучитьМеткуВерсии())