Имя: Пароль:
1C
1C 7.7
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
Всем спасибо за участие. Самостоятельно я данный вопрос не решу, буду искать кому заплатить деньги.