Имя: Пароль:
1C
1С v8
Правильно ли написан код в типовой УПП
,
0 Alex_MA
 
27.09.12
13:51
Всем доброго дня!

1С:Предприятие 8.2 (8.2.16.362)
УПП, редакция 1.3 (1.3.28.1)

При создании нового контрагента в тонком клиенте возникает событие в модуле формы "ФормаЭлементаУправляемая"

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

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

В результате процедуры ПроверитьОсновнойДоговорКонтрагента(ТекущийОбъект, Отказ) пытается создаться новый договор контрагента

СтрокаСообщения = "";
Попытка
   НайденныйДоговорОбъект.Записать();  - ВОТ ТУТ ОШИБКА - НЕТ ПРАВ У ПОЛЬЗОВАТЕЛЯ
Исключение
   СтрокаСообщения = Нстр("ru = 'Не удалось записать основной договор контрагента: '") + ОписаниеОшибки();
КонецПопытки;

Если СтрокаСообщения <> "" Тогда
   ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СтрокаСообщения, ТекущийОбъект,,, Отказ);
   Возврат;
КонецЕсли;

Вот ошибка:

Не удалось записать основной договор контрагента: {Справочник.Контрагенты.Форма.ФормаЭлементаУправляемая.Форма(162)}: Ошибка при вызове метода контекста (Записать): У пользователя недостаточно прав на исполнение операции над базой данных.

Разве это правильно ?
1 mikecool
 
27.09.12
13:52
а что неправильного?
2 DrShad
 
27.09.12
13:54
(1) +1
что не так?
3 Alex_MA
 
27.09.12
13:57
(1)Человек пытается записать карточку контрагента, а ему выдает ошибку
http://gyazo.com/2a242cfa0bbf16c2184a2ba097680f85

Все события и подписки по котрагенту прошли - контрагент должен быть записан!
Потом пытаются создать договор контрагента - облом.
4 shuhard
 
27.09.12
13:58
(3) ну кривой RLS в УПП
5 mikecool
 
27.09.12
13:59
+4 или криво настроен
6 neckto
 
27.09.12
14:00
Автоматическое создание договора при вводе нового контрагента - зло
7 Alex_MA
 
27.09.12
14:01
(4)из за такого кода проблематично написать асинхронный обмен между базами
8 shuhard
 
27.09.12
14:03
(7) ещё раз
это ошибка RLS, а не кода
9 Alex_MA
 
27.09.12
14:05
(8)как тогда определить в каком месте объект точно будет записан ?
10 Alex_MA
 
27.09.12
14:06
ПослеЗаписиНаСервере ?
11 Feanorko
 
27.09.12
14:07
(9) яхз, почитай про РЛС, что ли
12 Fish
 
27.09.12
14:08
(0) А настроить права не предлагать?
13 Alex_MA
 
27.09.12
14:08
(11)я не про РЛС, а методологию
14 Feanorko
 
27.09.12
14:10
(13) методологически определять факт записи из формы объекта в общем случае в корне не правильно.
15 shuhard
 
27.09.12
14:11
(13) по методологии 1с надо исключить ситуацию, когда можно записать контрагента, но нельзя записать договор с ним, а такая лажа бывают от ограничения доступа к организации
16 Alex_MA
 
27.09.12
14:11
(14)согласен на 100%
17 Feanorko
 
27.09.12
14:16
(16) а использовать планы обмена для регистрации изменений религия не позволяет?
18 Alex_MA
 
27.09.12
14:21
(17)да, так и сделаю
19 Дмитрий Степанов
 
27.09.12
14:44
Вообще считаю сообщение "У пользователя недостаточно прав на исполнение операции над базой данных"  не верно, нужно более понятную информацию предоставлять пользователю!
20 Feanorko
 
27.09.12
14:50
(19) твои б слова да Боре в уши...)))
21 МастерВопросов
 
23.10.12
06:48
Сегодня в 1С77 Предпринимателе наткнулся:

"        Если (СуммаВсего > 0) и (Начисление = 0) и (ВклФильтрПоВидуДеятельности = 0) Тогда
           // Установка фильтров регистра для текущей строки ТабДок
           Расчеты.УстановитьЗначениеФильтра("ВидНалога", ВидНалога);
           Расчеты.УстановитьЗначениеФильтра("ВидПлатежаВБюджет", ВидПлатежаВБюджет);
           
           Если (ПустоеЗначение(ВидДеятельности) = 0) и (ВклФильтрПоВидуДеятельности = 1) Тогда
...
"
22 Мимохожий Однако
 
23.10.12
08:04
(19)Как бы ты написал?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс