Имя: Пароль:
1C
1С v8
Получение данных в регистре из ТЧ документа
0 maestro-72
 
12.03.22
08:32
Тема немного корява, постораюсь объяснить. Есть достаточно большой запрос по регистру продажи. Заказчику понадобилось вытащить сумму по закупочной цене. Дата закупки указана в сериях. В измерении регистра указан НОМЕР СТРОКИ в документе, а серия указана в табличной части документа. Т.е. у меня есть из регистра Номенклатура, регистратор, номер строки в документе. а вот серии нет. Вопрос как получить серию? Там содержится дата на которую установлена цена.
Это запрос по которому получаю цену
ВЫБРАТЬ
    Таб1.Номенклатура,
    //Таб1.ХарактеристикаНоменклатуры,
    Таб1.Регистратор,
    Таб1.период,
    Таб1.периодсебест,
    Таб2.Цена
    ИЗ
    (ВЫБРАТЬ
    Серии.Владелец КАК Номенклатура,
    //ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    //ПродажиОбороты.Регистратор КАК Регистратор,
    Серии.СрокГодности КАК период,
    МАКСИМУМ(РСЦеныКомпании.Период) КАК ПериодСебест
    ИЗ
    Справочники.СерииНоменклатуры КАК Серия
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК РСЦеныКомпании
    ПО РСЦеныКомпании.ТипЦен = &ТипЦенПлановойСебестоимости И
    РСЦеныКомпании.Период <= Серии.СрокГодности И
    РСЦеныКомпании.Номенклатура = Серии.владелец
    ГДЕ
        Серии.Владелец = &Номенклатура
    СГРУППИРОВАТЬ ПО
    Серии.Вледелец,
    Серии.СрокГодности
    ) КАК Таб1
    
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Таб2
    ПО Таб2.ТипЦен = &ТипЦенПлановойСебестоимости И
    Таб1.ПериодСебест = Таб2.Период И
    Таб1.Номенклатура = Таб2.Номенклатура

А как теперь ее прикрутить к регистру продажи не пойму
1 maestro-72
 
12.03.22
08:47
Вернее запрос вот такой правильный, эт я промежуточную версию взял случайно
ВЫБРАТЬ
    Таб1.Номенклатура,
    Таб1.период,
    Таб1.периодсебест,
    Таб2.Цена
    ИЗ
    (ВЫБРАТЬ
    Серии.Владелец КАК Номенклатура,
    Серии.СрокГодности КАК период,
    МАКСИМУМ(РСЦеныКомпании.Период) КАК ПериодСебест
    ИЗ
    Справочник.СерииНоменклатуры КАК Серии
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК РСЦеныКомпании
    ПО РСЦеныКомпании.ТипЦен = &ТипЦенПлановойСебестоимости И
    РСЦеныКомпании.Период <= Серии.СрокГодности И
    РСЦеныКомпании.Номенклатура = Серии.владелец
    ГДЕ
        Серии.Владелец = &Номенклатура
    СГРУППИРОВАТЬ ПО
    Серии.Владелец,
    Серии.СрокГодности
    ) КАК Таб1
    
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Таб2
    ПО Таб2.ТипЦен = &ТипЦенПлановойСебестоимости И
    Таб1.ПериодСебест = Таб2.Период И
    Таб1.Номенклатура = Таб2.Номенклатура
2 maestro-72
 
12.03.22
09:20
содержание регистра
измерения
-Номенклатура
-ХарактеристикаНоменклатуры
-Заказпокупателя
-Договорконтрагента
-Документпродажи
-подразделение
-проект
-Организация
-контрагент
-а_номерстрокивДокументе
ресурсы
-количество
-стоимость
-стоимостьБезскидки
-НДС
3 SuperMario
 
12.03.22
10:15
Если у вас не ведется учет по сериям (их нет в составе уточняющих признаков регистров), то зачем  все это вообще?
Получи закупочную цену по ном-ре и все тут.
4 Мимохожий Однако
 
12.03.22
10:22
Посмотри, какие еще регистры привязаны к документу. Возможно, в них есть ссылка на серию. Посмотри, структуру документа. Найди, где лежит серия и как она связана с регистром.
5 SuperMario
 
12.03.22
10:32
-а_номерстрокивДокументе

это вообще жесть!
6 lubitelxml
 
12.03.22
11:17
(2) как теперь это развидеть?
7 Смотрящий
 
12.03.22
12:19
(6) Отстоишь вченощную, две заутренни, попостишься. И Бог тебя простит.
8 ДедМорроз
 
12.03.22
12:52
(5) Для него открытием будет не только то,что это номер строки в наборе записей регистра,а то,что для двкх строк с разными сериями строка в регистре может быть одна.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший