Как определить актуальность итогов в модуле проведения (бухгалтерия)? #95940


#0 by Gorr
Как узнать актуальны ли итоги в модуле проведения документа в компоненте БУ?
#1 by Убитая С Тазом
/ Намедни было. Ищи на рилнете, там вроде и ответ даже ТМ дал.
#2 by Gorr
на рилнете это где?
#3 by Убитая С Тазом
Вот.
#4 by Кортес
КонецРассчитанногоПериодаБИ
#5 by Кортес
off: Катька, а я качаю "De Phazz" 2005 года
#6 by Gorr
Блин, нет слов друзья мои ну совсем нет!!! там  же другая опера актуальность итогов бух запроса по строкам документа. эту тему я уже поднимал еще вчера: Теперь постараюсь разжевать вопрос "популярно": в оперативном учете есть такой метод ИтогиАктуальны используемый для определения проводится ли документ задним числом или нет. Если проводится задним, то уже делается расчет итогов на документ. Если итоги актуальны, то ничего расчтывать не нужно - берем текущие остатки и работаем. Красиво? Да! Так вот вопрос был как это же сделать на компоненте в бухучете? Что я вижу сейчас так это бухзапрос в каждом модуле проведения для обеспечения гарантии корректной работы задним числом. Что весьма глупо ибо если итоги актуальны, то нет смысла в запросе. Особенно если принять к сведению тот факт, что работа задним числом исключение, а не норма.
#7 by Gorr
как фиксированная дата, заданная в параметрах, может использоваться для определения актуальности итогов?
#8 by 427
Что значит, что человек мыслит шаблонно... Вдолбил себе регистры и пытается работать теми же методами с БИ....
#9 by Gorr
да нече не вдолбил, а внимательно изучал. и причем здесь шаблоны - логика батенька! и если бы Вы занимались не одной только бы бухгалтерией, то смогли бы взглянуть на мир немножко шире. а всегда выполнять запрос в модуле проведения имхо есть ГЛУПОСТЬ!
#10 by 427
ну-ну.... посмотрим, как ты блокируешь уход в красноту... Если не выполнишь запрос в модуле документа... а в модуле формы, к примеру... 1000 раз отработает нормально, а в 1001 - вклинится другой юзер и спилит товар под остаток... А второй юзер пролетит в красноту... Этот принцип един для регистров и БИ... Все одинаково на самом деле. Есть только технические отличия в реализации... В опер учете есть ТА - итоги на нее рассчитаны... В бухии есть ее непрямой аналог... EndOfCalculatedPeriodBT можно использовать его, если твой документ последний. Или запрос БИ на момент документа (аналог расчета регистра при заднем проведении). Итоги на EndOfCalculatedPeriodBT хранятся рассчитанными. И возвращаются очень быстро. Просто считай, что любой док проводится в бух задним числом... Или определяй, что док последний в системе и используй запрос на точку  EndOfCalculatedPeriodBT. Как аналог проведения на ТА.
#11 by Gorr
ВОТ это уже конструктивный ответ! 1. в модуле формы документа можно определиться с предварительными цифрами, никто не заставляет их использовать в модуле проведения. 2. Резюме: Проверку на то что документ последний делаем по следующей схеме: через док.ВыбратьПоПоследовательности(ПроверяемыйДокумент,,"последовательность"). если 0 доков в выборке, то последний и тогда используем БИ основного расчета: би.ПериодМ(ДатаДок) или запроса би.ВыполнитьЗапрос(,КонецРассчитанногоПериодаБИ,,, иначе в режиме запроса би.ВыполнитьЗапрос(,ТекущийДокумент,,,,
#12 by 427
1. Расчет в модуле формы может оказаться неверным - ибо между ним и проведением может вклиниться другой юзер... И это отражено в типовых - такое там нигде не используется... 2. Ты уверен, что периодМ отработает быстрее ВыполнитьЗапрос? Основная твоя ошибка - в типовой бухгалтерии (российской) НЕТ последовательности. И ЭТО ПРАВИЛЬНО... Ты же, если работал с только с опер учетом, просто по другому не мыслишь... Разработчики типовой российской бухии сумели найти способ (везде, кроме авансов) отказаться от последовательности. В связи с этим они ликвидировали геморой с постоянным перепроведением... Они использовали способ корректировки результатов периода (Документ ЗакрытиеМесяца). Что обеспечило крайне простую работу пользователя в периоде... и ненужность перепроведения. При достоверных результатах за период... P.S. Последовательность - "генитальное" изобретение разработчиков, которое позволяет за счет нагрузки пользователя (перепроведение) обеспечивать точность результатов расчетов, когда каждый последующий зависит от предыдущего... В других системах (не 1С) понятия "последовательность" отсутствует. Там разработчики достигают требуемой достоверности иными, программными способами... Освобождая пользователя от гиганского постоянного перелопачивания базы перепроведением... P.S. следствие - применение этих алгоритмов в 1С позволило сделать партионный учет без "последовательности"... и без необходимости перепроведения... P.S. в качестве красивого использования алгоритма "без последовательности" смотри учет по средневзвешенной и средней для 10 и 41.1 счетов в российской бухии... Как бы бухи не косячили с себестоимостью в периоде - ЗакрытиеМесяца, как опытный бык, покроет все их грехи... Старайся использовать такие алгоритмы - геморой на стадии эксплуатации на порядки меньше...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С