Имя: Пароль:
1C
1С v8
Как получить цену не на дату указанную в отчета а на дату документа
,
0 aptomilov
 
30.12.15
15:22
Сейчас в отчете проблема в том что цены он там получает на дату отчета, как подправить что получал цену на дату документа ?

ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                       |    NULL КАК Док,
                       |    NULL КАК ДатаДок,
                       |    NULL КАК НомерДок,
                       |    ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена КАК НачОст,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена КАК КонОст,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход * ЦеныНоменклатурыСрезПоследних.Цена КАК Приход,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход * ЦеныНоменклатурыСрезПоследних.Цена КАК Расход
                       |ИЗ
                       |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, , , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты
                       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата2, ТипЦен = &ВыбЦена) КАК ЦеныНоменклатурыСрезПоследних
                       |        ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                       |    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Док,
                       |    ТоварыНаСкладахОстаткиИОбороты.Период КАК ДатаДок,
                       |    ТоварыНаСкладахОстаткиИОбороты.Регистратор.Номер КАК НомерДок,
                       |    ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена КАК НачОст,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена КАК КонОст,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход * ЦеныНоменклатурыСрезПоследних.Цена КАК Приход,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход * ЦеныНоменклатурыСрезПоследних.Цена КАК Расход,
                       |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
                       |ИЗ
                       |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты
                       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата2, ТипЦен = &ВыбЦена) КАК ЦеныНоменклатурыСрезПоследних
                       |        ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    ТоварыНаСкладахОстаткиИОбороты.Регистратор,
                       |    ТоварыНаСкладахОстаткиИОбороты.Период,
                       |    ТоварыНаСкладахОстаткиИОбороты.Регистратор.Номер,
                       |    ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход * ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход * ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
                       |
                       |УПОРЯДОЧИТЬ ПО
                       |    ДатаДок";
1 aptomilov
 
30.12.15
15:24
Вижу что вроде как то просто это сделать но не пойму как
2 mehfk
 
30.12.15
15:24
Предлагю сделать левое соединение с регистром ценыноменклатуры по дате и выбрать максимум по дате. В поиск. Тема обсуждалась чуть менее чем 100500 раз.
3 aptomilov
 
30.12.15
15:26
обсуждалась ?
не видел можешь дать ссылки
4 программистище
 
30.12.15
15:26
5 aptomilov
 
30.12.15
15:26
с наступающим кстати, можешь черкануть пару строчек не догоняю  чо с чем по левой соединять
6 aptomilov
 
30.12.15
15:27
щас поколдуем
7 ДаЛадно
 
30.12.15
15:31
Я бы из регистратора цены брал, чтобы на верняка...
8 aptomilov
 
30.12.15
15:38
там проблема в том что, есть такие документы как перемещение  и комплектация там ценами и не пахнет
Ребят смотрю и не понимаю нихрена подправьте  мой запрос если не трудно
9 aptomilov
 
30.12.15
15:38
могу даже денежкой угостить если кто поможет сидеть думать уже влом )
10 Nuobu
 
30.12.15
15:49
(9) Сколько?
11 aptomilov
 
30.12.15
15:53
рублев 200 закину
12 Джинн
 
30.12.15
15:55
Вот готовый пример - http://guesto.ru/1c-polucheniye-kursa-valyuty-na-datu-kazhdogo-dokumenta/

Только вместо регистра с курсами регистр с ценой подставьте.
13 aptomilov
 
30.12.15
15:57
ну вот не дал человеку зарабоать ))
14 vicof
 
30.12.15
15:58
(13) да ладно, ты через полчаса опять скажешь, что тебе влом
15 mikecool
 
30.12.15
16:14
два набора записей в скд - в одном документы, второй - через параметр даты привязан к первому
16 Nuobu
 
30.12.15
16:19
(13) Не знаю, как я сегодняшний день проживу без двухсот рублёв.
17 aptomilov
 
30.12.15
16:28
у меня не скд у меня так )
18 Лефмихалыч
 
30.12.15
16:29
(0) в поиск: "срез на каждую дату"
19 aptomilov
 
30.12.15
16:50
ребят я запарился кто поможет таки  
подставить везде где надо правильные цены
20 Лефмихалыч
 
30.12.15
16:53
(19) в поиске был? Даже быстрый поиск овер дохрена правильных ответов возващает. Поиск гуглом выдаст вообще все
21 Nuobu
 
30.12.15
16:56
(19) Четыре с половиной года.
22 Лефмихалыч
 
30.12.15
16:57
(21) медицине такие случаи известны - это называется Ливиннгстара синдром.
23 singlych
 
30.12.15
16:59
(19) хм, почти час держался.
24 Nuobu
 
30.12.15
16:59
(22) Забанили этого персонажа надолго. Не будет больше его.
LivingStar
25 vicof
 
30.12.15
17:15
(24) У него и другие ники есть))
26 aptomilov
 
30.12.15
17:18
а чего непоятного  мне просто лень вникать блин  + я более и вчера пил ))

поднимем до  300 р
27 Nuobu
 
30.12.15
17:18
(26) Ты сам бы делал за такие деньги, бедолага?
28 aptomilov
 
30.12.15
17:21
если бы я это сделал за 15 мин то да
29 aptomilov
 
30.12.15
17:22
но я уже убил час
30 aptomilov
 
30.12.15
17:22
запросы не мой конек
31 Nuobu
 
30.12.15
17:23
(28) Минимальная оплата - за час.((
32 aptomilov
 
30.12.15
17:25
Nuobu  - ну тебе сколько надо времени что бы подправить запрос ?
33 Nuobu
 
30.12.15
17:26
(32) Столько, сколько ты и написал - 15 минут.
34 aptomilov
 
30.12.15
17:30
1200 час  неплохо
35 aptomilov
 
30.12.15
17:30
по меркам челябинска даже очень
36 Джинн
 
30.12.15
17:32
(30) 1С - это запросы. Все остальное только довесок к ним.
37 aptomilov
 
30.12.15
17:40
(36) молодец спасибо ну вот простые запросы делаю а вот вложенные вообще не догоняю
38 Nuobu
 
30.12.15
17:48
(34) Вот запрос:

ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Период,
    ТоварыНаСкладахОбороты.Регистратор,
    ТоварыНаСкладахОбороты.Склад,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОбороты.СерияНоменклатуры,
    ТоварыНаСкладахОбороты.Качество,
    ТоварыНаСкладахОбороты.КоличествоОборот
ПОМЕСТИТЬ ВТОбороты
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ТоварыНаСкладахОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстатки.СерияНоменклатуры,
    ТоварыНаСкладахОстатки.Качество,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество,
    ЦеныНоменклатурыСрезПоследних.Цена,
    &НачалоПериода КАК Период,
    NULL КАК Регистратор,
    "Начальный остаток" КАК Пояснение
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&НачалоПериода, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НачалоПериода, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ВложенныйЗапрос.Склад,
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.ХарактеристикаНоменклатуры,
    ВложенныйЗапрос.СерияНоменклатуры,
    ВложенныйЗапрос.Качество,
    ВложенныйЗапрос.КоличествоОборот,
    ЦеныНоменклатуры.Цена,
    ВложенныйЗапрос.Период,
    ВложенныйЗапрос.Регистратор,
    "Обороты"
ИЗ
    (ВЫБРАТЬ
        МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПериодЦен,
        ВТОбороты.Период КАК Период,
        ВТОбороты.Регистратор КАК Регистратор,
        ВТОбороты.Склад КАК Склад,
        ВТОбороты.Номенклатура КАК Номенклатура,
        ВТОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ВТОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
        ВТОбороты.Качество КАК Качество,
        ВТОбороты.КоличествоОборот КАК КоличествоОборот
    ИЗ
        ВТОбороты КАК ВТОбороты
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
            ПО ВТОбороты.Период >= ЦеныНоменклатуры.Период
                И ВТОбороты.Номенклатура = ЦеныНоменклатуры.Номенклатура
                И ВТОбороты.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры
                И (ЦеныНоменклатуры.ТипЦен = &ТипЦен)
    
    СГРУППИРОВАТЬ ПО
        ВТОбороты.Период,
        ВТОбороты.Регистратор,
        ВТОбороты.Склад,
        ВТОбороты.Номенклатура,
        ВТОбороты.ХарактеристикаНоменклатуры,
        ВТОбороты.СерияНоменклатуры,
        ВТОбороты.Качество,
        ВТОбороты.КоличествоОборот) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО ВложенныйЗапрос.ПериодЦен = ЦеныНоменклатуры.Период
            И (ЦеныНоменклатуры.ТипЦен = &ТипЦен)
            И ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И ВложенныйЗапрос.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстатки.СерияНоменклатуры,
    ТоварыНаСкладахОстатки.Качество,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    ЦеныНоменклатурыСрезПоследних.Цена,
    &КонецПериода,
    NULL,
    "Конечный остаток"
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс