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