Имя: Пароль:
1C
1С v8
Не могу разобраться...
0 Dampil17
 
03.05.12
19:46
Всем доброго времени суток.

Нужно сделать следующее:
На форме документа есть реквизит тип Булево (по умолчанию стоит Ложь)
Когда определенный пользователь переведет значение в Истина, то должно произойти следующее (в 1С я еще разбираюсь не очень):

&НаКлиенте
Процедура ПередЗаписью(Отказ)
   Если Объект.Статус = Истина Тогда
       Роль(Отказ);
   КонецЕсли;
     Объект.СуммаДокумента = Объект.Заказ.Итог("Сумма");
КонецПроцедуры

&НаСервере
Функция Роль (Отказ) Экспорт
   Если НЕ РольДоступна("ПолныеПрава") Тогда
       Записать(Отказ);
   КонецЕсли;
   Если НЕ РольДоступна("Администратор") Тогда
       Записать(Отказ);
   КонецЕсли;
КонецФункции

Подскажите где и что я делаю не так
Заранее спасибо.
1 Dampil17
 
03.05.12
20:08
Разобрался. Спасибо мне.
2 0xFFFFFF
 
03.05.12
20:49
(0) пожалуйста. Обращайтесь еще.
3 trace366
 
03.05.12
21:45
(1) вот всегда бы так было....
4 hhhh
 
03.05.12
21:54
тут мне одному показалось, что документ запишут все, кроме администратора?
5 ILM
 
гуру
03.05.12
22:40
(4) ну да, пиши кто хочет )))
6 Dampil17
 
14.05.12
07:10
Вообще-то документ запишут Только Админ (Это запись директора), а ПолныеПрава - это моя запись. Кто не верит - может проверить.
7 vmv
 
14.05.12
08:55
(6) я верю, но у меня вопрос

директору приятно, что он Одмин и держит на коленях пользователя с ПолныеПрава?
8 vmv
 
14.05.12
08:56
+ (7) в (0) блестящий образчик г-кода, так к сведению
9 hhhh
 
14.05.12
09:50
(6) вы вчитайтесь

Если НЕ РольДоступна("ПолныеПрава") Тогда

то есть все у кого не полные права, все запишут.
10 Fish
 
14.05.12
09:53
(9) Причём 2 раза :)))
11 Dampil17
 
14.05.12
11:16
Сорри. Забыл выложить отредактированную версию кода.
Вот как работает.
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   Если Объект.Статус = Истина Тогда
       Роль(Отказ, ПараметрыЗаписи);
   КонецЕсли;
     Объект.СуммаДокумента = Объект.Заказ.Итог("Сумма");
КонецПроцедуры

&НаСервере
Функция Роль (Отказ, ПараметрыЗаписи) Экспорт
   Если НЕ РольДоступна("ПолныеПрава") Тогда
       Отказ = Истина;
       Сообщить("Изменение документов в закрытом периоде запрещено. Обратитесь к руководству.");
   КонецЕсли;
КонецФункции
12 Defender aka LINN
 
14.05.12
11:18
(11) Какая красноречивая функция - "Роль". Всем заодно сразу понятно, что именно она делает.
13 Dampil17
 
14.05.12
11:21
За эту базу с нуля босс платит гроши вот и я и делаю на эти гроши.