Вход | Регистрация



Как получить последнее в регистре сведений?

Как получить последнее в регистре сведений?
Я
   reznik911
 
31.01.18 - 12:35
Добрый день товарищи! Конфигурация нетиповая, платформа 8.3. Существуют единые бюджетные классификаторы (ЕБК) срок которых рассчитан на год. Есть документы на расходные классификаторы и на поступление. Создал Регистр сведений (периодичность - по позиции регистратора) для каждого вида (расход/поступ), сделал движение документов по нему. Создал обработку. Можно выбрать интервал времени и вид ЕБК (расх/пост). Для примера есть ЕКБ расход за 2017 и 2018гг.
Когда выбираешь 01,01,17 по 31,12,18г обработка должна показать документы за 2018, отбрасывая за 2017.

код:
ВЫБРАТЬ
    ЕБКРс.ФГ КАК ФГ,
    ЕБКРс.ФПГ КАК ФПГ,
    ЕБКРс.АБП КАК АБП,
    ЕБКРс.ПГ КАК ПГ,
    ЕБКРс.ППГ КАК ППГ,
    ЕБКРс.НаименованиеЭлементаРус КАК НаименованиеЭлементаРус,
    ЕБКРс.НаименованиеЭлементаКаз КАК НаименованиеЭлементаКаз,
    ЕБКРс.ДатаНачала КАК ДатаНачала,
    ЕБКРс.ДатаКонец КАК ДатаКонец
ПОМЕСТИТЬ ТабН
ИЗ
    РегистрСведений.ЕБКРс КАК ЕБКРс
ГДЕ
    ЕБКРс.ДатаНачала >= &ДатаНач
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ЕБКРс.ФГ КАК ФГ,
    ЕБКРс.ФПГ КАК ФПГ,
    ЕБКРс.АБП КАК АБП,
    ЕБКРс.ПГ КАК ПГ,
    ЕБКРс.ППГ КАК ППГ,
    ЕБКРс.НаименованиеЭлементаРус КАК НаименованиеЭлементаРус,
    ЕБКРс.НаименованиеЭлементаКаз КАК НаименованиеЭлементаКаз,
    ЕБКРс.ДатаНачала КАК ДатаНачала,
    МАКСИМУМ(ЕБКРс.ДатаКонец) КАК ДатаКонец
ИЗ
    РегистрСведений.ЕБКРс КАК ЕБКРс
        ЛЕВОЕ СОЕДИНЕНИЕ ТабН КАК ТабН
        ПО ЕБКРс.ФГ = ТабН.ФГ
            И ЕБКРс.ФПГ = ТабН.ФПГ
            И ЕБКРс.АБП = ТабН.АБП
            И ЕБКРс.ПГ = ТабН.ПГ
            И ЕБКРс.ППГ = ТабН.ППГ
            И ЕБКРс.НаименованиеЭлементаРус = ТабН.НаименованиеЭлементаРус
            И ЕБКРс.НаименованиеЭлементаКаз = ТабН.НаименованиеЭлементаКаз
ГДЕ
    ЕБКРс.ДатаКонец <= &ДатаКон

СГРУППИРОВАТЬ ПО
    ЕБКРс.ФГ,
    ЕБКРс.ФПГ,
    ЕБКРс.АБП,
    ЕБКРс.ПГ,
    ЕБКРс.ППГ,
    ЕБКРс.НаименованиеЭлементаРус,
    ЕБКРс.НаименованиеЭлементаКаз,
    ЕБКРс.ДатаНачала
 
 
   breezee
 
1 - 31.01.18 - 12:42
(0) ААААА
ВЫБРАТЬ 
    ЕБКРс.ФГ КАК ФГ, 
+ Code
    ЕБКРс.ФПГ КАК ФПГ,
    ЕБКРс.АБП КАК АБП,
    ЕБКРс.ПГ КАК ПГ,
    ЕБКРс.ППГ КАК ППГ,

А в чем проблема-то?
   reznik911
 
2 - 31.01.18 - 12:44
(1) не отбрасывает данные за 2017, всех выводит, даже если максимум стоит
   Быдло замкадное
 
3 - 31.01.18 - 12:46
ептвмть....
   FIXXXL
 
4 - 31.01.18 - 12:47
(0) >Когда выбираешь 01,01,17 по 31,12,18г 

сам же пишешь "01,01,17"
   ЦиркУехал
 
5 - 31.01.18 - 12:47
срез последних же есть....

зачем изобретать велик...
   Волшебник
 
Модератор
6 - 31.01.18 - 12:48
ВЫБРАТЬ * ИЗ РегистрСведений.ЁПТВМТ.СрезПоследних(&Дата)
   reznik911
 
7 - 31.01.18 - 12:48
(4) так я об этом и сказал постановщику задач, программисту. Я говорю в чем олгике видеть данные за 2018 указывая начало 2017
   reznik911
 
8 - 31.01.18 - 12:49
(5) юзал. Но там если Дата конец точно не указать, то вообще ниче не выводит
   GGDots
 
9 - 31.01.18 - 12:49
этот велосипед даже не поедет:)
   GGDots
 
10 - 31.01.18 - 12:54
Если запрос все таки оставить как есть, то:

- то проблема (по мимо самого запроса) в группировке - по такой группировке скорее всего будет показывать всегда все документы (уж больно много группируемых параметров)
 
 Рекламное место пустует
   hhhh
 
11 - 31.01.18 - 12:55
(8) вот у тебя
  ЕБКРс.ДатаНачала КАК ДатаНачала,
    МАКСИМУМ(ЕБКРс.ДатаКонец) КАК ДатаКонец

зачем по дате начала группируешь? То есть ты принципиально включаешь все даты начала и не даешь программе шанса.
   Antony8x
 
12 - 31.01.18 - 12:55
(9) :)
   reznik911
 
13 - 31.01.18 - 13:03
(10) -датаначала
   reznik911
 
14 - 31.01.18 - 13:05
(10) ну и дублирующих строк много было поэтому, я хоть и убираю дату начала, все равно группирует
   ЦиркУехал
 
15 - 31.01.18 - 13:11
(8) в чем проблема указать конечную дату?
   reznik911
 
16 - 31.01.18 - 13:15
(15) если указатьл дату 01,01,18 то за 2018 находит, .т.кт ищет более позднюю дату от точки.
Вот почему то с 2017 не пашет. указываю 010117 не находит
   VS-1976
 
17 - 31.01.18 - 13:17
Тебе нужны последние документа прихода / расхода по каждому коду ЕБК?
   reznik911
 
18 - 31.01.18 - 13:23
(17) да. Программист дал задание. Я всё сделал кроме даты. Он говорит не юзай виртуальную таблицу. Из регистра закинь во вложенные с условием ДатаНач>=&ДатаНач. После говорит прицепи к основной с условием ДатаКонец<=&ДатаКонец и Максимум(ДатаКонец). Я вместо вложенного использовал ВТ, дальше ерунда какая то получается по его методу
   один я дАртаньян
 
19 - 31.01.18 - 13:30
ВЫБРАТЬ
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Регистратор.МоментВремени,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.ХарактеристикаНоменклатуры,
    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена
ПОМЕСТИТЬ втДанные
ИЗ
    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&НаДату, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент.РегистраторМоментВремени,
    взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент.ТипЦен,
    взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент.Номенклатура,
    взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент.ХарактеристикаНоменклатуры,
    взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент.Цена,
    взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент.ТипЦен.Владелец КАК Контра
ИЗ
    (ВЫБРАТЬ
        втДанные.РегистраторМоментВремени КАК РегистраторМоментВремени,
        МАКСИМУМ(втДанные.ТипЦен) КАК ТипЦен,
        втДанные.Номенклатура КАК Номенклатура,
        втДанные.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        втДанные.Цена КАК Цена
    ИЗ
        (ВЫБРАТЬ
            втДанные.РегистраторМоментВремени КАК РегистраторМоментВремени,
            втДанные.Номенклатура КАК Номенклатура,
            втДанные.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            МАКСИМУМ(втДанные.Цена) КАК Цена
        ИЗ
            (ВЫБРАТЬ
                втДанные.Номенклатура КАК Номенклатура,
                втДанные.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                МАКСИМУМ(втДанные.РегистраторМоментВремени) КАК РегистраторМоментВремени
            ИЗ
                втДанные КАК втДанные
            
            СГРУППИРОВАТЬ ПО
                втДанные.Номенклатура,
                втДанные.ХарактеристикаНоменклатуры) КАК взПоследнийРегистратор
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ втДанные КАК втДанные
                ПО взПоследнийРегистратор.Номенклатура = втДанные.Номенклатура
                    И взПоследнийРегистратор.ХарактеристикаНоменклатуры = втДанные.ХарактеристикаНоменклатуры
                    И взПоследнийРегистратор.РегистраторМоментВремени = втДанные.РегистраторМоментВремени
        
        СГРУППИРОВАТЬ ПО
            втДанные.РегистраторМоментВремени,
            втДанные.Номенклатура,
            втДанные.ХарактеристикаНоменклатуры) КАК МаксимальнаяЦенаПоследнегоРегистратора
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ втДанные КАК втДанные
            ПО МаксимальнаяЦенаПоследнегоРегистратора.РегистраторМоментВремени = втДанные.РегистраторМоментВремени
                И МаксимальнаяЦенаПоследнегоРегистратора.Номенклатура = втДанные.ХарактеристикаНоменклатуры
                И МаксимальнаяЦенаПоследнегоРегистратора.ХарактеристикаНоменклатуры = втДанные.ХарактеристикаНоменклатуры
                И МаксимальнаяЦенаПоследнегоРегистратора.Цена = втДанные.Цена
    
    СГРУППИРОВАТЬ ПО
        втДанные.РегистраторМоментВремени,
        втДанные.Номенклатура,
        втДанные.ХарактеристикаНоменклатуры,
        втДанные.Цена) КАК взПоследнийРегистратормаксимальнаяЦенаОодинКонтрагент
   GGDots
 
20 - 31.01.18 - 13:35
"Программист дал задание" - получается ты программист который получил задание от программиста?

Он точно адекватно поставил задачу?
   reznik911
 
21 - 31.01.18 - 13:40
(20) я тот кто пришел учиться)). Другие языки ООП дались без проблем. Все видеоуроки смотрел гилева чистова, так по мелочи в базах исправлял. Отчеты и тд. Пришел в эту фирму. Он типа типа старшего программиста работает. Думал научат. Каждый день дают задание. Пока выполнял. Эта меня в ступор загнала
   reznik911
 
22 - 31.01.18 - 13:43
(19) ??
   GGDots
 
23 - 31.01.18 - 14:11
Может быть эта задача из серии: не мешай я занят, вот тебе какой то бред - сделай:)))

Ну как у него узнаешь как бы он сделал, поделись с остальными.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует