| 
    
            
         
         | 
    
  | 
Получения остатков на каждый день | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        serg-lom89    
     21.06.17 
            ✎
    15:26 
 | 
         
        как получить остатки на каждый день?
 
        есть запрос ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d), ДЕНЬ) КАК Период ПОМЕСТИТЬ ДНИ ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ИНДЕКСИРОВАТЬ ПО Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Движения.Период КАК Период, Движения.Склад, Движения.Номенклатура, Движения.КоличествоКонечныйОстаток, Движения.КоличествоКонечныйОстаток * Движения.Номенклатура.ЕдиницаХраненияОстатков.Литраж КАК Литраж ПОМЕСТИТЬ ВТ_ОборотТовара ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, ДЕНЬ, , Склад.ТипСклада <> ЗНАЧЕНИЕ(перечисление.типыСкладов.виртуальный) {(Склад = &Склад) КАК Склад, (Номенклатура = &Номенклатура) КАК Номенклатура}) КАК Движения ИНДЕКСИРОВАТЬ ПО Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Дат.Период КАК Дата_, ЕСТЬNULL(Остатки.Склад, ЗНАЧЕНИЕ(справочник.Склады.пустаяСсылка)) КАК Склад, ЕСТЬNULL(Остатки.Номенклатура, ЗНАЧЕНИЕ(справочник.Номенклатура.пустаяСсылка)) КАК Номенклатура, ЕСТЬNULL(Остатки.КоличествоКонечныйОстаток, 0) КАК КоличествоОстаток, ЕСТЬNULL(Остатки.Литраж, 0) КАК Литраж ИЗ ДНИ КАК ВТ_Дат ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОборотТовара КАК Остатки ПО ВТ_Дат.Период = Остатки.Период и когда добавляю в скд и вовожу,получается что на начало периода и конец периода остатки правильные,а посредине периода(если строить по дням) неправильные... ЧЯДНТ?  | 
|||
| 
    1
    
        vicof    
     21.06.17 
            ✎
    15:31 
 | 
         
        Начальный остаток тоже надо выбирать и включать его в одну группу итогов с конечным остатком     
         | 
|||
| 
    2
    
        vicof    
     21.06.17 
            ✎
    15:31 
 | 
         
        И вообще, осаттки на каждый день в скд получаются более элегантно     
         | 
|||
| 
    3
    
        polosov    
     21.06.17 
            ✎
    15:32 
 | 
         
        (0) Откуда ж вы лезете, сегодня...     
         | 
|||
| 
    4
    
        serg-lom89    
     21.06.17 
            ✎
    15:36 
 | 
         
        (2) ???     
         | 
|||
| 
    5
    
        vicof    
     21.06.17 
            ✎
    15:37 
 | 
         
        (4) Через два набора данных и связи. Погуглить за тебя?     
         | 
|||
| 
    6
    
        serg-lom89    
     21.06.17 
            ✎
    15:40 
 | 
         
        (5) я думаю через 2 набора дольше маслать будет     
         | 
|||
| 
    7
    
        vicof    
     21.06.17 
            ✎
    15:45 
 | 
         
        (6) Да нихрена, испробовано не один раз.     
         | 
|||
| 
    8
    
        serg-lom89    
     21.06.17 
            ✎
    15:49 
 | 
         
        (7) и на больших объемах ведет себя нормально ,хотите сказать?     
         | 
|||
| 
    9
    
        polosov    
     21.06.17 
            ✎
    15:51 
 | 
||||
| 
    10
    
        d4rkmesa    
     21.06.17 
            ✎
    15:52 
 | 
         
        Можно попробовать для начала дополнение включить в группировке СКД: https://its.1c.ru/db/metod8dev/content/1587/hdoc     
         | 
|||
| 
    11
    
        vicof    
     21.06.17 
            ✎
    15:52 
 | 
         
        (8) Нормально     
         | 
|||
| 
    12
    
        serg-lom89    
     22.06.17 
            ✎
    10:20 
 | 
         
        все равно не вариант...если еще добавить цены товаров(стоимостную оценку склада,то тормоза  жуткие)     
         | 
|||
| 
    13
    
        serg-lom89    
     22.06.17 
            ✎
    10:22 
 | 
         
        оно же будет из одного набора к другому обращаться...вариант хороший,просто но не быстрый     
         | 
|||
| 
    14
    
        PRO100 NigGaZ    
     22.06.17 
            ✎
    10:25 
 | 
         
        А можно к производственному календарю присобачить остатки, не?
 
        он же есть почти везде  | 
|||
| 
    15
    
        vicof    
     22.06.17 
            ✎
    10:29 
 | 
         
        (12) Надо аккуратно механизм использовать, отборы добавлять, а не хреначить соединения по двум наборам.     
         | 
|||
| 
    16
    
        serg-lom89    
     22.06.17 
            ✎
    10:30 
 | 
         
        (15) с отборами понятно..но когда надо будет видно видеть всю картину ,в общем     
         | 
|||
| 
    17
    
        serg-lom89    
     22.06.17 
            ✎
    10:31 
 | 
         
        (16) вот тут и получается затык...что долго считает     
         | 
|||
| 
    18
    
        serg-lom89    
     22.06.17 
            ✎
    10:48 
 | 
         
        может у кого есть идеи как получить именно в запросе?     
         | 
|||
| 
    19
    
        _Batoo    
     22.06.17 
            ✎
    11:00 
 | 
         
        Чем (10) не устраивает? Аккуратно настроить роли для полей и СКД сама посчитает остатки на каждый день.     
         | 
|||
| 
    20
    
        1dvd    
     22.06.17 
            ✎
    11:08 
 | 
         
        Тестовое задание при собеседовании?     
         | 
|||
| 
    21
    
        serg-lom89    
     22.06.17 
            ✎
    11:24 
 | 
         
        (20) нет...отчет делаю)     
         | 
|||
| 
    22
    
        undertaker    
     22.06.17 
            ✎
    11:37 
 | 
         
        задача уже можно сказать классическая. 
 
        // таблица основная, в которой есть периоды ВЫБРАТЬ НалоговыйОбороты.Регистратор, НалоговыйОбороты.СуммаНУОборотКт, НалоговыйОбороты.Период, НалоговыйОбороты.Субконто1 КАК ОсновноеСредство, НалоговыйОбороты.КорСчет КАК КорСчет ПОМЕСТИТЬ ХозрасчетныйОбороты ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты( &ДатаНач, &ДатаКон, Регистратор, Счет В ИЕРАРХИИ (&Счет02) И НЕ Счет = &Счет09, &ВидСубконто, Организация = &Организация И Субконто1 = &ОС И КорСубконто1.ВидРасходовНУ = &Амортизация, , &ВидКорСубконто) КАК НалоговыйОбороты ; // получаем хитро остатки // в первом запросе - оборот, потом он сложится с начальным остатком из второго запроса //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК Период, ХозрасчетныйОстаткиИОбороты.Субконто1 КАК ОсновноеСредство, ХозрасчетныйОстаткиИОбороты.СуммаНУОборотДт КАК СуммаНачальныйОстатокДт ПОМЕСТИТЬ врНачальнаяСтоимостьПериодами ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, Месяц, Счет В ИЕРАРХИИ (&Счет01_), &ВидСубконто, Субконто1 = &Субконто1, , ) КАК ХозрасчетныйОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ // начальный остаток для того чтобы сложить его с оборотом (см. выше) ВЫБРАТЬ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ), ДЕНЬ, -1), МЕСЯЦ), ХозрасчетныйОстаткиИОбороты.Субконто1, ХозрасчетныйОстаткиИОбороты.СуммаНУОстатокДт ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаНач, Счет В ИЕРАРХИИ (&Счет01_), &ВидСубконто, Субконто1 = &Субконто1) КАК ХозрасчетныйОстаткиИОбороты ; // получаем остатки на каждую дату периода //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОбороты.Период, СУММА(врНачальнаяСтоимостьПериодами.СуммаНачальныйОстатокДт) КАК СуммаНачальныйОстатокДт ИЗ ХозрасчетныйОбороты КАК ХозрасчетныйОбороты ЛЕВОЕ СОЕДИНЕНИЕ врНачальнаяСтоимостьПериодами КАК врНачальнаяСтоимостьПериодами ПО ХозрасчетныйОбороты.ОсновноеСредство = врНачальнаяСтоимостьПериодами.ОсновноеСредство И (врНачальнаяСтоимостьПериодами.Период <= ХозрасчетныйОбороты.Период) СГРУППИРОВАТЬ ПО ХозрасчетныйОбороты.Период, ХозрасчетныйОбороты.ОсновноеСредство Еще вариант http://savepic.ru/14509736.jpg  | 
|||
| 
    23
    
        serg-lom89    
     22.06.17 
            ✎
    11:45 
 | 
         
        (22) ну так я вот как в ссылке делаю...вот и возникает вопрос отпимизации ...(именно так и делаю как в ссылке)     
         | 
|||
| 
    24
    
        serg-lom89    
     22.06.17 
            ✎
    15:03 
 | 
         
        есть еще такой вопрос..
 
        получается когда я считаю литраж.. Формула Движения.КоличествоКонечныйОстаток * Движения.Номенклатура.ЕдиницаХраненияОстатков.Литраж то за дней 25 ,выбивает ошибку "Ошибка SDBL"  | 
|||
| 
    25
    
        МихаилМ    
     22.06.17 
            ✎
    15:11 
 | 
         
        (24)
 
        другой вопрос в отдельной ветке задайте. не устраивайте винигрета  | 
|||
| 
    26
    
        serg-lom89    
     22.06.17 
            ✎
    15:19 
 | 
         
        (25) ок.спс)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |