|
v7: ИспользоватьСУбконто() Можно ли указать два списка субконто? | ☑ | ||
---|---|---|---|---|
0
CepeLLlka
02.09.11
✎
13:15
|
Дело вот в чём.. просто мне кажется что так нельзя в принципе.. а я мучаюсь.. вот..
Итак.. вот код.. смотрите пока.. а внизу я распишу всё.. Итоги = СоздатьОбъект("БухгалтерскиеИтоги"); Итоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты,СписокКонтрагентов,1,1); Итоги.ИспользоватьСубконто(ВидыСубконто.Договоры,СписокДоговоров,1,1); Итоги.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет); Итоги.ВыбратьСубконто(1); Пока Итоги.ПолучитьСубконто(1) = 1 Цикл Если Итоги.Субконто(1).Код = "00003670" Тогда Итоги.ВыбратьСубконто(2); Пока Итоги.ПолучитьСубконто(2) = 1 Цикл //Проверка на просроченность.. Сообщить(Строка(Итоги.СКД(2))+" "+Итоги.Субконто(2).Наименование+" "+Итоги.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; КонецЕсли; Сообщить(Строка(Итоги.СКД(1))+" "+Итоги.Субконто(1).Наименование+" "+Итоги.Субконто(1).Код); КонецЦикла; Мне нужно получить итоги по определённому кол-ву контрагентов, а у одного из этих контрагентов нужно получить итоги ещё в разрезе второго субконто -Договоры, но не все договоры нужны.. а только две группы договоров.. и вот как только я передаю в Итоги.ИспользоватьСубконто(ВидыСубконто.Договоры,СписокДоговоров,1,1); Этот списокДоговоров то у меня сразу слетает первая выборка.. и в ней остаётся только контрагент кому принадлежат эти договоры.. что я не так делаю и как мне выполнить мою задачу? |
|||
1
zak555
02.09.11
✎
13:16
|
это я удачно защёл
|
|||
2
zak555
02.09.11
✎
13:16
|
что в
СписокКонтрагентов СписокДоговоров ??? |
|||
3
CepeLLlka
02.09.11
✎
13:17
|
(2) Там списки же :)
Там ссылки на элементы справочников.. |
|||
4
zak555
02.09.11
✎
13:18
|
> Если Итоги.Субконто(1).Код = "00003670" Тогда
это на куя ? |
|||
5
CepeLLlka
02.09.11
✎
13:20
|
Я же написал в (0) Что по одному из контрагентов мне нужно получить ещё данные в разрезе договоров..
|
|||
6
zak555
02.09.11
✎
13:21
|
(5) а по другим контрам не надо ?
|
|||
7
CepeLLlka
02.09.11
✎
13:22
|
(6) Да.. по другим не надо..
|
|||
8
zak555
02.09.11
✎
13:23
|
в СписокДоговоров этот договор ?
|
|||
9
CepeLLlka
02.09.11
✎
13:23
|
Поэтому в СписокДоговоров я передаю ссылки на две группы договоров контрагента 00003670
Списки получаю вот так.. но дело не в них 100% Функция ЗаполнитьСпискиДоговора(Список) СпрКонтрагенты = СоздатьОбъект("Справочник.Контрагенты"); СпрКонтрагенты.НайтиПоКоду("00003670"); СпрДоговора = СоздатьОбъект("Справочник.Договоры"); СпрДоговора.ИспользоватьВладельца(СпрКонтрагенты.ТекущийЭлемент()); СписокДоговоров = СоздатьОбъект("СписокЗначений"); Для н = 1 По Список.РазмерСписка() Цикл СпрДоговора.НайтиПоКоду(Список.ПолучитьЗначение(н),1); СписокДоговоров.ДобавитьЗначение(СпрДоговора.ТекущийЭлемент()); КонецЦикла; Возврат СписокДоговоров; КонецФункции |
|||
10
VladZ
02.09.11
✎
13:23
|
(0) За такое могут и поколотить:
Если Итоги.Субконто(1).Код = "00003670" Тогда Сделай список контрагентов, которых нужно развернуть по договорам. |
|||
11
Рэйв
02.09.11
✎
13:25
|
(0)Не фильтруй договоры по спискам вообще. Просто у нужных контров выбирай второе субконто и проверяй на вхождение в нужный список есл тебе не все договоры нужны
|
|||
12
zak555
02.09.11
✎
13:26
|
Итоги = СоздатьОбъект("БухгалтерскиеИтоги");
Итоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты,СписокКонтрагентов,1,0); Итоги.ИспользоватьСубконто(ВидыСубконто.Договоры,,1,0); Итоги.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет); Итоги.ВыбратьСубконто(1); Пока Итоги.ПолучитьСубконто(1) = 1 Цикл Если Итоги.Субконто(1) = СпрКонтрагентыПоКотромуНужноРазвернуть Тогда Итоги.ВыбратьСубконто(2); Пока Итоги.ПолучитьСубконто(2) = 1 Цикл //Проверка на просроченность.. Сообщить(Строка(Итоги.СКД(2))+" "+Итоги.Субконто(2).Наименование+" "+Итоги.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; КонецЕсли; Сообщить(Строка(Итоги.СКД(1))+" "+Итоги.Субконто(1).Наименование+" "+Итоги.Субконто(1).Код); КонецЦикла; |
|||
13
CepeLLlka
02.09.11
✎
13:28
|
(11)Да, но тогда у меня будут выбирать лишние данные из базы.. разве это правильно?
|
|||
14
CepeLLlka
02.09.11
✎
13:33
|
(11) То есть вот так?
Итоги = СоздатьОбъект("БухгалтерскиеИтоги"); Итоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты,СписокКонтрагентов,1,0); Итоги.ИспользоватьСубконто(ВидыСубконто.Договоры,,1,0); Итоги.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет); Итоги.ВыбратьСубконто(1); Пока Итоги.ПолучитьСубконто(1) = 1 Цикл Если Итоги.Субконто(1).Код ="00003670" Тогда Итоги.ВыбратьСубконто(2); Пока Итоги.ПолучитьСубконто(2) = 1 Цикл Если СписокДоговоров.НайтиЗначение(Итоги.Субконто(2) <> 0 Тогда Сообщить(Строка(Итоги.СКД(2))+" "+Итоги.Субконто(2).Наименование+" "+Итоги.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЕсли; КонецЦикла; КонецЕсли; Сообщить(Строка(Итоги.СКД(1))+" "+Итоги.Субконто(1).Наименование+" "+Итоги.Субконто(1).Код); КонецЦикла; |
|||
15
zak555
02.09.11
✎
13:34
|
CepeLLlka ты в упор не видишь (12) ?
|
|||
16
CepeLLlka
02.09.11
✎
13:40
|
А что в (12) Ты изменил проверку на нужного контрагента из проверки по коду, на проверку по ссылке, и больше ничего..
В твоём варианте у меня на экран вылезут все договора, а мне нужны только группы.. И ещё.. хотелось бы узнать почему по Коду то нельзя? Сообщаю что у меня каждый контрагент и каждый договор в этой обработке отбирается только по коду.. так как я не знаю как мне открыть форму подбора из базы подключённой по OLE |
|||
17
Рэйв
02.09.11
✎
13:43
|
(13)Ну не мильён же договоров у тебя на каждом контре?:) Вроде не 80-е прошлого века чтобы каждый байт памяти экономить.
|
|||
18
CepeLLlka
02.09.11
✎
13:47
|
Ну а так-то.. значит я был прав, да? Так нельзя организовать выборку как я захотел, да?
|
|||
19
Рэйв
02.09.11
✎
13:49
|
(18)Можно. Вбей в один список все договора. При выборе второго субконто лишние, которые не относятся к текущему контру, отсеятся
|
|||
20
zak555
02.09.11
✎
13:49
|
повторяю вопрос : что в (2) ?!"
|
|||
21
CepeLLlka
02.09.11
✎
13:49
|
А никто не может показать рабочий код по отрытию формы подбора из базы подключённой по OLE?
|
|||
22
CepeLLlka
02.09.11
✎
13:50
|
(20)
Там два объекта типа - СписокЗначений в которых перечислены контрагенты и договоры.. |
|||
23
CepeLLlka
02.09.11
✎
13:50
|
Всем большое спасибо.. я пошёл кушать и на курсы.. скоро покажу сертификат вам :)
|
|||
24
Рэйв
02.09.11
✎
13:50
|
(21) Формы не ходют по оле.
Можешь заполнить ТЗ и попытаться через нее организовать подбор |
|||
25
zak555
02.09.11
✎
13:52
|
(22) там элементы или группы ?
|
|||
26
zzerro
02.09.11
✎
13:55
|
(0) Так в чем пробелма то?
Создай еще один объект бухитоги для того контрагента с отбором по субконто1 и разворачиванием по субконто2 |
|||
27
zak555
02.09.11
✎
14:00
|
(26) не учи плохому
|
|||
28
CepeLLlka
02.09.11
✎
22:25
|
(27) Это не плохое.. мне кажется, что это лучше чем выбирать ненужные данные из базы.. ведь таким запросом я выбираю договора всех контрагентов указанных в ИспользоватьСубконто1
|
|||
29
CepeLLlka
02.09.11
✎
22:26
|
Спокойной ночи.. я спатки.
|
|||
30
zak555
03.09.11
✎
08:30
|
(28) всё делается ОДНИМ запросом
|
|||
31
CepeLLlka
03.09.11
✎
08:38
|
Эээм... так одним мы лишние данные будем выбирать.. или я чего-то не понимаю? :(
|
|||
32
zak555
03.09.11
✎
08:46
|
напиши нормально :
1. исходные полные данные 2. что нужно получить |
|||
33
CepeLLlka
03.09.11
✎
08:51
|
В (0) Всё написано.. могу дать ещё саму обработку.
http://files.mail.ru/YRFT9W Но тут я по OLE подключаюсь к базе.. |
|||
34
zak555
03.09.11
✎
08:58
|
заново : в СписокДоговоров группы договоров ? о_О
|
|||
35
CepeLLlka
03.09.11
✎
08:58
|
(34) Да.. что такого?
|
|||
36
zak555
03.09.11
✎
08:59
|
но тебе нужно эти договора развернуть ?
|
|||
37
CepeLLlka
03.09.11
✎
08:59
|
(36) Нет не нужно.. мне нужно у одного контрагента получить данные по этим двум группам..
|
|||
38
zak555
03.09.11
✎
09:00
|
т.е. СписокДоговоров только группы ?
|
|||
39
CepeLLlka
03.09.11
✎
09:00
|
Но так нельзя.. потому что (19) Он сказал что отсеятся..
|
|||
40
CepeLLlka
03.09.11
✎
09:01
|
(38) лол.. смотри (35) Ты издеваешься?
Там ссылки на две группы договоров.. |
|||
41
zak555
03.09.11
✎
09:01
|
что за счёт ?
|
|||
42
CepeLLlka
03.09.11
✎
09:05
|
(41) 76,5
|
|||
43
zak555
03.09.11
✎
09:06
|
Итоги = СоздатьОбъект("БухгалтерскиеИтоги");
Итоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты,СписокКонтрагентов,1,0); Итоги.ИспользоватьСубконто(ВидыСубконто.Договоры,,1,1); Итоги.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,,,1,,5); Итоги.ВыбратьСубконто(1); Пока Итоги.ПолучитьСубконто(1) = 1 Цикл Если Итоги.Субконто(1) = СпрКонтрагентыПоКотромуНужноРазвернуть Тогда Для н = 1 по СписокДоговоров.РазмерСписка() Цикл Если Итоги.ПолучитьСубконто(2,,СписокДоговоров.ПолучитьЗначение(н)) = 0 Цикл Сообщить("что-то с группой"); Продолжить; КонецЕсли; Сообщить(Строка(Итоги.СКД(2))+" "+Итоги.Субконто(2).Наименование+" "+Итоги.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; КонецЕсли; Сообщить(Строка(Итоги.СКД(1))+" "+Итоги.Субконто(1).Наименование+" "+Итоги.Субконто(1).Код); КонецЦикла; |
|||
44
Banned
03.09.11
✎
09:10
|
facepalm.png
|
|||
45
CepeLLlka
03.09.11
✎
09:13
|
(43) Чем в 14 тебя не устроило?
Ты понимашь что таким образом мы выбираем из базы договора всех контрагентов... А если будет два запроса.. то мы выбереём только контрагентов в одно случае.. а в другом только одного контрагента и все его договора.. |
|||
46
zak555
03.09.11
✎
09:21
|
теперь пошло : тогда да - два запроса =)
Поз = СписокКонтрагентов.НайтиЗначение(СпрКонтрагентыПоКотромуНужноРазвернутьДоговоры); Если Поз > 0 Тогда СписокКонтрагентов.УдалитьЗначение(Поз); КонецЕсли; Итоги = СоздатьОбъект("БухгалтерскиеИтоги"); Итоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты,СписокКонтрагентов,2,0); Итоги.ВыбратьСубконто(1); Пока Итоги.ПолучитьСубконто(1) = 1 Цикл Сообщить(Строка(Итоги.СКД(1))+" "+Итоги.Субконто(1).Наименование+" "+Итоги.Субконто(1).Код); КонецЦикла; Итоги.ИспользоватьСубконто(ВидыСубконто.Договоры,СписокДоговоров,2,0); Итоги.ВыполнитьЗапрос(ДатаОтчета,ДатаОтчета,Счет,,,1,,5); Итоги.ВыбратьСубконто(1); Пока Итоги.ПолучитьСубконто(1) = 1 Цикл Сообщить(Строка(Итоги.СКД(2))+" "+Итоги.Субконто(2).Наименование+" "+Итоги.Субконто(2).Код+"ОЛололо это НИва в разрезе договоров"); КонецЦикла; |
|||
47
zak555
03.09.11
✎
09:23
|
кстати, скд у АП - свернутое сальдо
|
|||
48
Cthulhu
03.09.11
✎
14:20
|
(47): даладно?.. )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |