Имя: Пароль:
1C
1С v8
Срез последних на каждый день
0 breezee
 
05.10.15
18:37
Подскажите, пожалуйста. Что я сделал не так. У меня есть таблица ПродажиИОбороты(тип остатки и обороты) и таблица ЦеныНоменклатурыСрезПолседних(тип регистр сведений). На каждую запись из ПродажиИОбороты я должен получать цену из ЦеныНоменклатурыСрезПолседних. Для этого в ПродажиИобороты я установил периодичность секунда, выбрал все нужные поля и период. Создал 2 набор данных запрос, в котором выбрал из ЦеныНоменклатурыСрезПолседних цену, максимум(Период) и поставил условие у ЦеныНоменклатурыСрезПолседних на тип цен. Связал 2 пакета запроса и ничего не выбирается из 2 пакета. Подскажите, пожалуйста, что я сделал не так? Если не понятно написал и Вам не сложно посмотреть - залил сам отчет сюда. пробоовал у таблицы остаткиИОбороты ставить периодичность регистратор, пробовал брать не максимум(период), а просто период - ничего не помогает, цена выводится пустая
http://rghost.ru/8wxCcljbK
Помогите разобраться, плз!
1 Мимохожий Однако
 
05.10.15
18:42
Скинь сюда запрос. Неохота качать
2 breezee
 
05.10.15
18:44
1 пакет
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.ХарактеристикаНоменклатуры,
    ПродажиОбороты.ЗаказПокупателя,
    ПродажиОбороты.ДоговорКонтрагента,
    ПродажиОбороты.ДокументПродажи,
    ПродажиОбороты.Подразделение,
    ПродажиОбороты.Проект,
    ПродажиОбороты.Организация,
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьОборот,
    ПродажиОбороты.НДСОборот,
    Константы.ВалютаУправленческогоУчета,
    0 КАК Себестоимость,
    0 КАК ВаловаяПрибыль,
    0 КАК ПроцентВаловойПрибыли,
    КурсыВалютРеглСрезПоследних.Курс КАК КурсРег,
    КурсыВалютУпрСрезПоследних.Курс КАК КурсУПР,
    КурсыВалютРеглСрезПоследних.Кратность КАК КратностьРег,
    КурсыВалютУпрСрезПоследних.Кратность КАК КратностьУПР,
    ПродажиОбороты.Период
ИЗ
    РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты,
    Константы КАК Константы
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних({(&КонецПериода)}, ) КАК КурсыВалютУпрСрезПоследних
        ПО Константы.ВалютаУправленческогоУчета = КурсыВалютУпрСрезПоследних.Валюта
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних({(&КонецПериода)}, ) КАК КурсыВалютРеглСрезПоследних
        ПО Константы.ВалютаРегламентированногоУчета = КурсыВалютРеглСрезПоследних.Валюта
2 пакет
ВЫБРАТЬ
    МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Период) КАК Период,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
Связь
http://i.imgur.com/RXBgrEO.png
3 Wern
 
05.10.15
18:52
В срезе последних не задан период. Должен быть задан параметр и он же указан в связях.
4 Джинн
 
05.10.15
18:52
1. Выгребаете продажи в ВТ
2. Соединяете ВТ Продаж с регистром курсов валют (НЕ СРЕЗ) со связью по валюте с и по периоду <= дате документа. Через Максимум() вычисляете дату изменения курса.
3. Соединяете ВТ продаж, ВТ дат курсов и регистр курсов валют.
5 Джинн
 
05.10.15
18:53
6 breezee
 
05.10.15
19:02
Я вроде поставил
http://i.imgur.com/mSx4lib.png
И связь указал
http://i.imgur.com/tZ94qxe.png
Опять ничерта не выводится. Подскажите, что я еще не так сделал, пожалуйста
(4)Дак так же не в СКД делается(т.е. так можно и в СКД сделать, но так менее удобно)
7 Джинн
 
05.10.15
19:05
(6) Млин, я не по-русски написал? Срез последних, период в параметре и т.п. не прокатит вообще. Читайте внимательно что Вам пишут. А также ДО КОНЦА читайте ссылки, которые Вам дают. А не только заголовок.
8 Wern
 
05.10.15
19:10
(7) В СКД прокатит. (6) Параметр в связях должен быть в колонке "параметр", а не "выражение приемник"
9 breezee
 
05.10.15
19:11
(7) Спасибо, сейчас так и сделаю и все же не пойму почему не прокатит период в параметре. Еще раз просмотрел статью - в конце автор написал что выводом и через СКД и через ВТ вывелись одинаковые данные
10 Мимохожий Однако
 
05.10.15
19:15
(9)Не надо СрезПоследних,обращайся непосредственно к записям регистра.
11 Джинн
 
05.10.15
19:21
(9) Данные одинаковые. А способ получения немного отличается.

Если через запрос - читайте вторую часть ссылки. Там есть пример с запросом. Внимательно посмотрите как через связь по периоду и МАКСИМУМ вычисляется дата изменения курса.
12 breezee
 
05.10.15
19:22
(10) ТАк тоже ничего не работает. вот связи
http://i.imgur.com/YRXObbu.png
Вот что выбрал из 2 запроса
http://i.imgur.com/C4D7cIF.png
Не важно - ставлю ли максимум по периоду или нет
(11) Я бы хотел через СКД сначала освоить, он выглядит легче
13 Джинн
 
05.10.15
19:27
(12) Запрос даст понимание связей таблиц. По моему скромному мнению.
14 echo77
 
05.10.15
19:28
Не советую делать срез на каждый день в СКД - это очень медленно работает, т.к. по сути запрос в цикле
15 Wern
 
05.10.15
19:30
(12) Уже лучше. В первом запросе у тебя период включает время. там будет период типо "05.10.2015 19:26:00"
Во втором зависит от периодичности регистра цен, скорей всего там будет начало дня. Поставь в запросах вместо периодов НАЧАЛОПЕРИОДА(...,ДЕНЬ)
16 breezee
 
05.10.15
19:39
(15) Все то же самое, ничего не выводит
Вот поля выбранные во 2 запросе
http://i.imgur.com/LWoXcKo.png
Может проблема в том что для таблицы остатков и оборотов у меня вообще нет параметра период? Только начало и конец периода
http://i.imgur.com/EO5k9E0.png
17 GreyK
 
05.10.15
19:40
(0) Выборка периодических регистров невозможна в запросе, в запросе всегда периодика нацелена или на заданную в запросе дату, ну или выдается результат последнего изменения регистра.
Это ещё с 7ки сушествует, выборку по преиодике делают отдельно, а потом подгружают в запрос.
18 Wern
 
05.10.15
20:03
(16) А в первом запросе ты поменял "ПродажиОбороты.Период" на "НАЧАЛОПЕРИОДА(ПродажиОбороты.Период,ДЕНЬ) КАК Период"?
И в срез по последних во второй таблице ты параметр добавил
"РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК" => "РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦен) КАК"
19 Wern
 
05.10.15
20:05
(17) Это касалось только 7-ки. В 8-ке все не так. Можно и в запросе получить периодику и в наборах СКД.
20 breezee
 
05.10.15
20:11
(18) Добавил - не помогает :C
Поле для остатков и оборотов
http://i.imgur.com/vw6kZQb.png
Для 2 таблицы
http://i.imgur.com/VgZRx1f.png
Связи
http://i.imgur.com/TLinHVP.png
21 GreyK
 
05.10.15
20:17
(19) Дерзай :)
22 breezee
 
05.10.15
20:26
Может, все же посмотрите отчет, пожалуйста?
Я совсем не понимаю что я не так делаю
Отчет залил сюда
http://rghost.ru/6gwCr8C6K
23 breezee
 
05.10.15
20:42
ап
24 breezee
 
05.10.15
21:03
последний ап
25 Wern
 
05.10.15
23:05
(21) смотри (5) там все написано.
(22) заполни уже наконец колонку "Параметр" в связях.
В твоем отчете закладка связи, первая строка, колонка "Параметр", должно быть указано "Дата". У тебя пусто.
26 breezee
 
05.10.15
23:33
(25) Еще раз спасибо. Сделал через ВТ, завтра разбираться буду почему так не работало. Еще раз спасибо и спокойной ночи!
27 GreyK
 
06.10.15
10:35
(25) Этот вариант работает для продаж, но не для поступлений, я про вариант с запросом.
При поступлениях товаров, установка цен может быть сделана в следующие дни и надо выводить цену из подчиненной установки цен, а если цена не менялась, то нужно брать цену на конец дня. Я такую задачку на прошлой неделе решал, не помог мне пример из (5).