|
Изменить автора при отмене проведения документа. Ø | ☑ | ||
---|---|---|---|---|
0
VCH
05.08.05
✎
15:16
|
1С 7.7.
Задача. При отмене проведения документов изменять автора. Где это можно сделать глобально? Заранее благодарю за ответ. |
|||
1
Исключение
05.08.05
✎
15:19
|
ПриОтменеПроведенияДокумента(Докум)
|
|||
2
VCH
05.08.05
✎
15:22
|
Когда делаю эту конструкцию - уходит на исключение.
Попытка док.Автор=глПользователь; док.Записать(); Исключение Сообщить("Не получилось"); КонецПопытки; |
|||
3
Xon
05.08.05
✎
15:31
|
(2) А где эта конструкция у Вас находится?
|
|||
4
VZ
05.08.05
✎
15:33
|
(2) Правильно делает. СоздатьОбъект() и прочее Пушкин писать будет?
|
|||
5
VCH
05.08.05
✎
15:45
|
3 в ПриОтменеПроведенияДокумента(Док)
4 такая тоже уходит на исключение: Попытка дд=СоздатьОбъект("Документ"); дд.НайтиДокумент(док); дд.Автор=глПользователь; дд.Записать(); Исключение Сообщить("Не получилось"); КонецПопытки; |
|||
6
VZ
05.08.05
✎
15:53
|
(5) Во-первых, надо знать, что пришло в параметре Док: ссылка или контекст документа - для этого есть ТипЗначения(). Во-вторых, в свою Попытку засунул кучу операторов, и что из них вызвало Исключение? дд.Автор=...? Может, НайтиДокумент() ничего не нашел?
|
|||
7
Мулька
05.08.05
✎
15:56
|
(6) + в третьих - не трож автора. Это уже редактор у тебя, однако
|
|||
8
VCH
05.08.05
✎
16:15
|
дд=СоздатьОбъект("Документ");
Сообщить("нашел="+дд.НайтиДокумент(док)); дд.Автор=глПользователь; Попытка дд.Записать(); Исключение Сообщить("Не получилось"); КонецПопытки; Переделал так. Выдает: нашел=1 Не получилось (7) Почему нельзя автора изменить? |
|||
10
Макс 1С
05.08.05
✎
16:42
|
скорее всего у тебя объект заблокирован... т.к. пользователь отменяет его проведение...
напиши в процедуре ПриОТменеПроведения автор = ЧтоТебеНАдо..... |
|||
11
zzz
05.08.05
✎
17:00
|
Процедура ОбработкаУдаленияПроведения()
Автор=Пользователь; КонецПроцедуры |
|||
12
zzz
05.08.05
✎
17:05
|
ПриОТменеПроведения не катит. тока в ОбработкаУдаленияПроведения()
|
|||
13
zzz
05.08.05
✎
17:09
|
можно кстати так:
Процедура ОбработкаУдаленияПроведения() ПриОтменеПроведенияДока(Контекст); КонецПроцедуры . в глобальнике: Процедура ПриОтменеПроведенияДока(докк) Экспорт // отмечаем автора удаления докк.Автор = глПользователь; //или лучше так докк.АвторУдаления = глПользователь; КонецПроцедуры |
|||
14
NS
05.08.05
✎
17:18
|
Обработка -
Процедура ПриОткрытии() Док=Создатьобъект("Документ"); Док.найтидокумент(Форма.Параметр); Док.Автор=глПользователь; Док.Записать(); СтатусВозврата(0); КонецПроцедуры В Гл Модуле ОткрытьФорму("ОбработкаИзмененияАвтора",Док); |
|||
15
zzz
05.08.05
✎
17:27
|
2(14)
Док.Записать(); {Обработка.ИзмененияАвтора.Форма.Модуль(6)}: Объект заблокирован |
|||
16
NS
05.08.05
✎
17:30
|
обработка
перем док; Процедура ПриОткрытии() Док=Создатьобъект("Документ"); Док.найтидокумент(Форма.Параметр); Форма.Закрыть(0); КонецПроцедуры Процедура ПриЗакрытии() Док.Автор=глПользователь; Док.Записать(); СтатусВозврата(0); КонецПроцедуры В Гл Модуле ОткрытьФорму("ОбработкаИзмененияАвтора",Док); |
|||
17
Дурочка 1С
05.08.05
✎
17:33
|
(16) СтатусВозврата(0); - прикольно
|
|||
18
zzz
05.08.05
✎
17:34
|
2(17) чтоб не открывалась обработка. а чего прикольного?
|
|||
19
NS
05.08.05
✎
17:35
|
Совсем уже голова не варит - статусвозврата нужно убрать...
обработка перем док; Процедура ПриОткрытии() Док=Создатьобъект("Документ"); Док.найтидокумент(Форма.Параметр); Форма.Закрыть(0); КонецПроцедуры Процедура ПриЗакрытии() Док.Автор=глПользователь; Док.Записать(); КонецПроцедуры В Гл Модуле ОткрытьФорму("ОбработкаИзмененияАвтора",Док); |
|||
20
zzz
05.08.05
✎
17:36
|
18+ аа, ступил. он в ПриЗакрытии() сунул.
я думал (16) копия (14). Неохота пробовать (16). Заблокирован он не в обработке ведь. |
|||
21
NS
05.08.05
✎
17:37
|
(18) Чтоб не закрывалась. ;-)
(17) Текст копировал, этой строки не заметил. |
|||
22
NS
05.08.05
✎
17:39
|
(20) (19) конечно работает...
|
|||
23
Дурочка 1С
05.08.05
✎
17:41
|
По-моему, зря вы играете в лотерею с предопределенными процедурами.
перем док; Процедура ДелаемЧеНадо() // Вот здесь та процедура, из которой мы попали // в эту обработку уже отработала. 100 пудов! Док.Автор=глПользователь; Док.Записать(); Форма.Закрыть(0); КонецПроцедуры Процедура ПриОткрытии() Док=Создатьобъект("Документ"); Док.найтидокумент(Форма.Параметр); ДелаемЧеНадо(); КонецПроцедуры |
|||
24
NS
05.08.05
✎
17:45
|
(23) А вот тут ты врешь...
Разницы между (16) и (23) Нет никакой. а (19) - принципиально иное. Между закрытием формы и открытием - обработка будет ждать завершения обработки документа (снятия с проведения и выполнение операторов гл. модуля) |
|||
25
zzz
05.08.05
✎
17:46
|
2(22)
1. Док портит в глобальнике 2. Докc.Записать(); {Обработка.ИзмененияАвтора.Форма.Модуль(19)}: Объект заблокирован: хххх |
|||
26
zzz
05.08.05
✎
17:49
|
проверяйте свои советы хотябы ..
реально работает тока "ОбработкаУдаленияПроведения()" из (11,13) |
|||
27
NS
05.08.05
✎
17:52
|
(25) ничего не понял - какой док в глобальнике?
1) нет переменной "док" в глобальнике с признаком Экспорт 2) Специально проверил (19) на рабочей базе... Всё работает. Откуда 19-тая строка? |
|||
28
zzz
05.08.05
✎
17:55
|
2(27)
1. короче если в глобальнике к этой переменной "Док" будет обращение после вызова обработки, то у меня вылазит ошибка. 2. у меня не работает. 19-я, потому что 1-й вариант закоментарен. |
|||
29
zzz
05.08.05
✎
17:58
|
(23) тоже не работает. Релиз 25, ДБФ, монопольно.
|
|||
30
VCH
05.08.05
✎
18:18
|
Сделал, как в 19.
Заработало! Спасибо всем, кто откликнулся! |
|||
31
NS
05.08.05
✎
19:13
|
(30) Подожди.
Возможно ситуция, когда возникнет ошибка в (19) - я это указывал. https://1cers.ru/topic.php?id=114905& с полным контролем - перем док; Процедура ПриОткрытии() Док=Создатьобъект("Документ"); Док.найтидокумент(Форма.Параметр); Форма.Закрыть(0); КонецПроцедуры Процедура ПриЗакрытии() Док.Автор=глПользователь; Попытка Док.Записать(); Исключение Статусвозврата(0); Форма.Закрыть(0); КонецПопытки; КонецПроцедуры |
|||
32
VZ
05.08.05
✎
19:34
|
(31) А окно мелькать не будет?
Может, так: перем док; Процедура ПриОткрытии() Док=Создатьобъект("Документ"); Док.найтидокумент(Форма.Параметр); Док.Автор=глПользователь; успех = 1; Попытка Док.Записать(); Исключение успех = 0; КонецПопытки; Если Успех=0 Тогда Форма.Закрыть(0); Иначе СтатусВозврата(0); //нафиг открывать, усе в порядке КонецЕсли; КонецПроцедуры Процедура ПриЗакрытии() Док.Автор=глПользователь; Попытка Док.Записать(); Исключение Статусвозврата(0); Форма.Закрыть(0); КонецПопытки; КонецПроцедуры |
|||
33
NS
05.08.05
✎
19:57
|
(32) Нет смысла пытаться записать документ в ПриОткрытии - исключение будет всегда.
Форма промерцает 1/10 секунды. |
|||
34
Не бейте ногами
05.08.05
✎
21:39
|
32,33) ни фига не понял: чтобы сделать то, что в 0) что надо создать и что куда добавить? То в ГМ, то не в ГМ?
|
|||
35
NS
05.08.05
✎
21:49
|
(34) Объясняю - ежели не в ГМ - то нет проблем.
Ежели в ГМ - то (31) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |