Имя: Пароль:
1C
 
Контроль проведения документов задним числом
0 zenik
 
01.02.06
17:03
Конфа не типовая.
Появилась тут у меня задумка: контролировать проведение документов задним числом. т.е. смысл в том, что бы проверить сводний остаток по регистру партий и если в итоге он дает минус, то отменить проведение.

Написал функцию в глобальнике, вставил ее вызов в конце ОбработкиПроведения(). Для новых документов все хорошо, показывает что образуется минус и проводить не дает, а вот если перепроводить уже проведенный документ, то получаем глюк: Открываем документ (допустим приходную накладную) и изменяем количество (уменьшаем), так как по данному приходу товар уже продан, то соответственно обработка проведения прерывается моей функцией. В итоге в регистрах записи остаются старые (не измененные), а вот в документе данные новые.

Вопрос в том, как бы отменить запись такого документа? Ведь при записи я не могу предугадать какие данные будут записаны в регистры.
1 КонецЦикла
 
01.02.06
17:04
посмотри все же типовые :)
2 lisss
 
01.02.06
17:05
(0)не давай перепроводить документ, заставляй сначала распроводить....
3 mikecool
 
01.02.06
17:07
(0) все проверки делать при записи, если что не устраивает - Возврат, и не будет док записываться...
4 Лефмихалыч
 
01.02.06
17:09
ПриЗаписиПерепроводить(<?>);
Синтаксис:
ПриЗаписиПерепроводить(<Режим>)
Назначение:
Установить режим перепроведения при записи проведенного документа.
Параметры:
<Режим> - число:  1 - обязательно перепроведение при записи уже проведенного документа;   0 - не обязательно перепроведение при записи уже проведенного документа.
Замечание:
Метод доступен только в Модуле формы документа и работает с документом доступным в локальном контексте.
5 Лефмихалыч
 
01.02.06
17:10
А еще наверное можно сравнивать остаток на ТА с (остаток на моментп роведения минус списываемое количество), если эти значения не равны, значит фигня какая-то в датском королевстве... мне кажется...
6 romix
 
01.02.06
19:28
7 zenik
 
01.02.06
23:12
(1) Какие? Конкретней можно...

(2) Пользователь не всегда может распровести всю чепочку документов. Последний документ - Z-Отчет (Розничная продажа), пользователм не подвластен. Да и вообще в цепочке могут встречатся документы, которые можно сделать, но изменить или распровести потом нельзя. Так уж задумано, точнее к этому решению я со временем пришел.

(3) Такой вариант не устраивает по определению. Так как при записи не формируются движения по регистрам. Мне же принципиален момент, когда прошла обработка проведения, расчитала регистры которые она планирует списать, а потом уже проверить чем заканчивается такое списание с регистров. Если оно заканчивается минусомю. тогда откатить проведение и соотвественно запись документа.

(4) Применяется... Не помогат. Все таки документ записывается в любом случае, а вот проведется он или нет - это уже спорный вопрос. ПриЗаписи и ОбработкаПроведения - разные транзакции, поэтому откатить их как одну... никак.

(5) Читай ответ для 3. Мне не интересно сравнивать остатки по количеству (оно обычно есть), мне интересно сравнить именно партии которые документ хочет списать.

Изначально я хотел следующее:
Имеем документ Приходная накладная, по ней поступает товар А. Дня через два этот товар продается по расходной накладной. Т.е. какой то промежуток времени у нас на остатках этот товар есть. Потом по каким то неведомым причинам в промежуток между этими документами проводится еще один документ РН, которая тоже списывает товар А. В итоге по накладной котора введена первой - имеем партии рождающие минус. Востановление последовательности это конечно хорошо, но надо изначально не дать сформировать такой документ. И в таком роде оно вроде как и сработает.

Но потом решил контролировать и документы, которые уже проведены, к примеру, приходная накладная, у которой уменьшили количество товара, которое в итоге было уже продано.
8 zenik
 
01.02.06
23:15
(6) Кстати, статейку эту читал до этого... Сильн конечно не вникал, но имхо там механизм иной... Хотя надо повнимательней посмотреть. Может что и можно подчерпнуть.
9 zzzzz
 
01.02.06
23:16
Как собираешься преодолевать трудности, которые позникнут, если необходимо изменить дату документа. Например сделать на день раньше?
10 у лю 427
 
01.02.06
23:45
(0) если ты найдешь методику, КАК такую проверку сделать БЫСТРО - то получится страшный звеР писец...

Отвалится масса гемороя... с перепроведением...

Думай... Такие методики есть... и не одна...

Идеальный вариант - 1 запрос.

ладно, я пошел....
P.S. у меня сделано....
11 zenik
 
02.02.06
01:26
(9) Не совсем понял в чем трудность?

(10) Ну и...? Хотяб в двух словах как?
12 zzzzz
 
02.02.06
22:02
(11)  Трудность только одна. Для изменения даты проведенного документа необходимл распровести документ.
13 zzzzz
 
02.02.06
22:06
+12 То, что ты хочешь можно сделать. Даже не шибко напрягаясь. Но как сделать, чтобы это работало быстро...
14 у лю 427
 
02.02.06
23:54
(12) не обязательно...