|
При отмене проведения документа | ☑ | ||
---|---|---|---|---|
0
kotokent
23.01.14
✎
13:59
|
Создается общий модуль и привязка к подписки на событие, задача следующая:
При отмене проведения документа проверять, если документ содержит реквизит ответственный и текущий пользователь отличается от пользователя, выбранного в качестве ответственного тогда система не должна позволять отменить проведение документа. А если реквизит не заполнен тогда заполнить его текущим пользователем. Процедура ОтменаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт Если Источник.Ответственный = Истина и ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда Источник.Провести = Ложь Иначе Если Источник.Ответственный = "" Тогда Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь КонецЕсли КонецЕсли КонецПроцедуры |
|||
1
kotokent
23.01.14
✎
13:59
|
Что не так?
|
|||
2
Wobland
23.01.14
✎
14:01
|
не, это правда _тестовая_ задача?
|
|||
3
kotokent
23.01.14
✎
14:01
|
(2) ну да, а что?
|
|||
4
Wobland
23.01.14
✎
14:02
|
отказ=ЕстьРеквизит() И Текущий<>ТомуКтоВДокументе;
|
|||
5
Wobland
23.01.14
✎
14:02
|
(3) да я что-то решил, что в комментариях копаться надо при отмене ;)
|
|||
6
kotokent
23.01.14
✎
14:03
|
(4) а это куда писать то?
|
|||
7
Wobland
23.01.14
✎
14:04
|
(6) это идея. над ней надо медитировать
|
|||
8
kotokent
23.01.14
✎
14:04
|
(7) попробуем...
|
|||
9
kotokent
24.01.14
✎
06:20
|
Может кто то еще что подскажет?!?!?!
|
|||
10
Wobland
24.01.14
✎
06:23
|
(9) может, и подскажет. тебе что именно?
|
|||
11
kosts
24.01.14
✎
06:24
|
(9)
Тут не правильно:
|
|||
12
Wobland
24.01.14
✎
06:26
|
>Источник.Провести
тут тоже. скорей всего ;) |
|||
13
Рэйв
24.01.14
✎
06:28
|
(11)С каких пор у тебя ответсвенный- булево?
Оно в жизни не зайдет в ветку по условию Источник.Ответственный = Истина |
|||
14
Wobland
24.01.14
✎
06:29
|
(13) если у него есть реквизит Провести, то от Ответственного всего можно ждать ;)
|
|||
15
Рэйв
24.01.14
✎
06:29
|
может ты имел в видк
Если ЗначениеЗаполнено(Источник.Ответственный)... |
|||
16
Рэйв
24.01.14
✎
06:29
|
(14)Это да. Какая то адинес у него- чудо враждебной техники:-)
|
|||
17
catena
24.01.14
✎
06:52
|
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента)
Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецФункции // ЕстьРеквизитДокумента() Процедура ОтменаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт Если ЕстьРеквизитДокумента("Ответственный", Источник.Метаданные()) Тогда Если ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда Отказ = Истина ИначеЕсли не ЗначениеЗаполнено(Источник.Ответственный) Тогда Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь КонецЕсли КонецЕсли КонецПроцедуры |
|||
18
kotokent
24.01.14
✎
07:10
|
(17) Пишет ошибку: "Не удалось провести..."
|
|||
19
kotokent
24.01.14
✎
07:13
|
(14) Реквизита провести нету :), надо при отмене проведении документа записать в поле ответственого текущего пользователя если оно пустое, а если нет, то не дать отменить проведение документа
|
|||
20
Wobland
24.01.14
✎
07:13
|
(18) многоточие - это очень плохая ошибка, по ней ничего не понять. крепись
|
|||
21
kotokent
24.01.14
✎
07:15
|
(20) Не удалось провести "Реализация товаров и услуг" от 24.01.2014
|
|||
22
Wobland
24.01.14
✎
07:19
|
(21) опять наврал. ну да ладно
катена, не приняв с утра нужного количества кофе, наваяла тебе про проведение, а ты даже задумываться над кодом не стал? |
|||
23
kotokent
24.01.14
✎
07:20
|
(17) код в общем то по логике правильный, но что то не работе
|
|||
24
Wobland
24.01.14
✎
07:21
|
(23) мелочь одна: в принципе не решает (0)
|
|||
25
kotokent
24.01.14
✎
07:21
|
(22) так он вроде правильный
только не работает |
|||
26
Рэйв
24.01.14
✎
07:21
|
(23)Отладкой не пользуешься из религиозных убеждений или как?
|
|||
27
Wobland
24.01.14
✎
07:22
|
ээ, катена, извини, это у меня в организме мало кофе, не увидел втою ОтменаПроведения
|
|||
28
kotokent
24.01.14
✎
07:22
|
(26) не умею пока
|
|||
29
Рэйв
24.01.14
✎
07:22
|
(28)о_0
Может тогда лучше пригласить специалиста? |
|||
30
Wobland
24.01.14
✎
07:23
|
надо переходить на тяжёлые наркотики..
что это за слово: ОтменаПроведенияОбработкаПроведения? |
|||
31
kotokent
24.01.14
✎
07:23
|
(29) я на него и учусь:)
|
|||
32
Рэйв
24.01.14
✎
07:27
|
(31)Встань на первое "Если" курсором и нажми F9.
Познакомься, этот красный шарик называется ТочкаОстанова:-) Запусти модуль на выполнение, когда на шарике появится стрелочка нажми Ctrl+Alt+W. Познакомься, это называется Таболо, в него можно вбивать люые переменные или выражения возвращающие значения. Дальше жмешь f10-это пошаговое выполнение. Надеюсь до дальнейшего добумаешься сам:-) |
|||
33
kotokent
24.01.14
✎
07:27
|
(30) ОтменаПроведения - подписка на событие у меня такая
|
|||
34
Wobland
24.01.14
✎
07:28
|
(33) а как ты умудрился запустить проведение?
|
|||
35
kotokent
24.01.14
✎
07:29
|
(34) Не понял вопроса
|
|||
36
User_Agronom
24.01.14
✎
07:30
|
Источник.Ответственный = Истина
Ну да. Несоответствие типов |
|||
37
Wobland
24.01.14
✎
07:32
|
(35) проверялся ли ты на отмене проведения?
|
|||
38
kotokent
24.01.14
✎
07:32
|
Ошибку выдает и все... Что нельзя провести документ
|
|||
39
kotokent
24.01.14
✎
07:33
|
(37) отмена проходит, но пользователь один и тот же отается, и отмена проходит под другим пользавателем
|
|||
40
Wobland
24.01.14
✎
07:33
|
(38) как ты добился того, что при отмене проведения он у тебя проводится? или ты некоторые посты не по этой проблеме сюда пишешь?
|
|||
41
catena
24.01.14
✎
07:33
|
(27)Она не моя :) Я в авторскую процедуру повставляла функции, которые он хотел, а уж в нужном порядке расставляет пусть сам. С кофем беда, он подло кончился :(
|
|||
42
Wobland
24.01.14
✎
07:35
|
(39) ещё немного, и ты поймёшь всю полезность и низкое содержание холестерина у отладчика
|
|||
43
kotokent
24.01.14
✎
07:39
|
Ничего не получается
|
|||
44
Wobland
24.01.14
✎
07:45
|
(43) без этого ты не превратишься в специалиста. нужно совершить тысячи ошибок, двадцать раз отчаяться и сорок - биться головой об стол.
|
|||
45
kotokent
24.01.14
✎
07:45
|
(17)Он показывает что "Отказ" - ЛОжь
|
|||
46
kotokent
24.01.14
✎
07:47
|
(17) он как то не сравнивает, что написано в "Ответственный" и какой текущий пользователь
|
|||
47
kotokent
24.01.14
✎
08:02
|
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента)
Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецФункции Не пойму зачем она?!?! |
|||
48
Wobland
24.01.14
✎
08:04
|
Функция ЕстьРеквизитДокумента выясняет, есть ли реквизит у документа. внезапно, правда?
|
|||
49
kotokent
24.01.14
✎
08:11
|
(48) До этого я просто писал "ИСточник.Ответственный"
|
|||
50
kotokent
24.01.14
✎
08:12
|
(48) Процедура КомментарийВоВсехДокументахПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Источник.Комментарий = "Документ записан " + ТекущаяДата() + " пользователем " + ПараметрыСеанса.ТекущийПользователь; КонецПроцедуры |
|||
51
kotokent
24.01.14
✎
08:12
|
(48)
Процедура КомментарийВоВсехДокументахПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Источник.Комментарий = "Документ записан " + ТекущаяДата() + " пользователем " + ПараметрыСеанса.ТекущийПользователь; КонецПроцедуры |
|||
52
kotokent
24.01.14
✎
08:17
|
Блин, у меня у документа уже нет ответственного, по логике в этом коде (17) должно записывать в Ответственный текущего пользователя, а оно не работает!?!? Что за хрень...
|
|||
53
Wobland
24.01.14
✎
08:18
|
в (17) при пустом ответственном чаще всего последует отказ
|
|||
54
kotokent
24.01.14
✎
08:19
|
(53) а как сделать чтобы туда записывался текущий пользователь?
|
|||
55
Wobland
24.01.14
✎
08:21
|
поменять если и иначе местами
|
|||
56
kotokent
24.01.14
✎
08:22
|
(55) не помогло
|
|||
57
kotokent
24.01.14
✎
08:23
|
(55) что то вообще не работае, я даже просто в Оттветственный не могу внести запись
|
|||
58
kosts
24.01.14
✎
08:25
|
(57) Может быть использовано не подходящее событие?
|
|||
59
kotokent
24.01.14
✎
08:26
|
(58) ваши предложения?!
|
|||
60
kotokent
24.01.14
✎
08:27
|
(58) Что тут не так?
Процедура ОтменаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт Если ЕстьРеквизитДокумента("Ответственный", Источник.Метаданные()) Тогда Если ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда Отказ = Истина; Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь ИначеЕсли не ЗначениеЗаполнено(Источник.Ответственный) Тогда Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь КонецЕсли КонецЕсли КонецПроцедуры Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецФункции (58) |
|||
61
Wobland
24.01.14
✎
08:28
|
(60) 5я строка
|
|||
62
kotokent
24.01.14
✎
08:29
|
(61) это я ее так добавил, ради интереса, ее можно не смотреть
|
|||
63
Wobland
24.01.14
✎
08:29
|
(62) выплюнь её совсем и смотри в этот текст:
если документ содержит реквизит ответственный и текущий пользователь отличается от пользователя, выбранного в качестве ответственного тогда система не должна позволять отменить проведение документа. А если реквизит не заполнен тогда заполнить его текущим пользователем. |
|||
64
kotokent
24.01.14
✎
08:30
|
(63)
Процедура ОтменаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт Если Источник.Ответственный = Истина и ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда Источник.Провести = Ложь Иначе Если Источник.Ответственный = "" Тогда Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь КонецЕсли КонецЕсли КонецПроцедуры |
|||
65
kotokent
24.01.14
✎
08:31
|
(63) То что я первоначально пытался по этому тексту фигануть
|
|||
66
Wobland
24.01.14
✎
08:35
|
ты не находишь, что формулировка (0) и код в (60) - одно и то же?
|
|||
67
kotokent
24.01.14
✎
08:37
|
(66) Я это понимаю, вот и ничего не работает, но логика то, я думаю, правильная
|
|||
68
Wobland
24.01.14
✎
08:45
|
(67) отладчик. тебя спасёт отладчик. он покажет тебе все фокусы с твоим кодом с полным разоблачением
|
|||
69
kotokent
24.01.14
✎
08:48
|
(68) ну я только через отладчик увижу что в ячейках, а так как его еще использовать?
|
|||
70
Wobland
24.01.14
✎
08:49
|
(69) открой для себя меню отладка, ужаснись, закрой, сходи перекури и открой снова
|
|||
71
kotokent
24.01.14
✎
08:50
|
(70) отладчик как будто не видит вообще что я ему написал, просто не останавливается там где надо
|
|||
72
Wobland
24.01.14
✎
08:52
|
(71) в серверном режиме сервер надо заставлять
|
|||
73
kotokent
24.01.14
✎
08:54
|
(72) у меня обычный
|
|||
74
catena
24.01.14
✎
09:18
|
(60)Тебе было сказано не процедуры местами поменять, а условия ЕСЛИ. И зря ты их опять в одно ЕСЛИ запихал, у тебя все сдохнет, если у документа вообще не реквизита Ответственный.
|
|||
75
catena
24.01.14
✎
09:20
|
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента)
Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецФункции // ЕстьРеквизитДокумента() Процедура ОтменаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт Если ЕстьРеквизитДокумента("Ответственный", Источник.Метаданные()) Тогда//если нет реквизита Ответственный, мы ваще не можем ни сравнивать его, ни писать туда что-либо Если не ЗначениеЗаполнено(Источник.Ответственный) Тогда //Выяснили, что реквизит есть, теперь проверим, не пустой ли. Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь ИначеЕсли ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда//он есть и он не пустой, теперь сравним. Отказ = Истина КонецЕсли КонецЕсли КонецПроцедуры |
|||
76
kotokent
27.01.14
✎
06:45
|
Скажите, этот код должен работать? или его надо еще дорабатывать?
|
|||
77
Wobland
27.01.14
✎
06:47
|
я бы комментарии изменил
|
|||
78
Wobland
27.01.14
✎
06:56
|
проверим, пропускает ли матофильтр слова олух и остолоп
|
|||
79
kotokent
27.01.14
✎
06:59
|
(78) ты о чем?
Можешь помочь или нет? |
|||
80
Wobland
27.01.14
✎
07:01
|
смотря чем. чем помочь?
|
|||
81
kotokent
27.01.14
✎
07:05
|
или код подправить или помочь его заново написать?!
|
|||
82
Wobland
27.01.14
✎
07:06
|
(81) а что с ним не так?
|
|||
83
kotokent
27.01.14
✎
07:08
|
не записывает в обще Ответственный, даже если его нет или он есть не меняет или ошибку выдает... короче код вообще не работет
|
|||
84
Wobland
27.01.14
✎
07:08
|
ошибка есть? это очень хорошо. в ней обычно содержится масса полезной информации
|
|||
85
kotokent
27.01.14
✎
07:10
|
При проведении, когда есть Ответственный, он не дает провести документ...
|
|||
86
Wobland
27.01.14
✎
07:11
|
(85) как-то аргументирует? и откуда опять проведение взялось?
|
|||
87
kotokent
27.01.14
✎
07:14
|
(86) нет... просто не удалось провести документ такой-то... когда провожу или не провожу он все выполняет и все...если без записи
|
|||
88
kotokent
27.01.14
✎
07:17
|
(86) мне кажется что код вообще не правильный, помоги написать процедуру заново, пожалуйста?!?!
|
|||
89
Wobland
27.01.14
✎
07:21
|
>не удалось провести документ такой-то
это ты словил Отказ=Истина где-то внутри обработки проведения а вообще, catena - умная девушка, править (75) незачем. непонятно, правда, когда это исполняется, и при чём тут проведение |
|||
90
kotokent
27.01.14
✎
07:37
|
(89) От при отмене проведения делается, но код не записывает текущего пользователя когда нет записи в Ответственный
|
|||
91
kotokent
27.01.14
✎
07:37
|
(75) помоги
|
|||
92
Wobland
27.01.14
✎
07:42
|
(90) а отладчик приходит на строку присвоения?
|
|||
93
Мимохожий Однако
27.01.14
✎
07:43
|
Если ЕстьРеквизитДокумента("Ответственный", Источник.Метаданные()) Тогда//если нет реквизита Ответственный, мы ваще не можем ни сравнивать его, ни писать туда что-либо
Если не ЗначениеЗаполнено(Источник.Ответственный) Тогда //Выяснили, что реквизит есть, теперь проверим, не пустой ли. Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь Если ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда//он есть и он не пустой, теперь сравним. Отказ = Истина КонецЕсли КонецЕсли КонецЕсли |
|||
94
Wobland
27.01.14
✎
07:46
|
(93) ни разу ж в отказ не придёт
|
|||
95
kotokent
27.01.14
✎
07:48
|
(93) Не записывает и проводит
|
|||
96
Wobland
27.01.14
✎
07:49
|
спрошу-ка я ещё раз. откуда взялось проведение?
|
|||
97
Мимохожий Однако
27.01.14
✎
07:50
|
Попытка следующая...
Если ЕстьРеквизитДокумента("Ответственный", Источник.Метаданные()) Тогда//если нет реквизита Ответственный, мы ваще не можем ни сравнивать его, ни писать туда что-либо Если ЗначениеЗаполнено(Источник.Ответственный) И ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда Отказ = Истина КонецЕсли КонецЕсли |
|||
98
kotokent
27.01.14
✎
07:51
|
(96) Ну так я документ сначала отменю проведение, а потом его провожу что бы посмотреть... если его проводить без Ответственный, то должен туда записываться текущий пользователь
|
|||
99
Wobland
27.01.14
✎
07:51
|
(97) неудача ;)
А если реквизит не заполнен тогда заполнить его текущим пользователем. |
|||
100
kotokent
27.01.14
✎
07:52
|
(97) этот кусок куда вставлять
|
|||
101
kotokent
27.01.14
✎
07:52
|
(99) да
|
|||
102
Wobland
27.01.14
✎
07:53
|
>если его проводить без Ответственный, то должен туда записываться текущий пользователь
несколько не согласуется с (0) |
|||
103
Мимохожий Однако
27.01.14
✎
07:54
|
Если ЗначениеЗаполнено(Источник.Ответственный) И ПараметрыСеанса.ТекущийПользователь <> Источник.Ответственный Тогда
Отказ = Истина Иначе Источник.Ответственный = ПараметрыСеанса.ТекущийПользователь; КонецЕсли ... Сама идея неверная. |
|||
104
Wobland
27.01.14
✎
07:54
|
проведение отменяется хорошо?
|
|||
105
kotokent
27.01.14
✎
07:54
|
(102) ошибся, при отмене проведения если реквизит не заполнен, то ... текущий пользователь
|
|||
106
kotokent
27.01.14
✎
07:55
|
(104) да
|
|||
107
Wobland
27.01.14
✎
07:56
|
(106) работа сделана?
|
|||
108
kotokent
27.01.14
✎
07:57
|
(107) он мне не записывает текущего пользователя если нет там реквизита
|
|||
109
Wobland
27.01.14
✎
07:58
|
(108) отладчик в нужное место попадает?
|
|||
110
kotokent
27.01.14
✎
08:01
|
(109) только при проведении... при отмене - просто как будто процедуры не видит
|
|||
111
Wobland
27.01.14
✎
08:02
|
(110) наверное, это из-за подписки
|
|||
112
kotokent
27.01.14
✎
08:04
|
(111) как сюда кинуть картинку?
|
|||
113
kotokent
27.01.14
✎
08:07
|
file:///C:/Users/pa.PPCONS/Pictures/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png
|
|||
114
kotokent
27.01.14
✎
08:07
|
:)
|
|||
115
Wobland
27.01.14
✎
08:09
|
(113) Веб-страница не найдена
|
|||
116
kotokent
27.01.14
✎
08:10
|
(115) как картинку кинуть
|
|||
117
kotokent
27.01.14
✎
08:10
|
C:\Users\pa.PPCONS\Pictures\Безымянн6ый.gif
|
|||
118
kotokent
27.01.14
✎
08:11
|
(115) открылась?
|
|||
119
Wobland
27.01.14
✎
08:12
|
||||
120
kotokent
27.01.14
✎
08:13
|
||||
121
Wobland
27.01.14
✎
08:14
|
а ты правда думаешь, что событие ОбработкаПроведения выполняется при отмене проведения?
|
|||
122
Мимохожий Однако
27.01.14
✎
08:15
|
В одной из конфигураций я добавил в подписку на событие при записи документа следующую процедуру:
Процедура ПроверитьОтветственногоПередЗаписьюДокументаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Перем Ответственный; Ответственный = ОбщегоНазначения.ПолучитьРеквизитШапки("Ответственный", Источник, Источник.Метаданные()); Если (НЕ Ответственный = НЕОПРЕДЕЛЕНО) И (НЕ РольДоступна("ПолныеПрава")) Тогда //Если НЕ РольДоступна("ПолныеПрава") Тогда //Если НЕ Источник.Ответственный=Источник.Ссылка.Ответственный Тогда // Сообщить("Нельзя менять ответственного!"); // Отказ = Истина; //КонецЕсли; Если Источник.Ответственный <> ПараметрыСеанса.ТекущийПользователь Тогда Сообщить("Этот документ создал "+Источник.Ответственный+", а не Вы ,"+ПараметрыСеанса.ТекущийПользователь+"). Редактирование запрещено"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
123
kotokent
27.01.14
✎
08:18
|
(122) работает или нет у вас?
|
|||
124
kotokent
27.01.14
✎
08:21
|
(122) у меня с этим кодом 1с вылетает
|
|||
125
Мимохожий Однако
27.01.14
✎
08:21
|
(123)Работает года два. Любой пользователь при попытки изменить состояние документа должен поменять ответственного, если не он создавал.
|
|||
126
Мимохожий Однако
27.01.14
✎
08:22
|
(124)Куда вылетает? )) Отсюда не видно
|
|||
127
kotokent
27.01.14
✎
08:23
|
||||
128
Мимохожий Однако
27.01.14
✎
08:24
|
См (122)"я добавил в подписку на событие при записи документа ". Ты пихаешь мой код в другую подписку.
|
|||
129
Wobland
27.01.14
✎
08:28
|
подписка ОтменаПроведения на событие ОбработкаПроведения - это прекрасно
|
|||
130
kotokent
27.01.14
✎
08:29
|
||||
131
Wobland
27.01.14
✎
08:32
|
(127) найди метод обработчика события...
|
|||
132
kotokent
27.01.14
✎
08:38
|
(131) ни хера не получается... я в шоке, вроде код тот, а от мозги ебет
|
|||
133
Мимохожий Однако
27.01.14
✎
08:40
|
(132)Надо использовать ДРУГУЮ подписку на событие "ПриЗаписиДокумента". см (122) еще раз, потом еще раз, потом еще раз...А свой код временно закоммментируй.
|
|||
134
Wobland
27.01.14
✎
08:44
|
бесполезно..
|
|||
135
Мимохожий Однако
27.01.14
✎
08:45
|
Надежда умирает последней ))
|
|||
136
kotokent
27.01.14
✎
08:46
|
(122) код не работает, все проводит и отменяте и не меняет и записывает без изменений
|
|||
137
kotokent
27.01.14
✎
08:47
|
(135) попробуй у себя такую задачку проделать!?!?
|
|||
138
Wobland
27.01.14
✎
08:47
|
вот была бы такая штука, которая показывала пошагово исполнение кода с возможностью просмотра значений переменных...
|
|||
139
Мимохожий Однако
27.01.14
✎
08:47
|
Значить у пользователя Полные права. Убери у пользователя Полные права
|
|||
140
kotokent
27.01.14
✎
08:48
|
(138) обработчик не помогает мне поять что не так
|
|||
141
kotokent
27.01.14
✎
08:48
|
(139) ща попробуем
|
|||
142
Мимохожий Однако
27.01.14
✎
08:49
|
(137)я уже сказал. У моих клиентов работает уже 2 года.
|
|||
143
kotokent
27.01.14
✎
08:58
|
(142) нифига
|
|||
144
Wobland
27.01.14
✎
09:02
|
обидно, да?
|
|||
145
kotokent
27.01.14
✎
09:03
|
(142) попробуй у себя такую задачку реализовать,
(144) не то слово |
|||
146
Мимохожий Однако
27.01.14
✎
09:16
|
(145)Не тупи. У меня реализовано. Я тебе сочувствую,если что.
|
|||
147
Loyt
27.01.14
✎
09:18
|
(130) Плин, а с фига ли ты Ответственного вообще на НЕОПРЕДЕЛЕНО проверяешь? Он 99% типа справочник.
Ну и режим записи где проверяется, тебе же при отмене проведения только нужно менять? И куда присвоение реквизита пропало? И в твоей задаче проверка на полные права разве вообще нужна? |
|||
148
kotokent
27.01.14
✎
09:19
|
(146) почему я создал пользователя без полный прав, а он мне говорит что нет в списке пользователей
|
|||
149
kotokent
27.01.14
✎
09:20
|
(147) ну ты все правильно понял, только как это сделать
|
|||
150
Jonny_Khomich
27.01.14
✎
09:20
|
есть пользователь ИБ и пользователь в справочнике
|
|||
151
Loyt
27.01.14
✎
09:28
|
(149)
Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда Ответственный = ОбщегоНазначения.ПолучитьРеквизитШапки("Ответственный", Источник, Источник.Метаданные()); Если ЗначениеЗаполнено(Ответственный) Тогда Если Ответственный <> ПараметрыСеанса.ТекущийПользователь Тогда Отказ = Истина; Сообщить("чужой документ"); КонецЕсли; Иначе Попытка Источник.ответственный = Ответственный; Исключение КонецПопытки; КонецЕсли; КонецЕсли; Что-то типа того. |
|||
152
Loyt
27.01.14
✎
09:30
|
Пля, Источник.ответственный = ПараметрыСеанса.ТекущийПользователь;
|
|||
153
kotokent
27.01.14
✎
11:05
|
(152) ща попробуем
|
|||
154
Wobland
27.01.14
✎
11:06
|
ставлю кружку Гиннесса на то, что не взлетит ;)
|
|||
155
kotokent
27.01.14
✎
11:14
|
(154) и ты прав... может ты что скажешь путнего
|
|||
156
kotokent
27.01.14
✎
11:15
|
(152) режим проведения - не оперативный показывает обработчик
|
|||
157
kotokent
27.01.14
✎
11:15
|
(152) и он сразу идет в конец если
|
|||
158
Wobland
27.01.14
✎
11:16
|
(155) спасёт только хирургическое вмешательство с каким-нибудь тим-вьюером. раньше вечера точно никак, позже или равно вечера - не уверен
|
|||
159
Мимохожий Однако
27.01.14
✎
11:17
|
(154) Ты прав. Надежда умерла.
|
|||
160
kotokent
27.01.14
✎
11:20
|
(158) http://s019.radikal.ru/i619/1401/3b/06ede025f6e1.png
я нажимаю да и он по коду в конец цикла уходит |
|||
161
NcSteel
27.01.14
✎
11:20
|
(158) Ты не 1Сник.
|
|||
162
NcSteel
27.01.14
✎
11:21
|
(160) И че?
|
|||
163
kotokent
27.01.14
✎
11:22
|
(162) это я хотел у вас спросить, получается надо делать оперативный режим проведения или что
|
|||
164
NcSteel
27.01.14
✎
11:23
|
(163) Чем отличается оперативный от неоперативного режима проведения и как режим проведения связан с твоей задачей?
|
|||
165
kotokent
27.01.14
✎
11:25
|
(164) незнаю, я его и так и так попробовал, но он нафига не работает, не меняет ответственного и не выдает ошибкиесли ответственный и текущий пользователь отличаются
|
|||
166
Wobland
27.01.14
✎
11:25
|
(161) 1Сник. только не настоящий, не жадный. исключение, так сказать ;)
|
|||
167
NcSteel
27.01.14
✎
11:27
|
(165) Ну вот, у тебя уже есть первая задача - "Узнать чем отличается оперативное проведение от неоперативного".
Например гугл мне выдал: http://blog.ut10.ru/2012/02/16/op_ne_op/ |
|||
168
NcSteel
27.01.14
✎
11:28
|
(167) + http://programmist1s.ru/operativnoe-i-neoperativnoe-provedenie-dokumentov-1s/
В общем гугл знает. |
|||
169
kotokent
27.01.14
✎
11:28
|
(167) не... я это уже понял... ща покажу что он мне по отладчику делает
|
|||
170
NcSteel
27.01.14
✎
11:28
|
(166) С делаешь за него - не научится ни чему.
|
|||
171
catena
27.01.14
✎
11:28
|
(167) Он свою-то задачу сформулировать не может, а вы его еще лишними теминами грузите.
|
|||
172
NcSteel
27.01.14
✎
11:29
|
(169) Если понял, то как связана твоя задача с режимом проведения?
|
|||
173
NcSteel
27.01.14
✎
11:29
|
(171) Человек хочет на готовенькое... такое надо искоренять сразу.... Иначе дубиной и помрет.
|
|||
174
Wobland
27.01.14
✎
11:30
|
(170) иногда я вопросами задалбываю. иногда помогает. но здесь ТС уже достал ;)
|
|||
175
catena
27.01.14
✎
11:30
|
(173)Этого человека пока еще надо носом в ЖКК тыкать, в самые первые страницы.
|
|||
176
kotokent
27.01.14
✎
11:31
|
||||
177
NcSteel
27.01.14
✎
11:32
|
(176) Вопросы заданы - ждем ответа )
|
|||
178
Wobland
27.01.14
✎
11:32
|
(176) что, условие про режим проведения дало ложь?
|
|||
179
catena
27.01.14
✎
11:32
|
(176)И какой у тебя при этом режим проведения?
|
|||
180
Wobland
27.01.14
✎
11:33
|
а есть ли переменная РежимПроведения?
|
|||
181
Wobland
27.01.14
✎
11:33
|
(180) вижу
|
|||
182
kotokent
27.01.14
✎
11:33
|
(175) (173)
я учусь, и не надо на меня орать;) (179)Оперативный, да и это не важно как то |
|||
183
Wobland
27.01.14
✎
11:34
|
(182) угу. главное, что не отмена. тогда заход в ветку не происходит
|
|||
184
catena
27.01.14
✎
11:34
|
(182)Все еще удивляет поведение отладчика?
|
|||
185
kotokent
27.01.14
✎
11:34
|
я вот не пойму как режим проведения и режим записи документа могут совпасть
|
|||
186
kotokent
27.01.14
✎
11:35
|
(184) нет, но мне он сильно не помогает
|
|||
187
kotokent
27.01.14
✎
11:35
|
(184) может режим проведения поменять на режим записи
|
|||
188
Wobland
27.01.14
✎
11:36
|
(185) правильный вопрос: как может совпасть режим проведения с системным перечислением про отмену проведения?
|
|||
189
catena
27.01.14
✎
11:36
|
(186)Тебя таблом уже учили пользоваться?
|
|||
190
kotokent
27.01.14
✎
11:36
|
(189) нет, но я видел это чудо
|
|||
191
catena
27.01.14
✎
11:37
|
(190)Ну так смотри в таблу и переписывай оттуда те значения, которые тебе нужны для реакции. Что ж ты тупо код копируешь, ты даже задачу толком не озвучил, тебе тут понапишут...
|
|||
192
NcSteel
27.01.14
✎
11:39
|
(185) Правилньый вопрос - и ответ ни как. Поэтмоу условие и не отрабатывает.
|
|||
193
kotokent
27.01.14
✎
11:40
|
задача тут(0), как у меня на листочке написанно
|
|||
194
NcSteel
27.01.14
✎
11:40
|
(187) Я тебе советую с начала сделать аоритм на одном документе . Описать его в модуле документа без подписок... А потом уже переносить в подписку.
|
|||
195
kotokent
27.01.14
✎
11:42
|
(194) вот он первое ЕСЛИ видит, но при проведении, а потом сразу в конец перескакивает
|
|||
196
Wobland
27.01.14
✎
11:43
|
(195) если работает так. проверяется логическое условие, при истинном результате идёт заход внутрь, при ложном - в конецЕсли. внезапно, правда?
|
|||
197
Wobland
27.01.14
✎
11:44
|
найди Colobot - прекрасная игрунька
|
|||
198
NcSteel
27.01.14
✎
11:44
|
(195) Показывайте код который у Вас получился для одного документа.
|
|||
199
kotokent
27.01.14
✎
11:44
|
(196) нет, я про то что не так в первом если то... я уже его поменял немного
Если РежимЗаписиДокумента.ОтменаПроведения = Истина Тогда так сделал |
|||
200
Wobland
27.01.14
✎
11:45
|
твести!
|
|||
201
Wobland
27.01.14
✎
11:45
|
(199) всегда будет ложь
|
|||
202
Wobland
27.01.14
✎
11:45
|
(201) всегда будет фигня какая-то, не?
|
|||
203
NcSteel
27.01.14
✎
11:45
|
(199) Зачем гадать? Не легче ли написать нормальный алгоритм?
|
|||
204
kotokent
27.01.14
✎
11:47
|
(203) я сам пытался но не выходило (0)
|
|||
205
NcSteel
27.01.14
✎
11:50
|
(203) Давай по порядку... При каком событии документа должен отрабатывать твой код?
|
|||
206
catena
27.01.14
✎
11:51
|
(193)В (0) у тя только про отмену проведения написано, а тестируешь на проведении почему-то И удивляешься, что предоставленный код не работает. Удивительно, правда?
|
|||
207
kotokent
27.01.14
✎
11:51
|
(205) При отмене проведения любого документа
|
|||
208
kotokent
27.01.14
✎
11:52
|
(206) так он просто отменяе проведение и все, я его обрано провожу, чтобы потом еще раз отменить
|
|||
209
NcSteel
27.01.14
✎
11:52
|
(207) такого события у документа нет.
Какие события документов вы знаете? |
|||
210
kotokent
27.01.14
✎
11:53
|
(209) записать
|
|||
211
kotokent
27.01.14
✎
11:54
|
(209) при записи, перед записью и т.д.
|
|||
212
NcSteel
27.01.14
✎
11:54
|
(210) И такого нет.
Советую зайти в синтаксис помощник и перейти по: Прикладные объекты - документы - документ объект - События |
|||
213
NcSteel
27.01.14
✎
11:55
|
(211) Именно.
так вот у некоторых событий есть параметры. И через эти параметры можно понять что сделал пользователь (отменил проведение или провел). параметр именуется "РежимЗаписи".... |
|||
214
NcSteel
27.01.14
✎
11:57
|
(213) + Какое событие нам может подойти?
|
|||
215
kotokent
27.01.14
✎
11:57
|
(213) так при проведении документа срабатывает событие при записи, а при отмене проведения срабатывает ?
|
|||
216
Wobland
27.01.14
✎
11:57
|
(215) срабатывает, также происходит запись
|
|||
217
NcSteel
27.01.14
✎
11:58
|
(215) Отменяя проведение мы меняем объект - а это и есть запись. Поэтому естественно срабатывает.
|
|||
218
kotokent
27.01.14
✎
11:58
|
(214) (216) ну тогда надо передзаписью (217) событие назначить
|
|||
219
Wobland
27.01.14
✎
12:00
|
(218) а почему бы не заюзать удаление проведения?
|
|||
220
NcSteel
27.01.14
✎
12:01
|
(218) Отлично.
для проверки алгоритма, я бы в документе где есть Ответственный добавил бы событие "ПередЗаписью" в модуле документа (если он там не описан конечно) И описал бы алгоритм. Останется в условии проверить соответствие ответственного и заполненность его. |
|||
221
NcSteel
27.01.14
✎
12:01
|
(219) Вот и я ступил - точно... то что надо )
|
|||
222
NcSteel
27.01.14
✎
12:02
|
(220) В свете (219) Событие другое , но суть не меняется )
|
|||
223
kotokent
27.01.14
✎
12:04
|
(222) так событие передзаписью добавить или "ступил" :)?
|
|||
224
Wobland
27.01.14
✎
12:06
|
(223) включить мозг и постараться ответить на свой вопрос самостоятельно
|
|||
225
kotokent
27.01.14
✎
12:07
|
(222) вооот... теперь он мне где не было пользователя написал "Текущего" и не дал отменить провести с другим ответственным
|
|||
226
NcSteel
27.01.14
✎
12:09
|
(225) У события есть параметры, каким параметром события можно отказаться от его выполнения?
|
|||
227
Wobland
27.01.14
✎
12:09
|
это хорошо или плохо?
|
|||
228
kotokent
27.01.14
✎
12:11
|
(226) отказ
|
|||
229
kotokent
27.01.14
✎
12:11
|
(227) это хорошо, очень хорошо, но что то нет чувства что задание выплнено
|
|||
230
Loyt
27.01.14
✎
12:13
|
(156) А при чём тут вообще режим проведения?
|
|||
231
NcSteel
27.01.14
✎
12:13
|
(228) То есть сделав что то с этим параметром, можно отказаться от выпонления действия пользователя...
|
|||
232
kotokent
27.01.14
✎
12:13
|
(226) (227) Спасибо большое, вроде работает как по заданию написано, без вас я бы и не додумался
|
|||
233
kotokent
27.01.14
✎
12:14
|
(231) не, тогда РежимПроведения
|
|||
234
kotokent
27.01.14
✎
12:15
|
(231) отказ это не то
|
|||
235
kotokent
27.01.14
✎
12:16
|
(231) хотя и отказ можно так поставить что просто не дост сделать действий с документом
|
|||
236
Loyt
27.01.14
✎
12:16
|
(218) Про "ПередЗаписью" тебе давно уже написали, ты что, и после этого другое событие использовал?
|
|||
237
kotokent
27.01.14
✎
12:18
|
(236) там тело процедуры не правильное было
|
|||
238
NcSteel
27.01.14
✎
12:18
|
(234) отказ как раз это то...
Возводя его в Истину пользователь не сможет отменить проведение дкоумента. |
|||
239
Loyt
27.01.14
✎
12:18
|
(233) На режимПроведения тебе вообще положить должно быть.
|
|||
240
Loyt
27.01.14
✎
12:19
|
(235) Он и должен запрещать отмену проведения, если ответственный заполнен и не совпал.
|
|||
241
kotokent
27.01.14
✎
12:20
|
(238) Да, я прочитал уже, до этого не посмотрел:)
(239) ну я то думал это то что мне надо |
|||
242
catena
27.01.14
✎
12:20
|
Я вот думаю, при приеме решения тестового задания от кандидатов, имеет смысл так же просить ссылку на ветку с обсуждением.
|
|||
243
Loyt
27.01.14
✎
12:21
|
(237) Да ну? И ты, разумеется, не знаешь, что было неправильно?
|
|||
244
kotokent
27.01.14
✎
12:22
|
(242) ну если бы я это знал, то и не спрашивал, то что описано в книгах и на сайте я сразу разобрал и сам написал метод Гаусса, а здесь запарился
|
|||
245
Loyt
27.01.14
✎
12:22
|
(242) По-моему, такие мелкие задания при очной ставке задают, не?
|
|||
246
kotokent
27.01.14
✎
12:22
|
(243) теперь то знаю
|
|||
247
Loyt
27.01.14
✎
12:23
|
(246) Поделись, пожалуйста.
|
|||
248
kotokent
27.01.14
✎
12:23
|
(245) ну вам то виднее, я то еще не работаю, а учусь
|
|||
249
kotokent
27.01.14
✎
12:26
|
(247)
Процедура ПроверитьОтветственногоПередЗаписьюДокументаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Перем Ответственный; Ответственный = ОбщегоНазначения.ПолучитьРеквизитШапки("Ответственный", Источник, Источник.Метаданные()); Если (НЕ Ответственный = НЕОПРЕДЕЛЕНО) И (НЕ РольДоступна("ПолныеПрава")) Тогда //Если НЕ РольДоступна("ПолныеПрава") Тогда //Если НЕ Источник.Ответственный=Источник.Ссылка.Ответственный Тогда // Сообщить("Нельзя менять ответственного!"); // Отказ = Истина; //КонецЕсли; Если Источник.Ответственный <> ПараметрыСеанса.ТекущийПользователь Тогда Сообщить("Этот документ создал "+Источник.Ответственный+", а не Вы ,"+ПараметрыСеанса.ТекущийПользователь+"). Редактирование запрещено"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецПроцедуры не было записи текущего пользователя если поле пустое |
|||
250
kotokent
27.01.14
✎
12:28
|
(247) во как
|
|||
251
catena
27.01.14
✎
12:31
|
(245)Иногда мелкие задачи просят решить заранее и придти с решением. Чтобы время не терять уже.
|
|||
252
kotokent
27.01.14
✎
12:32
|
(251) мне и дали написать конфигурацию небольшую, чтобы посмотреть что я могу
|
|||
253
catena
27.01.14
✎
12:34
|
(252)А где учишься? И на кого?
|
|||
254
kotokent
27.01.14
✎
12:35
|
(253) 5 курс информационные системы в управлений: прикладная информатика в экономике... а это задание мне на моей работе-практике дали, чтобыпройти сертификацию
|
|||
255
catena
27.01.14
✎
12:41
|
Был у меня один студент на собеседовании. Чистый лист, но схватывал на лету. Через полчаса общения запросы писал с любыми соединениями, параметры виртуальных таблиц усвоил, временные таблицы пощупал... Жаль не разрешили взять, некогда было обучать тогда.
|
|||
256
NcSteel
27.01.14
✎
12:43
|
(255) Такие обучаются сами.... достаточно пару пинков к нужным книгам
|
|||
257
catena
27.01.14
✎
12:46
|
(256)У меня тогда каждая штатная единица на счету была. Но мысля держать единицу на студента засела.
|
|||
258
Loyt
27.01.14
✎
12:52
|
(249) Это не мой код. Мой - в (151).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |