![]() |
![]() |
![]() |
|
Пытаюсь провести документ из модуля другого.... | ☑ | ||
---|---|---|---|---|
0
mikecool
15.05.06
✎
17:40
|
Из модуля проведения документа поднимается обработка, в ПриОткрытии() которой создается и пытается провестить другой документ. Провести не выходит...
Почитав ветки на эту тему, я думал что мой метод должен взлететь, однако не вышло... Неужели кроме как через открытие созданного документа его провести нельзя? |
|||
1
DF_Slayer
15.05.06
✎
17:42
|
ПриОткрытии() в модуле проведения? Круто...
|
|||
2
fabrikant
15.05.06
✎
17:44
|
(0) Была такая ветка, ищи. По моему действительно, нельзя. Только через открытие.
|
|||
3
Джинн
15.05.06
✎
17:44
|
(0) Не делай этого никогда.
|
|||
4
d_alex
15.05.06
✎
17:46
|
(0) попробуй так ..
докум= создатьобъект ("Документ.ПоступлениеТМЦ"); докум.новый(); // заполнение тела и шапки докум.записать(); Докум.Провести(1, "Программно"); |
|||
5
DF_Slayer
15.05.06
✎
17:47
|
+(1) Ладно, соглашусь с (3) - это плохая идея.
|
|||
6
Ангел- Хоронитель
15.05.06
✎
17:47
|
(0)в один момент времени нельзя провести 2 документа.
|
|||
7
Волшебник
модератор
15.05.06
✎
17:48
|
||||
8
Джинн
15.05.06
✎
17:48
|
(5) Ты ничего не понял. Это ЕДИНСТВЕННО ПРАВИЛЬНАЯ идея. Все остальные идеи не выдерживают критики.
|
|||
9
mikecool
15.05.06
✎
17:49
|
(3) да ладна тебе....
(7) читал... оки, буду пробовать... может и зря я этим заморочился... :-) |
|||
10
DF_Slayer
15.05.06
✎
17:51
|
(8) Теперь точно не понял, что ЭТО?
|
|||
11
mrkorn
15.05.06
✎
17:53
|
(9)ИМХО не очень хорошо неявно вводить доки, юзеры этого не оценят :)
|
|||
12
Джинн
15.05.06
✎
17:53
|
Объясняю - любая попытка провести один документ их модуля другого:
1. Говорит о безтолковом проектировании или непонимании автоматизируемого процесса. 2. Приводит к массе геморроя. |
|||
13
mikecool
15.05.06
✎
17:54
|
(11) да и фик с ними... :-)
(12) правильно, надо дуть в сторону пакетного ввода доков... |
|||
14
DF_Slayer
15.05.06
✎
17:54
|
(12) Теперь понял, я это и имел ввиду.
|
|||
15
fabrikant
15.05.06
✎
17:56
|
Делаем конфу из двух документов Новый1 и Новый2.
Модуль документа Новый2 Процедура ОбработкаПроведения() //Здесь следует написать алгоритм проведения документа ОткрытьФорму("Документ.Новый1","Провести",); КонецПроцедуры Модуль формы Новый1 Процедура ПриОткрытии() Если Форма.Параметр = "Провести" Тогда Провести(); КонецЕсли; КонецПроцедуры Все работает |
|||
16
mikecool
15.05.06
✎
17:57
|
(15) а что скажешь насчет (6)?
|
|||
17
fabrikant
15.05.06
✎
17:58
|
(16) А что тут скажешь!? Диалектика однако...
|
|||
18
Ангел- Хоронитель
15.05.06
✎
17:58
|
(16)эээ..... что там у тебя работает?
|
|||
19
Ангел- Хоронитель
15.05.06
✎
17:59
|
+(18) к (15) это
|
|||
20
fabrikant
15.05.06
✎
18:00
|
(18) Какое слово непонятно?
|
|||
21
fabrikant
15.05.06
✎
18:00
|
(20)+ Создаем и проводим один документ из обработки проведения другого.
|
|||
22
Ангел- Хоронитель
15.05.06
✎
18:03
|
(21)а как же "Нельзя проводить документ из процедуры проведения другого документа"? ну или как-то там....
|
|||
23
mikecool
15.05.06
✎
18:04
|
(22) :-) я думал, ты в (6) уверен был...
|
|||
24
fabrikant
15.05.06
✎
18:05
|
(22) Нельзя, но если очень хочется...
|
|||
25
Ангел- Хоронитель
15.05.06
✎
18:06
|
(23)да был уверен.... :( сам когда-то подобное пытался сделать.... не взлетало.... но fabrikant меня все больше удивляет.....
|
|||
26
Ангел- Хоронитель
15.05.06
✎
18:06
|
+(25)жаль пока проверить негде....
|
|||
27
fabrikant
15.05.06
✎
18:08
|
(25) Это не моя идея. Говорю же, уже обсуждалось на мисте.
|
|||
28
DF_Slayer
15.05.06
✎
18:09
|
(15) Работает, однако.
|
|||
29
Ангел- Хоронитель
15.05.06
✎
18:11
|
(28)офуеть!
только все-равно это неправильно.... |
|||
30
DF_Slayer
15.05.06
✎
18:15
|
GOTO маст дай
|
|||
31
Rom_Kat
15.05.06
✎
18:21
|
//В форме первого документа процедура
Процедура ЗакрытиеДок() РасхНакл = СоздатьОбъект("Документ.РасходнаяНакладная"); РасхНакл.НайтиДокумент(ДокПроводимыйИзПервого); Попытка РасхНакл.Провести(,"ПроводкаРаспНакл"); Исключение Сообщить("Накладная "+РасхНакл+" заблокирована.","!!"); Возврат 0; КонецПопытки; Записать(); Провести(); КонецПроцедуры // ЗакрытиеРасп //Вешаешь Процедуру на кнопку провести или Ок и все работает. //Из модуля документа другой не проведешь. //Транзакция в транзакции работать не будет...((( |
|||
32
Rom_Kat
15.05.06
✎
18:24
|
(15) так работать не будет...
|
|||
33
fabrikant
15.05.06
✎
18:32
|
(32) Будет
|
|||
34
1C_ZeroMan
15.05.06
✎
19:04
|
(33) интересное решение, что делать с точкой актуальности? Кстати, приколола цепная реакция, из приходной кредит, открывать приходную кредит и проводить - песня!!
|
|||
35
1C_ZeroMan
15.05.06
✎
19:06
|
Я к тому, что если документ новый ТА останется на документе исходнике, если перепроводим документ исходник, то новый создается и проводиться с Установленной ТА. Как лечил?
|
|||
36
1C_ZeroMan
15.05.06
✎
19:41
|
Вообщем решил проблему.. на самом деле документ прекрасно проводится из модуля проведения другого документа, надо только делать это вне процедуры проведения, пример:
Процедура ОбработкаПроведения() КонецПроцедуры ОткрытьФорму("Документ.ПриходнаяНал","Провести",); Ну и галки в оперативном учете надо поставить, чтобы лишний раз вопросов не задавало.. |
|||
37
1C_ZeroMan
15.05.06
✎
19:55
|
если не сильно задолбал - пара замечаний к предыдущему тесту:
1. если использовать для этого извращения документ этого же вида, по сути сам себя. Генерируется куча документов без проведения (у меня успелось 89 шт наплодиться), потом 1С падает. 2. При попытке пометить на удаление - 1с падает сразу. :)) |
|||
38
AeDen
15.05.06
✎
20:01
|
Гм... Я в шоке, господа...
|
|||
39
Джинн
15.05.06
✎
21:05
|
(30) Дело не в религиозном GOTO. Дело в актуальности итогов. Если первый документ меняет итоги, а второй их использует - трабл. Групповое перепроведение со сдвигом ТА - трабл.
И вообще - нет почти ни одной ситуации, когда требуется такое извратное проведение. В подавляющем большинстве это ошибка проектирования. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |