Как лучше сформировать итоги без учета движений текущего документа? #87468


#0 by Maja
Вопрос есть, на который я постоянно натыкаюсь… Иногда бывает необходимость открыть документ с проводками (программно), очистить его табличную часть и сформировать заново, причем разумеется необходимо учитывать поправку на то, что часть итогов «списана» самим документом и их тоже надо как-то приплюсовать к общим итогам. Знаю по крайней мере три способа как это сделать, но все они мне не нравятся, так как приходиться извращаться. //= = = = = = = = = = = =  = =  = = = = =  = = = = = = = = 1-й способ, кардинальный. Если документ проведен, просто запретить его редактирование.  Минусы-неудобно пользователю, чтобы что-то поправить в документе, прийдется его закрыть,  отменить проведение, открыть заново ну и дальше по порядку. 2-й способ, выгружать итоги, полученные бух. запросом  в ТЗ, затем туда – же добавлять итоги из ТЧ или проводок документа 3-й способ, обход блокировки документа, то есть писать дополнительный отчетик, ну это когда документ программно закрывается для снятия блокировки, при закрытии открывает сей отчет и передает в него свои данные, этот отчет на основе полученных данных находить док в базе, распроводит, закрывается и открывает заново документ, уже непроведенный – этот способ тоже довольно муторный, хотя однажды я его использовала, хотя и немного для других целей – когда-то делала под заказ документ типа Путевого листа, но была не до конца уверена, что заплатят – ну и добавила немного кода, после чего после некоторой даты документы при сохранении/закрытии стали удалять сами себя ;)). //= = = = = = = = = = = =  = =  = = = = =  = = = = = = = = Описала подробно все три способа, чтобы никто не повторился, если будет отвечать. Что-я хочу? – что-нибудь простого и эффективного, например, как-нибудь программно отключить у редактируемого документа проводки перед перезаполнением ТЧ и одной командой без всяких левых служебных ТЗ и обработок формируем бух запрос (без учета движений текущего документа), на основе которых и заполняем колонки табличной части…. (через ВключитьПроводки это просто так не получиться – натыкаемся на блокировку)
#1 by Maja
извиняюсь, стормозила немного... Читайте так: Иногда бывает необходимость открыть документ с проводками (интерактивно)
#2 by Diter
Запрос без учёта движений текущего документа БИ.ВыполнитьЗапрос(,ТекущийДокумент,.........)
#3 by Maja
Спасибо, это половина решения :), но как еще можно исключить документ из итогов? - если я ,например, использую запрос без привязки к ДатаДок, например, когда КонецПериода в запросе - это ТекущаяДата или дата Документа - основания, расположенного дальше по оси времени?
#4 by Дяпти
Если бухитоги, тогда возможно получится, если ВыключитьПроводки, потом выполнить запрос, а потом включить проводки назад.
#5 by Diter
Получи двидения текущего документа и отними их от общих итогов.
#6 by Maja
Нельзя выключить проводки - текущий документ открыт, а значит заблокирован... (недоверчиво...) Это как? - Итоги1-Итоги2 ??? Я такую траву не курю...
#7 by Diter
Нет не так. А вот как Итоги-ДвиженияДокумента
#8 by France
покури, понравицца.
#9 by Maja
Дитер, извини если обидела! "Я такую траву не курю" читай как "хватит прикалываться". Майя
#10 by Diter
Проехали :))) Может конечно я и не так чего сказал, но по логике получается что для "итоги без учета движений текущего документа" нужно получить итоги и отнять движения :))
#11 by maja
Посмотри почту, я письмо отправила. Вкратце повторюсь- если у меня итоги - это объект типа бух итоги, значит движениядокумента тоже должны  быть типа бух итоги, но ведь такие объекты нельзя складывать/вычитать? ли я тебя не поняла.. Да и нельзя постоить бух запрос только для проводок одного документа..
#12 by Diter
Почту не гляну - ящик блокирован. Ты делаешь запрос по конкретным счетам, так? Движения документа (проводки, которые он формирует) ты получить можешь, так? Что мешает отнять от ИТИтогов.СКК(Счет) движения по кредиту, выполненные документом по этому же счёту?
#13 by Дурочкааа 1С
Бред какой-то. О чем это вы? Может мне все это снится? Какой дурной сон!
#14 by Proba
А что метод СделатьНеПроведенным не катит?
#15 by Proba
Причем воспользоваться этим методом надо до открытия документа
#16 by firster
Привет, Майя! Есть несколько способов. Один такой:
#17 by 427
я /et. по полной... Это вам не доверенности получать... Хотя все делается самим запросом... если его грамотно слепить...
#18 by 427
вот уж точно - нафига козе баян...
#19 by они везде
перефразируй
#20 by firster
Если без баяна не понятно, тогда далее так: БИ.ВыполнитьЗапрос(,Позиция,Сч,....); Если документ уже существует и проведен, то делаем запрос на 1 позицию перед документом (тогда проводки самого документа на итоги не повлияют), если документ новый - то на конец даты.
#21 by дурачок с уважением
а как сделать запрос на "1 позицию перед документом" ?
#22 by firster
Если по отдельности не понятно, тогда вместе:
#23 by Maja
Firster, спасибо что разрулил ситуацию с позицией документа, но все же ты не до конца понял условие задачи. Пусть у нас будет документ от 01.03.05 с проводками, а нам надо его открыть и через кнопку на его форме сформировать бухитоги (или остатки по регистрам) на 20.03.05, причем чтобы в бухитоги не попали движения самого документа – как это проще всего сделать? Можно, например, так: Смысл, я надеюсь, понятен. При вызове процедуры документ перезаписывается и проводиться,  но поскольку ТЧ пустая, то останется проведенным, но проводок содержать не будет. Существенное НО, почему делать этого не стоит – это опасность такой кнопки в плане сохранения исходных данных документа. Документ сразу перезаписывается и перепроводиться, поэтому отменить изменения, сделанные в документе и вернуться к исходному состоянию уже невозможно. Интересно, а в восьмой версии все-таки как-то можно обойти блокировку открытого документа штатными средствами?, или временно отключить  проводки открытого документа, не натыкаюсь на блокировку?
#24 by 427
Интересно, какой извращенец придумал приведенную в методику? Хотя... Все как обычно в 1С - через одно место и в сад...
#25 by Maja
Я конечно! А какую методику используешь ты?
#26 by Proba
А что мешает в процедуре ЗапросПоЩелчкуНаКнопке в место 1 и 2 строки просто использовать метод СделатьНеПроведенным? Или я чего - то недопонимаю?
#27 by Diter
Наверное то, что документ открыт...
#28 by Proba
Сорри - он здесь неприменим, поскольку катит только для объектов созданных функцией СоздатьОбъект.
#29 by Дурочкааа 1С
Maja, Вы, наверное, какой-нибудь диплом пишете? И тема, наверное, очень интересная. Типа, "Бухучет в психушке".
#30 by Дурочкааа 1С
Maja, а вот это вы писали? "даже получала доверенность на право выступать в суде от лица фирмы 1С (aka Дарумсан), когда пробовали прижать пиратов в нашем городе" Значит вы тоже в этом участвовали? У вас же руки в крови. Как же у вас хватает совести предлагать кому-то свое партнерство? Думаете это можно купить за коробку? Что сталось с вашей принципиальностью сейчас? Почему вы задаете вопросы на этом форуме? Здесь, конечно не пираты, которых вы прижимали, но и не линия консультации для франчайзи.
#31 by Лихо
Спасибо за ссылку. Ну них...на себе! Прижимальщики пиратов объявились. Живые... Жуть!
#32 by firster
Често говоря, тоже не понял зачем это нужно: нарушается последовательность документов, возможны проблемы с перепроведением или со списанием, тем более при партионном учете. Обычно делают проверку на заполняемость табличной части в модуле документа: Но если все же попытаться это сделать, то как-то так:
#33 by Дяпти
#34 by Maja
Эврика! - просто здорово! Все работает, большое спасибо :))
#35 by Maja
Надеюсь, Чистов не зарубит такой способ получения итогов для заполнения ТЧ
#36 by 427
мдя... да здравствуют тупые фра - они как дойные кАровы...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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