Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема UPDATE (число прочтений - 2222 )
Marten
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 44
Зарегистрирован: 02. Июля 2012
UPDATE
08. Ноября 2012 :: 14:30
Печать  
Объясните пожалуйста почему в Подразделение записываются одинаковое значения а не из Регистр.ВзаиморасчетыПокупателей.КредДокумент?

Код
Выбрать все
	ТекстЗапроса="
	|UPDATE $Регистр.ВзаиморасчетыПокупателей
	|SET $Регистр.ВзаиморасчетыПокупателей.Подразделение = ICASE(j.iddocdef=$ВидДокумента.РасходнаяНакладная, $Накладные.Подразделение,
	|		j.iddocdef=$ВидДокумента.Счет, $Счета.Подразделение,
	|		$ПустойИД)
	|FROM $Регистр.ВзаиморасчетыПокупателей as Рег
	|INNER JOIN 1sjourn AS j ON $Рег.КредДокумент = j.iddocdef+j.iddoc
	|INNER JOIN $Документ.РасходнаяНакладная AS Накладные ON j.iddocdef = $ВидДокумента.РасходнаяНакладная
	//|	AND j.iddoc = Накладные.iddoc
	|	AND right($Рег.КредДокумент,9) = Накладные.iddoc
	|INNER JOIN $Документ.Счет AS Счета ON j.iddocdef = $ВидДокумента.Счет
	//|	AND j.iddoc = Счета.iddoc
	|	AND right($Рег.КредДокумент,9) = Счета.iddoc
	|
	|";
 



Нужно заполнить
Регистр.ВзаиморасчетыПоставщиков.Подразделение (Справочник.Подразделения)
значением из
Регистр.ВзаиморасчетыПоставщиков.КредДокумента (Документ).
  
Наверх
 
IP записан
 
Marten
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 44
Зарегистрирован: 02. Июля 2012
Re: UPDATE
Ответ #1 - 08. Ноября 2012 :: 18:48
Печать  
Пожалуйста, ткните хоть примером.
база дбф
  
Наверх
 
IP записан
 
Marten
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 44
Зарегистрирован: 02. Июля 2012
Re: UPDATE
Ответ #2 - 08. Ноября 2012 :: 18:54
Печать  
Данные Подразделения находятся не в документе, который делал движение по регистру, а в Измерении КредДокумент.

Возможно ли вообще обновить одно измерение регистра по данным другого измерения?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: UPDATE
Ответ #3 - 09. Ноября 2012 :: 06:00
Печать  
можно

Для начала выкинуть соединение с журналом

Типа того:

Код
Выбрать все
Update
  Рег
SET
  $Рег.Подразделение = Служ.Подразделение
FROM
  $Регистр.ВзаиморасчетыПокупателей as Рег
INNER JOIN
   (
    Select
	   Док.IDDoc,
	   $Док.Подразделение Подразделение
    From
	   $Документ.РасходнаяНакладная Док
    Union all

    Select
	   Док2.IDDoc,
	   $Док2.Подразделение
    From
	   $Документ.Счет Док2

   ) Служ ON Служ.IDDoc = right($Рег.КредДокумент,9) 

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


1C++ rocks!

Сообщений: 44
Зарегистрирован: 02. Июля 2012
Re: UPDATE
Ответ #4 - 09. Ноября 2012 :: 07:08
Печать  
Спасибо.
Можете посоветовать какую литературу почитать
чтобы понимать логику запроса. Например в этом
запросе я даже не понял что соединение с журналом
лишнее.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: UPDATE
Ответ #5 - 09. Ноября 2012 :: 07:33
Печать  
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать