Измерения
Пользователь (СправочникСсылка.Пользователи)
Контекст (Строка 100)
Идентификатор (Строка 100)
СтрокаСоединенияСИБ (Строка 100)
Ресурсы
Значение (ЛюбаяСсылка, Булево, Строка, Дата, Число)
В модуле ФормыСписка на событие ПриНачалеРедактирования написано условие на добавление новой строки.
Процедура РегистрСведенийСписокПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
ТекСтрока = ЭлементыФормы.РегистрСведенийСписок.ТекущиеДанные;
ТекСтрока.СтрокаСоединенияСИБ = СтрокаСоединенияИнформационнойБазы();
КонецЕсли;
КонецПроцедуры
В модуль объекта добавлена функция:
Функция ПолучитьЗначение(Контекст,Идентификатор) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Нов_Константы.Значение
|ИЗ
| РегистрСведений.Нов_Константы КАК Нов_Константы
|ГДЕ
| Нов_Константы.Пользователь В (&Пользователь, ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка))
| И Нов_Константы.Контекст = &Контекст
| И Нов_Константы.Идентификатор = &Идентификатор
| И Нов_Константы.СтрокаСоединенияСИБ В (&СтрокаСоединенияСИБ, """")
|
|УПОРЯДОЧИТЬ ПО
| Нов_Константы.СтрокаСоединенияСИБ УБЫВ,
| Нов_Константы.Пользователь УБЫВ";
Запрос.УстановитьПараметр("Пользователь",ПараметрыСеанса.ТекущийПользователь);
Запрос.УстановитьПараметр("Контекст",Контекст);
Запрос.УстановитьПараметр("Идентификатор",Идентификатор);
Запрос.УстановитьПараметр("СтрокаСоединенияСИБ",СтрокаСоединенияИнформационнойБазы());
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Значение = Выборка.Значение;
Иначе
Выборка = Неопределено;
КонецЕсли;
Возврат Значение;
КонецФункции
Пример использования данного регистра:
СоздатьПисьмо(РегистрыСведений.Нов_Константы.ПолучитьЗначение("Почта","НовыеКонтрагенты"),МассивСтрок);
P.S. Идея не моя, но очень хорошая в плане использования регл. заданий, внешних обработок и т.п.
В дальнейшем думаю выложить пару вещей с использованием данного регистра.