Имя: Пароль:
1C
1С v8
Перенос данных из 7.7 в 8.3
0 Silmaril
 
12.12.16
11:42
Подскажите кто сталкивался с такой проблемой - пытаемся типовыми средствами перенести данные из 7.7 в 8.3. Запускаем обработку на 8.3, подключение к 7.7 проходит успешно. Но дальше начинается затык, когда происходит обращение к глобальным функциям 7.7. com объект v7 их просто не видит и выдаёт ошибку метода, хотя v7.Константа.Релиз отрабатывает успешно
1 VladZ
 
12.12.16
11:43
"Но дальше начинается затык" - что говорит? Так и пишет: "У меня затык! А вот константу я вижу!!!"
2 Остап Сулейманович
 
12.12.16
11:44
(0) Может я чего пропустил. Но. "Типовые средства" не обращаются к глобальным функциям 7.7.
ЗЫ. Если конечно имеются ввиду функции глобального модуля.
3 Dmitrii
 
гуру
12.12.16
11:46
(0) Подобные темы следует начать хотя бы с того о каком прикладном решении идёт речь? Может вы там с ПУБа на ERP переходите...
4 SleepyHead
 
гуру
12.12.16
12:07
Судя по лексике, эти типовые средства предоставлены какими-то мутными типами.
5 Silmaril
 
13.12.16
09:04
Называется,что по делу сказать нечего и начинается придирка к словам. Такое ощущение, что кто пишет ответы, то понятия не имеет как происходит перегрузка данных.
Я вроде написал, что к глобальным функциям, а они находятся в глобальном модуле и эти функции типовые 1С, в типовой конфигурации.
В отладчике спокойно видится и без всякого стёба, что значение константы получает из 7.7, а вот при вызове глобальной функции возникает ошибка
Действия перегрузки следующие, елси кто не в курсе: Открываем 1С 8.3 "Бухгалтерия предприятия 3.0", через меню Главное - Начальные остатки: Загрузка из 1С:Предприятия 7.7, там нажимаем Загрузить данные из информационной базы. Во время загрузки подключение к базе 7.7 проходит успешно, но потом ошибка "-Производится перенос данных из конфигурации, для которой не предусмотрена конвертации". Ок. Лезу в отладчик смотреть. и вижу, что строка кода v7.Константа.НомерРелиза получает значение, строка кода v7.глИдентификаторКонфигурации() выдаёт ошибку, что метод не найден. Вот и вопрос, почему происходит сбой к обращению к глобальный функциям?!
6 Cool_Profi
 
13.12.16
09:05
А кэспорт у оной функции есть?
7 Cyberhawk
 
13.12.16
09:09
Релиз источника надо привести в соответствие с требованиями релиза приемника
8 h-sp
 
13.12.16
09:20
(5) делай через файлы. В 7.7 выгрузить. В 8 загрузить. Оно тебе надо куда-то подключаться? Лишний геморрой.
9 Silmaril
 
13.12.16
09:35
(6) После объявления функции стоит Экспорт
10 Cool_Profi
 
13.12.16
09:36
(9) А сам такой метод в 77 в наличии?
11 Silmaril
 
13.12.16
09:36
(7) Дело не в этом. Т.к. из отладчика видно, что не может 1с обратиться к глобальном процедуре семёрошной базе и выдаёт данное сообщение
12 Silmaril
 
13.12.16
09:37
(10) Естественно. В конфе 7 есть в глобальном модуле данная функция
13 Silmaril
 
13.12.16
09:38
Моё мнение, что какая-то беда с com объектом, либо как-то по другому нужно вызывать эти функции
14 mgk2
 
13.12.16
09:53
(13) если вы не состоянии понять, написанное в (7), то лучше позовите специалиста.
15 Silmaril
 
13.12.16
09:59
(14) :) по существу есть что сказать?! 8 лет создаю конфы, но на 7.7. Я думаю продолжать мысль не стоит.
В 8-ке тупо стоит код "Попытка исключение" и спотыкается на вызове глобальной функции, которая определяет идентификатор конфы, и идёт в ветку исключения и выдаёт, что разные конфы. Естественно разные, т.к. не 1с вообще не смогла получить идентификатор, т.к. не смогла обратиться к функции. если закомментить обращение к функции и жёстко прописать идентификатор конфы, то начинает спотыкаться на подобных вызовах других глобальных функции. Т.е. com объект вообще не может вызвать ни одной глобальной функции. Дела не в конфигурациях, а в com объекте, что он не может вызвать глобальную функцию из конфы 7.7
16 Cyberhawk
 
13.12.16
10:02
Покажи уже строку кода, на которой взводится исключение
17 Silmaril
 
13.12.16
10:05
(16) Функция ПолучитьФайлДанных(v7)
    
    мПустаяСтрока = "";
    
    Попытка
        ИдентификаторКонфигурации = v7.глИдентификаторКонфигурации();
        НомерРелизаКонфигурации = v7.Константа.НомерРелиза;
    Исключение
        Перерисовать(1);
        ТекстСообщения = Нстр("ru = 'Производится перенос данных из конфигурации, для которой не предусмотрена конвертация'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        ЗафиксироватьОшибку(ЭтаФорма, ТекстСообщения, НСтр("ru = 'Перенос из выбранной конфигурации не поддерживается.'"));
        Ошибка = Истина;
        Возврат мПустаяСтрока;
    КонецПопытки;
18 Silmaril
 
13.12.16
10:07
v7 = ПодключитьсяКИБ();
Функция ПодключитьсяКИБ()
    
    Если Элементы.ТаблицаПути.ТекущиеДанные = Неопределено Тогда
        ТекстСообщения = НСтр("ru = 'Не удалось произвести подключение к информационной базе'");        
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        ЗафиксироватьОшибку(ЭтаФорма, ТекстСообщения, НСтр("ru = 'Возможно, на Вашем компьютере не установлена платформа 1С:Предприятие 7.7, либо используется БАЗОВАЯ версия программы. Воспользуйтесь вариантом загрузки данных из файла, предварительно сформировав его в информационной базе, из которой производится перенос данных.'"));
        Ошибка = Истина;
        Возврат 0;
    КонецЕсли;
    
    ПутьКИБ = Элементы.ТаблицаПути.ТекущиеДанные.Путь;
    ИмяИБ   = Элементы.ТаблицаПути.ТекущиеДанные.Имя;
    
    // Шаг №1 - подключение к ИБ
    ЭтапКонвертации = "Подключение к информационной базе";
    Перерисовать(1, "Выполняется", Истина);
    Попытка
        v7 = Новый COMObject("V1CEnterprise.Application");
    Исключение
        Перерисовать(1);
        ТекстСообщения = Нстр("ru = 'Не удалось произвести подключение к информационной базе'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        ЗафиксироватьОшибку(ЭтаФорма, ТекстСообщения, НСтр("ru = 'Возможно, на Вашем компьютере не установлена платформа 1С:Предприятие 7.7, либо используется БАЗОВАЯ версия программы. Воспользуйтесь вариантом загрузки данных из файла, предварительно сформировав его в информационной базе, из которой производится перенос данных.'"));
        Ошибка = Истина;
        Возврат 0;
    КонецПопытки;
    
    Открыта = v7.Initialize(v7.RMTrade, "/D""" + ПутьКИБ + """ /M ", "NO_SPLASH_SHOW");
    
    Если НЕ Открыта Тогда
        Перерисовать(1);
        ТекстСообщения = Нстр("ru = 'Не удалось произвести подключение к информационной базе'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
        ЗафиксироватьОшибку(ЭтаФорма, ТекстСообщения, НСтр("ru = 'Возможно, пользователь отменил подключение к информационной базе, либо была попытка немонопольного подключения.'"));
        Ошибка = Истина;
        Возврат 0;
    КонецЕсли;
    
    Возврат v7;
    
КонецФункции
19 Silmaril
 
13.12.16
10:08
Обработка ПереносДанныхИзИнформационныхБаз1СПредприятия77 в 8.3 Бух
20 Cyberhawk
 
13.12.16
10:10
Думаю, дело в релизе платформы 7.7, которая и есть поставщик КОМ-объекта
21 Масянька
 
13.12.16
10:10
(18) А почему тут "v7 = Новый COMObject("V1CEnterprise.Application");" написано "V1CEnterprise"?
22 Silmaril
 
13.12.16
10:11
(21) Не могу сказать, обработка типовая 1С, но подключение происходит успешно к базе
23 Абыр
 
13.12.16
10:20
(21) а что там должно быть?)
(0)
v7.EvalExpr("глИдентификаторКонфигурации()");
проверьте, что скажет?
24 Масянька
 
13.12.16
10:27
(23) У меня там V77.Application. Правда, 8.2.
(22) Подключиться-то подключился, а вот с COM'ом проблемы...
25 Silmaril
 
13.12.16
10:55
(23) v7.EvalExpr("глИдентификаторКонфигурации()")    {(1)}: Ошибка при вызове метода контекста (EvalExpr)
26 Silmaril
 
13.12.16
10:55
v7.глИдентификаторКонфигурации()    {(1)}: Метод объекта не обнаружен (глИдентификаторКонфигурации)    



v7.Константа.НомерРелиза    "7.70.620"    Строка
27 Остап Сулейманович
 
13.12.16
11:25
(26) В глобальном модуле семерки есть функция глИдентификаторКонфигурации()? Именно функция. А не константа.
28 Silmaril
 
13.12.16
11:27
(27) Есть....обнаружил причину в другом. В 7-ке почему-то глобальный модуль отвалился, в конфе есть, но в режиме предприятия он не видится и валятся ошибки. Странная штука, похоже в этом причина
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой