Имя: Пароль:
1C
 
Этоновый() в модуле объекта в файловой базе. Глюк или фича ?!
0 Aleks73
 
27.03.09
10:47
Движок 11.67. Файловый режим УТ 10.3 Задача, сделать так, чтобы некий чел имел возможность только создавать, но не редактировать уже созданных контров. Права не менять. Задача для клиент-серверной конфы УТ примитивная: в модуле объекта в процедуре перед записью пишем - если не этоновый() тогда если рольдоступна тогда...Сделал и со спокойной совестью ушёл домой. На завтра говорят - не работает! Что? На код не грешил. В результате оказалось что в модуле объекта функция этоновый() при открытом окне формы элемента нового контра выдает ложь. В модуле формы работает правильно. Что это было - не понимаю! Кто сталкивался ? Глюк или фича ?
1 Aleks73
 
27.03.09
10:59
up
2 НЕА123
 
27.03.09
11:04
(0) может не перед а призаписи?
3 H A D G E H O G s
 
27.03.09
11:06
Стэк вызовов глядим
4 H A D G E H O G s
 
27.03.09
11:06
А вообще, в модуле формы находим строчку
ЗаписатьВФорме();
и думаем
5 Aleks73
 
27.03.09
11:09
(2) Смысл ?
6 Aleks73
 
27.03.09
11:11
(3)Э-э-э ...а что я там найду ?! Отладку делал.
(4) ЗаписатьВФорме(); -- при сортировке функций после Д идёт И. Внизу списка не предлагается. Вчера ещё смотрел.
7 НЕА123
 
27.03.09
11:13
(5) призаписи() он уже записан.
я ТАК думаю.(с)
8 73
 
27.03.09
11:13
(6) ЗаписатьВФорме(); -- Это не обработчик. Это вызов метода.
9 Immortal
 
27.03.09
11:13
в чём фича то
в том что элемент уже записали?=)
10 73
 
27.03.09
11:16
(4)+ Также поискать в модуле формы строчку Записать();
11 Aleks73
 
27.03.09
11:17
(7) вот я и говорю что призаписи мне не нужно для определения нового.
12 Aleks73
 
27.03.09
11:17
(9) в форме элемента остаётся надпись новый значит не записан.
13 Aleks73
 
27.03.09
11:18
(8) наверно образованиев у меня не хватает...как его перехвать и редактировать?
14 НЕА123
 
27.03.09
11:20
(0)
так в ПередЗаписью() или ПриЗаписи()?
15 Aleks73
 
27.03.09
11:20
(10) Остроумно...но нет. Там записывается только договор контра.
16 Aleks73
 
27.03.09
11:20
(14) Я писал в ПЕРЕДЗАПИСЬЮ мне предложили в (2) - при записи
17 НЕА123
 
27.03.09
11:23
(16)
пардон. извиняюсь за пост(2) - непонятно написал.
ПередЗаписью() - правильно.
18 Aleks73
 
27.03.09
11:23
(17)Принято
19 Serg_1960
 
27.03.09
11:26
Я бы проверял при открытии формы и ставил только просмотр. Почему? Юзверь может записать новый объект в форме и, обнаружив ошибку, - захочет исправить... а прав-то уже нету :(
20 73
 
27.03.09
11:29
Да должно работать. Пользовался и в справочниках и в документах. Вопросов не было.
21 73
 
27.03.09
11:35
(0) <некий чел имел возможность только создавать ... если не этоновый() тогда если рольдоступна тогда>

Не совсем понятно. Может в Если что-то не так?
22 Serg_1960
 
27.03.09
11:35
(20) Ваше "Да" к чему? Или Вы это об чем-то своем :)
23 73
 
27.03.09
11:38
(22) Да - междометие в данном случае, если Вы так уж придирчивы.
Ну, что ж, перейдем на литературный язык:)
24 Immortal
 
27.03.09
11:40
типа так:  не будете ли вы так любезны сообщить мне в случае своей осведомлённости о возможном решении этого вопроса , крайне интересного для меня в силу профессиональных обязанностей, с одной стороны, и незнания предмета, с другой.
25 73
 
27.03.09
11:43
(21)+ РольДоступна в (0) проверяется как раз для записанного документа.
Если, конечно, приведенный код используется.
26 Aleks73
 
27.03.09
11:45
(19) оригинальная идея...но визуально это не очень хорошо выглядит...подумаю.
(21,25) не этоновый() означает не новый. Проблема в том, что этоновый работает неправильно..или очень своеобразно. роль - это уже вторично работает кстати нормально.
27 Serg_1960
 
27.03.09
11:51
(26) "Визуально хорошо выглядит" если в заголовке будет фраза "... только просмотр".
28 73
 
27.03.09
12:03
(26) Я тоже знаю что означает "не этоновый()".
Уговорил... Я проверил: ЭтоНовый() в модуле объекта работает правильно.

Процедура ПередЗаписью(Отказ)
  Сообщить(ЭтоНовый());
КонецПроцедуры

Во время первого сохранения - Истина.
Во время второго сохранения - Ложь.
29 Aleks73
 
27.03.09
12:46
(28) - файловый ? УТ ? какая ?
30 Serg_1960
 
27.03.09
12:50
(28) И отсюда вывод: проверка "перед" или "при" записи не совсем "устраивает" условиям в (0).
Пока открыта форма редактирования нового объекта - делай что хочешь. Закрыл форму - свободен. Далее - только просмотр.

(29) Это не важно :( Сп читай:

ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ЭтоНовый (IsNew)
Синтаксис:
ЭтоНовый()
Возвращаемое значение:
Тип: Булево. Истина - изменяется еще ни разу не записанный документ; Ложь - документ уже записан.
31 73
 
27.03.09
12:52
(29) Каюсь. На "файловый" не обратил внимания. У меня клиент-сервер.
Может кто из народа проверит?
32 Aleks73
 
27.03.09
12:57
(30) может это единственный выход.
33 Aleks73
 
27.03.09
12:57
(31) НАРОД!!!! ГДЕ ТЫ !!!! Проверь !!!
34 73
 
27.03.09
13:01
(30) Я ж не спорю, как лучше решать задачу, описанную в (0).
(33) А у тебя "Сообщить" что выводит?
35 Serg_1960
 
27.03.09
13:02
(31) Сорри, коллеги, это функционал платформы! Не тормозите :( Конфа и реализация БД здесь ни причем :(
(32) Не настаиваю - рекомендую :)
(33) Чего проверять-то??? Что Земля круглая?  Ща, брошу все, - побегу проверять :))
36 73
 
27.03.09
13:03
(35) + Присоединяюсь.
37 Aleks73
 
27.03.09
13:07
(34) Аккурат по сообщить я и тестировал. Лень было подключаться через юзера.
(35,36) несколько неясно сказано - в файловой базе в модуле объекта этоновый() не работает ?!
38 PR
 
27.03.09
13:10
Столько писанины, а ответа все нет :o)
(0) Это бред. Просто при открытии формы объект видимо записывается. Отладчик купи и вперед.
39 73
 
27.03.09
13:12
(38) А что, если он при открытии формы записывается, то ПередЗаписью() объекта
отменяется? Удивлен.
40 Лефмихалыч
 
27.03.09
13:14
(0) что мешает благородному дону просто снять галку "Редактирование", не снимая при этом галку "Интерактивное добавление" у этой роли?
ЗЫ За запреты действий кодом на основании результата функции РольДоступна() я бы стерилизвал программистов - чтобы не размножались такие индивидуумы...
41 PR
 
27.03.09
13:16
(39) Если программно, то да. Иди учись, двоечник :))
42 PR
 
27.03.09
13:17
+(41) ПередЗаписью формы ессно :))
43 73
 
27.03.09
13:17
(40) Объекта, а не Формы?
44 los_hooliganos
 
27.03.09
13:18
Этаноловый()
Пятница...
45 73
 
27.03.09
13:18
(42) Ну а мы ж об Объекте говорим.
Сатисфакции...
46 Лефмихалыч
 
27.03.09
13:24
(45) читай букварь про роли. Для того, чтобы дать возможность только создавать новые, но при этом не дать возможность редактированит существующие, достаточно одну галку выключить и не надо ни какого кодирования
47 73
 
27.03.09
13:27
(46) Это не мне, пожалуйста. Это к (0).
48 Лефмихалыч
 
27.03.09
13:28
(46) >> (0)
49 73
 
27.03.09
13:28
(41)(42)(46) Советую всем читать внимательно, прежде чем давать советы,
а тем более посылать учится.
Я тоже могу послать - учиться читать.
50 Aleks73
 
27.03.09
13:32
в (0) было написано - права не менять. По ситуации, это было вредно.
51 Лефмихалыч
 
27.03.09
13:34
(50) вредно в коде противоречить ролям - поддерживать такой быдлокодинг очень трудно
52 Лефмихалыч
 
27.03.09
13:36
+(51) потому, что абминистратор базы заранее не знает, какую роль ему поставить - для того, чтобы убедиться, подходит ли пользователю та или иная роль, это надо читать код всех объектво, к ктоторым нужен доступ
53 Aleks73
 
27.03.09
13:47
(52) никаких атдельных админов не планируется. хамить попрошу в другом месте. Здесь вам не мхатовская подворотня! (с)
54 73
 
27.03.09
13:48
(41)(42) Нет, таки неграмотный, наверное.
55 PR
 
27.03.09
13:50
(54) Мая твая не панимай :))
Ответ на (0) до дебилизма простой, надо брать отладчик, глаза, задницу на стул и вперед.
56 73
 
27.03.09
13:57
(55) Прочитай внимательно (39)(41)(42)(43)(45)(49).
Если не понимаешь - иди учись читать, двоечник:))
57 73
 
27.03.09
14:00
(56)+ Теперь по поводу (0).
Повторюсь: я не спрорю о том, какой способ решения задачи лучше.
Меня заинтересовал вопрос об ЭтоНовый().
То, что 1С - не безглючный продукт, думаю, никто оспаривать не будет.
И почему бы именно такому глюку не случиться.

Если неприятность может произойти, она случается (закон Мэрфи)
58 PR
 
27.03.09
14:24
(57) По поводу (0).
Проверил. Все работает корректно.

По поводу того, что 1С - не безглючный продукт.
1С - не безглючный продукт, это да.
Но между заявлениями "1С - не безглючный продукт" и "В 1С не работает все, про что я скажу, что это глюк" разница такая же как между "Не все йогурты одинаково полезны" и "Все йогурты одинаковое дерьмо", согласен? :))

По моему опыту, практически всегда, когда кто-то начинает спрашивать, глюк или фича вот такое вот поведение платформы, оказывается, что это не то и не другое, а просто косяк автора, поленившегося тупо открыть книжки перед прикосновением к органам управления компьютером.
59 73
 
27.03.09
14:29
(58) А я и не заявлял, что "В 1С не работает все, про что я скажу, что это глюк".
В (0) тоже нет заявлений. Есть вопрос.

PS. Жаль, что мы так и не услышали начальника транспортного цеха... по поводу (45)
60 PR
 
27.03.09
14:36
(59) Я и не говорю, что утверждал. Зато подначивал.
61 PR
 
27.03.09
14:37
(59) А что ты хотел услышать на (45)?
62 73
 
27.03.09
14:42
(60) Это где же? Наоборот, по ходу обсуждения пытался человеку объяснить,
что это у него что-то не так (Читай всю ветку!).

(61) Если человеку не понятны отдельные слова? Как, напрмер, "сатисфакция",
то о чем дальше говорить?

Цитирую:
  73
39 - 27.03.09 - 13:12
(38) А что, если он при открытии формы записывается, то ПередЗаписью() объекта
отменяется? Удивлен.

  PR
41 - 27.03.09 - 13:16
(39) Если программно, то да. Иди учись, двоечник :))

  PR
42 - 27.03.09 - 13:17
+(41) ПередЗаписью формы ессно :))
  73
43 - 27.03.09 - 13:17
(40) Объекта, а не Формы?

  73
45 - 27.03.09 - 13:18
(42) Ну а мы ж об Объекте говорим.
Сатисфакции...
63 НЕА123
 
27.03.09
15:17
офф. пятница. насчет "сатисфакция".

"В поле стоит одиноко акация -
Вот наша резервация
О! Баба Вера! Баба Шура!
Презервация..."
(с) капитан и прапорщик СА (советской армии) в бескрайних степях Украины (где-то под Кривым Рогом).
ЗЫ Занесло меня туда в 80-х. Собственно, вышеизложенные стихи отражают полностью их жизню. Пустыня, пьянсто, безысходность... (солдат 2 года и на свододу, а им...).
64 НЕА123
 
27.03.09
15:18
свододу = свободу
65 Лефмихалыч
 
27.03.09
15:21
(53) надо думать, что весь функционал ты обязуешься помнить в голове и ни когда не уволишься
Основная теорема систематики: Новые системы плодят новые проблемы.