Имя: Пароль:
1C
1С v8
v8.2: Выбор источника для хранения записей - Справочник vs РегистрСведений?
,
0 dave2000
 
09.09.13
12:06
Есть регламентное задание, которое исполняется раз в несколько минут. Оно должно проверять некий список для рассылки, каждый элемент которого - это запись с данными для отправки письма с полями "отправитель", "получатель", "тема сообщения", "текст" и признак "отправлено".

Регламентное задание должно отбирать элементы с признаком "Отправлено=Ложь", отправлять письмо, а запись помечать как "Отправлено=Истина".

ВОПРОС: какой объект лучше всего использовать в качестве такого списка, РегистрСведений или Справочник?
1 artems
 
09.09.13
12:09
(0) Голосовалку давай :) Я за периодический регистр сведений.
2 Heckfy
 
09.09.13
12:11
В константах или перечислениях храни. :)
3 dave2000
 
09.09.13
12:11
Попробовал регистр сведений, но столкнулся с таким моментом:

Набор = РегистрыСведений.СписокРассылки.СоздатьНаборЗаписей();
Набор.Отбор.Отправлено.Установить(Ложь);
Набор.Прочитать();
    
Для каждого Зап Из Набор Цикл
     //Код отправки письма
     Зап.Отправлено = Истина;
КонецЦикла;

Набор.Записать();

При выполнении Записать() выдаёт ошибку, что в наборе присутствуют записи, которые не соответствуют отбору.

Получается что нужно перебирать все полностью записи РегистраСведений, что как-то кривовато.
4 Heckfy
 
09.09.13
12:12
(3) Юзай менеджерЗаписи
5 dave2000
 
09.09.13
12:15
Получается, со справочником в этом плане легче работать: отобрать нужные элементы в запросе, а потом через ПолучитьОбъект() изменить и всё. Но справочники мне кажется немного для других целей используются..
6 mistеr
 
09.09.13
12:15
Справочник.
Регистру нужен естественный ключ (набор измерений), а тут его нет.
7 dave2000
 
09.09.13
12:17
(4) Ну-ка подробнее, как именно
8 Heckfy
 
09.09.13
12:17
А по сабжу (6) +1.
ЗЫ: В регистре можешь историю изменения по справочнику хранить, елси нужно.
9 Defender aka LINN
 
09.09.13
12:18
Если нужна ссылка - справочник. Если ссылка не нужна - регистр.
(3) При проектировании регистра полезно думать головой, а не другими частями тела. Сфигали "Отправлено" - измерение?
10 Heckfy
 
09.09.13
12:19
(7)

РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
СоздатьМенеджерЗаписи (CreateRecordManager)
Синтаксис:

СоздатьМенеджерЗаписи()
Возвращаемое значение:

Тип: РегистрСведенийМенеджерЗаписи.

Описание:

Создает объект для управления записью регистра сведений.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
11 Rie
 
09.09.13
12:19
(9) +1 к первой части. +100 - ко второй :-)
12 Serg_1960
 
09.09.13
12:19
Я "за" справочник. Точнее - за возможность иметь ссылки на записи :)
13 dave2000
 
09.09.13
12:20
(9) Потому что отбор можно сделать только по измерению. Чтобы не перебирать в цикле все записи РС с условием Отправлено=Ложь.
14 Rie
 
09.09.13
12:20
(13) Классная штука - запросы.
15 Defender aka LINN
 
09.09.13
12:24
(13) Конечно, удобство тут на первом месте. Фигня ведь, что может быть 2 одинаковых записи - отправленная и нет. Главное - удобно отобрать, чтобы не дай бог 2 лишних строки кода не написать, да?
16 Конфигуратор1с
 
09.09.13
12:24
(13) запрос - не, не слышал?
17 mistеr
 
09.09.13
12:26
(14) Скажу больше, запросу пофиг (почти), справочник это или регистр.
18 dave2000
 
09.09.13
13:59
Да могу и запросом, написать пару лишних строк не проблема.

Я так подумал, в случае РС имеется другая проблема - как получить уникальность измерений для каждой записи письма. Если все указанные в (0) поля это ресурсы, что тогда ставить в измерения? Разве что создать два измерения: "ДатаСоздания" и "СлучайноеЧисло"... как-то так...
19 dave2000
 
09.09.13
14:00
либо всё таки использовать справочник
AdBlock убивает бесплатный контент. 1Сергей