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