Сравнение баз данных
20.11.2009
10:35
#1
Здравствуйте, уважаемые коллеги!
Помогите, пожалуйста, новичку.
Передо мной поставили задачу. Необходимо сравнить номера документов в общем журнале документов в версии 7.7 и в 8.1. Если бы нужно было сравнить данные объектов конфигурации одной базы, то я бы это легко это сделал. Но тут разные конфигурации. Получается что мне нужно сохранить данные из 7.7 в EXCEL и потом уже из 8.1 обратиться к сохраненной таблице. Но с помощью какой функции это можно сделать, подскажите пожалуйста, кто знает.
Если нужна будет какая-нибудь дополнительная информация для решения, пишите, всё предоставлю. Сразу скажу конфигурация не типовая.
20.11.2009
11:32
#2
А подключиться из 7-ки к 8-ке можно или они принципиально отгорожены друг от друга?
Если можно подключиться по COM, то я бы выбрал в 7-ке запросом из 8-ки номера и уже в 7-ке их сравнил.
Если можно подключиться по COM, то я бы выбрал в 7-ке запросом из 8-ки номера и уже в 7-ке их сравнил.
20.11.2009
12:25
#3
Возможно так было бы даже удобнее, а Вы могли бы подробнее написать как мне соединить платформы через COM?
20.11.2009
13:21
#4
"Вот код обработки 7-ки:
Перем ЕстьСоединение, Соединение;
Перем Истина,Ложь;
//*******************************************
Функция ОткрытиеБазы(ТипОткрытия)
Соединение = СоздатьОбъект("V81.Application");
Попытка
Если ТипОткрытия=1 Тогда
ЕстьСоединение = Соединение.Connect("File="""""+СокрЛП(ПутьКбазе)+""""";Usr="""""+СокрЛП(Логин)+""""";Pwd = """"" + СокрЛП(Пароль) + """"";");
Иначе
ЕстьСоединение = Соединение.Connect("Srvr="""""+СокрЛП(Сервер)+""""";Ref="""""+СокрЛП(ИмяБазы)+""""";Usr="""""+СокрЛП(Логин)+""""";Pwd = """"" + СокрЛП(Пароль) + """"";");
КонецЕсли;
Исключение
Предупреждение(ОписаниеОшибки());
КонецПопытки;
КонецФункции
Процедура Сформировать()
Если ПустоеЗначение (ИмяМД) = 1 Тогда Возврат; КонецЕсли;
ОткрытиеБазы (флФайловая);
Если ЕстьСоединение = Истина Тогда
сЗапрос = Соединение.NewObject("Запрос");
Если Найти (нРег(ИмяМД), "справочник") <> 0 Тогда
Получаем = "Код";
Иначе
Получаем = "Номер";
КонецЕсли;
сЗапрос.Текст = "Выбрать "+Получаем+" Из "+ИмяМД;
сРез = сЗапрос.Выполнить().Выбрать();
лТЗ = СоздатьОбъект ("ТаблицаЗначений");
лТЗ.НоваяКолонка ("Код", "строка", 20);
Пока сРез.Следующий() = Истина Цикл
лТЗ.НоваяСтрока();
лТЗ.Код = сРез.Получить (0);
Конеццикла;
лТЗ.ВыбратьСтроку ("""");
ЕстьСоединение = Ложь;
Соединение = """";
КонецЕсли;
КонецПроцедуры
Истина=-1;Ложь=0;
Думаю в картинках сами разберетесь: советую почитать: "
Перем ЕстьСоединение, Соединение;
Перем Истина,Ложь;
//*******************************************
Функция ОткрытиеБазы(ТипОткрытия)
Соединение = СоздатьОбъект("V81.Application");
Попытка
Если ТипОткрытия=1 Тогда
ЕстьСоединение = Соединение.Connect("File="""""+СокрЛП(ПутьКбазе)+""""";Usr="""""+СокрЛП(Логин)+""""";Pwd = """"" + СокрЛП(Пароль) + """"";");
Иначе
ЕстьСоединение = Соединение.Connect("Srvr="""""+СокрЛП(Сервер)+""""";Ref="""""+СокрЛП(ИмяБазы)+""""";Usr="""""+СокрЛП(Логин)+""""";Pwd = """"" + СокрЛП(Пароль) + """"";");
КонецЕсли;
Исключение
Предупреждение(ОписаниеОшибки());
КонецПопытки;
КонецФункции
Процедура Сформировать()
Если ПустоеЗначение (ИмяМД) = 1 Тогда Возврат; КонецЕсли;
ОткрытиеБазы (флФайловая);
Если ЕстьСоединение = Истина Тогда
сЗапрос = Соединение.NewObject("Запрос");
Если Найти (нРег(ИмяМД), "справочник") <> 0 Тогда
Получаем = "Код";
Иначе
Получаем = "Номер";
КонецЕсли;
сЗапрос.Текст = "Выбрать "+Получаем+" Из "+ИмяМД;
сРез = сЗапрос.Выполнить().Выбрать();
лТЗ = СоздатьОбъект ("ТаблицаЗначений");
лТЗ.НоваяКолонка ("Код", "строка", 20);
Пока сРез.Следующий() = Истина Цикл
лТЗ.НоваяСтрока();
лТЗ.Код = сРез.Получить (0);
Конеццикла;
лТЗ.ВыбратьСтроку ("""");
ЕстьСоединение = Ложь;
Соединение = """";
КонецЕсли;
КонецПроцедуры
Истина=-1;Ложь=0;
Думаю в картинках сами разберетесь: советую почитать: "
20.11.2009
15:54
#5
Большое спасибо за такой подробный ответ, сейчас буду разбираться!
Можно только Вас еще спросить? Я правильно понял что это программа для 8ки и она позволит мне соединить 8ку и 7ку, и у еще вопрос, куда изначально мне нужно вставить приведенный пример в 8ке, чтобы он выполнил свои функции?
Можно только Вас еще спросить? Я правильно понял что это программа для 8ки и она позволит мне соединить 8ку и 7ку, и у еще вопрос, куда изначально мне нужно вставить приведенный пример в 8ке, чтобы он выполнил свои функции?
20.11.2009
16:09
#6
> Большое спасибо за такой подробный ответ, сейчас буду разбираться!
>
> Можно только Вас еще спросить? Я правильно понял что это программа для 8ки
Нет - это код обработки 7-ки
> и она позволит мне соединить 8ку и 7ку,
Да. 7-ка запустит экземпляр 8-ки.
> и у еще вопрос, куда изначально мне нужно вставить приведенный пример в 8ке, чтобы он выполнил свои функции?
Вам надо сравнить номера документов - запросом в примере я и получал номер (или код) по виду документа (справочника).
Это же всего лишь пример демонстрирующий подключение и получение номеров. А остальное сами делайте
. Проблем у вас еще много будет 
>
> Можно только Вас еще спросить? Я правильно понял что это программа для 8ки
Нет - это код обработки 7-ки
> и она позволит мне соединить 8ку и 7ку,
Да. 7-ка запустит экземпляр 8-ки.
> и у еще вопрос, куда изначально мне нужно вставить приведенный пример в 8ке, чтобы он выполнил свои функции?
Вам надо сравнить номера документов - запросом в примере я и получал номер (или код) по виду документа (справочника).
Это же всего лишь пример демонстрирующий подключение и получение номеров. А остальное сами делайте
20.11.2009
16:17
#7
Без проблем было бы не интересно. Подскажите в какой объект конфигурации в 7ке мне нужно вставлять код для соединения с 8-кой?
Читают тему
(гостей: 1)