|   |   | 
| 
 | 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) лениво     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |