Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как заполнить реквизит проводки из другой БД? (число прочтений - 1507 )
Stella0608
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 38
Зарегистрирован: 11. Марта 2009
Как заполнить реквизит проводки из другой БД?
25. Марта 2010 :: 13:09
Печать  
Сорри, возможно у меня проблемы с синтаксисом Печаль
Не могу написать банальный апдейт.
Суть: есть две бухгалтерские базы, текущая и та, из который идет экспорт.
Нужно: в текущей базе в табличке _1sentry заполнить поле AMOUNT из аналогичной табличке в другой базе с условием по определенному счету.
Вот я получила AMOUNT  из базы для экспорта:

|(SELECT ЖурПров.ROW_ID, ЖурПров.AMOUNT
|FROM buh_bi_19012010.dbo._1sentry ЖурПров      
|WHERE (LEFT(ЖурПров.DATE_TIME_DOCID,8)>=:НачДата) AND (LEFT(ЖурПров.DATE_TIME_DOCID,8)<=:КонДата)    
|AND ((ЖурПров.ACCDTID = :ВыбСчет) OR (ЖурПров.ACCKTID = :ВыбСчет)) AND ЖурПров.AMOUNT<>0

а дальше? как апдейт написать?
делаю правое соединение - фигня получается.
Помогите, плз Печаль.

P.S. вот так вот ничерта не работает

|UPDATE _1sentry
|SET AMOUNT = ЖурПров2.AMOUNT
|FROM _1sentry AS ЖурПров1
|RIGHT JOIN
|(SELECT ЖурПров.ROW_ID, ЖурПров.AMOUNT
|FROM buh_bi_19012010.dbo._1sentry ЖурПров      
|WHERE (LEFT(ЖурПров.DATE_TIME_DOCID,8)>=:НачДата) AND (LEFT(ЖурПров.DATE_TIME_DOCID,8)<=:КонДата)   
|AND ((ЖурПров.ACCDTID = :ВыбСчет) OR (ЖурПров.ACCKTID = :ВыбСчет)) AND ЖурПров.AMOUNT<>0) AS ЖурПров2
|ON ЖурПров1.ROW_ID = ЖурПров2.ROW_ID
|";

то бишь ошибок не выдает, но и количество не проставляет.
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как заполнить реквизит проводки из другой БД?
Ответ #1 - 25. Марта 2010 :: 13:22
Печать  
row_id у каждой базы свой, соединять по нему таблицы из разных баз нельзя.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Stella0608
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 38
Зарегистрирован: 11. Марта 2009
Re: Как заполнить реквизит проводки из другой БД?
Ответ #2 - 25. Марта 2010 :: 13:24
Печать  
Блин, точно! Спасибо, а по чему соединять? по ID документов?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как заполнить реквизит проводки из другой БД?
Ответ #3 - 25. Марта 2010 :: 13:29
Печать  
Лучше всего - DATE_TIME_DOCID+NUMBER+CORNO. А так - по полям любого уникального индекса, кроме ROW_ID.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Stella0608
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 38
Зарегистрирован: 11. Марта 2009
Re: Как заполнить реквизит проводки из другой БД?
Ответ #4 - 25. Марта 2010 :: 13:34
Печать  
Спасибо Улыбка.
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как заполнить реквизит проводки из другой БД?
Ответ #5 - 01. Апреля 2010 :: 01:31
Печать  
Stella0608 писал(а) 25. Марта 2010 :: 13:34:
Спасибо Улыбка.


Угу, только docid тоже разные Улыбка
По какому полю синхронизируются базы? Вот то и надо задействовать (если экспорт не идет напрямую вплоть до совпадения служебных данных 1С)
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать