Имя: Пароль:
1C
1C 7.7
v7: Помогите с обработкой "Клонируем объекты в стороннюю базу 7.7 DBF"
,
0 Mister-X07
 
26.07.18
12:18
Есть обаботка "Клонируем объекты в стороннюю базу 7.7 DBF" http://catalog.mista.ru/public/102101/ детище ЕПРСТ. На ОС Windows 7 х32 все установил как описано в статье. Драйвер Microsoft FoxPro установил для всех пользователей ОС. В обработке процедуры еще прописал загрузку компоненты 1с++ ПриОткрытии():

//======================================================================
Процедура ПриОткрытии()
попытка
        ЗагрузитьВнешнююКомпоненту(""+КаталогИБ()+"\1cpp.dll");
        Сообщить("Компонента 1С++ загружена!");
    Исключение
        Сообщить("Пытались, но не загрузили компоненту 1С++ :(");
    КонецПопытки;
    
глОлеДБ = СоздатьОбъект("OLEDBData");
    Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE";

    Рез = глОлеДБ.Соединение(Соединение);
    гЗапрос = глОлеДБ.СоздатьКоманду();
    гЗапрос.Выполнить("EXECSCRIPT('SET ANSI OFF')");  
    // Устанавливаем время ожидания захвата таблиц , если во время выполнения запроса кто то проводит документы
    // Очень полезная функция - аналогична времени ожидания в 1С
    гЗапрос.Выполнить("EXECSCRIPT('SET REPROCESS TO 60 SECONDS')");
    // Убираем буфепизацию, чтобы данные возвращаемые запросам всегда были актуальны
    гЗапрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");    
    
    гЗапрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')");// Отключили блокировки
    ТаблицаССылок = СоздатьОбъект("ИндексированнаяТаблица");
    ТаблицаССылок.НоваяКолонка("Объект");
    ТаблицаССылок.НоваяКолонка("ВидОбъекта");
    ТаблицаССылок.НоваяКолонка("ТипОбъекта");
    ТаблицаССылок.НоваяКолонка("ОбъектИд");
    ТаблицаССылок.НоваяКолонка("Отметка");
    ТаблицаССылок.ДобавитьИндекс("Объект","*Объект");
    ТаблицаССылок.ДобавитьИндекс("Отметка","*Отметка");
    
    _Форма=СоздатьОбъект("Форма");
    _Форма.УстановитьФорму(Форма);
    РасшФормы = СоздатьОбъект("РасширениеФормы");
    РасшФормы.УстановитьФорму(Форма);
    СтарВысота=0;СтарШирина=0;
    метаВорк = СоздатьОбъект("MetaDataWork");
    
КонецПроцедуры // ПриОткрытии

Выдает такую ошибку
[qout]Компонента 1С++ загружена!
Рез = глОлеДБ.Соединение(Соединение);
{D:\H\EXTFORMS\KO.ERT(596)}: FAILED! IDataInitialize::GetDataSource(): Не найден указанный модуль.[/qout]
В чем может быть проблема?
1 Mister-X07
 
26.07.18
12:19
1С SQl релиз 27. Пробовал на платформе сетевой 27 релиз - та же ошибка.
2 Mister-X07
 
26.07.18
12:20
В базу захожу разделенно.
3 Mister-X07
 
26.07.18
12:23
Пользователей удалил, т.е. захожу неавторизованный.
4 Mister-X07
 
26.07.18
15:31
актуально
5 Mister-X07
 
26.07.18
16:02
Версия 1c++ 3.2.4.1
6 Бубр
 
26.07.18
16:32
пробовал   1срр  другую  стабильную версию ?
7 Бубр
 
26.07.18
16:33
IDataInitialize::GetDataSource()  - это внутренности компоненты
8 Смотрящий
 
26.07.18
16:45
(0) Путь с которого регистрировалась длл, и путь по которому ты загружаешь внешнюю компоненту должны совпадать.
9 Смотрящий
 
26.07.18
16:45
+(8) Обычно длл скадывают не в каталог бд а в каталог движка 1С
10 Mister-X07
 
26.07.18
16:49
(9) кидал в папку с базой, та же ошибка...
11 Смотрящий
 
26.07.18
16:50
Засунь в папку с базой руками ее через регсвр зарегистрируй.
12 Mister-X07
 
26.07.18
18:01
При регистрации пишет:
....
Неверная ошибка доступа к памяти
13 Mister-X07
 
26.07.18
18:07
Перед этим:
Не удалось загрузить модуль <путь к dll-ке>
14 Mister-X07
 
26.07.18
18:08
путь к дд-ке d:\1cv77\bin\1cpp.dll
15 Mister-X07
 
26.07.18
18:08
dll-ке
16 Mister-X07
 
26.07.18
18:09
командную строку запустил под админом
17 Mister-X07
 
26.07.18
18:13
Если рамзестить dll-ку в корене диска, то пишет:
Не найден указанный модуль
18 Mister-X07
 
26.07.18
18:13
при регистрации
19 Djelf
 
26.07.18
18:19
(18) Кого ты собрался регистрировать? 1с++?
Ее уже очень давно не надо регистрировать, вы с какого дерева упали?
Справка/О программе. Проверяешь что нужная версия загрузилась и все!
20 Mister-X07
 
26.07.18
22:07
(19) Да, пишет инфо о 1С++ в справке. Но вопрос в (0) остается актуален.
21 Mister-X07
 
26.07.18
22:08
(19) а ForMex.dll надо зарегить?
22 Franchiser
 
гуру
26.07.18
23:37
(21) В коде обработки formex надо подключать и 1cpp. Или приначалеработысистемы()
23 Злопчинский
 
27.07.18
00:22
Приначале работы системы первой загружаешь 1Cpp, вторым - Формекс
24 Djelf
 
27.07.18
10:08
(20) У тебя криво встал драйвер фокса.

Попробуй снести/поставить заново и переключатель "для себя/для всех пользователей" не забудь переключить "для всех".
25 Mister-X07
 
27.07.18
11:25
(22) спс
26 Mister-X07
 
27.07.18
11:38
(24) давно уже сделал, но это не решило проблему.
Такая строка соединения:

Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE";

годиться только если в базе нет юзеров, я правильно понял?
27 Djelf
 
27.07.18
12:23
(26) Пользователи тут не причем. Должно работать.
Но ты внимательно читал у Ёпрст`а?

> После записи, обязательное требование - переиндексация базы и пересчет итогов (если переносили и движения тоже)

Эта обработка не на каждый день...
28 Mister-X07
 
27.07.18
12:38
(27) я пока не могу ее открыть, это уже после перекидки в другую базу надо это делать в той базе
29 Mister-X07
 
27.07.18
12:53
(27)
переписал так

//======================================================================
Процедура ПриОткрытии()
    
    попытка
        ЗагрузитьВнешнююКомпоненту("1cpp.dll");
        Сообщить("Компонента 1С++ загружена!");
    Исключение
        Сообщить("Пытались, но не загрузили компоненту 1С++ :(");
    КонецПопытки;
    
    попытка
        ЗагрузитьВнешнююКомпоненту("FormEx.dll");
        Сообщить("Компонента FormEx загружена!");
    Исключение
        Сообщить("Пытались, но не загрузили компоненту FormEx :(");
    КонецПопытки;
    
    глОлеДБ = СоздатьОбъект("OLEDBData");    
    Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE";

и заработало! А формекс то я не загрузил перед соединением, теперь буду знать как работать с этими ddl-ками )). Занавес.