|
Ограничение изменения по дате | ☑ | ||
---|---|---|---|---|
0
GaikA_13rus
01.04.13
✎
13:28
|
Всем добрый день.
Прошу Вашей помощи, потому что вообще не представляю как это сделать. (( 1с 8.1 ут 10.3 Есть справочник контрагенты, в нем создана надпись: "Месяц" с типом значения - произвольный, в коде указано: Дата = НачалоМесяца(ТекущаяДата()); ЭлементыФормы.Месяц.Заголовок = Формат(Дата,"ДФ=""ММММ"""); Так же там есть поле ввода "ПоКонтрагенту", в которое выставляется план на месяц на контрагента. Мне паставили задачу, чтобы пользователь мог менять план только до 5-го числа текщего месяца. Т.е. если у нас сегодня первое апреля, то за апрель, май, июнь и.д. есть доступ на изменение поля "ПоКонтрагенту", а за март и предыдущие месяца уже нет такого доступа. И за апрель он сможет изменять только до 5-го числа включительно. Есть какие-нибудь идеи как это сделать? |
|||
1
Ювелир
01.04.13
✎
13:30
|
пиши обработку перед записью там проверяй условие
|
|||
2
GaikA_13rus
01.04.13
✎
13:33
|
Я смогла только запретить изменять уже заполненный план:
Если РольДоступна ("ИгорьОлегович") Тогда Если ЗначениеЗаполнено(ПоКонтрагенту) Тогда ЭлементыФормы.ПоКонтрагенту.ТолькоПросмотр = Истина; Иначе ЭлементыФормы.ПоКонтрагенту.ТолькоПросмотр = Ложь; КонецЕсли; КонецЕсли; А вот как с месяцем быть вообще не представляю. Да еще и 5-е число месяца ((( |
|||
3
Wobland
01.04.13
✎
13:40
|
Доступность=(ТекущаяДата()-НачалоМесяца())>5*86400 ? //не читал
|
|||
4
Wobland
01.04.13
✎
13:44
|
я бы даже сказал Отказ=..., ибо (1)
|
|||
5
GaikA_13rus
01.04.13
✎
13:45
|
(3) Ну это я так понимаю будет только до 5-го числа текущего месяца? Т.е. если я открою прошлый месяц, то смогу редактировать.
Реквизита "ПоКонтрагенту" в самом справочнике нет. Он записывается в регистр сведений при нажатии кнопки. И даже если у пользователя нет права на изменение/добавление самого справочника, но есть права на изменение регистра сведения, то он может изменить это число. |
|||
6
GaikA_13rus
01.04.13
✎
13:51
|
(3) Что-то я вообще не поняла ((( И куда это подставлять?
|
|||
7
GaikA_13rus
01.04.13
✎
13:52
|
(3) Что означает число 86400?
|
|||
8
Wobland
01.04.13
✎
13:53
|
я что-то в структуре данных потерялся.. кого не нужно записывать? условие для ненужности вон - (КонтрольнаяДата-НачалоМесяца)>5*86400
|
|||
9
Wobland
01.04.13
✎
13:53
|
(7) 60*60*24
|
|||
10
GaikA_13rus
01.04.13
✎
13:56
|
Блин, там в условии должно быть что-то типа:
Если ЭлементыФормы.Месяц > НачалоМесяца(ТекущаяДата()) Тогда ЭлементыФормы.ПоКонтрагенту.ТолькоПросмотр = Ложь; Иначе ЭлементыФормы.ПоКонтрагенту.ТолькоПросмотр = Истина; КонецЕсли; Только вот как правильно все это написать, я не знаю и с 5м числом тем более ((( |
|||
11
GaikA_13rus
01.04.13
✎
13:58
|
Только если я так ставлю условие, то у меня при открытии элемента справочника выходит сообщение: "Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)"
|
|||
12
Wobland
01.04.13
✎
13:59
|
с текущей датой некошерно сравнивать. можно открыть 1Ску, уйти курить на неделю, вернуться и получить разрешённое состояние доступности
|
|||
13
Wobland
01.04.13
✎
14:00
|
что не нужно записывать? какую дату применять для контроля?
|
|||
14
Ювелир
01.04.13
✎
14:04
|
В ограничении на доступ к элементу напиши условие где текущая дата < 5 числа текущего месяца текущего года
ТекущаяДата()< Началомесяца(текущаяДата()) - 5*86400) Это в принципе тоже, что в (3) (10) ЭлементыФормы.Месяц использовать так нельзя ибо это текст( тип данных строка). |
|||
15
Ювелир
01.04.13
✎
14:05
|
(14) Прошу прщения
В ограничении на доступ к элементу напиши условие где текущая дата < 5 числа текущего месяца текущего года ТекущаяДата()< Началомесяца(текущаяДата()) + 5*86400) |
|||
16
Wobland
01.04.13
✎
14:05
|
(14) это есть едит-бокс ваще-то ;)
|
|||
17
GaikA_13rus
01.04.13
✎
14:07
|
Дата для контроля - это текущая дата. Компы каждый вечер выключаются офис небольшой, начальник экономный ))) А вот вопрос про то что записывать не поняла. Если имеете ввиду изменение реквизита "ПоКонтрагенту", то его можно изменять только до 5-го числа месяца. Т.е. прошлые месяца менять вообще нельзя, текущий месяц только до 5-го чила, а не наступившие месяца менять в любое время
|
|||
18
GaikA_13rus
01.04.13
✎
14:08
|
(14) Если я поставлю такое ограничение, то он за прошлые месяца может изменять. Навсякий случай скину скриншот формы, чтобы понятней было...
|
|||
19
GaikA_13rus
01.04.13
✎
14:11
|
||||
20
GaikA_13rus
01.04.13
✎
14:13
|
(14) Это не тип строка. Он произвольный. И в коде задается:
Дата = НачалоМесяца(ТекущаяДата()); ЭлементыФормы.Месяц.Заголовок = Формат(Дата,"ДФ=""ММММ"""); |
|||
21
zladenuw
01.04.13
✎
14:15
|
(20) и смысл вот этой строки. у тебя значение не хранится в разрезе месяцев. а сугубо последние которое изменил пользователь. создай РС периодичность месяц, измерение контрагент. ресурс значение плана. наверное как то так.
|
|||
22
Wobland
01.04.13
✎
14:16
|
чую тут какую-то методологическую ересь (это из-за текущей даты), но сформулировать не могу..
|
|||
23
GaikA_13rus
01.04.13
✎
14:18
|
(21) Что такое РС?
|
|||
24
zladenuw
01.04.13
✎
14:19
|
(23) Регистр Сведений
|
|||
25
GaikA_13rus
01.04.13
✎
14:23
|
(24) Так он уже есть. И данные записываются в него. В самом справочнике нет такого реквизита как "ПоКонтрагенты", "Месяц". Эти реквизиты сохраняются в регистре сведений и при открытии (а так же переключении месяцев) берутся из этого регистра.
|
|||
26
MSII
01.04.13
✎
14:34
|
(20) При изменении месяца у тебя дата начала этого месяца определяется. Проверяй ее как написано в (3) и меняй доступность элементов формы на этой вкладке. Элементарная же задача.
|
|||
27
GaikA_13rus
01.04.13
✎
14:48
|
(26) Я запуталась окончательно (((
На какой вкладке? |
|||
28
MSII
01.04.13
✎
15:11
|
(27) На вкладке План продаж.
|
|||
29
GaikA_13rus
01.04.13
✎
15:45
|
Ну вот так вроде работает...
Только вот я дату на компьютере меняю на 6-е и все равно за апрель план меняется ((( Если РольДоступна ("ИгорьОлегович") Тогда Если Дата < (НачалоМесяца(ТекущаяДата()) - 5*86400) Тогда ЭлементыФормы.ПоКонтрагенту.Доступность = Ложь; Иначе ЭлементыФормы.ПоКонтрагенту.Доступность = Истина; КонецЕсли; КонецЕсли; |
|||
30
MSII
01.04.13
✎
15:55
|
Если РольДоступна ("ИгорьОлегович") Тогда
ЭлементыФормы.ПоКонтрагенту.Доступность = ДатаНачалаВыбранногоМесяца + 5*86400 >= ТекущаяДата(); КонецЕсли; |
|||
31
Fish
01.04.13
✎
15:58
|
(29) Роль прикольно называется :)
|
|||
32
GaikA_13rus
01.04.13
✎
15:58
|
(30) А Дата начала выбранного месяца - это что?
|
|||
33
GaikA_13rus
01.04.13
✎
15:59
|
(31) Ага, у нас просто директор Кузьмин Игорь Вячеславович, а его зам - Кузьмин Игорь Олегович. (Говорят что не родственники)
|
|||
34
Fish
01.04.13
✎
16:02
|
(33) У вас в конфе роли по имени-отчеству сотрудников называются? Прикольно.
|
|||
35
GaikA_13rus
01.04.13
✎
16:03
|
(34) А он вообще по должности непонятно кто. Поэтому так...
|
|||
36
GaikA_13rus
01.04.13
✎
16:04
|
+(35) Это еще не самое прикольное. Вот до меня программер создал роль "ЖенаДиректора" ^_^
|
|||
37
GaikA_13rus
01.04.13
✎
16:06
|
Я вот если ставлю + 5 * 86400, то он мне вообще за апрель менять не дает. (Дата на компе 01.04.13)
|
|||
38
MSII
01.04.13
✎
16:09
|
(32) Начало выбранного месяца.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |