powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Запрос для получения курсов валют в 1С 7.x
9 сообщений из 9, страница 1 из 1
Запрос для получения курсов валют в 1С 7.x
    #35098135
NeKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые специалисты! Подскажите пожалуйста SQL запрос, с помощью которого можно получить текущие курсы валют (относительно рубля) из базы 1С (MS SQL 2000) к примеру в виде пар валюта/значение. Заранее спасибо.
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35099283
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где-нибудь, например, во внешнем отчёте, написать такую процедурку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Процедура Сформировать()    
	
	ТекДата= РабочаяДата();
	Запрос = СоздатьОбъект("Запрос");

	ТекстЗапроса =     
		"Без Итогов;  
    	| Период с ТекДата по ТекДата;
		|       ТЭ = Справочник.Валюты.ТекущийЭлемент;  
		|     Курс = Справочник.Валюты.Курс;
		|Группировка ТЭ Без Групп;
		| ";
		
    если Запрос.Выполнить(ТекстЗапроса)= 0  тогда 
		предупреждение("Нет записей");
		возврат;
	конецесли;   
	
	Пока Запрос.Группировка() =  1  Цикл 
		Сообщить( Запрос.ТЭ.Наименование + "   " + Формат(Запрос.Курс,"Ч7.2"));
	КонецЦикла;
	
КонецПроцедуры
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35099576
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правда Ваша
пока не знаю, но можно из VB обратиться к MS SQL 2000, если знать как называется таблица и поля
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35099985
Reder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35101058
Lunx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT value
FROM _1sconst h
WHERE
h.objid = <%obj_id%> AND h.id = <%field_id%> AND
h.date =
(SELECT (MAX(hh.date))
FROM _1SCONST hh
WHERE (h.objid = hh.objid) AND (hh.id = h.id) AND hh.date <= <%date%>

Занимательно. Однако не возьму в толк - почему нельзя написать просто в первом SELECT h.date=<%date%> - нафига максимум второй выборки искать. Ведь в 7.7 дата хранится без времени - то есть - одна запись на дату. В 8.х - там дата - это дата+время.
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35101150
Reder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lunx
Занимательно. Однако не возьму в толк - почему нельзя написать просто в первом SELECT h.date=<%date%> - нафига максимум второй выборки искать. Ведь в 7.7 дата хранится без времени - то есть - одна запись на дату. В 8.х - там дата - это дата+время.
Видиш ли в чем дело в таблице констант хранятся пары дата - значение (условно), необязательно последнее значение имеет текущую дату, не обязательно что все валюты имеют последнее значение на одну дату.
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35101197
Lunx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Reder - согласен - ступил, даст пустой результат выборки если просто поставить =.
А статья действительно занимательная.
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35106549
NeKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы, прочитал статью, маленько разобрался со структурой базы. Опытным путем установил, что в моем случае запрос выглядит так (для USD):

SELECT value
FROM _1sconst h
WHERE
h.objid LIKE '%1%' AND h.id = 128 AND
h.date =
(SELECT (MAX(hh.date))
FROM _1SCONST hh
WHERE (h.objid = hh.objid) AND (hh.id = h.id) AND hh.date <= <%Сегодняшняя дата%>

До h.id = 128 я просто догадался, как я понимаю этот идентификатор указывает на то, что речь идет о валютах. Однако в самой таблице валют (SC125) никаких намеков на 128 нет. Кто-нибудь может пояснить этот момент?
...
Рейтинг: 0 / 0
Запрос для получения курсов валют в 1С 7.x
    #35106566
NeKR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. Кстати в моем случае (я работаю с ADO) можно было построить запрос иначе, выбрать все записи с нужным objid и id, упорядочить по date DESC, но выбрать толко первую полученную строку, манипулируя курсором объекта recordset.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Запрос для получения курсов валют в 1С 7.x
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]