Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как перенести проводки из одной базы в другую? (число прочтений - 8309 )
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Как перенести проводки из одной базы в другую?
03. Декабря 2007 :: 06:36
Печать  
Как перенести проводки из одной базы в другую?

Выполняю такие действия:

Запрос=СоздатьОбъект("ODBCRecordSet");
ИБ=СоздатьОбъект("ODBCDataBase");

СтрокаПодключения = "Driver={SQL Server};Server=server1c;Database=MyBase;Uid=user;Pwd=12345;";

ИБ.ПрисоединитьИБ(КатИБ,Пользователь1С,Пароль1С,СтрокаПодключения);

Запрос.УстБД(ИБ);

ТекстЗапроса="
      |SELECT
      |     Проводки.ACCDTID [Дебет $Счет.Основной]
      |    ,Проводки.DTSC0 [СубконтоДт1 $Субконто]
      |    ,Проводки.VDTSC0 AS СубконтоДт1_вид
      |    ,Проводки.ACCKTID [Кредит $Счет.Основной]
      |    ,Проводки.KTSC0 [СубконтоКт1 $Субконто]
      |    ,Проводки.VKTSC0 AS СубконтоКт1_вид
      |    ,Проводки.AMOUNT AS Количество
      |    ,Проводки.SUM_ AS Сумма
      |FROM
      |    _1SENTRY AS Проводки
      |WHERE
      |              (Проводки.ACTIVE = ' ')
      |    AND ((Проводки.PROVKIND = ' ') OR (Проводки.CORNO > 0))
      |    AND (Проводки.DATE_TIME_DOCID Between :НачДата AND :КонДата~)";

Запрос.УстановитьТекстовыйПараметр("НачДата",Дата1);
Запрос.УстановитьТекстовыйПараметр("КонДата",Дата2);

ТЗ=Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
ТЗ.ВыбратьСтроку();

В ТЗ получаю у всех субконто <Объект не найден...>.

Понятно, что не совпадают ID в базах. Но как выполнить синхронизацию хотябы по коду? Ситуация осложняется еще и наличием в субконто не только справочников, но перечислений.

Заранее спасибо.


  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #1 - 03. Декабря 2007 :: 06:43
Печать  
У тебя это разовый перенос, или будешь постоянно делать?
  
Наверх
ICQ  
IP записан
 
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Re: Как перенести проводки из одной базы в другую?
Ответ #2 - 03. Декабря 2007 :: 06:49
Печать  
Nick писал(а) 03. Декабря 2007 :: 06:43:
У тебя это разовый перенос, или будешь постоянно делать?


Постоянно, что-то вроде робота, который ежемесячно будет собирать проводки из разных баз.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #3 - 03. Декабря 2007 :: 06:57
Печать  
Тогда начинай с начала, т.е.  с синхронизации справочников которые будут использоваться и заданий соответствий перечислений.
у тебя базы на одном сервере или на разных?
  
Наверх
ICQ  
IP записан
 
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Re: Как перенести проводки из одной базы в другую?
Ответ #4 - 03. Декабря 2007 :: 07:00
Печать  
Nick писал(а) 03. Декабря 2007 :: 06:57:
Тогда начинай с начала, т.е.  с синхронизации справочников которые будут использоваться и заданий соответствий перечислений.
у тебя базы на одном сервере или на разных?


Базы (точнее их копии) сложены все в одном месте. Вообще они все УРИБовские, т.е. планы счетов и перечисления имеют одинаковые ID за исключением элементов справочников.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #5 - 03. Декабря 2007 :: 07:08
Печать  
bobank писал(а) 03. Декабря 2007 :: 07:00:
Nick писал(а) 03. Декабря 2007 :: 06:57:
Тогда начинай с начала, т.е.  с синхронизации справочников которые будут использоваться и заданий соответствий перечислений.
у тебя базы на одном сервере или на разных?


Базы (точнее их копии) сложены все в одном месте. Вообще они все УРИБовские, т.е. планы счетов и перечисления имеют одинаковые ID за исключением элементов справочников.


Т.е. справочники синхронизируются УРБД?
  
Наверх
ICQ  
IP записан
 
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Re: Как перенести проводки из одной базы в другую?
Ответ #6 - 03. Декабря 2007 :: 07:10
Печать  
Нет
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #7 - 03. Декабря 2007 :: 07:16
Печать  
bobank писал(а) 03. Декабря 2007 :: 07:10:
Нет


Значит для начала сделай механизм синхронизации общих справочников
  
Наверх
ICQ  
IP записан
 
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Re: Как перенести проводки из одной базы в другую?
Ответ #8 - 03. Декабря 2007 :: 07:36
Печать  
Т.е. типизация не позволяет представлять не только как ссылку на объект, а скажем код или наименование справочника ? Что-то вроде:

...
Проводки.DTSC0 [СубконтоДт1 $Субконто.Код]
Проводки.VDTSC0 AS СубконтоДт1_вид
...

  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #9 - 03. Декабря 2007 :: 07:43
Печать  
bobank писал(а) 03. Декабря 2007 :: 07:36:
Т.е. типизация не позволяет представлять не только как ссылку на объект, а скажем код или наименование справочника ? Что-то вроде:

...
Проводки.DTSC0 [СубконтоДт1 $Субконто.Код]
Проводки.VDTSC0 AS СубконтоДт1_вид
...



Нет, тебе нужно для этого связаться с табличкой справочника в котором хранится это субконто
  
Наверх
ICQ  
IP записан
 
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Re: Как перенести проводки из одной базы в другую?
Ответ #10 - 03. Декабря 2007 :: 07:51
Печать  
Nick писал(а) 03. Декабря 2007 :: 07:43:
bobank писал(а) 03. Декабря 2007 :: 07:36:
Т.е. типизация не позволяет представлять не только как ссылку на объект, а скажем код или наименование справочника ? Что-то вроде:

...
Проводки.DTSC0 [СубконтоДт1 $Субконто.Код]
Проводки.VDTSC0 AS СубконтоДт1_вид
...



Нет, тебе нужно для этого связаться с табличкой справочника в котором хранится это субконто


Это понятно, но как мне узнать имя таблички справочника, если оно прописано у вида субконто, которое хранится в МД-шнике, а не в SQL-базе. Т.е. в запрос я вписать его не смогу. По-этому я и предпологал, что процесс типизации может предоставить любой реквизит, ведь ссылку на элемент справочника он дает, значит имя таблички справочника ему известно.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #11 - 03. Декабря 2007 :: 08:02
Печать  
Ну в 1с ты можешь узнать тип субконто, а там читай про "Получение имен таблиц" в справке по 1с++
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #12 - 03. Декабря 2007 :: 08:07
Печать  
А инсертом слабо?  Подмигивание
В общем сделай таблицу соответсвий для перечислений двух баз наверное
А справочники - левое соединение по коду

Код
Выбрать все
		|SELECT DISTINCT CAST(LEFT((ЖурналРозн.Date_Time_IDDoc),8) as DateTime) ДатаДок
		|     , МестаХраненияСпрРозн.ID МестоХранения
		|     , АдресДоставкиСпр.ID [АдресДоставки $Справочник.АдресаДоставки]
		|FROM " + БазаРозн + ".dbo._1SJOURN AS ЖурналРозн WITH (NOLOCK)
		|LEFT OUTER JOIN " + БазаРозн + ".dbo.SC10237 AS МестаХраненияСпрРозн WITH (NOLOCK) ON МестаХраненияСпрРозн.ID = ЖурналРозн.SP10479
		|LEFT OUTER JOIN $Справочник.АдресаДоставки AS АдресДоставкиСпр WITH (NOLOCK) ON $АдресДоставкиСпр.КодУпр = МестаХраненияСпрРозн.CODE

 

  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как перенести проводки из одной базы в другую?
Ответ #13 - 03. Декабря 2007 :: 08:10
Печать  
Цитата:
А инсертом слабо?  Подмигивание
В общем сделай таблицу соответсвий для перечислений двух баз наверное
А справочники - левое соединение по коду

Код
Выбрать все
		|SELECT DISTINCT CAST(LEFT((ЖурналРозн.Date_Time_IDDoc),8) as DateTime) ДатаДок
		|     , МестаХраненияСпрРозн.ID МестоХранения
		|     , АдресДоставкиСпр.ID [АдресДоставки $Справочник.АдресаДоставки]
		|FROM " + БазаРозн + ".dbo._1SJOURN AS ЖурналРозн WITH (NOLOCK)
		|LEFT OUTER JOIN " + БазаРозн + ".dbo.SC10237 AS МестаХраненияСпрРозн WITH (NOLOCK) ON МестаХраненияСпрРозн.ID = ЖурналРозн.SP10479
		|LEFT OUTER JOIN $Справочник.АдресаДоставки AS АдресДоставкиСпр WITH (NOLOCK) ON $АдресДоставкиСпр.КодУпр = МестаХраненияСпрРозн.CODE

 



А где сказано что код одинаковый?
  
Наверх
ICQ  
IP записан
 
bobank
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 03. Октября 2007
Re: Как перенести проводки из одной базы в другую?
Ответ #14 - 03. Декабря 2007 :: 08:13
Печать  
1. Да, коды совпадают.

2. Т.е., у меня ~150 справочников в системе и все их прописывать в левое соединение?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать