Имя: Пароль:
1C
1С v8
СрезПоследних
0 Полька
 
11.11.16
10:12
Есть РС ОсновныеСпецификацииНоменклатуры.
Измерения- Номенклатура, Подразделение
Ресурс- Спецификация
Делаю СрезПоследних. Получаю, например:
01.12.2014 ППП-1 Подр1
15.01.2016 ППП-1 Подр2
Нужно, отобрать только последние по дате спецификации, дабы получить название подразделения.
1 butterbean
 
11.11.16
10:15
сначала вычислить максимум по периоду, потом соединить со срезом последних
2 evorle145
 
11.11.16
10:19
(1) да. А вот тут http://catalog.mista.ru/public/77568/ это лучше всего описано подробно.
3 NafBF
 
11.11.16
10:27
а если две записи будут на одну дату с разными подразделениями?
Проблема в архитектуре, подразделение должно было быть ресурсом
4 butterbean
 
11.11.16
10:32
(3) тогда нельзя будет сделать разные подразделения на одну дату
5 NafBF
 
11.11.16
10:37
(4) нельзя, вот я и спрашиваю
6 Полька
 
11.11.16
10:48
(3) разработчикам 1С:УПП  расскажите :)
что-то ничего я не понимаю.
Максимум по периоду- все равно ж выходят 2 записи, с максимальными датами по каждому подразделению.
7 kumena
 
11.11.16
10:49
наверное так

Выбрать
максимум(Период)
,Номенклатура

Поместить ОсновныеСпецификацииНоменклатуры

из РегистрСведений.ОсновныеСпецификацииНоменклатуры

;

Выбрать
Осн.Период
,Осн.Номенклатура
,Доп.Подразделение


Из ОсновныеСпецификацииНоменклатуры КАК Осн
Левое соединение РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК Доп.
По Осн.Период = Доп.Период
и Осн.Номенклатура = Доп.Номенклатура
8 kumena
 
11.11.16
10:49
пардон, сгруппировать забыл

Выбрать
максимум(Период)
,Номенклатура

Поместить ОсновныеСпецификацииНоменклатуры

из РегистрСведений.ОсновныеСпецификацииНоменклатуры
Сгруппировать по номенклатура

;


Выбрать
Осн.Период
,Осн.Номенклатура
,Доп.Подразделение


Из ОсновныеСпецификацииНоменклатуры КАК Осн
Левое соединение РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК Доп.
По Осн.Период = Доп.Период
и Осн.Номенклатура = Доп.Номенклатура
9 d546
 
11.11.16
10:53
а группировка после среза последних по спецификации не подойдет?
10 d546
 
11.11.16
10:55
(9) а не подойдет :) надо подразделение в конце
11 butterbean
 
11.11.16
10:56
(6) надо вычислять без группировки по подразделению естественно
12 Полька
 
11.11.16
12:58
Спасибо, это получилось. Да не все :)))
Оказались записи типа
01.11.2016 ПП1 Подр1
01.11.2016 ПП1 Подр2
Можно ли в запросе отобрать из таких пар одну запись. Какую- не важно, любую, лишь бы одну.
13 butterbean
 
11.11.16
13:01
сделай МАКСИМУМ(Подразделение)
14 kumena
 
11.11.16
13:04
Оказались записи типа
01.11.2016 ПП1 Подр1
01.11.2016 ПП1 Подр2

тогда так

Выбрать
Осн.Период
,Осн.Номенклатура
,Максимум(Доп.Подразделение)


Из ОсновныеСпецификацииНоменклатуры КАК Осн
Левое соединение РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК Доп.
По Осн.Период = Доп.Период
и Осн.Номенклатура = Доп.Номенклатура

сгруппировать по
Осн.Период
,Осн.Номенклатура

но подразделение будет случайное (по максимальной ссылке)
15 Полька
 
11.11.16
13:11
(14) хм... так я уже делала. не вышло. все равно двойные :(
16 Полька
 
11.11.16
13:19
Запрос.Текст =  "ВЫБРАТЬ
                    |    ОсновныеСпецификацииНоменклатуры.Номенклатура КАК Номенклатура,
                    |    МАКСИМУМ(ОсновныеСпецификацииНоменклатуры.Период) КАК Период
                    |ПОМЕСТИТЬ ОСН
                    |ИЗ
                    |    РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК ОсновныеСпецификацииНоменклатуры
                    |
                    |СГРУППИРОВАТЬ ПО
                    |    ОсновныеСпецификацииНоменклатуры.Номенклатура
                    |;
                    |
                    |////////////////////////////////////////////////////////////////////////////////
                    |ВЫБРАТЬ
                    |    Осн.Период,
                    |    Осн.Номенклатура КАК Номенклатура,
                    |    МАКСИМУМ(Доп.Подразделение) КАК Подразделение,
                    |    Доп.СпецификацияНоменклатуры
                    |ИЗ
                    |    ОСН КАК Осн
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК Доп
                    |        ПО Осн.Период = Доп.Период
                    |            И Осн.Номенклатура = Доп.Номенклатура
                    |
                    |СГРУППИРОВАТЬ ПО
                    |    Осн.Период,
                    |    Осн.Номенклатура,
                    |    Доп.СпецификацияНоменклатуры
                    |
                    |УПОРЯДОЧИТЬ ПО
                    |    Осн.Номенклатура.Наименование";
17 НЕА123
 
11.11.16
13:25
СпецификацияНоменклатуры
18 kumena
 
11.11.16
13:26
а да, у тебя же по 2 записи в один день может быть, значит и спецификаций две.
19 kumena
 
11.11.16
13:30
Выбрать
    Подр.Период
    ,Подр.Номенклатура
    ,Подр.Подразделение
       ,Максимум(Доп.Спецификация)
Из
    (

    Выбрать
        Осн.Период
        ,Осн.Номенклатура
        ,Максимум(Доп.Подразделение) КАК Подразделение


    Из ОсновныеСпецификацииНоменклатуры КАК Осн
        Левое соединение РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК Доп.
        По Осн.Период = Доп.Период
        и Осн.Номенклатура = Доп.Номенклатура

    Cгруппировать по
    Осн.Период
    ,Осн.Номенклатура
    
    ) КАК Подр

        Левое соединение РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК Доп
        По Подр.Период = Доп.Период
        и Подр.Номенклатура = Доп.Номенклатура
        и Подр.Подразделение = Доп.Подразделение


Сгруппировать по

    
    Подр.Период
    ,Подр.Номенклатура
    ,Подр.Подразделение
20 Полька
 
11.11.16
14:42
спасибо. сделала через пакет запросов. может и избыточнее, но мне понятнее.
Программист всегда исправляет последнюю ошибку.