|
v7: не отрабатывает условие в запросе . Что я делаю не так? | ☑ | ||
---|---|---|---|---|
0
Владимир1С
08.06.20
✎
13:44
|
ПЕРИОД С ДатаНачала По ДатаКонца;
Валюта=Регистр.Касса.Валюта, Регистр.РасчетныйСчет.Валюта ; Сум=Регистр.Касса.Наличность, Регистр.РасчетныйСчет.безнал ; СумКрт=Регистр.Касса.КартаСум; СумРС=Регистр.РасчетныйСчет.безнал ; Док=Регистр.Касса.ТекущийДокумент, Регистр.РасчетныйСчет.ТекущийДокумент; мп = Регистр.Касса.ТекущийДокумент.МестоПродажи; Группировка Валюта Упорядочить по Валюта.Наименование; Группировка Док;Условие (МестоПродажи=мп); Функция НОст=НачОст(Сум); Функция НОстКрт=НачОст(СумКрт); Функция НОстРС=НачОст(СумРС); Функция КОст=КонОст(Сум); Функция КОстКрт=КонОст(СумКрт); Функция КОстРС=КонОст(СумРС); Функция ПрихСумм=Приход(Сум); Функция ПрихСуммКрт=Приход(СумКрт); Функция ПрихСуммРС=Приход(СумРС); Функция РасхСумм=Расход(Сум); Функция РасхСуммКрт=Расход(СумКрт); Функция РасхСуммРС=Расход(СумРС); |
|||
1
Ёпрст
08.06.20
✎
13:46
|
ТекущийДокумент выкини, для начала везде из кода
|
|||
2
Ёпрст
08.06.20
✎
13:46
|
И.. при вычислении остатка..эта шляпа не будет работать
|
|||
3
Владимир1С
08.06.20
✎
14:00
|
Ладно, хорошо, итоги не будет рассчитывать. Что и как изменить, чтобы условие по МестуПродажи учитывалось?
|
|||
4
tgu82
08.06.20
✎
14:11
|
(3) Я понимаю так: Если речь про оборотный запрос то вполне можно через ТекущийДокумент а вот если
запрос по остаткам то тогда МестоПродажи должно быть измерением регистра а не только реквизитом документа. |
|||
5
Владимир1С
08.06.20
✎
14:33
|
(4) Спасибо
|
|||
6
Cthulhu
08.06.20
✎
14:45
|
по такому условию ты выдерешь только данные из регистра Касса.
выкинь из запроса регистр РасчетныйСчет в условии переставь Регистр.Касса.ТекущийДокумент.МестоПродажи=МестоПродажи остатки по-документно ты не получишь. хотя можно извратиться - сразу после выполнения запроса (до перебора результат) ты можешь получить текущие начальные и конечные остатки за весь период. и потом, перебирая группировку по документам - можешь вычислять текущий конечный остаток по текущему начальному остатку плюс оборот |
|||
7
Cthulhu
08.06.20
✎
15:07
|
ТекстЗапроса = "ПЕРИОД С ДатаНачала По ДатаКонца; Валюта = Регистр.Касса.Валюта; Сум = Регистр.Касса.Наличность; СумКрт = Регистр.Касса.КартаСум; Группировка Валюта Упорядочить по Валюта.Наименование; Группировка Документ; Условие ( Регистр.Касса.ТекущийДокумент.МестоПродажи = МестоПродажи ); Функция НОст = НачОст(Сум); Функция НОстКрт = НачОст(СумКрт); Функция КОст = КонОст(Сум); Функция КОстКрт = КонОст(СумКрт); Функция ПрихСумм = Приход(Сум); Функция ПрихСуммКрт = Приход(СумКрт); Функция РасхСумм = Расход(Сум); Функция РасхСуммКрт = Расход(СумКрт); Функция РасхСуммРС = Расход(СумРС);"
Запрос = СоздатьОбъект("Запрос"); Если Запос.Выполнить("ПЕРИОД С ДатаНачала По ДатаКонца; Валюта = Регистр.Касса.Валюта; Сум = Регистр.Касса.Наличность; СумКрт = Регистр.Касса.КартаСум; Группировка Валюта Упорядочить по Валюта.Наименование; Группировка Документ; Условие ( Регистр.Касса.ТекущийДокумент.МестоПродажи = МестоПродажи ); Функция НОст = НачОст(Сум); Функция НОстКрт = НачОст(СумКрт); Функция КОст = КонОст(Сум); Функция КОстКрт = КонОст(СумКрт); Функция ПрихСумм = Приход(Сум); Функция ПрихСуммКрт = Приход(СумКрт); Функция РасхСумм = Расход(Сум); Функция РасхСуммКрт = Расход(СумКрт);") <> 1 Тогда Возврат КонецЕли; НОст = Запрос.НОст; НОстКрт = Запрос.НОстКрт; Пока Запрос.Группировка("Валюта")<>0 Цикл ТекВалюта = Запрос.Валюта; Пока Запрос.Группировка("Документ")<>0 Цикл ТекДок = Запрос.Документ; ТекНОст = НОст; ТекКОст = НОст + Запрс.ПрихСумм - Запрс.РасхСумм; ТекНОстКрт = НОстКрт; ТекКОстКрт = НОстКрт + Запрс.ПрихСуммКрт - Запрс.РасхСуммКрт; НОст = ТекКОст; НОстКрт = ТекКОстКрт; // накопление остатков ... // ....... тут всякое-разно что надо, только остатки брать из вычисленных Тек-переменных, а не тянут из запроса // (обороты, конечто. тянуть прямо из запроса типа Запрос.ПрихСумм и т.п. ....... КонецЦикла; КонецЦикла; // ну, можно для надежности сравнить накопленные остатки с конечными, типа вот так: Ошибка = ""; Если ТекКОст <> Запрос.КОст Тогда Ошибка ="Накопленный Кон.Ост.нал.сумы("+ТекКОст+") отличается от итога по регистру Касса ("+Запрос.КОст+")" КонецЕсли; Если ТекКОстКрт <> Запрос.НОстКрт Тогда Ошибка = Ошибка+ ?(ПустоеЗначение(Ошибка)<>1,"; ","") +"Накопленный Кон.Ост.карт.сумы("+ТекКОстКрт+") отличается от итога по регистру Касса ("+Запрос.КОстКрт+")" КонецЕсли; Если ПустоеЗначение(Ошибка)<>1 Тогда Сообщить("ВНИМАНИЕ!.. "+Ошибка+" !..","!!!") КонецЕсли; // ну, как-то так ... |
|||
8
tgu82
08.06.20
✎
15:28
|
(6) И все-таки я думаю что сделать местопродажи измерением - более правильно. Хотя если взять типовой тис-вский отчет по кассе с флагом движения по документам то там практически так и получается. Но все-ж таки Касса является Измерением а не только реквизитом документа
|
|||
9
Владимир1С
08.06.20
✎
15:54
|
(8) МестоПродажи уже измерение, так правильнее и легче.
|
|||
10
tgu82
08.06.20
✎
16:10
|
(9) Ну да. И запрос строится без проблем
|
|||
11
Cthulhu
08.06.20
✎
16:33
|
(8): ради одного бантика лопатить регистр - не правильно (да и добавление измерения сопряжено с массовым перепроведением чтобы заполнить это измерение - а это гимор, причем далеко не всегда возможный. так что в общем случае ответ - "нет, неправильно".
(9): ахренеть. разве МестоПродажи в условии запроса - не переменная?.. если нет - тогда у тебя тупо все неправильно ))) |
|||
12
tgu82
08.06.20
✎
16:40
|
(11) Но если нужнны какие остатки на начало по МестоПродажи - то как их получить если это не измерение? На конец - да можно.
|
|||
13
Cthulhu
08.06.20
✎
16:43
|
(12): добавить условие, выполнить запрос и получить из результатов. и на начало и на конец.
|
|||
14
Cthulhu
08.06.20
✎
16:52
|
(13) несчастливый номер, да. остатки продаж по местам продажи - тот самый скрипач, который не нужен. если кому-то этот параметр нужен - значит у него вывих понятийного аппарата и дефект когнитивной функции.
|
|||
15
Владимир1С
08.06.20
✎
17:48
|
(14) жизнь бывает разная....
|
|||
16
AAA
08.06.20
✎
19:48
|
а что мешает сделать местом продажи измерение "Касса" ? По моему она для этого примерно и служит
Зачем еще какое то место продажи? |
|||
17
Злопчинский
08.06.20
✎
21:25
|
(16) нахрен не надо так деалть.
заведи несколько касс каждая касса соответствует своему месту продажи. и это соответсвует реальности - взяли денежки из кассы "торговая точка1" и принесли в кассу "центральный офис" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |