|
Не хочет программно добавляться запись в Регистр сведений | ☑ | ||
---|---|---|---|---|
0
napagokc
18.12.12
✎
11:48
|
Не могу понять, что не так делаю...
Пишу обработку, которая будет заменять МОЛ. МОЛ хранятся в регистре сведений - периодический, независимый. В обработке есть всего три реквизита: 1) ДатаМОЛ - дата, начиная с которой будет установлен новый МОЛ 2) Старый МОЛ 3) Новый МОЛ Программмно по отладчику все хорошо проходит, находит все, что нужно, заполняет все правильно, никаких ошибок нет. Но вот результата в базе я не вижу. То есть, запись не сохраняется. МенеджерЗаписиОС = РегистрыСведений.ОснСредства.СоздатьМенеджерЗаписи(); Пока Выборка.Следующий() Цикл Состояние("Производится замена МОЛ в ОС: " + Выборка.ОС); МенеджерЗаписиОС.Период = ДатаМОЛ; МенеджерЗаписиОС.МОЛ = НовыйМОЛ; МенеджерЗаписиОС.ОС = Выборка.ОС; Попытка МенеджерЗаписиОС.Записать(Истина); Исключение Сообщить("Не удалось заменить МОЛ для ОС: " + Выборка.ОС, СтатусСообщения.ОченьВажное); КонецПопытки; ОбработкаПрерыванияПользователя(); КонецЦикла; Наставьте на путь истинный, а то сбился я... :( |
|||
1
Defender aka LINN
18.12.12
✎
11:49
|
МенеджерЗаписиОС = РегистрыСведений.ОснСредства.СоздатьМенеджерЗаписи();
в цикл засунь |
|||
2
Maxus43
18.12.12
✎
11:50
|
(1) хм... накуя?
|
|||
3
napagokc
18.12.12
✎
11:50
|
(1) Пробовал, не помогает
|
|||
4
Maxus43
18.12.12
✎
11:51
|
Мол - ресурс?
|
|||
5
napagokc
18.12.12
✎
11:52
|
(4) Да, МОЛ - ресурс.
ОС - измерение. Больше измерений нет. |
|||
6
Maxus43
18.12.12
✎
11:52
|
запрос на всякий покажи
|
|||
7
zak555
18.12.12
✎
11:53
|
(2) запись - это запись, а не набор
|
|||
8
Maxus43
18.12.12
✎
11:54
|
(7) и?
|
|||
9
napagokc
18.12.12
✎
11:55
|
(6)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОснСредстваСрезПоследних.ОС КАК ОС, | ОснСредстваСрезПоследних.МОЛ |ИЗ | РегистрСведений.ОснСредства.СрезПоследних(&Дата, ) КАК ОснСредстваСрезПоследних |ГДЕ | ОснСредстваСрезПоследних.МОЛ = &МОЛ; Запрос.УстановитьПараметр("Дата", ДатаМОЛ); Запрос.УстановитьПараметр("МОЛ", СтарыйМОЛ); Выборка = Запрос.Выполнить().Выбрать(); |
|||
10
napagokc
18.12.12
✎
11:56
|
(9) Кавычку забыл. Убрал лишние регистры из запроса, которые только читабельность тут ухудшают, а суть не меняют. Так-то, запрос верный
|
|||
11
zak555
18.12.12
✎
11:58
|
(8) он и создаёт в обходе запись одну
|
|||
12
cw014
18.12.12
✎
11:59
|
Что то какой то глюк с менеджером записи есть такой. Он не меняет отбор, если заменять у него реквизиты
|
|||
13
Maxus43
18.12.12
✎
11:59
|
(11) да, но в цикле ключевые поля перезаполняются, соответственно позиционируется на другой...
|
|||
14
Maxus43
18.12.12
✎
12:00
|
хз, юзай наборзаписей, там косяков не видел
|
|||
15
MSII
18.12.12
✎
12:02
|
Перед записью вызывай Прочитать()
|
|||
16
napagokc
18.12.12
✎
12:02
|
ннда... Я же проверял :( Видимо, коряво проверил. Действительно, если
МенеджерЗаписиОС = РегистрыСведений.ОснСредства.СоздатьМенеджерЗаписи(); внести в цикл, то норм работает. Надо ж так :( Всем спасибо. |
|||
17
Maxus43
18.12.12
✎
12:04
|
мда, пора читать учебники... думал всегда и так работать будет)
|
|||
18
Жан Пердежон
18.12.12
✎
12:04
|
(13) ага, вот прямо так само берет и позиционируется, да?)
|
|||
19
Buster007
18.12.12
✎
12:06
|
(18) ну по идее менеджер позиционироваться должен перед записью -> должно работать)
|
|||
20
Defender aka LINN
18.12.12
✎
13:08
|
(19) Фирма 1С юзает другие идем
|
|||
21
Defender aka LINN
18.12.12
✎
13:08
|
*идеи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |