|
v7: Помогите передать список субконто в ИспользоватьСубконто по ОЛЕ | ☑ | ||
---|---|---|---|---|
0
CepeLLlka
29.08.11
✎
23:08
|
Парни.. подскажите пожалуйста как мне получить правильный список субконто?
У меня так сделано - Процедура ПолучитьИтогиПОП(ВидСубконто,СписокКонтрагентов,Счет) ИтогиПОП = БазаОле.CreateObject("БухгалтерскиеИтоги"); ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,1); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,,,1,,"С"); ИтогиПОП.ВыбратьСубконто(1); Пока ИтогиПОП.ПолучитьСубконто(1) = 1 Цикл Сообщить(Строка(ИтогиПОП.СКД())+ИтогиПОП.Субконто().Наименование); //Сообщить(Ит.СКД()); КонецЦикла; А список я получаю вот так - нахожу их по коду типа.. и как в мануале делаю.. Функция ЗаполнитьСпискиАвтобусная(Список) Спр = СоздатьОбъект("Справочник.Контрагенты"); СписокКонтрагентов = СоздатьОбъект("СписокЗначений"); Для н = 1 По Список.РазмерСписка() Цикл Спр.НайтиПоКоду(Список.ПолучитьЗначение(н)); СписокКонтрагентов.ДобавитьЗначение(Спр.ТекущийЭлемент()); КонецЦикла; Возврат СписокКонтрагентов; Но пишет - ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,1); Плохой тип переменной |
|||
1
CepeLLlka
29.08.11
✎
23:09
|
Если убираю СписокКонтрагентов, то всё ок..
Но мне же нужно отбирать только нужные мне.. как получить список нужных мне значений? Помогите пожалуйста.. я уже много сам гуглил и мистил.. честно честно.. |
|||
2
smaharbA
29.08.11
✎
23:09
|
ОЛЕ ОЛЕво
|
|||
3
CepeLLlka
29.08.11
✎
23:10
|
(2) :) о_О Пивко каждый вечер? Или чё за веселье?
Я кстати сёдня был на первых 4ёх часах по 8.2 ппц.. у меня ведёт не классная тётка с большими сиськами, а какой-то паренёк.. |
|||
4
smaharbA
29.08.11
✎
23:10
|
Спр = БазаОле.CreateObject("Справочник.Контрагенты");
СписокКонтрагентов = БазаОле.CreateObject("СписокЗначений"); Для н = 1 По Список.РазмерСписка() Цикл Спр.НайтиПоКоду(Список.ПолучитьЗначение(н)); СписокКонтрагентов.ДобавитьЗначение(Спр.ТекущийЭлемент()); КонецЦикла; |
|||
5
smaharbA
29.08.11
✎
23:11
|
(3) не пью
|
|||
6
CepeLLlka
29.08.11
✎
23:11
|
Я так хотел попробовать.. но мне показалось это глупым.. ща сек.. проверю...
|
|||
7
CepeLLlka
29.08.11
✎
23:11
|
И я не пью :) Редко очень..
|
|||
8
smaharbA
29.08.11
✎
23:11
|
(6) глупость в (0)
|
|||
9
CepeLLlka
29.08.11
✎
23:12
|
||||
10
smaharbA
29.08.11
✎
23:12
|
+ и Счет тоже ОЛЕ
|
|||
11
CepeLLlka
29.08.11
✎
23:15
|
(10) Неенененее.. я же ему строкой передаю.. вроде всё ок..
У меня счёт получается так - ПолучитьИтогиПОП(ВидСубконтоКонрагентыПОП,СписокСубконтоКонтрагентыПОП,"76.5"); |
|||
12
CepeLLlka
29.08.11
✎
23:15
|
Спасибо тебе большое.. вроде всё прокатило.. ща сверю только..
|
|||
13
CepeLLlka
29.08.11
✎
23:17
|
Кстати.. ты не знаешь что мне дадут после курсов?
Справку? Я хочу хотя бы профессионала сдать.. трудно это, да? |
|||
14
CepeLLlka
29.08.11
✎
23:26
|
Беда.. отладчиком проверяю.. добавляет в список мне элементы те что я хочу.. а итоги выводит по другим.. вот чудеса то..
|
|||
15
smaharbA
30.08.11
✎
06:45
|
ВидСубконто = БазаОле.ВидыСубконто.Контрагенты;
и желательно ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,1,0); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,ПолучитьПустоеЗначение(),ПолучитьПустоеЗначение(),1,ПолучитьПустоеЗначение(),"С"); |
|||
16
CepeLLlka
30.08.11
✎
06:46
|
хМм... ща попробую..
|
|||
17
CepeLLlka
30.08.11
✎
06:46
|
Лол :) Будто бы и не ложились нифига :)
|
|||
18
smaharbA
30.08.11
✎
06:56
|
+
ВыбратьСубконто(1,0,0,0,0,ПолучитьПустоеЗначение(),0) ПолучитьСубконто(1,ПолучитьПустоеЗначение(),ПолучитьПустоеЗначение()) СКД(1) хотя может и не повлияет, но по оле нужно привыкнуть передавать все параметры |
|||
19
CepeLLlka
30.08.11
✎
07:01
|
(18) :( Пичальки.. всё ввёл.. но всё равно выбирает не пойми как... кстати пока спал приснилось что так криво выбирает потому что есть ещё субконто договора что ли.. уже снится этот 1С :)
Лан.. наработе догуглю чай. |
|||
20
CepeLLlka
30.08.11
✎
11:02
|
(18) Всё у меня норм оказывается.. просто это я фишара глупый..
А не подскажете следующий момент.. По группе если делаешь отчёт.. то ведь он итог по группе получает тем что просто складывает все субконто, да? То есть если я в список субконто добавлю группу.. у меня итог по группе не отработает ведь, да? |
|||
21
ЧеловекДуши
30.08.11
✎
11:04
|
ОЛЕ Зло, бросай заниматься этим :)
|
|||
22
CepeLLlka
30.08.11
✎
11:18
|
(21) Дак я то бы бросил.. просто сказали сделать.. вот и делаю..
А ты знаешь ответ на (20)? Итог по группе самому формировать, да? Он в базе сам отдельно не хранится? Или всё же можно как-то его получить? |
|||
23
CepeLLlka
30.08.11
✎
11:50
|
Такой я фиш.. ппц.. нужно было поставить флаг ПоГруппам = 1
|
|||
24
CepeLLlka
01.09.11
✎
12:58
|
Всё же никак не могу доделать то что начал..
У меня трабла такая.. получаю черел ОЛЕ остатки.. и вот по 1му субконто всё норм.. а когда начинаю делать выборку по второму.. у меня вобще даже первых получает только одно из списка.. никак не пойму почему.. Вот это работает роцедура ПолучитьИтогиПОП(ВидСубконто,СписокКонтрагентов,СписокДоговоров,Счет) //Для н = 1 По СписокКонтрагентов.РазмерСписка() Цикл // Сообщить(Строка(СписокКонтрагентов.ПолучитьЗначение(н))); //КонецЦикла; ИтогиПОП = БазаОле.CreateObject("БухгалтерскиеИтоги"); ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,2,1); //ИтогиПОП.ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,,2,1); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,1,"С"); ИтогиПОП.ВыбратьСубконто(1); Пока ИтогиПОП.ПолучитьСубконто(1) = 1 Цикл //Если ИтогиПОП.Субконто(1).Код = "00003670" Тогда // ИтогиПОП.ВыбратьСубконто(2); // Пока ИтогиПОП.ПолучитьСубконто(2) = 1 Цикл // Сообщить(Строка(ИтогиПОП.СКД(2))+ИтогиПОП.Субконто(2).Наименование+ИтогиПОП.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); // КонецЦикла; //КонецЕсли; Сообщить(Строка(ИтогиПОП.СКД(1))+ИтогиПОП.Субконто(1).Наименование+ИтогиПОП.Субконто(1).Код); //Сообщить(Ит.СКД()); КонецЦикла; А вот это не работает Процедура ПолучитьИтогиПОП(ВидСубконто,СписокКонтрагентов,СписокДоговоров,Счет) //Для н = 1 По СписокКонтрагентов.РазмерСписка() Цикл // Сообщить(Строка(СписокКонтрагентов.ПолучитьЗначение(н))); //КонецЦикла; ИтогиПОП = БазаОле.CreateObject("БухгалтерскиеИтоги"); ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,2,1); ИтогиПОП.ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,,2,1); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,1,"С"); ИтогиПОП.ВыбратьСубконто(1); Пока ИтогиПОП.ПолучитьСубконто(1) = 1 Цикл //Если ИтогиПОП.Субконто(1).Код = "00003670" Тогда // ИтогиПОП.ВыбратьСубконто(2); // Пока ИтогиПОП.ПолучитьСубконто(2) = 1 Цикл // Сообщить(Строка(ИтогиПОП.СКД(2))+ИтогиПОП.Субконто(2).Наименование+ИтогиПОП.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); // КонецЦикла; //КонецЕсли; Сообщить(Строка(ИтогиПОП.СКД(1))+ИтогиПОП.Субконто(1).Наименование+ИтогиПОП.Субконто(1).Код); //Сообщить(Ит.СКД()); КонецЦикла; Всего лишь начинаю выбирать ещё одно субконто.. и всё.. |
|||
25
Ёпрст
01.09.11
✎
13:01
|
(24) И чего, есть с пустым субконто Договоры у тебя ?
|
|||
26
CepeLLlka
01.09.11
✎
13:06
|
(25) С пустым? В смысле?
Вобщем я убрал Фильтр по группам в ИтогиПОП.ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,,2,1); И всё сейчас заработало. Вобщем я привёл эту строку вот этому значению. ИтогиПОП.ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,,1); И заработало.. но выводятся все субконто.. а мне нужно чтобы выводил только те что в списке я ему передал бы.. Но как только я подставляю список.. снова всё перестаёт работать.. |
|||
27
CepeLLlka
01.09.11
✎
13:12
|
(25) Ёпрст3... ты же умный.. подскажи мне что не так.. я уверен, ты точно знаешь..
|
|||
28
Ёпрст
01.09.11
✎
13:20
|
(27) я не вижу конкретного субконто в строке
ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,,1); вот и спрашиваю, у тебя с пустым субконто проводки лепятся ? |
|||
29
Ёпрст
01.09.11
✎
13:23
|
+28 это при флаге 2, если че..
|
|||
30
CepeLLlka
01.09.11
✎
13:30
|
Ну да.. флаг 2 я убрал..
А конкретное субконто есть.. Просто то, что я напишу тебе в это поле переменную ничего не даст.. |
|||
31
CepeLLlka
01.09.11
✎
13:30
|
ВОт как я получаю список нужных мне субконто
|
|||
32
CepeLLlka
01.09.11
✎
13:31
|
//Коды групп договоров ООО Нива - Монолит
КодыДоговорыПОПНива = СоздатьОбъект("СписокЗначений"); КодыДоговорыПОПНива.ДобавитьЗначение("000024"); КодыДоговорыПОПНива.ДобавитьЗначение("000025"); Функция ЗаполнитьСпискиПОПДоговора(Список) СпрОле = БазаОле.CreateObject("Справочник.Договоры"); СписокДоговоров = БазаОле.CreateObject("СписокЗначений"); Для н = 1 По Список.РазмерСписка() Цикл СпрОле.НайтиПоКоду(Список.ПолучитьЗначение(н)); СписокДоговоров.ДобавитьЗначение(СпрОле.ТекущийЭлемент()); КонецЦикла; Возврат СписокДоговоров; КонецФункции // ЗаполнитьСпискиПОП И вызываю её СписокСубконтоДоговораПОП = ЗаполнитьСпискиПОПДоговора(КодыДоговорыПОПНива); |
|||
33
CepeLLlka
01.09.11
✎
13:34
|
Я когда просто указываю этот список в ИспользоватьСубконто()
То у меня по первому субконто почему то начинает получать только одно субконто.. а у меня их там ололол |
|||
34
CepeLLlka
01.09.11
✎
13:40
|
хМм... нашёл в чём дело то вроде.. у меня пчму то не находит он договора по этим кодам.. вот в этом месте..
СпрОле.НайтиПоКоду(Список.ПолучитьЗначение(н)); |
|||
35
Ёпрст
01.09.11
✎
13:44
|
(34) флаг поставь, чтоб искал во всем справочнике, а не в пределах подчинения. (если конечно, нумерация не в пределах подчинения)
|
|||
36
CepeLLlka
01.09.11
✎
13:49
|
Спасибо огромное.. ты мой бог..
Вроде отбирает.. вечером доделаю.. поехал на учёбу 8.2 в НН Курс от Раруса :) |
|||
37
CepeLLlka
02.09.11
✎
10:13
|
Снова вернулся к своим баранам.. что-то нифига так и не получилось.. сейчас у меня такой код-
роцедура ПолучитьИтогиПОП(ВидСубконто,СписокКонтрагентов,СписокДоговоров,Счет) //Для н = 1 По СписокКонтрагентов.РазмерСписка() Цикл // Сообщить(Строка(СписокКонтрагентов.ПолучитьЗначение(н))); //КонецЦикла; ИтогиПОП = БазаОле.CreateObject("БухгалтерскиеИтоги"); ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,1,1); ИтогиПОП.ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,СписокДоговоров,1,1); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,1,"С"); ИтогиПОП.ВыбратьСубконто(1); Пока ИтогиПОП.ПолучитьСубконто(1) = 1 Цикл Если ИтогиПОП.Субконто(1).Код = "00003670" Тогда ИтогиПОП.ВыбратьСубконто(2); Пока ИтогиПОП.ПолучитьСубконто(2) = 1 Цикл Сообщить(Строка(ИтогиПОП.СКД(2))+" "+ИтогиПОП.Субконто(2).Наименование+" "+ИтогиПОП.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; КонецЕсли; Сообщить(Строка(ИтогиПОП.СКД(1))+" "+ИтогиПОП.Субконто(1).Наименование+" "+ИтогиПОП.Субконто(1).Код); //Сообщить(Ит.СКД()); КонецЦикла; И выводится только почему-то разрез одного контрагента - "00003670" Не могу понять почему :( |
|||
38
CepeLLlka
02.09.11
✎
11:04
|
Вот так всё работает
роцедура ПолучитьИтогиПОП(ВидСубконто,СписокКонтрагентов,СписокДоговоров,Счет) ИтогиПОП = БазаОле.CreateObject("БухгалтерскиеИтоги"); ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,1,1); ИтогиПОП.ИспользоватьСубконто(БазаОле.ВидыСубконто.Договоры,,1,1); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,,,1,,"С"); ИтогиПОП.ВыбратьСубконто(1); Пока ИтогиПОП.ПолучитьСубконто(1) = 1 Цикл Если ИтогиПОП.Субконто(1).Код = "00003670" Тогда ИтогиПОП.ВыбратьСубконто(2); Пока ИтогиПОП.ПолучитьСубконто(2) = 1 Цикл Сообщить(Строка(ИтогиПОП.СКД(2))+" "+ИтогиПОП.Субконто(2).Наименование+" "+ИтогиПОП.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; КонецЕсли; Сообщить(Строка(ИтогиПОП.СКД(1))+" "+ИтогиПОП.Субконто(1).Наименование+" "+ИтогиПОП.Субконто(1).Код); //Сообщить(Ит.СКД()); КонецЦикла; А если подставляю свой список значений во втором случае ИспользоватьСубконто, то в выборке первого субконто у меня остаётся только "00003670"... пчму так? |
|||
39
CepeLLlka
02.09.11
✎
11:41
|
Попробовал локально из базы такие итоги получить.. и ничё не получилось.. а я думал проблема в OLE
А проблема в моей голове наверное.. |
|||
40
CepeLLlka
02.09.11
✎
11:51
|
Ну подскажите же кто-нибудь...
ВОт как я стал делать.. роцедура ПолучитьИтоги(ВидСубконто,СписокКонтрагентов,СписокДоговоров,Счет) ИтогиПОП = СоздатьОбъект("БухгалтерскиеИтоги"); ИтогиПОП.ИспользоватьСубконто(ВидСубконто,СписокКонтрагентов,1,1); ИтогиПОП.ИспользоватьСубконто(ВидыСубконто.Договоры,,1,1); ИтогиПОП.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,,,1,,"С"); ИтогиПОП.ВыбратьСубконто(1); Пока ИтогиПОП.ПолучитьСубконто(1) = 1 Цикл Если ИтогиПОП.Субконто(1).Код = "00003670" Тогда ИтогиПОП.ВыбратьСубконто(2); Пока ИтогиПОП.ПолучитьСубконто(2) = 1 Цикл Сообщить(Строка(ИтогиПОП.СКД(2))+" "+ИтогиПОП.Субконто(2).Наименование+" "+ИтогиПОП.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; КонецЕсли; Сообщить(Строка(ИтогиПОП.СКД(1))+" "+ИтогиПОП.Субконто(1).Наименование+" "+ИтогиПОП.Субконто(1).Код); //Сообщить(Ит.СКД()); КонецЦикла; И тоже самое.. как только список сую этот.. так сразу первая выборка работать не хочет.. |
|||
41
CepeLLlka
02.09.11
✎
12:32
|
Будьте добры, покажите пример когда где в БухгалтерскиеИтоги используются два субконто и оба они отбираются по спискам, а не все..
|
|||
42
CepeLLlka
02.09.11
✎
12:43
|
Никто не дружит уже со мной :(
|
|||
43
CepeLLlka
02.09.11
✎
12:53
|
Ок.. создам новую тему.. может кто отпишет..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |