|   |   | 
| 
 | v7: Список субконто | ☑ | ||
|---|---|---|---|---|
| 0
    
        unlstu 27.08.12✎ 13:22 | 
        Помогите криворукому нубу. Идет обработка конкретных субконто из списка, но выдаются нулевые значения. УСН 1.3.
  Ж=1; Ав=СоздатьОбъект("СписокЗначений"); Ав.ДобавитьЗначение("60 Транспортная"); Ав.ДобавитьЗначение("Прочее"); Сп=СоздатьОбъект("СписокЗначений"); Пока Ж<2 цикл БИ.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности,Ав.ПолучитьЗначение(Ж)); БИ.ВыполнитьЗапрос(НачГода(ДатаНач),ДатаКон,"90.1"); БИ.ВыбратьСубконто(); если БИ.ПолучитьСубконто()=1 тогда Сп.ДобавитьЗначение(БИ.КО()); иначе Сп.ДобавитьЗначение(0); КонецЕсли; Ж=Ж+1; КонецЦикла; | |||
| 1
    
        КонецЦикла 27.08.12✎ 13:24 | 
        Пока БИ.ПолучитьСубконто.... - где?
  КонецЦикла; | |||
| 2
    
        unlstu 27.08.12✎ 13:36 | 
        (1)А если БИ.ПолучитьСубконто()=1 тогда чем плохо?     | |||
| 3
    
        Zmich 27.08.12✎ 13:41 | 
        ВидыДеятельности - справочник, надо искать элементы по наименованию.
  Ав.ДобавитьЗначение("60 Транспортная"); - этим ты добавляешь строку, а не элемент справочника. | |||
| 4
    
        chief accountant 27.08.12✎ 13:43 | 
        (2) А это
  Пока Ж<2 цикл зачем? | |||
| 5
    
        unlstu 27.08.12✎ 13:44 | 
        (4)там просто элементов больше 100 это для простоты приведено     | |||
| 6
    
        chief accountant 27.08.12✎ 13:46 | 
        (5) Какая разница сколько элементов, накуя бухзапрос в цикле?     | |||
| 7
    
        unlstu 27.08.12✎ 13:51 | 
        (6)Мне нужен доступ к конкретным субконто, создал список. С помощью цикла собираюсь получить доступ к каждому элементу списка. Без цикла идет отбор по всем субконто конкретного вида.     | |||
| 8
    
        miki 27.08.12✎ 13:52 | 
        (7)Ну и передай свой список, как параметр, в БухЗапрос.     | |||
| 9
    
        unlstu 27.08.12✎ 13:54 | 
        (8)Список в данном виде тоже игнорируется - отбираются все субконто.     | |||
| 10
    
        miki 27.08.12✎ 13:55 | 
        (9)если сувать вместо агрегата строки, то, конечно...     | |||
| 11
    
        unlstu 27.08.12✎ 13:56 | 
        (10)Это мне уже сказали. Лучше подскажите как "агрегат сунуть"     | |||
| 12
    
        Zmich 27.08.12✎ 13:59 | 
        Ав=СоздатьОбъект("СписокЗначений");
  Спр = СоздатьОбъект("Справочник.ВидыДеятельности"); Если Спр.НайтиПоНаименованию("60 Транспортная", 0, 0) = 1 Тогда Ав.ДобавитьЗначение(Спр.ТекущийЭлемент()); КонецЕсли; | |||
| 13
    
        unlstu 27.08.12✎ 14:01 | 
        (12) Спасибо     | |||
| 14
    
        chief accountant 27.08.12✎ 14:08 | 
        (7) Для начала типовую поизучай, а то таким кодом как в (0) только студентов смешить     | |||
| 15
    
        unlstu 27.08.12✎ 14:44 | 
        Теперь выводятся значения только для каждого второго субконто из списка     | |||
| 16
    
        miki 27.08.12✎ 14:49 | 
        обновленный код покажи     | |||
| 17
    
        unlstu 27.08.12✎ 14:52 | 
        Ав=СоздатьОбъект("СписокЗначений");
  ... См=СоздатьОбъект("СписокЗначений"); Спр = СоздатьОбъект("Справочник.ВидыДеятельности"); Пока Ж<22 цикл Если Спр.НайтиПоНаименованию(Ав.ПолучитьЗначение(Ж), 0, 0) = 1 Тогда См.ДобавитьЗначение(Спр.ТекущийЭлемент()); КонецЕсли; Ж=Ж+1; КонецЦикла; Сп=СоздатьОбъект("СписокЗначений"); Ж=1; БИ.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности,См); БИ.ВыполнитьЗапрос(НачГода(ДатаНач),ДатаКон,"90.1"); БИ.ВыбратьСубконто(); Пока Ж<22 цикл Если БИ.ПолучитьСубконто()=1 тогда Сп.ДобавитьЗначение(БИ.КО()); иначе Сп.ДобавитьЗначение(0); КонецЕсли; Ж=Ж+1; КонецЦикла; | |||
| 18
    
        unlstu 27.08.12✎ 14:58 | 
        Может кто-нибудь подскажет вариант как используя 
  Пока БИ.ПолучитьСубконто()=1 цикл ... КонецЦикла; к субконто не участвующим сопоставлять БИ.КО()=0. | |||
| 19
    
        miki 27.08.12✎ 14:59 | 
        (17)Тебе же в (1) ещё написали юзай Пока БИ.ПолучитьСубконто.
  Если критична последовательность, в которой надо получать субконто, то юзай свой Если, но передавай в ПолучитьСубконто конкретное значение субконто. | |||
| 20
    
        miki 27.08.12✎ 15:01 | 
        (18)Если бы не СЗ, а ТЗ, то заполнить колонку нулями, а в цикле заполнять через НайтиЗначение. Привязываться к абстрактному номеру в списке - не айс, потому и мучаешься.     | |||
| 21
    
        unlstu 27.08.12✎ 15:07 | 
        (17) Если ставить конкретное субконто, выдает надпись "Число фильтров субконто превысило допустимое значение!"     | |||
| 22
    
        chief accountant 27.08.12✎ 15:13 | 
        (18) расшифруй, не догоняю     | |||
| 23
    
        Rie 27.08.12✎ 15:15 | 
        (21) Так а сколько у тебя этих фильтров субконто?     | |||
| 24
    
        unlstu 27.08.12✎ 15:16 | 
        (22)Важна последовательность субконто. Если его можно получить, то сопоставить БИ.КО, если нет 0.
  То есть на выходе получить вид типа 15 23 5 0 22 7 0 9 | |||
| 25
    
        unlstu 27.08.12✎ 15:17 | 
        (23) Не знаю. Я нуб.     | |||
| 26
    
        chief accountant 27.08.12✎ 15:45 | 
        (24) бухзапросом пихаешь обороты в ТЗ, потом перебирашь список на предмет присутствия значений оборотов в ТЗ, если есть, то подставляешь значение, если нет, то "0"     | |||
| 27
    
        unlstu 27.08.12✎ 16:01 | 
        (26) А каким образом узнать название субконто для которого получен оборот?     | |||
| 28
    
        chief accountant 27.08.12✎ 16:09 | 
        (27)    
  Ит.ВыбратьСубконто(); Пока Ит.ПолучитьСубконто()=1 Цикл Если Ит.КО()<>0 Тогда Таб.НоваяСтрока(); Таб.Субконто=Ит.Субконто(); Таб.КО=Ит.КО(); КонецЕсли; КонецЦикла; | |||
| 29
    
        unlstu 27.08.12✎ 16:25 | 
        Спасибо за помощь и за терпение.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |