Имя: Пароль:
1C
1С v8
Как реализовать изменение документа только по текущей дате
0 Oleg102
 
01.08.12
09:37
Всем привет! Хочу сделать проверку документа "РеализацияТоваровИУслуг" что бы изменять возможно было только по текущей дате. Вчерашняя дата уже была не доступна для редактирования и только просмотр. Все пользователи с полными правами, в программе уже много чего изменилось, доработки сплошь и рядом. Сделал отдельную роль "РедактированиеДокумента" Теперь хочу вставить код в модуль формы "РеализацииТоваровУслуг" в процедуру "передОткрытием" что бы делалась проверка если стоит галочка на роли пользователя "РедактированиеДокумента" тогда возможно изменение документа иначе только просмотр. В программировании пока не силен, учусь. Как это вообще можно сделать, наставьте хотя бы в правильный путь. Спасибо.
1 Shurjk
 
01.08.12
09:39
(0) Неоперативное провдение запретить не подходит - обязательно надо свой велосипед изобрести?
2 Maxus43
 
01.08.12
09:39
>>Все пользователи с полными правами
фэйспалм

бардак разгребайте и всё уже в типовых придумано,

>>изменение документа только по текущей
це право только на оперативное проведение
3 Anastasiy
 
01.08.12
09:42
ДатаПроведения = ТекДата;
4 Oleg102
 
01.08.12
09:42
Просто проблема в чём. Всем нужны полные права. даёшь другие права база не запускается без роли пользователя. т.е. надо еще добавить роль пользователя, а она вся ограничена на уровне записи. Нам это не подходит. тогда может подскажите как запустить бузу с другими ролями без роли "пользователь"
5 Anastasiy
 
01.08.12
09:43
Если ТекДата Тода
Модифицированность Истина;
Что-то вроде того
6 Anastasiy
 
01.08.12
09:44
На модифицированность запрет выставь
7 Maxus43
 
01.08.12
09:44
(4) дак выключите ограничение на уровне записи, в настройках, если оно не надо... где проблема то?
8 Shurjk
 
01.08.12
09:44
(4) Советую привлечь нормального специалиста.
9 izekia
 
01.08.12
09:46
(2) в типовых это нифига не работает, приходится их править, чтобы можно было в той же БП работать без полных прав.
10 Anastasiy
 
01.08.12
09:48
Ну, да тут у нормальмального специалиста диск сцепления поменяли, теперь при нажатии на тормоз - поворотник выключается, а так согласна с (8)))))
11 Shurjk
 
01.08.12
09:51
(9) Все там работает.
12 Oleg102
 
01.08.12
09:55
Так ладно. Где убрать эти ограничения на уровне записи для пользователя. Или я например хочу запустить базу с роль "менеджер по продажам" как мне это можно сделать на ставя еще дополнительно роль "пользователь"???
13 Oleg102
 
01.08.12
09:59
Бред блин какой. Зачем все так было усложнять. Надо роль поставил и где надо поставил галки. Зачем такие сложности, все гениально должно быть просто. А это вечные проблемы с этой 1С. То так ей не то то эдак. противная программа =)
14 Shurjk
 
01.08.12
09:59
(13) Бросай ее. Зачем связался.
15 Shurjk
 
01.08.12
10:00
(12) создай группу пользователей для которых будет доступно ВСЕ и добавь ее для всех пользователей.
16 Oleg102
 
01.08.12
10:02
Да не хотел связываться даже. Работаю системным администратор в частной конторке ООО. Свою работу знаю и разбираюсь, а тут напрягают с этой 1С. Никогда нигде не учился, приходится учиться самому. Некому даже объяснить даже элементарные вещи. Приходится сложно. Вот лазаю по форумам и читаю где что найду, пробую.
17 SachoZ
 
01.08.12
10:03
(12) > Или я например хочу запустить базу с роль "менеджер по продажам" как мне это можно сделать на ставя еще дополнительно роль "пользователь"???

Если ты про типовую то общем модуле "ПолныеПрава" добавить: ИЛИ РольДоступна("МенеджерПоПродажам"):
Функция ЕстьДоступныеПраваДляЗапускаКонфигурации() Экспорт
        Возврат РольДоступна("ПолныеПрава") ИЛИ РольДоступна("Пользователь");
КонецФункции
18 Maxus43
 
01.08.12
10:04
роль пользователь нужна.
Ограничение на уровне записей выключается в сервис - "доступ на уровне записей" (точно не помню), там галку снять
19 Oleg102
 
01.08.12
10:04
Спасибо большое SachoZ. Сейчас попробую
20 Serg_1960
 
01.08.12
10:05
Роль "Пользователь" - обязательная роль, по мнению разработчиков, для работы пользователя. Она не должна "мешает" ТС установить запрет на неоперативный режим проведения.
21 Maxus43
 
01.08.12
10:05
не только "Пользователь" порезан на уровне записей, делать дак нормально, а не меняя типовые механизмы имхо
22 izekia
 
01.08.12
10:06
(11) пример привести?
23 Oleg102
 
01.08.12
10:06
Мешает почему то. Ни один документ не могу даже создать пишет нет доступа на уровне записи и каюк. поэтому у всех и стоит роль полные права.
24 Maxus43
 
01.08.12
10:07
(23) кто-то включил это грёбаное ограничение, выключи... я хз скока раз повторять
25 Oleg102
 
01.08.12
10:08
сейчас попробую выключить
26 izekia
 
01.08.12
10:09
(24) с полными правами рлс не работает
27 Maxus43
 
01.08.12
10:11
28 Maxus43
 
01.08.12
10:12
(26) понятно, потому и надо выключить его РЛС совсем, раз он не нужен
29 SachoZ
 
01.08.12
10:12
(19) Берешь копируешь роль "ПолныеПрава", получится "ПолныеПрава1" переименовываешь их например в "Менеджер", настраиваешь разрешения для этой роли и добавляешь ее в проверку из (17)
30 SachoZ
 
01.08.12
10:15
(26) откуда дровишки? На полных правах в тиражных решениях РЛС не прописывают ибо на то они и полные права чтоб безо всяких ограничений, но вот если взять и прописать..
31 Oleg102
 
01.08.12
10:22
Сделал так как написал "SachoZ" запустилась база. Убрал галки с документа "РеализацииТоваровУслуг" неоперативное проведение. Документ все равно изменяется по вчерашним датам.
32 Stim
 
01.08.12
10:29
эх, начал писать, закрыл. вобщем 3 способа:


1. в модуле формы прописать в ПриОткрытии()
ЭтаФорма.Доступность = НачалоДня(дата) = Началодня(ТекущаяДата())

2. каждый день изменять Границу запрета изменения данных на вчерашнее число.

3.  добавить параметрСеанса &текущаяДата, заполнять его в параметрах сеанса текущей датой, добавить новую роль и прописать РЛС к документам хоть и на чтение.
33 SachoZ
 
01.08.12
10:32
(31) Под кем вошел? Какие роли у этого пользователя, оставь только ему одну роль "Менеджер", т.к. если у него отмечена роль ПолныеПрава и Менеджер то ограничения Менеджера будут перекрыватся отсутствием таковых у ПолныхПрав.
+ Надо для роли менеджер убрать  галки с "интерактивное не оперативное проведение", "интеравтивное изменение проведенных", "интерактивная отмена проведения", "интерактивная пометка на удаление"...
34 Oleg102
 
01.08.12
10:37
Скопировал полные права. назвал другим именем. Поставил в модуль эти права для запуска ИБ. полные права вообще галку убрал. сейчас пробую галки убрать
35 Oleg102
 
01.08.12
10:38
с прав на документ
36 Oleg102
 
01.08.12
10:41
сделал. Но это закрывает вообще полный доступ на изменение, а нужно что бы текущую дату можно было изменить, а вчерашнюю нет
37 SachoZ
 
01.08.12
10:51
(36) правильно по служебке ты снимаешь проводку, менеджер меняет.
Если по Дате тогда либо в РЛС прописать шаблон как в (32) либо в модуле документа добавить проверку:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

//{Проведение задним числом
Если (Дата < НачалоДня(ТекущаяДата()) И НЕ РольДоступна("ПолныеПрава")) Тогда
  Отказ = Истина;
  Предупреждение("А проводить то задним числом низзя!");
  Возврат;
КонецЕсли;
//}Проведение задним числом
....
КонецПроцедуры

Проводить/изменять задним числом сможет только юзер с полными правами.
38 Соло
 
01.08.12
11:04
а не правильнее ли просто добавить подписку на событие приоткрытии и там всё сделать, не нарушая типовых механизмов?
39 Соло
 
01.08.12
11:05
(37) правильнее просто открывать форму только для чтения
40 SachoZ
 
01.08.12
11:10
(38) правильнее.
(37) Не правильнее, я могу снять проводку и в списке документов.
41 Oleg102
 
01.08.12
11:41
Все заработало. Всех благодарю. Особенно SachoZ.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс