Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как в ПередЗаписью получить границу "исключая" для расчета остатков на начало документа?

Как в ПередЗаписью получить границу "исключая" для расчета остатков на начало документа?
Я
   Cthulhu
 
20.03.21 - 23:05
1. Если документ не новый и НЕ переносился на другую дату - знаю:
ПозицияРасчетаОстатков = Новый Граница(Ссылка,ВидГраницы.Исключая);
-- да?..

2. Если документ новый - вроде так:
ЭтотОбъект.УстановитьСсылкуНового(Документы.РеализацияТоваровУслуг.ПолучитьСсылку());
ПозицияРасчетаОстатков = Новый Граница(ПолучитьСсылкуНового(),ВидГраницы.Исключая));
-- да?..

3. Если документ не новый и переносился(!) на другую дату - не знаю, ПозицияРасчетаОстатков = Новый Граница(Дата,ВидГраницы.Исключая) не годится т.к. в этой секунде могут быть дркние документы "перед" позицией, на которую после записи "встанет" записываемфй..
-- как?

*. для общего случая 1+3 (и желательно +2) -- как?.....

заранееблагодаренивсётакоэ...
   H A D G E H O G s
 
1 - 20.03.21 - 23:21
В ПередЗаписью в базу документ еще не попал.
Что за желание получить остатки в этот момент?
   H A D G E H O G s
 
2 - 20.03.21 - 23:22
У тебя во всех случаях для ПередЗаписью() будет

Новый Граница(Дата,ВидГраницы.Включая)
   RomanYS
 
3 - 20.03.21 - 23:33
(0) методологи в 1с как правило закладывают только оперативный контроль остатков, и это не просто так)
Как это будет работать у тебя?
   Voronve
 
4 - 20.03.21 - 23:45
(3) Мутодологи могут бесноваться на Сеелезневской как хотят.
Система, не контролирующая остатки на позицию документа - как рыба второй свежести.
Тухлая.
   RomanYS
 
5 - 20.03.21 - 23:49
(4) Это решается запретом неоперативного проведения.
А существуют взрослые системы, которые проверяют остатки при проведении документа задним числом для тысяч документов стоящих позже проведенного?
   Cthulhu
 
6 - 20.03.21 - 23:57
остатки нужны НЕ для движений.
мне нужно проконтролировать на основании полученных по номенклатуре таб.части остатков хитрых регистров. после чего проанализировать и откорректировать нужным способом сам документ и его таб.часть (грубо говоря переразнести таб.часть по нужной аналитике).
к тому, как там и что проводить - вообще никаким боком. вопрос предельно упрощенно и корректно сформулирован в (0).
   Cthulhu
 
8 - 21.03.21 - 00:03
(3): будет работать как и работало. я не об этом вообще. см.(6)
(2): неа. если в этой же секунде есть документы, двигающие те же регистры - но раньше. про сортировку внутри секунды - не вдаемся, пофиг как, главное это все по дефолту. получение границы - обеспечивает получение данных внутри этой секунды на документ (его позицию) в дефолт-зронологии (по идам но не суть - главное чтобы единообразно). иначе ведь трындец будет, для двух докуменов списывающих по 10 штук одного и того же товара и расположенных в одной секунде - покажет остаток на начало секунды доступного 10 и даст списать в минус ага?..
   Cthulhu
 
9 - 21.03.21 - 00:06
блинство но ведь сраружи же на записанный документ - можно, по п.1 в (0) посчитать, откорректировать и (пере)провести... только так штоль?.. не верю что только. памагитя!!!
   RomanYS
 
10 - 21.03.21 - 00:13
(9) А что граница не поддерживает момент времени? Бери границу от момента.
Только всё равно не понятно, что будет с документами более поздними, там процедуру пересчета проводить не надо?
   Фрэнки
 
11 - 21.03.21 - 00:15
(9) Насколько я могу сейчас сонным мозгом соображать...

Вот у тебя есть выбранный день. И тебе нужно двинуть документ. Это же будет внутри дня, а где именно, в начале или между другими?
Может достаточно просто определить, что это в начало дня всегда ставится или вычисляется позиция, чтоб попадал в конец, т.е. после всех документов этого дня?

И второе. А на самом деле, если внимательно присмотреться, то создание набора записей с движениями выполняется хоть и в той же самой транзакции, но!
Сразу записывается сам регистратор, а затем уже с его позицией происходит набор записей движений. Затем проверка и возможно откат транзакции, если что-то пошло не так.
В этом случае, никакого отличия от того, что ты, как сам утверждаешь, готов сделать с любым уже записанным в базу документом.
   Cthulhu
 
12 - 21.03.21 - 01:32
(10): беру границу по дате, исключая - это на нач.секунды. в этой секунде два расхода с одинаковой аналитикой. оба проверяют такой остаток - там 10. оба списывают по 10. по такой схеме остатка обоим хватает - и здравствуй минус.
   Cthulhu
 
13 - 21.03.21 - 01:38
(11) до наборов записей. оцениваются остатки на "начало" документа. ну т.е. для записанного документа - на Новый Граница(ЭтотДокументСсылка,ВидГраницы.Исключая). по этому остатку делается расчет и перетасовка табличной части с рассчитанной аналитикой. это надо делать до(!) проведения. в передзаписью. в контексте которой документ еще не записан. отсюда и все проблемы.
   RomanYS
 
14 - 21.03.21 - 01:51
(12) так для этого и существует моментВремени. Граница вообще не нужна, если используется таблица остатки и нужно исключая.
Для нового момент нужно формировать вручную (с учётом установленной ссылки нового), для записанных использовать этотобъект.моментвремени()

Только это сработает только для записываемого документа, более поздний документ не узнает, что его остатки списал другой. Собственно поэтому контроль делают только оперативный
   Cthulhu
 
15 - 21.03.21 - 01:57
(14): Ок. см.(0) - там не шраница, а моментвремени. сути не меняет.
КАК для документа, у которого в процессе коррентировки изменена дата (и время), в передзаписью сформировать моментвремени, на который он будет записан, и на который надо рассчитать аналитику по которой авто-изменить этот документ нужным образом? (то о чем ты говоришь - заднее число, уже(!) разруливаю в другом блоке, это совсем другой вопрос)
   RomanYS
 
16 - 21.03.21 - 02:22
(15) этотобъект.моментвремени() и есть тот момент на который он будет записан. Другой вопрос что этот момент не гарантирует, что его движения не попадут в остатки... соберёшь ты все грабли.
   Cthulhu
 
17 - 21.03.21 - 02:39
(16): так стоп. м.б. это то что надо.
еще раз. для откорректированной в диалоге даты(+времени) НЕ нового документа - в ПередЗаписью (!!!) - я с помощью ЭтотОбъект.МоментВремени() получу уже новый, откорректированный момент времени - который и "получит" этот документ после его записи?..
и - что такое "что его движения не попадут на остатки"?.. он непроведенным (я позабочусь) будет двигаться - а потом уже проводиться будучи записанным, разве не так?.
   Фрэнки
 
18 - 21.03.21 - 08:46
(17)// он непроведенным (я позабочусь) будет двигаться


зачем надо страдать там, где это совсем никому не нужно. Ты возомнил себе, что Проведен=Истина - влияние высшего разума?
Расслабься. В системе есть некоторое количество документов, которые не проводятся с этим флагом, но оставляют движения в регистрах.
   Вафель
 
19 - 21.03.21 - 10:04
(4) рауз например не требует наличия остатков именно на позицию

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.