|
Конвертация данных - из 7.7 в 8.2 (периодический реквизит в регистр сведений) | ☑ | ||
---|---|---|---|---|
0
moon_sparckle
01.10.13
✎
04:46
|
Прошу помощи. Создаю правила для переноса периодического реквизита в регистр сведений. Регистр сведений периодический в пределах секунды, независимый.
Измерения: Автомобиль, ВидЗначения. Сделала так: Для каждого ПКС периодического объекта справочника в обработчике ПередВыгрузкой задаю Значение, например для Автомобиля: Значение = Источник.ТекущийЭлемент(); ПКС для периода: Если ПустоеЗначение(Источник.Хозяин)<>0 Тогда Отказ = 1; КонецЕсли; Периодический=СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект("Владельцы",Источник); Периодический.ВыбратьЗначения(,ДатаОкончания); Пока Периодический.ПолучитьЗначение() = 1 Цикл ДатаРекв=Периодический.ДатаЗнач; Прервать; КонецЦикла; Значение = ДатаРекв; При загрузке запись регистра затирается последующей записью. Что-то я делаю не так. Подскажите, или может есть пример выгрузки в периодический регистр сведений. |
|||
1
mehfk
01.10.13
✎
05:26
|
Вставь уже куда-нибудь "ВыгрузитьПоПравилу"
|
|||
2
moon_sparckle
01.10.13
✎
07:04
|
В ПКО Справочника Автомобили -
ВыгрузитьПоПравилу(Источник, , , , "ХарактеристикаАвтомобили"); ХарактеристикаАвтомобили - это как раз правило для записи регистра сведений. А куда нужно? |
|||
3
Абыр
01.10.13
✎
08:56
|
(0) Вам надо выгрузить все изменения периодического реквизита? По вашему коду сейчас получается только одна запись по периоду.
|
|||
4
moon_sparckle
01.10.13
✎
09:02
|
(3) Да, вы правы, выгружается только одна запись. Если бы я сообразила - как сделать все, это было бы прекрасно, но у меня даже одна не хочет по человечески выгружаться.
Хозяин автомобиля затирается контрагентом из следующей записи. |
|||
5
Абыр
01.10.13
✎
09:32
|
(4) В регистре сведений в приемнике помимо измерений, как я подозреваю, есть ресурс, в котором храним значение характеристики автомобиля, так? В данном случае хозяина автомобиля. ПКС по выгрузке ресурса покажите.
|
|||
6
Defender aka LINN
01.10.13
✎
09:37
|
(2) 1 ВыгрузитьПоПравилу = 1 запись в регистре. Дальше сама
|
|||
7
moon_sparckle
01.10.13
✎
09:41
|
(5) В ПередВызрузкой ПКС ресурса источник пустой,
Значение = Источник.Хозяин; |
|||
8
moon_sparckle
01.10.13
✎
09:45
|
(6) Это я просто по одному ПКС привела пример. Полностью обработчик После выгрузки у справочника Автомобили такой :
ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиГосНомер"); Если ВходящиеДанные <> "ВводОстатков" Тогда ВыгрузитьПоПравилу(Источник, , , , "ХарактеристикаАвтомобили"); КонецЕсли; ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиПробег"); ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиТехПаспорт") Или я не так поняла? |
|||
9
Абыр
01.10.13
✎
09:46
|
(7) Т.е. сейчас значение периода для записи регистра вы подбираете, создавая объект "Периодический" по периодическому реквизиту "Владельцы", и ищете в нем первую запись, но при этом само значение ресурса вы берете из реквизита "Хозяин" (уж не знаю, периодический он или нет). Так и должно быть?
|
|||
10
Defender aka LINN
01.10.13
✎
09:47
|
(8) Еще раз: 1 ВыгрузитьПоПравилу = 1 запись.
Записей надо несколько. Что же делать, что же делать... |
|||
11
moon_sparckle
01.10.13
✎
09:59
|
(13) Они дублируются Владельцы-Периодический, А последний владелец записывается в непериодический реквизит Хозяин.Обратный порядок я забыла.Я бы поняла, что в этом косяк,но у меня все остальные измерения тоже затираются.
(10)1 запись, несмотря на то , что измерения разные и реквизиты разные? Ядумаю, правда, только что -то не получается. Может еще подсказочку, пожалуйста. |
|||
12
moon_sparckle
01.10.13
✎
10:04
|
(10)
Если ПустоеЗначение(Источник.Хозяин)<>0 Тогда Отказ = 1; КонецЕсли; Периодический=СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект("Владельцы",Источник); Периодический.ВыбратьЗначения(,ДатаОкончания); Пока Периодический.ПолучитьЗначение() = 1 Цикл ДатаРекв=Периодический.ДатаЗнач; Прервать; КонецЦикла; Значение = ДатаРекв; вот это вот нужно перетащить в После выгрузки у Справочника Автомобили а затем ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиГосНомер"); Если ВходящиеДанные <> "ВводОстатков" Тогда ВыгрузитьПоПравилу(Источник, , , , "ХарактеристикаАвтомобили"); КонецЕсли; ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиПробег"); ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиТехПаспорт") ? |
|||
13
moon_sparckle
01.10.13
✎
10:07
|
Что - то совсем запуталась
|
|||
14
Абыр
01.10.13
✎
10:17
|
(13) Если хотите выгрузить все записи по периодическому реквизиту, то:
1) В "После выгрузки" ПКО "Автомобили" создаете объект "Периодический" 2) В цикле по значениям периодического реквизита создаете список значений. В список значений устанавливаете автомобиль, вид значения, период, значение ресурса. Период и значение ресурса соответственно берете из объекта "Периодический". Представления значений СЗ должны соответствовать именам свойств в регистре сведений в приемнике 3) После заполнения СЗ выгружаете его по ВыгрузитьПоПравилу(). Т.е. список значений у вас будет источник. 4) В правиле для записи регистра сведений убираете код из "перед выгрузкой" в ПКС, у вас уже все значения подготовлены |
|||
15
moon_sparckle
01.10.13
✎
10:29
|
(14) Спасибо, убежала пробовать
|
|||
16
moon_sparckle
01.10.13
✎
10:56
|
Не помогло ((( Все равно значение владельца затирается следующим контрагентом.все точно также, только значений несколько.
вот код в ПКОАвтомобили После выгрузки Периодический=СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект("Владельцы",Источник); Периодический.ВыбратьЗначения(); СЗ = СоздатьОбъект("СписокЗначений"); Пока Периодический.ПолучитьЗначение() = 1 Цикл СЗ.ДобавитьЗначение(Источник,"Автомобиль"); СЗ.ДобавитьЗначение(Периодический.ДатаЗнач,"Период"); СЗ.ДобавитьЗначение("Хозяин","ВидЗначения"); СЗ.ДобавитьЗначение(Периодический.Значение,"Значение"); Если ВходящиеДанные <> "ВводОстатков" Тогда Источник = СЗ; ВыгрузитьПоПравилу(Источник, , , , "АвтомобилиХозяин"); КонецЕсли; КонецЦикла; |
|||
17
Абыр
01.10.13
✎
10:58
|
1) СЗ = СоздатьОбъект("СписокЗначений");
в цикл 2) лучше просто ВыгрузитьПоПравилу(СЗ, , , , "АвтомобилиХозяин"); |
|||
18
moon_sparckle
01.10.13
✎
11:29
|
фух, получилось, еще раз огромное спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |