Имя: Пароль:
1C
1С v8
Как получить курс валюты на дату в запросе
0 skupidom5
 
19.01.16
22:56
1С Управление производственным предприятием 8.2 (1.3.71.2)
есть запрос по регистру ПродажиСебестоимостьОбороты в рублях.
Надо вывести еще и суммы в валюте пересчитанные на даты документов-отгрузок. Как это сделать в 1 запросе ?
1 Cyberhawk
 
19.01.16
23:00
СКД тебе в помощь
2 Defender aka LINN
 
19.01.16
23:01
3 Джинн
 
19.01.16
23:04
4 skupidom5
 
20.01.16
11:18
сумма в валюте к каждой сумме в рублях нужно добавить в запрос отчета, который построен построителем отчета как тогда?
5 vde69
 
20.01.16
11:25
мТекст =
        "
        |" +
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    Валюты.Ссылка КАК Валюта,
        |    ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) КАК Курс,
        |    ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) КАК Кратность
        |ПОМЕСТИТЬ КурсыВалютПоДатеПринятияКУчету
        |ИЗ
        |    Справочник.Валюты КАК Валюты
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            КурсыВалют.Валюта КАК Валюта,
        |            КурсыВалют.Курс КАК Курс,
        |            КурсыВалют.Кратность КАК Кратность
        |        ИЗ
        |            (ВЫБРАТЬ
        |                КурсыВалют.Валюта КАК Валюта,
        |                МАКСИМУМ(КурсыВалют.Период) КАК Период
        |            ИЗ
        |                РегистрСведений.КурсыВалют КАК КурсыВалют
        |                    ЛЕВОЕ СОЕДИНЕНИЕ РеквизитыДокумента КАК РеквизитыДокумента
        |                    ПО КурсыВалют.Период <= РеквизитыДокумента.ДатаПринятияКУчету
        |            
        |            СГРУППИРОВАТЬ ПО
        |                КурсыВалют.Валюта) КАК ВложенныйЗапрос
        |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        |                ПО ВложенныйЗапрос.Период = КурсыВалют.Период
        |                    И ВложенныйЗапрос.Валюта = КурсыВалют.Валюта) КАК КурсыВалютСрезПоследних
        |        ПО (КурсыВалютСрезПоследних.Валюта = Валюты.Ссылка)";
        
        // это конструктор удаляет
        мТекст = мТекст + "        
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |";
    
        ТекстЗапроса = ТекстЗапроса + "
        |" + мТекст;
        


    ИначеЕсли ИмяРегистра = "Хозрасчетный" Тогда
        
        Результат = Результат + "
        |" +
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    РеквизитыДокумента.ДатаПринятияКУчету КАК Период,
        |    РеквизитыДокумента.Ссылка КАК Регистратор,
        |    РеквизитыДокумента.Сделка,
        |    РеквизитыДокумента.Сделка.ЦФО КАК ЦФО,
        |    РеквизитыДокумента.Организация КАК Организация,
        |    РеквизитыДокумента.ВыгружатьВБухгалтерию КАК ВыгружатьВБухгалтерию,
        |    РеквизитыДокумента.Контрагент КАК Контрагент,
        |    РеквизитыДокумента.Контрагент.СчетУчетаВыручки КАК СчетУчетаВыручки,
        |    РеквизитыДокумента.Контрагент.СчетУчетаСебестоимостиПродаж КАК СчетУчетаСебестоимостиПродаж,
        |    РеквизитыДокумента.ВалютаДокументаРег КАК ВалютаДокументаРег,
        |    РеквизитыДокумента.Сделка.ВалютаДокумента КАК ВалютаВзаиморасчетов,
        |    ИСТИНА КАК Активность,
        |    КурсыВалютПоДатеПринятияКУчету.Курс КАК КурсСделкиПоДатеПринятияКУчету,
        |    КурсыВалютПоДатеПринятияКУчету.Кратность КАК КратностьСделкиПоДатеПринятияКУчету
        |ИЗ
        |    РеквизитыДокумента КАК РеквизитыДокумента
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ КурсыВалютПоДатеПринятияКУчету КАК КурсыВалютПоДатеПринятияКУчету
        |        ПО РеквизитыДокумента.Сделка.ВалютаДокумента = КурсыВалютПоДатеПринятияКУчету.Валюта";
        
    КонецЕсли;
6 ObjectRelation Model
 
20.01.16
11:31
7 denis_jj
 
20.01.16
11:35
(0) Это называется ТЭТА соединение.
8 skupidom5
 
20.01.16
11:46
мне нужно получать курс на дату каждой сделки (из регистра Продажи) и при этом не использовать параметры &. Получить дату курса однозначно используя соединение таблиц: курсы валют срез последних и дату сделки из регистра продажи
9 Nuobu
 
20.01.16
11:49
(8) Чем ссылка из (3) не угодила?
10 skupidom5
 
20.01.16
11:51
11 Nuobu
 
20.01.16
11:52
(10) На тройку в дужках нажми - это ссылка.
12 skupidom5
 
20.01.16
11:54
можно привести саму ссылку повторно
13 Nuobu
 
20.01.16
11:57
14 skupidom5
 
20.01.16
11:58
нет примеров когда запрос написан не построителем отчета
15 skupidom5
 
20.01.16
11:59
приведите пример в этой рубрике такого запроса
16 ObjectRelation Model
 
20.01.16
11:59
17 skupidom5
 
20.01.16
12:02
у меня не СКД и не обычный запрос с возможностью указания параметра &Дата курса валюты
18 ObjectRelation Model
 
20.01.16
12:03
(17) "необычный"
19 Jonny_Khomich
 
20.01.16
12:05
(18) "саму"
20 skupidom5
 
20.01.16
12:06
используется построитель отчета
21 ObjectRelation Model
 
20.01.16
12:08
(20) и чего? тебе ссылок в (3), (13) и (16) мало?
22 skupidom5
 
20.01.16
12:13
я не вижу ссылок: 13 и 16!
23 ObjectRelation Model
 
20.01.16
12:13
(22) неудачник
24 Nuobu
 
20.01.16
12:17
(22)

ВЫБРАТЬ
   Таб1.СсылкаДок,
   Таб1.ДатаДок,
   Таб1.ВалютаДок,
   Таб2.Курс
ИЗ
   (ВЫБРАТЬ
    ЗаказПокупателя.Ссылка КАК СсылкаДок,
    ЗаказПокупателя.Дата КАК ДатаДок,
    ЗаказПокупателя.ВалютаДокумента КАК ВалютаДок,
    МАКСИМУМ(Валюты.Период) КАК ПериодДок
   ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Валюты
      ПО Валюты.Период <= ЗаказПокупателя.Дата И
      Валюты.Валюта = ЗаказПокупателя.ВалютаДокумента
   СГРУППИРОВАТЬ ПО
    ЗаказПокупателя.Ссылка) КАК Таб1
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Таб2
    ПО Таб1.ПериодДок = Таб2.Период И Таб1.ВалютаДок = Таб2.Валюта
28 Быдло замкадное
 
20.01.16
12:32
только что писал.. вложенный запрос во вложенном, поражаюсь со своего овнокода...

ВЫБРАТЬ
    ПродажиОбороты.Организация,
    ПродажиОбороты.Организация.ИНН,
    ПродажиОбороты.Период,
    ПродажиОбороты.Контрагент.ИНН,
    ПродажиОбороты.Контрагент.НаименованиеПолное,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот * ПодготовленныеКурсы.Курс КАК Цена
ИЗ
    РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КурсыПоДатам.ПериодПродажи КАК ПериодПродажи,
            КурсыПоДатам.Валюта КАК Валюта,
            КурсыВалют.Курс КАК Курс
        ИЗ
            (ВЫБРАТЬ
                ПродажиОбороты.Период КАК ПериодПродажи,
                КурсыВалют.Валюта КАК Валюта,
                МАКСИМУМ(КурсыВалют.Период) КАК ПериодКурса
            ИЗ
                РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
                    ПО ПродажиОбороты.Период >= КурсыВалют.Период
            
            СГРУППИРОВАТЬ ПО
                КурсыВалют.Валюта,
                ПродажиОбороты.Период) КАК КурсыПоДатам
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
                ПО КурсыПоДатам.Валюта = КурсыВалют.Валюта
                    И КурсыПоДатам.ПериодКурса = КурсыВалют.Период) КАК ПодготовленныеКурсы
        ПО ПродажиОбороты.Период = ПодготовленныеКурсы.ПериодПродажи
            И ПродажиОбороты.ДокументПродажи.ВалютаДокумента = ПодготовленныеКурсы.Валюта
29 skupidom5
 
20.01.16
12:34
прошу извинить, перепутал!
30 Jonny_Khomich
 
20.01.16
12:41
(27) ахаххах) точно)))
31 skupidom5
 
20.01.16
12:46
если у меня 2 таблицы:
1 - Продажи;
2 - КурсыВалют
и я хочу на выходе видеть колонки отчета:
ДокументПродажи (каждую сделку-реализацию)
Стоимость (из этого регистра в руб.)
стоимость по каждому документу продажи в EURO - стоимость в валюте EURO по курсу (полученному на дату Документа продажи), прошу написать образец такого запроса на основе приведенных выше
32 ObjectRelation Model
 
20.01.16
12:51
(31) то есть даже приведенный код тебе адаптировать?
ты упертый, точнее упоротый
33 Джинн
 
20.01.16
12:54
(31) 2,5 т.р.
34 skupidom5
 
20.01.16
13:06
денег нет
35 ls300
 
20.01.16
13:29
(34) Тогда пора включить мозги и разобрать любой из примеров, который привели ранее.
36 skupidom5
 
20.01.16
14:40
Товарищи, мне бы понять: как получить курс валюты на дату документа без указания параметра даты курса ?
37 skupidom5
 
20.01.16
14:47
я не понимаю как без указания параметра &Дата получить курс на дату документа в самом запросе
38 Nuobu
 
20.01.16
14:49
(37) Ты читать совсем не хочешь ничего, кроме своего поста?
39 skupidom5
 
20.01.16
14:52
я очень сильно нервничаю
40 Nuobu
 
20.01.16
15:00
(39) Это угроза?
41 John83
 
20.01.16
15:01
нафига тут насоветовали остатки на каждую дату?
достаточно соединить таблицы по началопериода(продажи.период, день) = курсывалют.период
42 Feunoir
 
20.01.16
15:07
(41) А если курсывалют.период нет такой записи?
43 skupidom5
 
20.01.16
15:08
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Продажи.Период,
    Продажи.Стоимость,
    Продажи.ДокументПродажи,
    КурсыВалютСрезПоследних.Курс КАК Курс
ИЗ
    РегистрНакопления.Продажи КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсыВалютСрезПоследних
        ПО (НАЧАЛОПЕРИОДА(Продажи.ДокументПродажи.Дата, ДЕНЬ) = КурсыВалютСрезПоследних.Период)
ГДЕ
    КурсыВалютСрезПоследних.Валюта = &ПеремЕвро
    И Продажи.ДокументПродажи = &РТУ
44 skupidom5
 
20.01.16
15:08
так получилось?
45 skupidom5
 
20.01.16
15:22
далеко не всегда выводиться курс при таком запросе
46 skupidom5
 
20.01.16
15:35
можно в это выражение: СрезПоследних(, ) - вставить дату, но чтобы она не была параметром ?
47 Nuobu
 
20.01.16
15:35
(46)  СрезПоследних(ДатаВремя(2015,12,31,23,59,59), )
48 skupidom5
 
20.01.16
15:44
у меня есть документы: реализации №1 от 01.01.2015,№2 от 10.01.2015, №3 от 20.01.2015
есть курсы валют USD на 02.01.2015,12.01.2015,на 20.01.2015
Документы эти я выбираю 1 запросом, мне надо в этом же запросе получить значения курса для каждой реализации, т.е. 3 значения курса, как это сделать?
49 skupidom5
 
20.01.16
15:45
даты документов я заранее не знаю, они - результат выполнения этого запроса
50 John83
 
20.01.16
16:49
(42) сейчас они даже в праздники грузятся