| 
    
            
         
         | 
    
  | 
v7: Помогите новичку. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        tuno4er    
     28.09.12 
            ✎
    12:33 
 | 
         
        Ит2=СоздатьОбъект("БухгалтерскиеИтоги");
  
        Ит2.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит2.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,,1,); Ит2.ВыполнитьЗапрос(НачДата, КонДата, "31" ,,,3,"День",("С")); Ит2.ВыбратьПериоды(); Ит3=СоздатьОбъект("БухгалтерскиеИтоги"); Ит3.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит3.ИспользоватьСубконто(ВидыСубконто.Касса,,1); Ит3.ВыполнитьЗапрос(НачДата, КонДата, "30" ,,,3,"День",("С")); Ит3.ВыбратьПериоды(); Если ((тз.Код = "1692")) тогда Пока тз.ПолучитьСтроку() = 1 Цикл ДатаД = НачДата; Пока ДатаД <= КонДата Цикл Если ((тз.Код = "1692")) тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СНД = ит2.СНД("С") + ит3.СНД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СНД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; Если (тз.Код = "1890") Тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СКД = ит2.СКД("С") + ит3.СКД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СКД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла;  | 
|||
| 
    1
    
        mikecool    
     28.09.12 
            ✎
    12:33 
 | 
         
        отформатируй код
  
        с тебя 300р  | 
|||
| 
    2
    
        mikecool    
     28.09.12 
            ✎
    12:34 
 | 
         
        и в8 убрал, еще 300р     
         | 
|||
| 
    3
    
        tuno4er    
     28.09.12 
            ✎
    12:34 
 | 
         
        Где я напортачил, у меня почему-то СНД и СДК вытягивает какой-то бред. 
  
        Я так понял, что он мне вытягивает, СНД и СНК, только в том случае если были обороты за день, а мне надо что бы он в любом случае вытягивал мне СНД и СНК. Что в коде не так?  | 
|||
| 
    4
    
        tuno4er    
     28.09.12 
            ✎
    12:36 
 | 
         
        Ит2=СоздатьОбъект("БухгалтерскиеИтоги");
  
        Ит2.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит2.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,,1,); Ит2.ВыполнитьЗапрос(НачДата, КонДата, "31" ,,,3,"День",("С")); Ит2.ВыбратьПериоды(); Ит3=СоздатьОбъект("БухгалтерскиеИтоги"); Ит3.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит3.ИспользоватьСубконто(ВидыСубконто.Касса,,1); Ит3.ВыполнитьЗапрос(НачДата, КонДата, "30" ,,,3,"День",("С")); Ит3.ВыбратьПериоды(); Если ((тз.Код = "1692")) тогда Пока тз.ПолучитьСтроку() = 1 Цикл ДатаД = НачДата; Пока ДатаД <= КонДата Цикл Если ((тз.Код = "1692")) тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СНД = ит2.СНД("С") + ит3.СНД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СНД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; Если (тз.Код = "1890") Тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СКД = ит2.СКД("С") + ит3.СКД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СКД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла;  | 
|||
| 
    5
    
        tuno4er    
     28.09.12 
            ✎
    12:36 
 | 
         
        Как-то так.     
         | 
|||
| 
    6
    
        tuno4er    
     28.09.12 
            ✎
    12:37 
 | 
         
        Ит2=СоздатьОбъект("БухгалтерскиеИтоги");
  
        Ит2.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит2.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,,1,); Ит2.ВыполнитьЗапрос(НачДата, КонДата, "31" ,,,3,"День",("С")); Ит2.ВыбратьПериоды(); Ит3=СоздатьОбъект("БухгалтерскиеИтоги"); Ит3.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит3.ИспользоватьСубконто(ВидыСубконто.Касса,,1); Ит3.ВыполнитьЗапрос(НачДата, КонДата, "30" ,,,3,"День",("С")); Ит3.ВыбратьПериоды(); Пока тз.ПолучитьСтроку() = 1 Цикл ДатаД = НачДата; Пока ДатаД <= КонДата Цикл Если ((тз.Код = "1692")) тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СНД = ит2.СНД("С") + ит3.СНД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СНД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; Если (тз.Код = "1890") Тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СКД = ит2.СКД("С") + ит3.СКД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СКД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла;  | 
|||
| 
    7
    
        tuno4er    
     28.09.12 
            ✎
    12:37 
 | 
         
        Вроде поравнял =)     
         | 
|||
| 
    8
    
        1Сергей    
     28.09.12 
            ✎
    12:39 
 | 
         
        а нельзя было одним запросом обойтись?     
         | 
|||
| 
    9
    
        tuno4er    
     28.09.12 
            ✎
    12:40 
 | 
         
        (8) я пытался, эффект тот же.     
         | 
|||
| 
    10
    
        1Сергей    
     28.09.12 
            ✎
    12:41 
 | 
         
        Строчка откуда взялась?     
         | 
|||
| 
    11
    
        tuno4er    
     28.09.12 
            ✎
    12:41 
 | 
         
        (8) Почему-то мне выдаёт, СНД и СКД только в том случае, если были обороты по счету на этот день. Не могу понять почему =/     
         | 
|||
| 
    12
    
        tuno4er    
     28.09.12 
            ✎
    12:42 
 | 
         
        (8) Строчка = тз.НомерСтроки;     
         | 
|||
| 
    13
    
        1Сергей    
     28.09.12 
            ✎
    12:42 
 | 
         
        ты вообще в курсе, что ты в одни и то же место СКД и СНД запихиваешь?     
         | 
|||
| 
    14
    
        tuno4er    
     28.09.12 
            ✎
    12:42 
 | 
         
        (10) Перед циклом даты     
         | 
|||
| 
    15
    
        1Сергей    
     28.09.12 
            ✎
    12:43 
 | 
         
        (14) Не вижу ©     
         | 
|||
| 
    16
    
        tuno4er    
     28.09.12 
            ✎
    12:44 
 | 
         
        (13) не в одно и тоже, у меня циклом строки перебираются, и при каждом попадании в эту строку, на новую дату он мне запихивает новое значение и выводит в таблицу это значение, на эту дату.     
         | 
|||
| 
    17
    
        tuno4er    
     28.09.12 
            ✎
    12:45 
 | 
         
        (15) Ит2=СоздатьОбъект("БухгалтерскиеИтоги");
  
        Ит2.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит2.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,,1,); Ит2.ВыполнитьЗапрос(НачДата, КонДата, "31" ,,,3,"День",("С")); Ит2.ВыбратьПериоды(); Ит3=СоздатьОбъект("БухгалтерскиеИтоги"); Ит3.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит3.ИспользоватьСубконто(ВидыСубконто.Касса,,1); Ит3.ВыполнитьЗапрос(НачДата, КонДата, "30" ,,,3,"День",("С")); Ит3.ВыбратьПериоды(); Пока тз.ПолучитьСтроку() = 1 Цикл Строчка = тз.НомерСтроки; ДатаД = НачДата; Пока ДатаД <= КонДата Цикл Если ((тз.Код = "1692")) тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СНД = ит2.СНД("С") + ит3.СНД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СНД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; Если (тз.Код = "1890") Тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СКД = ит2.СКД("С") + ит3.СКД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СКД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла;  | 
|||
| 
    18
    
        tuno4er    
     28.09.12 
            ✎
    12:45 
 | 
         
        Ит2=СоздатьОбъект("БухгалтерскиеИтоги");
  
        Ит2.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит2.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,,1,); Ит2.ВыполнитьЗапрос(НачДата, КонДата, "31" ,,,3,"День",("С")); Ит2.ВыбратьПериоды(); Ит3=СоздатьОбъект("БухгалтерскиеИтоги"); Ит3.ИспользоватьПланСчетов(Константа.ПланСчетов_Бухгалтерия); Ит3.ИспользоватьСубконто(ВидыСубконто.Касса,,1); Ит3.ВыполнитьЗапрос(НачДата, КонДата, "30" ,,,3,"День",("С")); Ит3.ВыбратьПериоды(); Пока тз.ПолучитьСтроку() = 1 Цикл Строчка = тз.НомерСтроки; ДатаД = НачДата; Пока ДатаД <= КонДата Цикл Если ((тз.Код = "1692")) тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СНД = ит2.СНД("С") + ит3.СНД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СНД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; Если (тз.Код = "1890") Тогда Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СКД = ит2.СКД("С") + ит3.СКД("С"); тз.УстановитьЗначение(Строчка,"Сумма", СКД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; Иначе БылВывод = 0; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла;  | 
|||
| 
    19
    
        tuno4er    
     28.09.12 
            ✎
    12:46 
 | 
         
        (15) поправил.     
         | 
|||
| 
    20
    
        1Сергей    
     28.09.12 
            ✎
    12:49 
 | 
         
        (19) в Макете там всё нормально? в "Уровень_"+ тз.Уровень + "|Дата" в расшифровке СКД и СНД?     
         | 
|||
| 
    21
    
        1Сергей    
     28.09.12 
            ✎
    12:50 
 | 
         
        или тебя сейчас только ТЗ интересует?     
         | 
|||
| 
    22
    
        chief accountant    
     28.09.12 
            ✎
    12:51 
 | 
         
        (18) два запроса нах не нужны     
         | 
|||
| 
    23
    
        tuno4er    
     28.09.12 
            ✎
    12:51 
 | 
         
        (20) да, там всё нормлаьно, всё формируется. Проблема только в том, что СНД и СКД выбирается только в том случае если были обороты за день, по запросу. А если не было, то выбирается какая-то чушь петровна. =/     
         | 
|||
| 
    24
    
        tuno4er    
     28.09.12 
            ✎
    12:53 
 | 
         
        (22) А как это можно реализовать? =/ я уже одним запросом пытался эффект тот же, точнее хуже. Он берёт СНД и СКД только по одному счету.     
         | 
|||
| 
    25
    
        chief accountant    
     28.09.12 
            ✎
    12:53 
 | 
         
        (24) плохо пытался     
         | 
|||
| 
    26
    
        ЧеловекДуши    
     28.09.12 
            ✎
    12:53 
 | 
         
        "Гоуно код детектит" (с)     
         | 
|||
| 
    27
    
        1Сергей    
     28.09.12 
            ✎
    12:54 
 | 
         
        (26) да, ладно. любой код гвно для другого программиста     
         | 
|||
| 
    28
    
        tuno4er    
     28.09.12 
            ✎
    12:55 
 | 
         
        (25) можешь хотя бы пример кода скинуть, я посмотрю, в каком именно моменте у меня руки из ж... =/     
         | 
|||
| 
    29
    
        chief accountant    
     28.09.12 
            ✎
    12:55 
 | 
         
        (27) Этот реально оно     
         | 
|||
| 
    30
    
        chief accountant    
     28.09.12 
            ✎
    12:56 
 | 
         
        (28) смотри типовые там все есть     
         | 
|||
| 
    31
    
        tuno4er    
     28.09.12 
            ✎
    12:56 
 | 
         
        (30) это где? =/     
         | 
|||
| 
    32
    
        tuno4er    
     28.09.12 
            ✎
    12:57 
 | 
         
        (26) Ты еще не видел мою первую версию этого кода. =)     
         | 
|||
| 
    33
    
        chief accountant    
     28.09.12 
            ✎
    13:00 
 | 
         
        (32) по ходу косяк в этом 
  
        ДатаД = НачДата;  | 
|||
| 
    34
    
        1Сергей    
     28.09.12 
            ✎
    13:00 
 | 
         
        Ит2.ВыполнитьЗапрос(НачДата, КонДата, "30,31" ,,,3,"День",("С")); 
  
        Ит2.ВыбратьПериоды(); ... Ит2.ПолучитьПериод(,ДатаД); ... Ит2.ВыбратьСчета(... ...  | 
|||
| 
    35
    
        tuno4er    
     28.09.12 
            ✎
    13:01 
 | 
         
        (33) Я не об этом. с этим я разобрался =)     
         | 
|||
| 
    36
    
        chief accountant    
     28.09.12 
            ✎
    13:03 
 | 
         
        (35) Продолжай эксперимент     
         | 
|||
| 
    37
    
        1Сергей    
     28.09.12 
            ✎
    13:03 
 | 
         
        (33) это правильно     
         | 
|||
| 
    38
    
        1Сергей    
     28.09.12 
            ✎
    13:05 
 | 
         
        (37)+ там где-то есть ДатаД++, только он не всё показывает, партизан :)     
         | 
|||
| 
    39
    
        1Сергей    
     28.09.12 
            ✎
    13:11 
 | 
         
        кажется, я понял в чем косяк
  
        // Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) и (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда // СНД = ит2.СНД("С") + ит3.СНД("С"); СНД = 0; Если ((Ит2.ПолучитьПериод(,ДатаД) = 1) Тогда СНД = СНД + ит2.СНД("С"); КонецЕсли; Если (Ит3.ПолучитьПериод(,ДатаД) = 1)) Тогда СНД = СНД + ит3.СНД("С"); КонецЕсли;  | 
|||
| 
    40
    
        tuno4er    
     28.09.12 
            ✎
    13:20 
 | 
         
        (39) Вообще ничего не выбирает =/     
         | 
|||
| 
    41
    
        tuno4er    
     28.09.12 
            ✎
    13:21 
 | 
         
        Если ((тз.Код = "1692")) тогда
  
        СНД = 0; Если (Ит2.ПолучитьПериод(,ДатаД) = 1) Тогда СНД = СНД + ит2.СНД("С"); КонецЕсли; Если (Ит3.ПолучитьПериод(,ДатаД) = 1) Тогда СНД = СНД + ит3.СНД("С"); КонецЕсли; тз.УстановитьЗначение(Строчка,"Сумма", СНД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; КонецЕсли; Если (тз.Код = "1890") Тогда СКД = 0; Если (Ит2.ПолучитьПериод(,ДатаД) = 1) Тогда СКД = СКД + ит2.СКД("С"); КонецЕсли; Если (Ит3.ПолучитьПериод(,ДатаД) = 1) Тогда СКД = СКД + ит3.СКД("С"); КонецЕсли; тз.УстановитьЗначение(Строчка,"Сумма", СКД); Таб.ПрисоединитьСекцию("Уровень_"+ тз.Уровень + "|Дата"); БылВывод = 1; КонецЕсли;  | 
|||
| 
    42
    
        1Сергей    
     28.09.12 
            ✎
    13:24 
 | 
         
        (40) что-то не верится. см (18)+(39)     
         | 
|||
| 
    43
    
        chief accountant    
     28.09.12 
            ✎
    14:43 
 | 
         
        (37) по коду это фуйня какая-то, в (38) не верю     
         | 
|||
| 
    44
    
        1Сергей    
     28.09.12 
            ✎
    14:55 
 | 
         
        (43) предыдущие его ветки почитай     
         | 
|||
| 
    45
    
        chief accountant    
     28.09.12 
            ✎
    15:46 
 | 
         
        (44) лениво     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |