Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Замена объекта периодический (число прочтений - 2354 )
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Замена объекта периодический
03. Октября 2011 :: 07:21
Печать  
Подскажите текст запроса для замены объекта периодический.
Чтоб универсальный желательно.
Нужно перевести на прямой запрос выборку по периодическим реквизитам справочника НачисленияУдержания. Не могу взять в толк как решить задачу. Ответственно нужно получать значение, дату, документ, строку документа и прочие радости!
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Замена объекта периодический
Ответ #1 - 03. Октября 2011 :: 07:54
Печать  
запрос к табличке 1sconst и погнали..
Для скуля есть еще ПоследнееЗначение для удобства.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #2 - 03. Октября 2011 :: 07:56
Печать  
Eprst писал(а) 03. Октября 2011 :: 07:54:
запрос к табличке 1sconst и погнали..
Для скуля есть еще ПоследнееЗначение для удобства.


Это понятно, я только не могу понять как определенный реквизит отобрать и у определенного вида объекта ? Вот это не могу понять !
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Замена объекта периодический
Ответ #3 - 03. Октября 2011 :: 07:57
Печать  
Конкретно напиши, что требуется ?
Тебе тупо селект или всё же апдейт нужен ?
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #4 - 03. Октября 2011 :: 08:01
Печать  
Eprst писал(а) 03. Октября 2011 :: 07:57:
Конкретно напиши, что требуется ?
Тебе тупо селект или всё же апдейт нужен ?

Тупо селект.
Вот пример нужно у справочника "НачисленияУдержания" выбрать все значения переодического реквизита "Действует".
Соответсвено нужно получить дату Установки и документ который установил если есть!

Но не могу понять как отобрать только реквизит действует
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Замена объекта периодический
Ответ #5 - 03. Октября 2011 :: 08:03
Печать  
В самом общем случае, вот так:
http://www.script-coding.com/v77tables.html#2.5.5.

для скуля можно проще, там есть
$ПоследнееЗначение
http://www.1cpp.ru/docum/icpp/html/ODBC.html#id38

для 1sqlite тоже свой синтаксис, там нужно limit 1 использовать
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #6 - 03. Октября 2011 :: 08:17
Печать  
Eprst писал(а) 03. Октября 2011 :: 08:03:
В самом общем случае, вот так:
http://www.script-coding.com/v77tables.html#2.5.5.

для скуля можно проще, там есть
$ПоследнееЗначение
http://www.1cpp.ru/docum/icpp/html/ODBC.html#id38

для 1sqlite тоже свой синтаксис, там нужно limit 1 использовать


Спасибо пошел пробовать!
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #7 - 03. Октября 2011 :: 08:30
Печать  
А как получить ID Реквизита "Действует" ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Замена объекта периодический
Ответ #8 - 03. Октября 2011 :: 09:13
Печать  
Зачем тебе его знать ? метапарсер сам его подставит в текст запроса.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #9 - 03. Октября 2011 :: 09:17
Печать  
Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|	Константы.ID,
	|	Константы.DATE [Дата $Дата],
	|	Константы.VALUE Значение,
	|	Константы.LINENO_ НомерСтроки,
	|	Журн.IDDOC Документ,
	|	Журн.IDDOCDEF Документ_Вид
	|FROM
	|	_1SConst Константы
	|LEFT JOIN
	|	_1SJourn Журн ON Константы.DOCID = Журн.IDDOC
	//|LEFT JOIN
	//|	$Справочник.НачисленияУдержания Начисления ON //
	|WHERE
	|	Константы.OBJID = :ВыбОбъект
	|";

ЗапросНачислений.УстановитьТекстовыйПараметр("ВыбОбъект",НачисленияУдержания);
		ЗапросНачислений.ВыполнитьИнструкцию(ТекстЗапроса,ИТВыборка);
 



Такая конструкция работает крайне долго. В чем проблема ? Я так понимаю, что слишком большой набор даных

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Замена объекта периодический
Ответ #10 - 03. Октября 2011 :: 09:27
Печать  
Добавь хинт nolock и условие ID = $ИсторияРеквизита.НачисленияУдержания.Действует
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #11 - 03. Октября 2011 :: 09:32
Печать  
berezdetsky писал(а) 03. Октября 2011 :: 09:27:
Добавь хинт nolock и условие ID = $ИсторияРеквизита.НачисленияУдержания.Действует

Отлично! спасибо очень помогло!
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #12 - 03. Октября 2011 :: 09:46
Печать  
berezdetsky писал(а) 03. Октября 2011 :: 09:27:
Добавь хинт nolock и условие ID = $ИсторияРеквизита.НачисленияУдержания.Действует


Не работает типизация хотя поле "Документ_Вид" присутствует

Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|	Константы.ID,
	|	Константы.DATE [ДатаЗнач $Дата],
	|	Константы.VALUE [Значение $Число],
	|	Константы.LINENO_ [НомерСтроки $Число],
	|	Журн.IDDOC [Документ $Документ],
	|	Журн.IDDOCDEF Документ_Вид
	|FROM
	|	_1SConst Константы
	|LEFT JOIN
	|	_1SJourn Журн ON Константы.DOCID = Журн.IDDOC
	|WHERE
	|	Константы.OBJID = :ВыбОбъект AND Константы.ID = $ИсторияРеквизита.НачисленияУдержания.Действует
	|";
 


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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Замена объекта периодический
Ответ #13 - 03. Октября 2011 :: 09:57
Печать  
mozer писал(а) 03. Октября 2011 :: 09:46:
berezdetsky писал(а) 03. Октября 2011 :: 09:27:
Добавь хинт nolock и условие ID = $ИсторияРеквизита.НачисленияУдержания.Действует


Не работает типизация хотя поле "Документ_Вид" присутствует

Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|	Константы.ID,
	|	Константы.DATE [ДатаЗнач $Дата],
	|	Константы.VALUE [Значение $Число],
	|	Константы.LINENO_ [НомерСтроки $Число],
	|	Журн.IDDOC [Документ $Документ],
	|	Журн.IDDOCDEF Документ_Вид
	|FROM
	|	_1SConst Константы
	|LEFT JOIN
	|	_1SJourn Журн ON Константы.DOCID = Журн.IDDOC
	|WHERE
	|	Константы.OBJID = :ВыбОбъект AND Константы.ID = $ИсторияРеквизита.НачисленияУдержания.Действует
	|";
 



замени
     |      Журн.IDDOCDEF Документ_Вид
на
     |      Журн.IDDOCDEF Документ_вид

т.е. вид обязательно с маленькой буквы
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Замена объекта периодический
Ответ #14 - 03. Октября 2011 :: 09:58
Печать  
Z1 писал(а) 03. Октября 2011 :: 09:57:
mozer писал(а) 03. Октября 2011 :: 09:46:
berezdetsky писал(а) 03. Октября 2011 :: 09:27:
Добавь хинт nolock и условие ID = $ИсторияРеквизита.НачисленияУдержания.Действует


Не работает типизация хотя поле "Документ_Вид" присутствует

Код
Выбрать все
ТекстЗапроса = "
	|SELECT
	|	Константы.ID,
	|	Константы.DATE [ДатаЗнач $Дата],
	|	Константы.VALUE [Значение $Число],
	|	Константы.LINENO_ [НомерСтроки $Число],
	|	Журн.IDDOC [Документ $Документ],
	|	Журн.IDDOCDEF Документ_Вид
	|FROM
	|	_1SConst Константы
	|LEFT JOIN
	|	_1SJourn Журн ON Константы.DOCID = Журн.IDDOC
	|WHERE
	|	Константы.OBJID = :ВыбОбъект AND Константы.ID = $ИсторияРеквизита.НачисленияУдержания.Действует
	|";
 



замени
     |      Журн.IDDOCDEF Документ_Вид
на
     |      Журн.IDDOCDEF Документ_вид

т.е. вид обязательно с маленькой буквы

Понял Спасибо!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать