|
v7: Проведение документа: новый или перепроведение? | ☑ | ||
---|---|---|---|---|
0
Масянька
06.01.17
✎
09:43
|
День добрый!
Как при проведении док-та определить - новый или перепроводится уже существующий? Спасибо. |
|||
1
vcv
06.01.17
✎
09:47
|
Проверить Проведён() в модуле проведения?
|
|||
2
Amra
06.01.17
✎
09:48
|
В ПередЗаписью в ДополнительныеСвойства кидай ЭтоНовый
(1) "Старый" документ мог быть и не проведен |
|||
3
Масянька
06.01.17
✎
09:49
|
(1) Существующий док-т -> отмена проведения -> проведение. И?
(2) А где дополнительный свойства? |
|||
4
Остап Сулейманович
06.01.17
✎
09:50
|
(0) В самой ОбработкаПроведения() документ уже записан. Поэтому - в лоб никак не определить.
Можно передать параметр из формы. Например : Если Провести(?(Выбран()=0, 1, 0)) = 1 Тогда Предупреждение("Провели"); КонецЕсли; В модуле : Процедура ОбработкаПроведения(ПроводимНовый = 0) ... КонецПроцедуры |
|||
5
Amra
06.01.17
✎
09:51
|
(3) Восьмерка же?
Если ЗначениеЗаполнено(Ссылка) тогда Объект.ДополнительныеСвойства.Вставить("ЭтоНовый"); конецесли; |
|||
6
Масянька
06.01.17
✎
09:52
|
(5) Чего? Секцию в упор не видим?
|
|||
7
Amra
06.01.17
✎
09:52
|
(4) Не путай человека
|
|||
8
Масянька
06.01.17
✎
09:52
|
(4) Точно в лоб никак?
|
|||
9
Amra
06.01.17
✎
09:53
|
(6) Ну сплю я еще)
|
|||
10
Масянька
06.01.17
✎
09:54
|
(4) А если сначала записать, а потом провести?
|
|||
11
vcv
06.01.17
✎
09:54
|
Лучше бы начать с описания задачи человеческим языком.
Если нужно отлавливать, что документ ранее был проведен и его еще раз проводят, то, в общем случае, без дополнительного реквизита не обойдёшься. Или дополнительной таблички с нужными данными в базе. |
|||
12
Масянька
06.01.17
✎
09:56
|
(11) Человечий язык и 1С - несовместимы.
|
|||
13
Остап Сулейманович
06.01.17
✎
09:58
|
(8) 100 пудов. Проведение начинается с записи. И только потом вызывается обработчик Обработка проведения.
Нужен флаг, который будет выставляться непосредственно перед проведением. В форме таким флагом может быть результат функции Выбран(). Можно использовать специальный реквизит самого документа, который выставлять в "1" при первом проведении. ... |
|||
14
vcv
06.01.17
✎
10:00
|
(12) Зато совместимы человеческий язык и потребности учета/документооборота. В (0) сформулирована не задача, а ваша попытка её решения. Попытка, возможно, не очень удачная.
|
|||
15
Остап Сулейманович
06.01.17
✎
10:00
|
(10) "сначала записать, а потом провести" - документ уже не будет новым. Он уже будет иметь позицию. Как и все остальные. С точки зрения платформы он будет неотличим от остальных непроведенных документов.
Если нужно отловить факт первого проведения - нужно использовать реквизит самого документа. |
|||
16
Масянька
06.01.17
✎
10:01
|
(13) Блин... Хотела обойтись малой кровью... Не судьба...
Спасибо. |
|||
17
vcv
06.01.17
✎
10:03
|
(15) Ну можно не реквизит. Можно отдельную табличку или даже отдельные файлы. Так как документов, которые хочется отловить, не должно быть много, можно для каждого документа писать текстовый файл-журнал. С информацией, кто и когда его делал непроведенным, спросить и запомнить, зачем перепроводили и так далее.
|
|||
18
vcv
06.01.17
✎
10:04
|
+(17) Опять таки всё зависит от задачи.
|
|||
19
Это_mike
06.01.17
✎
10:18
|
(16) малой кровью - юзай перехватчик. У объекта добавляешь флаг, вперехвате ввода нового и ввода на основании его взводишь, после проведения - сбрасываешь.
|
|||
20
vde69
06.01.17
✎
10:21
|
так пойдет?
если ЭтотОбъект.Проведен и не ЭтотОбъект.Ссылка.Проведен Тогда .... |
|||
21
Это_mike
06.01.17
✎
10:29
|
(20) выдыхай,бобер, выдыхай....©
|
|||
22
Это_mike
06.01.17
✎
10:40
|
(0) идею поняла? Помощь нужна? Если да, то спрашивай, а то я лыжить собрался, до вечера не вернусь.
|
|||
23
Масянька
06.01.17
✎
10:56
|
(22) Иди, отдыхай. Уже делаю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |