Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос по регистру сведений и продажам!          
Sergowa Подменю пользователя
сообщение 18.05.18, 11:59
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 45
Спасибо сказали: 2 раз
Рейтинг: 0

Всем добрый день!
Делаю отчет по заказам с сайта для анализа валово прибыли по курсу!

Так вот есть регистр сведений ЦеныНоменклатурыКонтрагентов где вносится цена номенклатуры. Но есть две организации, которые вводят эти цены с одним типом цен и одним типом валюты.
И в запросе когда делаю срезпоследних по регистру, на одну номенклатуру получается два значения от одной организации и от второй, но даты разные! Нужно выбрать именно по последней дате не зависимо какая организация вносила цены!

Если запрос сделать отдельно по регистру, то у меня полоучается, а если вместе с продажами, то в итоге получается задвоенная номенклатура, так как две цены на нее.

ВЫБРАТЬ
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена,
ПОМЕСТИТЬ ЦеныНоменклатурыКонтрагентов
ИЗ
    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
ГДЕ
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта = &Валюта
    И ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.ТипЦеныНоменклатуры = &ТипЦеныНоменклатуры
;

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


Как отобрать одно значение с регистра?

"Управление производственным предприятием для Украины", редакция 1.3 (1.3.54.1)
1С:Предприятие 8.3 (8.3.10.2252)

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

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

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
    Продажи.КоличествоОборот,
    Продажи.СтоимостьОборот,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
    ДатыПоследнихЦен.КоличествоОборот КАК Количество,
    ДатыПоследнихЦен.СтоимостьОборот КАК Стоимость,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена,
    КурсыВалютСрезПоследних.Курс,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена * КурсыВалютСрезПоследних.Курс * ДатыПоследнихЦен.КоличествоОборот КАК СебестоимостьВГрнПоКурсу,
    ДатыПоследнихЦен.СтоимостьОборот - ЦеныНоменфклатурыКонтрагентовСрезПоследних.Цена * КурсыВалютСрезПоследних.Курс * ДатыПоследнихЦен.КоличествоОборот КАК ВаловаяПрибыль,
    ДатыПоследнихЦен.Валюта
ИЗ
    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&КонецПериода, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыПоследнихЦен КАК ДатыПоследнихЦен
        ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Период = ДатыПоследнихЦен.Период
            И ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = ДатыПоследнихЦен.Номенклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
        ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта = КурсыВалютСрезПоследних.Валюта

logist Подменю пользователя
сообщение 18.05.18, 12:42
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Есть еще ЛЕВОЕ соединение, и вероятно в вашем случае это оно, тогда всё должно работать в одном запросе. Внутреннее выбирает совпадение в таблицах, почитайте что такое соединения в запросах.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Sergowa Подменю пользователя
сообщение 18.05.18, 13:08
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 45
Спасибо сказали: 2 раз
Рейтинг: 0

logist @ Сегодня, 13:42 * ,
Спасибо за ответ! Пробовал Левым соединением, но не получилось!)) Возможно не правильно связи сделал!

logist Подменю пользователя
сообщение 18.05.18, 14:03
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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



Signature
Личные бесплатные консультации не даю, для этого есть форум!

Sergowa Подменю пользователя
сообщение 18.05.18, 15:29
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 45
Спасибо сказали: 2 раз
Рейтинг: 0

logist @ Сегодня, 15:03 * ,
Попробую поиграться! Спасибо!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 12:55
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!