Имя: Пароль:
1C
 
Получить последние цены в запросе
0 MaryanaR
 
03.03.25
10:49
Всем доброго дня. Мне нужно получать стоимость склада на период формирования отчета.
Заведен отдельный РС по регистрации цен при поступлении товара (Номенклатура, цена, валюта, цена в руб. на момент заказа).
Беру из регистра "Товары на складе" остатки товара на дату и соединяю со своим РС. Но вот проблема в чем.
В РС заведены цены в разных валютах, отсюда получаю дубли. Как мне вытащить из Регистра последние цены, без учета валюты, но валюта в запросе нужна для вывода цены (чтобы понимать в какой валюте выводится цена)?
1 Мультук
 
гуру
03.03.25
10:55
(0)

Ваш запрос вы конечно показывать не будете ?
2 Krendel
 
03.03.25
10:56
(1) Зачем?
3 Волшебник
 
03.03.25
10:56
Выбирайте "цена в руб"
4 mikecool
 
03.03.25
10:56
(0) сформулируй правильно вопрос и ответ придет
5 MaryanaR
 
03.03.25
10:57
Может, я конечно РС не верно настроила. Поставила зависимость регистратором "Приобретение", периодичность в секунду. Добавила в измерения Товар, Дату, валюту. (В период кладу дату Поступления, в "Дата" вношу дату заказа поставщику).
6 Волшебник
 
03.03.25
10:58
(5) измерение Дата не нужно. Есть Период
7 Krendel
 
03.03.25
10:59
Конфа, я так понимаю ЗУП?
8 MaryanaR
 
03.03.25
11:00
(1) ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
    ВложенныйЗапрос.ЦенаВВалюте КАК ЦенаВВалюте,
    ВложенныйЗапрос.КурсНаДатуПоступления КАК КурсНаДатуПоступления,
    ВложенныйЗапрос.ЦенаВРублях КАК ЦенаВРублях,
        ВложенныйЗапрос.Валюта КАК Валюта
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныПоступлений_РегистрСведений.Номенклатура КАК Номенклатура,
            ЦеныПоступлений_РегистрСведений.ЦенаВВалюте КАК ЦенаВВалюте,
            ЦеныПоступлений_РегистрСведений.КурсНаДатуПоступления КАК КурсНаДатуПоступления,
            ЦеныПоступлений_РегистрСведений.ЦенаВРублях КАК ЦенаВРублях,
                        ЦеныПоступлений_РегистрСведений.Валюта КАК Валюта
        ИЗ
            РегистрСведений.ЦеныПоступлений_РегистрСведений КАК ЦеныПоступлений_РегистрСведений
        ГДЕ
            ЦеныПоступлений_РегистрСведений.Дата <= &Период) КАК ВложенныйЗапрос
        ПО (ТоварыНаСкладахОстатки.Номенклатура = ВложенныйЗапрос.Номенклатура)
9 MaryanaR
 
03.03.25
11:01
(7) КА
10 Fedor-1971
 
03.03.25
11:01
(0) Вдохни, выдохни, очисти мысли и начни сначала
Какая логика отчёта "Стоимость склада" - в какой валюте формируется отчёт, на какую дату выбираются цены? (эквивалент 100 у.е. на начало отчёта, так-то, не равен на конец) Нужно приведение к одной валюте или нет? (т.е. отчёт формируем, например, в евро, а цены есть в юанях)
11 MaryanaR
 
03.03.25
11:02
(6) Период не подходит. Нужна Дата заказа поставщика, а не период, который отражает Дату Поступления.
Плюс возникают ошибки дублирования записей РС, в случае отсутствия даты.
12 MaryanaR
 
03.03.25
11:03
(10) Это все не важно. Нужно получать последнюю запись цены на дату формирования отчета.
13 Fedor-1971
 
03.03.25
11:04
(8) Знатно, тут выбраны ВСЕ предыдущие цены товара (даже в одной валюте). Собственно зачем?
14 Krendel
 
03.03.25
11:04
(9) А зачем вы заводили свой регистр, чем типовой не устроил?
15 Мультук
 
гуру
03.03.25
11:04
(5)

>> Добавила в измерения Товар, Дату, валюту

Ай, молодец!
А не судьба было посмотреть на типовой регистр "ЦеныНоменклатуры" ?


P.S.
Я тут всё.
Ибо все говорят, что я злой.
А я добрый, только вот, не нужно мисту до обеда читать
16 MaryanaR
 
03.03.25
11:05
(14) Типовой не ведется, лишние данные, не достаточно данных для задач. Свой РС регламентом заполняю в конце дня.
17 Fedor-1971
 
03.03.25
11:07
(12) ну так и выбери, через СрезПоследних или, хотя бы, максимум даты, зачем тебе валюта в отчёте если есть ЦенаВРублях?
18 MaryanaR
 
03.03.25
11:12
(17) Чтобы выводить ее в отчете.
19 Михаил Козлов
 
03.03.25
11:13
В отчете Вам нужны колонки Валюта, Цена или только Цена с пересчетом в выбранную валюту?
20 MaryanaR
 
03.03.25
11:13
(17) Срез последних использовала. Дубли те же самые.
Попробую перенести Валюту и дату в реквизиты из измерений оставить товары. Вангую, что 20 тыс поступлений не даст зарегистрировать, будет выдавать ошибку дублей в РС
21 MaryanaR
 
03.03.25
11:14
(19) Мне нужны все поля, которы я определила.
22 Маленький Вопросик
 
03.03.25
11:15
кто вас научил - в соединение таблицы делать запрос во временную... второй раз вижу данную фигню - запрос не оптимальный... корректировать будет сложнее
23 Fedor-1971
 
03.03.25
11:16
(16) Извращенка, логика такая:
1. выбираем данные остатков товаров (Поместить табОстатки)
2. Выбираем из твоего регистра данные по условиям Номенклатура в( выбрать таб.Номенклатура из табОстатков как таб) и ЦеныПоступлений_РегистрСведений.Дата <= &Период (Поместить табВсехЦен)
3. Находим дату последней цены
Выбрать таб.Номенклатура, максимум(таб.Дата) поместить табДатЦен из табВсехЦен как таб
4. левым соединением прилепляем к табДатЦен табВсехЦен по Номенклатуре и Дате (т.е. получаем одну, последнюю запись с ценой) и Поместить в табЦенНоменклатуры
5. теперь левым соединением табОстатков и табЦенноменклатуры по номенклатуре

Ну, собственно профит (если остались вопросы задавай)
24 Маленький Вопросик
 
03.03.25
11:17
(20) ты должна выбрать все зарегистрированные цены по дате ниже задаваемой, затем внутренним соединением сделать фильтр этой же таблицы цен
25 Маленький Вопросик
 
03.03.25
11:18
(23) тоже ересь пишешь - нужен "фильтр" по Внутреннему соединению.... левое у тебя все строки притянет!
26 Волшебник
 
03.03.25
11:18
красивое имя регистра:
РегистрСведений.ЦеныПоступлений_РегистрСведений

По такому принципу можно называть все объекты:
Справочник.Номенклатура_Справочник
Документ.ПоступлениеТоваровУслуг_Документ


А особенно красиво будет смотреться
ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов_ПланВидовХарактеристик
27 ptiz
 
03.03.25
11:19
(0) Если на 03.02.2025 установлена одновременно цена в нескольких валютах на один товар - какую из них считать "последней"?
(только не надо рассказывать, что "такого не будет")
28 Волшебник
 
03.03.25
11:21
А ещё очень прикольно делать периодический регистр сведений, но не пользоваться полем Период и не пользоваться СрезПоследних()
Это же так весело!
29 Волшебник
 
03.03.25
11:22
(20) Валюта должна быть измерением. Не надо портить то, что хорошо работает
30 Fedor-1971
 
03.03.25
11:25
(25) внимательно прочитай
сначала выбрали остатки товаров,
потом выбрали данные цен,
потом отфильтровали цены по дате и номенклатуре, (тут, для полной гарантии, можно взять максимум(Валюта))
к отфильтрованным ценам (!!!) приклеили данные из данных цен по Номенклатуре и Дате (добавили нужные поля из выборки цен)
и только после того как приклеили к остаткам товаров
31 Волшебник
 
03.03.25
11:25
(16) Прикольно делать подчинённый регистр сведений, но не делать по нему движения при проведении документа, а заполнять его регламентным заданием в конце дня.
Вы чё там курите?!
32 Krendel
 
03.03.25
11:29
(26) Ахаха, регистр сразу к переименованию, так как цены будут браться скорее из приобретения, а не поступления товаров ;-)
33 Маленький Вопросик
 
03.03.25
11:28
(30) в принципе согласен - на уровне школьника твой запрос сгодится... но если будут различные типы цен - максимум выберет каждый "максимум" по измерению типа цен!

ты должен это тоже знать!
34 Krendel
 
03.03.25
11:26
(31) Так же работает типовой механизм ;-)
35 Fedor-1971
 
03.03.25
11:28
(33) в предложенном регистре нет типа цен, исходим из этого (там и валюта как-то криво прикручена)
36 Маленький Вопросик
 
03.03.25
11:28
функция "максимум" выбирает ВСЕ максимумы в разрезе всех измерений.

фильтр по внутреннему - будет оптимальнее
37 Krendel
 
03.03.25
11:28
(33) Она же в регистр сразу приобритения шарашит не думая, там ни учета коллизий, ни логики
38 Волшебник
 
03.03.25
11:29
(34) А, понятно. Трава от самого вендора.
39 Krendel
 
03.03.25
14:50
(38) На прошлой недели был в Храме учета, причастился ;-)
40 Маленький Вопросик
 
03.03.25
11:32
меня больше всего "бесит" в ее запросе, то что соединяет сразу с запросом во временную таблицу!

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

причем я вижу уже этот подход второй раз за несколько дней.
41 Krendel
 
03.03.25
11:32
(40) Там нужно логику переделывать, запрос это последнее
42 Fedor-1971
 
03.03.25
11:33
(36) опять, прочитал не внимательно:
Выбрать таб.Номенклатура, максимум(таб.Дата)
поместить табДатЦен
из табВсехЦен как таб - т.е. выбираем именно максимальную дату для конкретной номенклатуры (тут, по уму, надо добавить Максимум(Валюта), но это как домашнее задание для ТС - пусть определится сама какая валюта ей нужнее или тупо любая)
43 Fedor-1971
 
03.03.25
11:35
(40) Ну, это, спокойнее - такими делами страдают и в стандартных отчётах
44 Маленький Вопросик
 
03.03.25
11:37
короче, максимум дата, мне не нравится, поэтому

вот https://infostart.ru/1c/reports/2226904/
45 Fedor-1971
 
03.03.25
11:41
(44) Так другого варианта нет, нам нужно каким-то образом гарантированно получить из выборки цен одну запись для номенклатуры (т.е. примерно, как запрос получения своего среза последних валют для каждого документа из отчёта)
46 Волшебник
 
03.03.25
11:45
(45) Нет, не нужно. Нужна цена склада на дату отчета, которая единственная.
47 Fedor-1971
 
03.03.25
11:54
(46) У неё разные валюты и нет привязки к складам
Извращение, но имеет право на жизнь - типа цены поставщиков номенклатуры в разрезе заявок (зачем ТС такое, нам неведомо)
48 Волшебник
 
03.03.25
11:59
(47) Тогда предлагаю Валюта загнать в ресурсы
49 Fedor-1971
 
03.03.25
12:19
(48) так, структуру регистра нам не показали, может там ещё что есть кроме того, что в запросе (как минимум ссылка на заявку, если совсем уж "проба пера", то и ссылка на документ поступления и цена поступления + валюта поступления)
А вот, что Измерения и что Ресурсы остаётся только гадать
50 MaryanaR
 
03.03.25
12:46
(49)  

Смотрю отчет на 03.03.2025.

01.01.25 привезли товар за 100 USD
02.01.25 привезли товар за 99 CNY

Я должна получить строку с 99 CNY, т.к. это было самое последнее поступление.

В Измерения:

Дата заказа поставщику
Номенклатура
Валюта

Ресурсы:
Цена в валюте
Курс на дату поступления
Цена в руб.

Наименования, реквизиты, сам регистр, все это для тестирования и будут подвержены корректировки в дальнейшем.

Пока задача - получить последнюю запись из регистра.
Я могу его переделать, изменить список и состав реквизитов, измерений, ресурсов.

Поэтому и отписалась сюда, чтобы понять, как лучше сделать.
51 Krendel
 
03.03.25
12:48
(51) Использовать типовой функционал+ дописать 1 механизм сборки на СКД своей цены
52 MaryanaR
 
03.03.25
12:49
(51) Типовой функционал не подходит по разным причинам.
Нужен свой регистр.
53 MaryanaR
 
03.03.25
12:52
(51) Тем более в типовом РС, такие же измерения и ресурсы. +- и проблемы будут те же, что я описала выше.
54 Krendel
 
03.03.25
12:55
(52) Ну назови хотя бы парочку?
55 Волшебник
 
03.03.25
13:02
ВЫБРАТЬ Номенклатура, 
		МАКСИМУМ(Период) КАК ДатаПоследнегоПоступления 
ПОМЕСТИТЬ ПоследниеПоступления
ИЗ РегистрСведений.ЦеныПоступлений
ГДЕ Период <= &Период
СГРУППИРОВАТЬ ПО Номенклатура
;

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

ВЫБРАТЬ
    ТоварыНаСкладах.Номенклатура КАК Номенклатура,
    ТоварыНаСкладах.ВНаличииОстаток КАК ВНаличииОстаток,
    ЕСТЬNULL(ПоследниеЦены.ЦенаВРублях, 0) КАК ЦенаВРублях,
    ТоварыНаСкладах.ВНаличииОстаток * ЕСТЬNULL(ПоследниеЦены.ЦенаВРублях, 0) КАК СуммаТовара
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ТоварыНаСкладах
        ЛЕВОЕ СОЕДИНЕНИЕ ПоследниеЦены КАК ПоследниеЦены
             ПО ТоварыНаСкладах.Номенклатура = ПоследниеЦены.Номенклатура
56 Fedor-1971
 
03.03.25
13:10
(50) запрос по типу (23) сделала? тогда показывай что получилось
57 MaryanaR
 
03.03.25
13:23
(56) ДА, по примеру из (55) сделала. Но данные не верные. По остатку на несколько тысяч больше, чем в регистре ТоварыНаСкладах.остатки

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

СГРУППИРОВАТЬ ПО
    ЦеныПоступлений.Номенклатура
;

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

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

УПОРЯДОЧИТЬ ПО
    Номенклатура
58 Волшебник
 
03.03.25
13:34
(57) Во 2-м и 3-м запросе Вам не нужна валюта и цена в валюте. Используйте запрос из (55)
59 MaryanaR
 
03.03.25
13:37
(58) но мне нужно выводить в отчете валюту и цену в валюте. Это так же нужно для остальной части отчета, которую еще не писала.
60 Волшебник
 
03.03.25
13:38
(59) Нет, не нужно. У Вас ЦенаВРуб, валюта = "рубли". Потому что Вам нужно просуммировать и получить сумму по складу
61 MaryanaR
 
03.03.25
13:40
(60) Но мне нужно получить цену в валюте, валюту и показывать в отчете руководству. Как понять, она мне не нужна?
62 MaryanaR
 
03.03.25
13:42
При проведении Поступления или Регламентом (старые документы) я заполняю валюту, курс на дату, цену в валюте и цену в руб в регистр "Цены поступлений". Их я и должна показывать в конечном итоге, но только последние на дату формирования отчета. + Остатки. Делаю по ТЗ
63 Волшебник
 
03.03.25
13:44
(61) Её нельзя просуммировать, поэтому она не нужна
64 Волшебник
 
03.03.25
13:44
(62) ТЗ писали дураки.
65 MaryanaR
 
03.03.25
13:56
(64) Согласна. В Excel табличкой)
66 MaryanaR
 
03.03.25
13:57
(64) Вы не подскажите, почему зайдя вручную в регистр Товары на складах я вижу 3 шт товара свободного, а с помощью запроса выше этих 3 шт нет. Хотя никаких отборов не стоит, кроме периода. В период эти товары попадают.
67 MaryanaR
 
03.03.25
13:57
Просто, должно быть 56 тыс, а запросом выходит 14.
68 Волшебник
 
03.03.25
13:57
(66) ВНаличии и Свободный - это разные остатки
69 MaryanaR
 
03.03.25
14:03
(68) ошиблась в написании. ВНаличииОстаток в регистре - 1 ресурс. Вот он отличается.
70 Krendel
 
03.03.25
14:13
(62) С этого и начинать надо было
(64) Безграмотные
71 Волшебник
 
03.03.25
14:15
Чтобы определить стоимость склада, нужно использовать цены продажи, а не цены поступления.
72 Krendel
 
03.03.25
14:22
(71) Так это вообще типовой отчет есть ;-)

цену надо брать среднюю с учетом скидок, но это так вкусовщина
73 Волшебник
 
03.03.25
14:23
(72) ну и всё. Расходимся, пацаны
74 Волшебник
 
03.03.25
14:23
Запрос вообще элементарный:

ВЫБРАТЬ
	Товары.Номенклатура,
	Товары.КоличествоОстаток,
	ЕСТЬNULL(Цены.Цена, 0) КАК Цена,
	Товары.КоличествоОстаток * ЕСТЬNULL(Цены.Цена, 0) КАК СуммаТовара
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Товары
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
				&Период,
				ТипЦен = &ТипЦеныПродажи
					И Валюта = &Валюта) КАК Цены
		ПО Товары.Номенклатура = Цены.Номенклатура
75 Krendel
 
03.03.25
14:23
(73) Пусть делает, деньги уплочены
76 Krendel
 
03.03.25
14:26
тренирует хитин ;-)
77 Волшебник
 
03.03.25
14:33
Если потребовали цены поступления, то получим не стоимость склада, а себестоимость склада.
Зачем может понадобиться себестоимость склада? Чтобы отразить убытки, если склад полностью сгорел.
Таким образом, очевидно, ожидается поджог склада. 🔥
78 Krendel
 
03.03.25
14:37
(77) этот отчет  тоже есть
79 Krendel
 
03.03.25
14:42
Этим мне и нравится преподавательская работа.

Хозяин, мы тебе горячую воду сделали, вот котельная, вот трубы, автоматика, запас топляка, хочешь паллетами топись, хочешь газом, даже на крайняк 50 л дизеля стоит.


Классно, но я в многоквартирном доме и у меня центральное отопление и водоснабжение
80 Волшебник
 
03.03.25
14:41
(78) Откуда Вы знаете конфигурацию?
81 Krendel
 
03.03.25
14:44
(80) понедельник, я пока еще внимательно читаю тз (9)
82 Волшебник
 
03.03.25
14:45
(81) ну ок. Всё равно свой регистр не нужен. Задачу тоже делать не надо. Авторов ТЗ — на кол
83 Krendel
 
03.03.25
14:45
В 1ю смысла вкладывать деньги нет, поэтому преположил что 2я
84 Krendel
 
03.03.25
14:47
Хотя по наименованию регистра-1я
85 СвинТуз
 
03.03.25
17:16
(0)
Что за байда?
Регистра "Партии товаров на складах" нет что ли?
У Вас себестоимость по среднему считается?
86 СвинТуз
 
03.03.25
17:18
Выглядит не понятно ...
87 Волшебник
 
03.03.25
17:20
(85) Не соответствует ТЗ. См (62)
А ты зануда
88 СвинТуз
 
03.03.25
17:23
(87)
Наверное. Типа молодая девушка?
Но выглядит дорога как не правильная.

Я сломался на "ВложенныйЗапрос".
89 Волшебник
 
03.03.25
17:25
(88) Правильный ответ в (71)
Причём есть готовый отчёт, а если хочется запросом, то см (74)
90 СвинТуз
 
03.03.25
17:26
(89)
Так то да. Я сейчас закуплю товар. Умножу цены закупки на 100.
Потом начну оценивать свои запасы.
Разбогатею ...
91 СвинТуз
 
03.03.25
17:27
Если продам ...
92 СвинТуз
 
03.03.25
17:28
Хорошо хоть налоги берутся не по оценке запасов,
а по факту продажи. То бы беда была )
93 MaryanaR
 
03.03.25
19:36
Всем спасибо, особенно (55).
Я работаю строго по ТЗ от руководства, были наняты специалисты из франчей 1С, которые сформировали ТЗ. Мои руки чисты.

Итоговая, рабочая байда выглядит следующим образом:

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

СГРУППИРОВАТЬ ПО
    ЦеныПоступлений.Номенклатура
;

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

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

УПОРЯДОЧИТЬ ПО
    Номенклатура
94 Волшебник
 
03.03.25
19:42
(93) Правильнее использовать текущие курсы валют, а не курс на дату поступления.
95 MaryanaR
 
03.03.25
20:51
(94) Понимаю, но будут смотреть именно себестоимость склада в прошлых периодах для управленческой оценки, по текущим курсам есть стандартный отчет.
96 Krendel
 
03.03.25
21:02
(95) Не поверишь
97 Волшебник
 
03.03.25
21:04
(95) Для управленческой оценки нужны текущие курсы валют.
Прошлые курсы интересны только для бухгалтерской оценки.
98 MaryanaR
 
03.03.25
21:39
(96) (97) Верю. Честно. Мне, в любом случае, пошла на пользу эта задача. Вспомнила СКД, давно не занималась, нужно поднять архивы и изучить заново. Спасибо вам за помощь)
99 Волшебник
 
03.03.25
21:41
(98) А причём тут СКД... Хотя ладно. Обращайтесь.
100 formista2000
 
03.03.25
21:41
Сто!
101 MaryanaR
 
03.03.25
21:42
(99) Ну, я делала все на СКД, поэтому вспоминала механизмы, а запросы надо заново изучать)
102 MaryanaR
 
03.03.25
21:42
(100) Поздравляю вас)
103 Волшебник
 
03.03.25
21:43
(100) Это не форум, а шапито!
104 Волшебник
 
03.03.25
21:43
(101) Поздравляю, Вы тупой бот!
105 MaryanaR
 
03.03.25
21:44
(103) Ну, он ведь выжидал, тратил время. Заслуживает поздравлений)
106 Волшебник
 
03.03.25
21:46
(105) Вы тоже долго выжидали, чтобы простой запрос вдруг обозвать СКД.
107 MaryanaR
 
03.03.25
21:50
(106) Запрос, я не обзывала СКД. Я написала, что "Мне, в любом случае, пошла на пользу эта задача. Вспомнила СКД, давно не занималась", т.к. использовала механизмы СКД для корректного отображения информации. И выше, я много раз писала, что данный запрос это лишь часть задачи, на которой я застопорилась (, и обидно, когда называют ботом. Джун, да)
108 Волшебник
 
03.03.25
21:52
(107) Вы просто морочите нам голову
109 MaryanaR
 
03.03.25
23:58
(55) Кстати, ваш запрос не учитывает данные, если в поступлении заведена позиция по нескольким ценам. А это не редкость, по крайне мере у нас. Поэтому только по дате сортировать, не выйдет.
110 Krendel
 
04.03.25
07:43
(109) Запрос-то у него правильный, проблема в архитектуре, которая изначально не верная
111 Krendel
 
04.03.25
07:59
т.е. вас постановщик, заставляет продумывать и обрабатывать возможные коллизии без ТЗ и за счет сложного запроса (хотя задача сборки цен с регистра-действительно уровня месячного джуна). Это также приведет к более серьезному уровню тестирований и коллизий, что оставит послевкусие плохо выполненной работы
112 Мультук
 
гуру
04.03.25
09:11
(109)

Дорогой друг.
Вот за эти "интимные вопросы", которые периодически всплывают, а также их решение, вы и получаете деньги.

И это хорошо (я серьезно), что мысль про "разные цены в одном документе" сформировалась у вас в голове.

У большей части народа, который отметился в этой теме, эта мысль и куча других возникла сразу же (ибо опыт). {Помните разговор милиционера и его начальника в "Бриллиантовой руке"}

Но есть  небольшой нюанс.
Здесь вам никто и ничего не должен.
Оценка советов хороших, плохих и просто вредных, их применение и ответственность
лежит только на Вас и ни на ком больше.

ИТОГО:
Удочку вам дали, пескаря поймали. А щук учитесь ловить самостоятельно :-)

Согласен с (110) и (111). Задача уже "некрасивая" и чем дальше, тем страшней.
113 СвинТуз
 
04.03.25
10:08
(93)
";

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

УПОРЯДОЧИТЬ ПО
    Номенклатура"

Франчи писали?
Обычно соединение с виртуальными таблицами не рекомендуют.
114 СвинТуз
 
04.03.25
10:11
(93)
Советую выучить как отче наш этот запрос.

При поступлении на работу часто просят нечто такое сделать.

Срез последних по набору измерений.
115 СвинТуз
 
04.03.25
10:11
Странно что работаете и не умеете )
116 MaryanaR
 
04.03.25
10:26
(110) да, архитектуру перестроила. Все работает. Спасибо.
117 Волшебник
 
04.03.25
10:36
Теперь надо учесть, что единица хранения может быть "штука", а единица для цены "упаковка". Нужно применить коэф-т пересчёта
118 Krendel
 
04.03.25
10:40
Ахаха
119 Krendel
 
04.03.25
10:41
Вообще цена ща чуть сложнее, характеристика, упаковка, серия.или смесь
120 Волшебник
 
04.03.25
11:28
Архитектуру она поправила и всё заработало... Ага, как же
121 Krendel
 
04.03.25
11:52
(120) может она не хочет видеть в качестве архитектора ее красивого решения бывшего поломоя
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.