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

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

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

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

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

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

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

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

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

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