|
Не переносится история периодических реквизитов из 1С7.7 в 1С8.2 | ☑ | ||
---|---|---|---|---|
0
fdv_83
12.06.13
✎
12:21
|
Всем доброго дня. Имеются две самописные базы (1С7.7 и 1С8.2). Написал обработку по переносу данных. Но при попытке переноса истории периодических реквизитов справочников, выдаёт ошибку в методе OLEПериодический.ИспользоватьОбъект("КодКлиентаДляИстории",ВыбИсточник)
Пишет, что реквизит не является периодическим, хотя он периодический. Подскажите, пожалуйста, как можно решить данную проблему |
|||
1
Kreont
12.06.13
✎
12:35
|
значит не так период.реквизит подключаешь и перебираешь.
Попробуй тот же код напиши сначала в чистом 7.7, а уже потом по оле. |
|||
2
fdv_83
12.06.13
✎
12:58
|
В 7.7 этот же код работает.
OLEПериодический = OLEБаза.CreateObject("Периодический"); OLEПериодический.ИспользоватьОбъект("КодКлиентаДляИстории",ВыбИсточник); OLEПериодический.ВыбратьЗначения(); Пока OLEПериодический.ПолучитьЗначение() = 1 Цикл глТЗИмяОтбора_ЗначениеОтбора.Очистить(); НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора = глТЗИмяОтбора_ЗначениеОтбора.Добавить(); НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора.ИмяОтбора = "Клиент"; НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора.ЗначениеОтбора = НовыйЭлемент; ГлобальныйМодуль.глЗаписатьЗначениеВРегистрСведений("КодыКлиентов",глТЗИмяОтбора_ЗначениеОтбора,OLEПериодический.ДатаЗнач,"КодКлиента",OLEПериодический.Значение); глТЗИмяОтбора_ЗначениеОтбора.Очистить(); НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора = глТЗИмяОтбора_ЗначениеОтбора.Добавить(); НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора.ИмяОтбора = "Элемент"; НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора.ЗначениеОтбора = НовыйЭлемент; НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора = глТЗИмяОтбора_ЗначениеОтбора.Добавить(); НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора.ИмяОтбора = "Реквизит"; НоваяСтрокаТЗИмяОтбора_ЗначениеОтбора.ЗначениеОтбора = Перечисления.ПериодическиеРеквизитыСправочникаКонтрагенты.КодКлиента; ГлобальныйМодуль.глЗаписатьЗначениеВРегистрСведений("ПериодическиеРеквизитыСправочников",глТЗИмяОтбора_ЗначениеОтбора,OLEПериодический.ДатаЗнач,"Значение",OLEПериодический.Значение); КонецЦикла; |
|||
3
Kreont
12.06.13
✎
13:06
|
а так:
(ВыбИсточник - оле справочник из 77?) OLEПериодический = OLEБаза.EvalExpr("СоздатьОбъект(""Периодический"")"); OLEПериодический.ИспользоватьОбъект("КодКлиентаДляИстории",ВыбИсточник.ТекущийЭлемент()); Если OLEПериодический.ВыбратьЗначения() = 1 Тогда Пока OLEПериодический.ПолучитьЗначение() = 1 Цикл |
|||
4
fdv_83
12.06.13
✎
13:18
|
Сейчас проверю
|
|||
5
fdv_83
12.06.13
✎
14:13
|
Всё то же самое. Выдаёт ошибку:
{Обработка.ПереносДанных.Форма.Форма.Форма(114)}: Ошибка при вызове метода контекста (ИспользоватьОбъект) OLEПериодический.ИспользоватьОбъект("КодКлиентаДляИстории",ВыбИсточник.ТекущийЭлемент()); по причине: Произошла исключительная ситуация (1С:Предприятие): КодКлиентаДляИстории не является константой или периодическим параметром! Параметр проверял, он периодический |
|||
6
Kreont
12.06.13
✎
14:36
|
"ВыбИсточник" проверь что б был точно объектом оле справочника
|
|||
7
fdv_83
12.06.13
✎
15:50
|
Спасибо. Я разобрался. Оказалось, что вместо элемента была группа
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |