|
v7: Ссылка на счет в запросе | ☑ | ||
---|---|---|---|---|
0
YurAnt
29.10.13
✎
09:39
|
Доброго времени уток, господа - форумчане. Вопрос следующий:
Как в v7.7: БУ 4.5 в запросе получить ссылку на счет... подобно тому как это делает "СчетПоКоду()". Просто перебирать выборку из Выписок на предмет Док.КоррСчет = СчетПоКоду("62.1") и делать это в цикле совсем не комильфо... Вот думаю подобные проверки впилить в запрос условием, подскажите как сие реализовывается ? С ув. Yurant |
|||
1
YurAnt
29.10.13
✎
09:41
|
можно конечно передавать счет в запрос параметром...
но оно ж какбе константа, если так можно выразиться |
|||
2
zak555
29.10.13
✎
09:41
|
зачем тебе выборка из документов, если нужно в бух 4.5 использовать бухЗапрос к проводкам ?
|
|||
3
пипец
29.10.13
✎
09:42
|
точно так же - найти покоду
|
|||
4
пипец
29.10.13
✎
09:42
|
+ через создать объект - и будет тебе ссылка ;))
|
|||
5
YurAnt
29.10.13
✎
09:44
|
(2) ну видимо... потому что я еще не разобрался в принципиальной разнице м/у Запросом и БухЗапросом... ибо 1 неделю как на 7ке :)
но суть в том что мне нужно выбирать список документов. Выписок. С условием отбора по коррсчету. (4) эм... создать объект в запросе? О_о я правильно вас понимаю ? речь то о том как это в запросе сделать |
|||
6
zak555
29.10.13
✎
09:45
|
(5) делай бухЗапрос
|
|||
7
пипец
29.10.13
✎
09:48
|
(5) в запросе переменная , перед этип определение оной или вообще внешняя функция
ЗЫ и чо действительно ,бух запрос чем не устраивает ? |
|||
8
YurAnt
29.10.13
✎
09:57
|
мб просто интерфейс не знаком (по-русски как это сделать), но вот сейчас на закладке "Ограничений получения итогов по коррсчетам и т.п." не понимаю как это можно впилить.
Если Док.Приход<>0 Тогда Если(Док.Коррсчет<>СчетПоКоду("62.1")) и (Док.Коррсчет<>СчетПоКоду("62.2")) Тогда Продолжить; КонецЕсли; Иначе Если(Док.Коррсчет<>СчетПоКоду("60.1")) Тогда Продолжить; КонецЕсли; КонецЕсли; Т.е. я не могу тупо выбрать "тот, тот, и вон тот счет пожалуйста в выборку мне" а нечто типа Условия: ((Док.Приход<>0 И ок.Коррсчет<>СчетПоКоду("62.1") И Док.Коррсчет<>СчетПоКоду("62.2")) ИЛИ (Док.Приход=0 И Док.Коррсчет<>СчетПоКоду("60.1"))) это уже вполне реально... вот и заморочился как передать вот это самое СчетПоКоду |
|||
9
YurAnt
29.10.13
✎
09:59
|
хтоя мб конечно это всё лишь извращения валенка на которого свалилась семерка (а он привык к Контрл+Пробелам И Удобным КонструкторамЗапроса) :)
|
|||
10
1dvd
29.10.13
✎
10:01
|
(8) Если ты восьмерошник, то пойми, что в 7.7 в запросе нет Установить("Параметр", параметр). Запрос в 7.7 все параметры берет тупо из контекста.
Счет621 = СчетПоКоду("62.1"); ТекстЗапроса = " ... ... Условие(Док.КоррСчет = Счет621); ..." |
|||
11
YurAnt
29.10.13
✎
10:02
|
(10) благодарю :)
|
|||
12
Тьма
29.10.13
✎
10:05
|
(9)В 7.7 есть конструктор запросов. Пошарься по менюшкам в Конфигураторе.
|
|||
13
zak555
29.10.13
✎
10:05
|
(8) ты лучше напиши, что надо получить
|
|||
14
пипец
29.10.13
✎
10:11
|
чойта низя счет тот тот и вон тот - счета в список значений и впирйот
|
|||
15
YurAnt
29.10.13
✎
14:42
|
Вот на такое ругаицца...
говорит ((Приход=0 И (КоррСчет=Счет621 ИЛИ КоррСчет=Счет622)) ИЛИ (Приход<>0 И КоррСчет=Счет601)) неправильное использование арифметич-й или стр опер-и. //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ВыпискиВКнигу) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |ТекущийДокумент = Документ.Выписка.ТекущийДокумент; |ДатаДок = Документ.Выписка.ДатаДок; |ВремяДок = Документ.Выписка.ВремяДок; |НомерДок = Документ.Выписка.НомерДок; |НазначениеПлатежа = Документ.Выписка.НазначениеПлатежа; |Приход = Документ.Выписка.Приход; |Расход = Документ.Выписка.Расход; |КоррСчет = Документ.Выписка.КоррСчет; |Субконто1 = Документ.Выписка.Субконто1; |Субконто2 = Документ.Выписка.Субконто2; |Субконто3 = Документ.Выписка.Субконто3; |ДокументПоставки = Документ.Выписка.ДокументПоставки; |НомерДокВходящий = Документ.Выписка.НомерДокВходящий; |ДатаДокВходящий = Документ.Выписка.ДатаДокВходящий; |Условие((Приход=0 И (КоррСчет=Счет621 ИЛИ КоррСчет=Счет622)) ИЛИ (Приход<>0 И КоррСчет=Счет601)); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; |
|||
16
YurAnt
29.10.13
✎
14:49
|
есть подозрение уж не в строках ли дело ?
а то мб мало того что надо выбрать док так и строки перебрать както-надобно? ибо в выписке лишь Валюта и БанковскийСчет в шапке... остальное в ТЧ |
|||
17
Хряк
29.10.13
✎
14:51
|
скобок маловато
|
|||
18
YurAnt
29.10.13
✎
14:56
|
Условие((Приход=0 И (КоррСчет=Счет621 ИЛИ КоррСчет <<?>> =Счет622)) ИЛИ (Приход<>0 И КоррСчет=Счет601));
на после коррсчета ругаецц... (17) а оп поводу скобок, ну хз, разбил на логические блоки http://savepic.su/3647174.png в 8ке вроде бы обилие скобок не вызывало краша логики... |
|||
19
YurAnt
29.10.13
✎
15:04
|
(13) zak555, а получить я пытаюсь вот что...
имеется хаос и вакханалия в виде перебора в цикле документов по условиям (причем 2 штуки). я хочу засунуть весь этот ужас в запросы с условиями, ибо сейчас тут 2 дока... если бухам потребуется добавить либо еще 1 либо тупо возрастет кол-во документов... обработка повесится. Первый перебор... |
|||
20
YurAnt
29.10.13
✎
15:06
|
ТаблУчета = СоздатьОбъект("ТаблицаЗначений");
|
|||
21
YurAnt
29.10.13
✎
15:06
|
да что за бред... не выкладывается код целиком((
сек... щас найду способ |
|||
22
zak555
29.10.13
✎
15:07
|
код запроса покажи
|
|||
23
YurAnt
29.10.13
✎
15:13
|
||||
24
YurAnt
29.10.13
✎
15:14
|
это то что хочу оптимизировать. Код запроса см в(15)
|
|||
25
YurAnt
29.10.13
✎
15:17
|
хочу попытаться разбить на 2 запроса с условиями...(упихать в 1 запрос чувствую будет туговато на 7ке ибо будет каша) а в 2, ну собственно над этим и корпею
|
|||
26
zak555
29.10.13
✎
15:19
|
СЗ_корсчетов = создатьОбъект("СписокЗначений");
СЗ_корсчетов.ДобавитьЗначение(Счет621); СЗ_корсчетов.ДобавитьЗначение(Счет622); СЗ_корсчетов.ДобавитьЗначение(Счет601); БИ.ИспользоватьКорСубконто(); БИ.ИспользоватьКорСубконто(); БИ.ИспользоватьКорСубконто(); БИ.ВыполнитьЗапрос(ВыбНачПериода , ВыбКонПериода, СчетБанка, СЗ_корсчетов,,2,"Проводка"); |
|||
27
Cthulhu
29.10.13
✎
15:30
|
(26): не надо фильтр по счетам давать в виде СЗ.
лучше - в вите строки из кодов счетов, разделенных запятыми. |
|||
28
YurAnt
29.10.13
✎
15:32
|
(26),(27) благодарю, теперь дабы сие переварить курю что есть Конструктор_бух_зап-в и в чем его отличия от КЗ
|
|||
29
пипец
29.10.13
✎
15:49
|
хе а еще можно бухзапросом по проводкам / операциям с получением документа
|
|||
30
ДенисЧ
29.10.13
✎
15:50
|
(27) расстрелять.
|
|||
31
1dvd
29.10.13
✎
15:51
|
(30) почему?
|
|||
32
zak555
29.10.13
✎
15:55
|
(27) почему ?
|
|||
33
vladko
29.10.13
✎
15:57
|
в 8ке бы так сработало:
(Приход=0 И (КоррСчет=Счет621 ИЛИ КоррСчет=Счет622)) ИЛИ (Приход<>0 И КоррСчет=Счет601) а в 7ке надо ((Приход=0) И ((КоррСчет=Счет621) ИЛИ (КоррСчет=Счет622))) ИЛИ ((Приход<>0) И (КоррСчет=Счет601)) |
|||
34
ДенисЧ
29.10.13
✎
16:29
|
(31) по определению.
|
|||
35
Cthulhu
29.10.13
✎
17:24
|
(30): убей себя, пионэр. проверено на практике.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |