Для того, чтобы открыть существующую запись регистра сведений в управляемых формах необходимо:
- Знать значения всех измерений
- Вызов производится с клиентской процедуры через конструктор Новый с использованием обертки в виде массива
- Либо через вспомогательную функцию, которая создаст ключ на сервере
Быстрый переход
Первый пример кода открытия записи регистра сведений
МассивКонструктораКлюча = Новый Массив;
МассивКонструктораКлюча.Добавить(Новый Структура("ГрафикРаботы,Дата,НачалоИнтервала",Расшифровка.ГрафикРаботы,НачалоДня(Расшифровка.Дата),Расшифровка.Дата));
КлючЗаписиРегистра = Новый ("РегистрСведенийКлючЗаписи.ТабельРаботы", МассивКонструктораКлюча);
ОткрытьФорму("РегистрСведений.ТабельРаботы.Форма.ФормаНазначенияПериода", Новый Структура("Ключ", КлючЗаписиРегистра));
Второй вариант открытия — с использованием серверного вызова
&НаКлиенте
Процедура ОткрытьЗапись(расшифровка)
КлючЗаписиРегистра = ПолучитьКлючЗаписи(Новый Структура("ГрафикРаботы,Дата,НачалоИнтервала", Расшифровка.ГрафикРаботы,НачалоДня(Расшифровка.Дата),Расшифровка.Дата));
ОткрытьФорму("РегистрСведений.ТабельРаботы.Форма.ФормаНазначенияПериода", Новый Структура("Ключ", КлючЗаписиРегистра));
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьКлючЗаписи(Структура)
Возврат РегистрыСведений.ТабельРаботы.СоздатьКлючЗаписи(Структура);
КонецФункции
Особенности использования
В случае отсутствия записи, когда указаны не действительные измерения регистра, выйдет ошибка «Объект не найден»:
- Вариант1: Используйте попытку исключение
- Вариант2: При серверном вызове, возможно не просто создавать ключ, но и добавить проверку наличия
Запись = РегистрыСведений.ТабельРаботы.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись,Структура);
Запись.Прочитать();
Если Запись.Выбран() = Ложь
Возврат Неопределено;
КонецЕсли;
Кодак продает фотопленку, но рекламируют они не фотопленку. Они рекламируют память.