Имя: Пароль:
1C
1С v8
При программном изменении документа не хватает прав на регистр "Версии объектов"
0 Saari
 
11.10.16
11:39
Бухгалтерия 3.0
Создал программно документ "Акт сверки взаиморасчетов".
Появилась необходимость изменить программно этот (только что созданный документ).
Получаю сообщение, что недоступен регистр сведений "Версии объектов". Да, у пользователя на этот регистр нет прав. Этот регистр доступен только тем, кто с полными правами.
Как правильно откорректировать программно уже созданный документ?
1 mehfk
 
11.10.16
11:42
УстановитьПривилегированныйРежим()
2 zak555
 
11.10.16
11:46
(1) ерунда
в ОМ ВерсионированияОбъекта и так идёт вызов этого метода
3 zak555
 
11.10.16
11:46
(0) покажи код, как создал
4 shuhard
 
11.10.16
11:48
(2) +1
5 mehfk
 
11.10.16
11:49
(2) И чо?
6 Saari
 
11.10.16
11:52
Процедура ОбработкаТЗ()

Для Каждого строка из ОбъектОтчет.Клиенты Цикл
        
Если строка.СоздатьДокумент Тогда
            
Если ЗначениеЗаполнено(Строка.Документ)Тогда
                            
СоздатьДокумент(Строка.Контрагент, Строка.Документ.ПолучитьОбъект(),ПредставительОрганизации);
                
Иначе
                НовыйДокумент=Документы.АктСверкиВзаиморасчетов.СоздатьДокумент();
                
СоздатьДокумент(Строка.Контрагент, НовыйДокумент, ПредставительОрганизации);
                Строка.Документ=НовыйДокумент.Ссылка;
                Строка.СоздатьДокумент=Ложь;
                
    КонецЕсли;    

КонецЕсли;    
КонецЦикла;

КонецПроцедуры

Процедура СоздатьДокумент(НужныйКонтрагент,НовыйДокумент,ПредставительОрганизации)
    
    НовыйДокумент.Контрагент=НужныйКонтрагент;        
    ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(НовыйДокумент);
    НовыйДокумент.ДоговорКонтрагента=Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
    
    НовыйДокумент.ВыводитьПолныеНазванияДокументов=Истина;
    
    НовыйДокумент.ПредставительКонтрагента = НужныйКонтрагент.ОсновноеКонтактноеЛицо;
    Новыйдокумент.Организация=ОбъектОтчет.ВыбОрганизация;
    Новыйдокумент.Комментарий="Автоматически";

    НовыйДокумент.ПредставительОрганизации=ПредставительОрганизации;
    НовыйДокумент.СписокСчетов.Очистить();
    
    Для Каждого строка из ОбъектОтчет.СписокСчетов Цикл
        НоваяСтрока=НовыйДокумент.СписокСчетов.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
    КонецЦикла;    
    НовыйДокумент.СверкаСогласована = Ложь;
    НовыйДокумент.Дата=текущаядата();        
    НовыйДокумент.ДатаОкончания   = КонецДня(ОбъектОтчет.ВыбКонДата);
    НовыйДокумент.ДатаНачала      = НачалоДня(Объектотчет.ВыбДата);
    НовыйДокумент.ВалютаДокумента = мВалютаРегламентированногоУчета;
    НовыйДокумент.УстановитьНовыйНомер();
    ЗаполнитьДанными(НовыйДокумент);
    Новыйдокумент.Записать();
    Сообщить(НовыйДокумент);
    
КонецПроцедуры
7 Ёпрст
 
11.10.16
11:54
(6)

Новыйдокумент.ОбменДанными.Загрузка = Истина;
8 Ёпрст
 
11.10.16
11:54
и
Новыйдокумент.Записать(РежимЗаписиДокумента.Запись);
9 Saari
 
11.10.16
11:58
(7), (8) не помогает. Все равно ругается, что не хватает прав на регистр "Версии объектов".
10 Saari
 
11.10.16
11:59
(7) установил первой строкой в процедуре СоздатьДокумент()
11 Ёпрст
 
11.10.16
12:03
(9) ну дык, либо раздай права, либо отключи версионирование к едрени фени - всё равно не пользуешься им.
12 shuhard
 
11.10.16
12:06
(9) заставь себя использовать отладчик и убери загрузка = истина
13 zak555
 
11.10.16
12:07
как я понимаю релиз старый или кривообновлённый
14 Saari
 
11.10.16
13:30
(13) релиз 3.0.44.115
15 zak555
 
11.10.16
13:30
(14) не менял ?
16 Saari
 
11.10.16
13:31
(15) не понял вопроса. Сейчас релиз 115-й.
17 zak555
 
11.10.16
13:35
типовой релиз ?
18 Saari
 
11.10.16
13:58
(17) да
19 Saari
 
11.10.16
14:12
(17) клиент-серверный вариант
20 Dmitrii
 
гуру
11.10.16
14:23
Я так и не понял: что говорит отладчик?

Предположу, что выполняется внешняя обработка в безопасном режиме. Или весь этот код в расширении, подключенном в безопасном режиме.
21 Saari
 
11.10.16
14:47
(20) отладчик пока занят.
И да, внешняя обработка в безопасном режиме. Сменили режим на опасный.
22 Dmitrii
 
гуру
11.10.16
15:14
(21) >> Сменили режим на небезопасный.

И что? Не помогло?
Тогда отладчик в зубы и вперед.
23 Saari
 
12.10.16
16:21
Ошибка была в том, что в процедуре СоздатьДокумент() всегда выполнялась строка: НовыйДокумент.УстановитьНовыйНомер();
А она не должна выполняться, если в процедуру передается уже существующий документ.
Всем спасибо!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан