|
из 7.7 в 8.3 | ☑ | ||
---|---|---|---|---|
0
BUBU
29.01.15
✎
20:35
|
Заставили обновлять базу 8.3 из старой базы 7.7
Начал делать что назывется в лоб СОМ из семерки Вот фрагмент перем путьКбазе,логин,пасворд; Процедура Сформировать() путьКбазе="E:\BASEV8\BUX_AVA"; логин="";пасворд=""; cntr = СоздатьОбъект("V83.COMConnector"); connection = cntr.Connect("File="""+СокрЛП(ПутьКбазе)+""";Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(Пасворд) + """;"); база=connection; //CreateObject("Справочник.МестаХранения"); СпрК=База.NEWOBJECT("СправочникМенеджер.Контрагенты"); Спр=СоздатьОбъект("Справочник.Контрагенты"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл аргкод=Спр.ТекущийЭлемент().Код; аргнаим=СокрЛП(Спр.ТекущийЭлемент().Наименование); ссылка=СпрК.НайтиПоКоду(аргкод); Если ПустоеЗначение(ссылка)=1 Тогда Если Спр.ЭтоГруппа()=1 Тогда новэлем=спрк.CreateFolder(); // новэлем.записать(); Иначе новэлем=СпрК.создатьЭлемент(); // новэлем.записать(); КонецЕсли; Иначе КонецЕсли; СпрК.Наименование=аргнаим; СпрК.записать(); КонецЦикла; КонецПроцедуры С базой восьмерки коннектися, находит по коду а на строке СпрК.Наименование=аргнаим; Ругается поле агрегатного объекта наименование не обнаружено В Конфигах в 7.7 и 8.3 реквизиты все есть Может кто подскажет, что не так |
|||
1
nordbox
29.01.15
✎
20:37
|
>>>>>Заставили обновлять базу 8.3 из старой базы 7.7
ээээ...ммммм... Это как????? |
|||
2
kobzon2
29.01.15
✎
20:39
|
Может как то на Группу надо раньше проверять?
|
|||
3
Chameleon1980
29.01.15
✎
20:41
|
вот это имхо не верно
|
|||
4
Chameleon1980
29.01.15
✎
20:41
|
(3) + Если ПустоеЗначение(ссылка)=1 Тогда
|
|||
5
nordbox
29.01.15
✎
20:41
|
СпрК.Наименование=аргнаим
Где указатель на СпрК именно на элемент? |
|||
6
Chameleon1980
29.01.15
✎
20:42
|
(3), (4) + функция местная, а проверяется ей объект оле
|
|||
7
BUBU
29.01.15
✎
20:47
|
(6) Ну хорошо, а как из семерки проверить
нашел или не нашел ? А если нашел, то что указывать в СпрК ? |
|||
8
BUBU
29.01.15
✎
20:49
|
+(7) К тому же переменая ССЫЛКА не пустая, значит находит
что-то |
|||
9
Garykom
гуру
29.01.15
✎
20:58
|
(8) что некий стаж в 7.7 есть видим...какой стаж в 8-ке? 0? 0.001?
ЗЫ если нашел ссылку на сущ объект то получи элемент то... чтобы было что записывать )) какого ты менеджеру объектов вместо самого объекта пытаешься наименование присвоить и записать? |
|||
10
Chameleon1980
29.01.15
✎
20:59
|
там оле - не пусто
|
|||
11
BUBU
29.01.15
✎
22:18
|
(9) Не надо язвить. Напрямую в 8-ке стаж есть
А вот поуправлять 8-кой из древней семерки, слабо ? Как я понял, из 7.7 в 8.3 не все так просто Хотя в еще в 8.0, 8.2 это было проще Придется делать наооборот в 8.3 доставать из 7.7 |
|||
12
Chameleon1980
29.01.15
✎
22:31
|
(11) я, обычно всегда тяну из семерки в восьмерку.
т.е. на восьмерочном языке пишу |
|||
13
Garykom
гуру
29.01.15
✎
22:36
|
(11) Так не язвлю а спрашиваю ))
Просто код через COM-соединение тоже самое что код напрямую, в базе обработка скажем, только обертки в виде "NewObject" А если судит по Вашему коды, чистый семерошник чего то пытается изобразить знакомыми (старыми, знакомыми) методами в 8-ке... |
|||
14
Garykom
гуру
29.01.15
✎
22:40
|
(13)+ в коде кстати 3 или 4 ошибки...
|
|||
15
BUBU
29.01.15
✎
22:53
|
(12) Я так и сделаю.
Хотел побыстрее, взял старые "перекачки" из 7.7 в 7.7 Переправил на V83.COMConnector, переписал в команды 8.3 и получил (14) Какие ? Я уже код перелопатил (13) А что значит "напрямую" ? Есть такое счастье ? Можете показать пример? |
|||
16
BUBU
29.01.15
✎
23:00
|
+(13) Не полетит. В базу 8.3 обработки втавлять - это напряжно
|
|||
17
Garykom
гуру
29.01.15
✎
23:01
|
(15) напрямую это когда мы в базе пишем
СправочникСсылка = Справочники.Контрагенты.НайтиПоКоду(Код); Если СправочникСсылка.Пустая() Тогда СправочникОбъект = Спровочники.Контрагенты.СоздатьЭлемент(); Иначе СправочникОбъект = СправочникСсылка.ПолучитьОбъект(); КонецЕсли; СправочникОбъект.Наименование = Наименование; СправочникОбъект.Записать(); |
|||
18
BUBU
29.01.15
✎
23:06
|
(17) А это можно выполнть через
V83.COMConnector ? |
|||
19
Garykom
гуру
29.01.15
✎
23:08
|
(18) да
СправочникСсылка = База.Справочники.Контрагенты.НайтиПоКоду(Код); Если СправочникСсылка.Пустая() Тогда СправочникОбъект = База.Спровочники.Контрагенты.СоздатьЭлемент(); Иначе СправочникОбъект = СправочникСсылка.ПолучитьОбъект(); КонецЕсли; СправочникОбъект.Наименование = Наименование; СправочникОбъект.Записать(); |
|||
20
Garykom
гуру
29.01.15
✎
23:10
|
(19)+
NewObject нужен тока когда не функциями создаешь объекты а средсвами базы т.е. замена "Новый ТаблицаЗначений" будет "База.NewObject("ТаблицаЗначений")" ЗЫ )) |
|||
21
Garykom
гуру
29.01.15
✎
23:11
|
А вообще лучше Радченко почитай...много полезнее и быстрее будет
|
|||
22
BUBU
29.01.15
✎
23:18
|
(21) Спасибо, почитаю
Но все-таки, код в (18) куда я должен вставлять в среде 7.7 ? |
|||
23
BUBU
29.01.15
✎
23:18
|
Заранее благодарю
|
|||
24
Garykom
гуру
29.01.15
✎
23:27
|
(22) вместо своего
|
|||
25
Garykom
гуру
29.01.15
✎
23:27
|
(24)+ в нужные места ))
|
|||
26
Худой
30.01.15
✎
06:20
|
(0)А поработать с конфигурацией "Конвертация данных"?
|
|||
27
Escander
30.01.15
✎
06:24
|
(0)бухию из клюшек в БП3 сразу? Да ещё поди перепиленную вдоль и поперёк? Жесть конечно!
Может всё-таки через КД... заодно и само КД освоите. |
|||
28
BUBU
31.01.15
✎
21:35
|
Да, делаю в 8.3 и качаю данные из 7.7
А все-таки из семерки никак? Слишком много обработок при старых перекачках |
|||
29
EvgeniuXP
31.01.15
✎
21:55
|
КД у Гилева смотри, первые уроки посмотришь и ты в полете :)
кучу времени себе сэкономишь |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |