|
v7: Изменена дата проведенного документа. | ☑ | ||
---|---|---|---|---|
0
rbl_rbl1
06.02.18
✎
15:36
|
Коллеги,
В 1С сделали доработку для CRM модуля. В результате чего у части пользователей при записи документа начало появляться окно с надписью: Изменена дата проведенного документа. Документ - контакт, в который пользователь пишет свои комментарии по звонку. Прекрасно понимаю что дело в правах пользователей, т.к. у тех кто работает с правами администратора таких проблем нет. Подскажите, с чего начать в первую очередь? З.Ы. К человеку который написал код обратиться не могу: проблема проявилась не сразу, а в данный момент он недоступен. |
|||
1
Злопчинский
06.02.18
✎
15:39
|
Потому что нельзя изменять ДАТУ И ВРЕМЯ ПРОВЕДЕННОГО ДОКУМЕНТА. еслир у вас дата ир время документа несут смысл датаврремрени события и это датавремя события может меняться - вот вам Ж (_._) - у вас документ проведен - нельзя менять датувремя.
а что вам там кодер понаписал - нам отсюда не видно. |
|||
2
rbl_rbl1
06.02.18
✎
15:45
|
(1) Тогда почему под пользователями с правами Администратора нет аналогичной проблемы?
|
|||
3
Kigo_Kigo
06.02.18
✎
15:53
|
Может что то связано с отменой проведения?
под админом он документ распроводит и заново проводит, а вот под пользователем не отменяет, а так ушлый программист может это сделать через попытку - исключение, то никаких сообщений о недостаточно прав - не выходит? |
|||
4
Kigo_Kigo
06.02.18
✎
15:54
|
короче, нужен код
|
|||
5
AntiBuh
06.02.18
✎
16:04
|
(2) ЛПП
в 7 если только специально в обработке не прописано для админа снятие проведение |
|||
6
rbl_rbl1
06.02.18
✎
16:31
|
(4) СпрСостояния = СоздатьОбъект("Справочник.я_ТипыКлиентов");
СпрИсточникРекламы = СоздатьОбъект("Справочник.я_ИсточникиРекламы"); СпрИсточникРекламыОбъект= СоздатьОбъект("Справочник.я_ИсточникиРекламы"); ТекущееСостояние = шКонтрагент.ТипКлиента.Получить(ДатаДок); Если СпрИсточникРекламы.НайтиПоНаименованию(СокрЛП(ТекущееСостояние.Наименование),0,1) = 0 Тогда СпрИсточникРекламыОбъект.Новый(); СпрИсточникРекламыОбъект.Наименование = СокрЛП(ТекущееСостояние.Наименование); СпрИсточникРекламыОбъект.Записать(); ИсточникРекламы = СпрИсточникРекламыОбъект.ТекущийЭлемент(); Иначе ИсточникРекламы = СпрИсточникРекламы.ТекущийЭлемент(); КонецЕсли; |
|||
7
Kigo_Kigo
06.02.18
✎
16:33
|
(6) В этом коде нет документов и модификации даты текущего документа
|
|||
8
rbl_rbl1
06.02.18
✎
16:59
|
(7) я и сам это понимаю, но как только я кусок этого кода комментирую - ошибка пропадает.
|
|||
9
vova1122
06.02.18
✎
17:14
|
ну посмотри тогда на права Справочник - я_ИсточникиРекламы
|
|||
10
Kigo_Kigo
06.02.18
✎
17:17
|
(8) Попробуй сделать замер производительности в отладчике, и дай результат, может там чего увидим
|
|||
11
vova1122
06.02.18
✎
17:19
|
хотя нет. ИсточникРекламы-это реквизит документа? Если в документе больше ничего не меняется, то и документ не проводится (что ты и сделал закоментировав этот кусок)
Если, как ты говоришь под админом (админом 1С) все проводится правильно, то смотри права на свой документ |
|||
12
rbl_rbl1
07.02.18
✎
07:29
|
(11) Права на документ проверял и еще раз посмотрел - там дан полный доступ на любые изменения.
Суть этого маленького куска кода: есть периодический реквизит - состояние отношений клиента, но на основании этого реквизита нельзя построить нужный отчет. А в самом документе Контакт есть неиспользуемые реквизиты, в частности Источник рекламы. Код при записи берет текущее состояние отношений, записывает его в источник рекламы. Первый раз это отрабатывает нормально, но для введенного на основании этого контакта следующего контакта работать уже не хочет. Может эта информация как-то поможет... Появилась другая идея - а можно сразу целой группе документов (журналов, справочников) поменять права? Я бы мог тогда просто методом перебора найти где возникает ошибка. |
|||
13
Головоломка
07.02.18
✎
08:44
|
(12) Мутно как-то, но...
Вот тут "Первый раз это отрабатывает нормально, но для введенного на основании этого контакта следующего контакта работать уже не хочет. " - не понятно (мне лично). Если док-т проведен и на основании него вводится другой док-т, то в первом док-те (проведенном) может измениться реквизит, связанный с вводимым на основании. В общем, мутно как-то... А насчет прав правильно Злоп сказал (1). |
|||
14
rbl_rbl1
07.02.18
✎
09:09
|
(13) Согласен, но тогда почему под Админом все ок?
Первый раз контакт создается и реквизит источник рекламы пустой, а при вводе на основании он уже заполнен. Может дело в этом? Может до записи очищать этот реквизит? |
|||
15
Фомич
07.02.18
✎
09:24
|
Это похоже на срм от раруса, там еще в самом предприятии были подробные настройки прав, если не ошибаюсь.
|
|||
16
rbl_rbl1
07.02.18
✎
09:30
|
(15) Там тоже все одинаково.
|
|||
17
Головоломка
07.02.18
✎
09:44
|
(16) Чего-то ты не видишь, а нам, не видя всего кода и конфигурации, сложно ткнуть. Поэтому - пилите, Шура, пилите (С)
Чудеса делают волшебники, а 1с писали люди :) |
|||
18
rbl_rbl1
07.02.18
✎
10:22
|
Похоже придется давать пользователям права администратора, но эта идея не нравится мне совсем.
|
|||
19
Pit0n_08
07.02.18
✎
10:31
|
(18) Может будет достаточно в наборе прав рядовых пользователей для данного документа поставить галочку "Изменение проведенных документов" и "Изменение документов без перепроведения"?
|
|||
20
rbl_rbl1
07.02.18
✎
10:39
|
(19) И даже больше. Не помогло.
|
|||
21
vova1122
07.02.18
✎
10:42
|
(20) чудес не бывает. Может где-то в модуле документа, или в модуле проведения документа, или в глобальном модуле этот ваш программист поставил дополнительные проверки
|
|||
22
ikea
07.02.18
✎
10:44
|
А Вы (0) уверены, что код из (6) выполняется для пользователей с набором прав "администратор", может там условие есть, что пользователь не "администратор" только попадает на этот код?
|
|||
23
rbl_rbl1
07.02.18
✎
10:52
|
(21) Согласен, но увы я не программист.
(22) Да у меня все нормально работает. У меня права администратора. |
|||
24
vova1122
07.02.18
✎
10:56
|
(23) Тогда или пригласите программиста. Или дайте свою базу на посмтотеть тут кому доверяете (могу посоветовать человека под Ником "Ёпрст", если он согласится). Или дать кому-то удаленный доступ к своему компу
|
|||
25
vova1122
07.02.18
✎
11:05
|
(23) у Вас права администратора на Виндовс или в наборе прав 1С?
|
|||
26
Kigo_Kigo
07.02.18
✎
11:11
|
(12) я вам уже написал, что данный кусок кода не модифицирет датуДок, но зато ее может модифицировать функция на форме, попробуйте вот так
СпрСостояния = СоздатьОбъект("Справочник.я_ТипыКлиентов"); СпрИсточникРекламы = СоздатьОбъект("Справочник.я_ИсточникиРекламы"); СпрИсточникРекламыОбъект= СоздатьОбъект("Справочник.я_ИсточникиРекламы"); ТекущееСостояние = шКонтрагент.ТипКлиента.Получить(ДатаДок); Если СпрИсточникРекламы.НайтиПоНаименованию(СокрЛП(ТекущееСостояние.Наименование),0,1) = 0 Тогда СпрИсточникРекламыОбъект.Новый(); СпрИсточникРекламыОбъект.Наименование = СокрЛП(ТекущееСостояние.Наименование); СпрИсточникРекламыОбъект.Записать(); ИсточникРекламы = СпрИсточникРекламыОбъект.ТекущийЭлемент(); Иначе //ИсточникРекламы = СпрИсточникРекламы.ТекущийЭлемент(); КонецЕсли; будет работать? |
|||
27
rbl_rbl1
07.02.18
✎
12:43
|
(25) ))) И в 1С и на винде.
|
|||
28
rbl_rbl1
07.02.18
✎
12:49
|
(26) Та же ошибка.
|
|||
29
vova1122
07.02.18
✎
13:12
|
(27) а если запустить на винде с обычным пользователем и под Админом 1С. а потом наоборот?
|
|||
30
ptiz
07.02.18
✎
13:15
|
Повторю, что говорили тут: платформе пофиг на права. Дату проведенного документа менять не может никто.
Значит, код написан так, что отрабатывает по-разному для разных прав. |
|||
31
rbl_rbl1
07.02.18
✎
13:18
|
Всем спасибо за участие. Самостоятельно я данный вопрос не решу, буду искать кому заплатить деньги.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |