Имя: Пароль:
1C
 
В каком событии можно получить остаток по регистру, после проведения документа?
0 lanc2233
 
09.11.21
11:22
В каком событии можно получить остаток по регистру, после проведения документа?

Документ может проводиться из формы списка.
1 dubolom
 
09.11.21
11:23
(0) Так в ОбработкаПроведения, не?
2 ДенисЧ
 
09.11.21
11:23
В обработке проведения документа
3 DexterMorgan
 
09.11.21
11:24
Граница
4 lanc2233
 
09.11.21
11:25
Не в обработке проведения, запрос по этому регистру показывает данные до.
5 ДенисЧ
 
09.11.21
11:25
(4) Обманываешь.
6 dubolom
 
09.11.21
11:25
(4)
ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая);
Запрос.УстановитьПараметр("МоментВремени", ГраницаКонтроля);
7 DexterMorgan
 
09.11.21
11:31
Ну я ща норм тест прошел на вангу
8 ДенисЧ
 
09.11.21
11:32
А записывать движения до получения остатков кто будет?
9 DexterMorgan
 
09.11.21
11:32
(8) Вангую, что он хочет проконтролировать, что записал
10 fisher
 
09.11.21
11:34
(0) С какой целью? Если это часть логики проведения, то естественно в обработке проведения.
11 lodger
 
09.11.21
11:34
12 lodger
 
09.11.21
11:35
или ты хочешь какую-то пост-обработку по результатам делать? напиши регламент, который ищет необработанные наборы движений и обрабатывает их.
13 fisher
 
09.11.21
11:37
Вот еще из классики по теме: https://1c.chistov.pro/2013/07/blog-post_25.html
14 lanc2233
 
09.11.21
11:50
(10) временный функционал. Кто-то из сотрудников наловчился проводить в минус. Нужно понять кто и как.

Да. Сделал в конце проведения
Движения.Записать();

и запрос увидел.

Несколько лет назад, делал похожее в модуле регистра. Сейчас не могу вспомнить как.
15 lanc2233
 
09.11.21
11:54
(11) проведение документов не охота переписывать
16 lodger
 
09.11.21
12:02
(14) >> Кто-то из сотрудников наловчился проводить в минус
Если стоит контроль отриц.остатков и кто-то всё равно их делает - значит они манипулируют датами документа. смотри кто проводит документы неоперативно.
17 lodger
 
09.11.21
12:02
в ЖР это проведение документа с датой на часы\дни меньше самой записи о проведении.
18 lanc2233
 
09.11.21
12:05
(16) все документы неоперативно проводятся. В данном случае, это нормальный бизнес процесс. Но там куча проверок стоит.

(14) Рано обрадовался.
Движения.Записать() в конце обработки проведения
не всегда срабатывает. Его нужно после каждого движения добавлять ?
19 Мультук
 
гуру
09.11.21
12:10
(0)

Название конфигурации ?
Какие документы проводятся в минус?
В минус по какому регистру?

Ты уверен что именно документы расхода (если речь об этом) вызывают минус,
а не манипулирование документами прихода.
20 lanc2233
 
09.11.21
12:14
(19) самописная.

я сам проверяю в отладчике, один из выявленных сценариев.
Код такой:

Движения.Резервы.Записывать = Истина;
Цикл по табчасти.
Движение = Движения.Резервы.Добавить();
КонецЦикла

Другие движения.
21 mikecool
 
09.11.21
12:16
(14) это ты видел новый способ контроля остатков
его и надо подсунуть в твою конфигу, работает быстрее чем Движения.Записать() и прочитать
22 hhhh
 
09.11.21
17:58
(20) если проводит из формы кнопкой ок, то событие После записи у формы.
23 pechkin
 
09.11.21
18:07
Если в модуле объекта то нужно движения принудительно записывать
24 fisher
 
09.11.21
18:25
(18) > Движения.Записать() в конце обработки проведения не всегда срабатывает. Его нужно после каждого движения добавлять?
Нет. По-идее, оно должно сделать все тоже самое, что сделает сама платформа в конце обработки проведения. Поэтому разницы у тебя возникнуть не должно было.
А вообще его поведение зависит от свойства документа "Запись движений при проведении" и если оно стоит в "Записывать выбранные" - то еще от значений свойства "Записывать" наборов записей.
25 Dmitrii
 
гуру
09.11.21
20:05
(14) >> Кто-то из сотрудников наловчился проводить в минус. Нужно понять кто и как.

Ничего ты таким образом не выяснишь. Скорее всего.
С вероятностью 99.9% в момент проведения документа с остатками всё нормально.
Если конечно в этой вашей самописке не понаписано чего-нибудь экзотического типа правки движений других документов в обработке проведения.

Либо косяк где-то в логике самой обработки проведения, либо в логике проверки отрицательных остатков, либо речь о манипуляциях с другими документами (задним числом), которые сами по себе отрицательных остатков не дают, но их изменение приводит к тому, что в более поздних, но уже проведенных документах, отрицательные остатки возникают.
26 acanta
 
09.11.21
20:18
Еще возможно проведение с датой, отличной от даты документа.
27 Злопчинский
 
09.11.21
20:18
(18) "все документы неоперативно проводятся. В данном случае, это нормальный бизнес процесс."
"бардак" называется такой бизнес-процесс.
28 Ненавижу 1С
 
гуру
09.11.21
22:44
В Призаписи самого регистра же
29 pechkin
 
09.11.21
23:08
В типовой же проаерка отриц остатков происходит после записи движений.
Причем не на дату документа а актуальных
30 серый КТУЛХУ
 
10.11.21
00:09
1) провел в минус - посмотрел на недостачу - отменил проведение
2) сделал оборотку по-документно, нашел последний приход, залез в него, добавил недостачу (п.1) - перепровел
3) быренько вернулся в п.1, провел НЕ в минус
4) вернулся в п.2, скинул то что там добавлял, провел.
и фсё.
31 Anton1307
 
10.11.21
00:53
(4) Ну это потому что ещё движения не записаны, сделай Движения.<ИмяРегистра>.Записать()

Но а если напрямую "в лоб" отвечать на поставленный вопрос - никак, поскольку после вызова ОбработкаПроведения() модуля документа могут сработать подписки на события (порядком срабатывания которых ты управлять не можешь) и в этих подписках могут изменяться движения
32 Обработка
 
10.11.21
05:41
А разве парадигма проведения конф на УФ сама по себе не так реализвано? Сначала пишется движение потом проверяют остатки.
Если минусы то отказ проведения.
33 Dmitrii
 
гуру
10.11.21
10:15
(32) >> А разве парадигма проведения конф на УФ сама по себе не так реализовано? Сначала пишется движение потом проверяют остатки.

Во-первых, парадигма проведения никак не связана с формой документов - УФ или ОФ.
Во-вторых, у автора самописка и какую парадигму они реализовали - одному богу известно. С вероятностью 99% речь идёт о проведении с контролем отрицательных остатков по старой стандартной схеме с одновременным расчетом стоимости списания - получаем остатки, обходя в цикле проверяем наличие остатка, рассчитываем стоимость списания и делаем запись в регистр.
В-третьих, новая парадигма проведения (сначала пишем, потом проверяем остатки на уход в минуса, затем, если образовались минуса, отменяем транзакцию) имеет смысл при оперативном проведении. А у автора документы проводятся неоперативно.

Самая вероятная ситуация описана в (30). В таком или каких-то похожих вариантах.
Другой вопрос - делается ли она намеренно или получается случайно, например, в следствии ошибок ввода документов порождающих приходы в регистр. Или когда какой-нибудь другой пользователь начинает двигать документы вперёд-назад по датам, меняя порядок приходов/расходов.
34 серый КТУЛХУ
 
10.11.21
10:44
(33): кстати да, еще сдвигами - "подложи свинью коллеге" стайл.
по-документно увидел что сегодняшний док списывает нужное (не в минус!) - всунул свой расход перед этим документом - и хобана, этот ранее правильно списывающий - стал списывать в минус хотя его никто не правил.
35 DexterMorgan
 
10.11.21
12:21
(34) да у них возможно хоть тупо отмена приходов
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший