|
v7: как определить текущего пользователя | ☑ | ||
---|---|---|---|---|
0
r_i_n_i_k
12.01.12
✎
20:16
|
Подскажите аналог
ПараметрыСеанса.ТекущийПользователь в 7.7? |
|||
109
Rie
12.01.12
✎
22:23
|
(107) Если ТиС- взять из настроек пользователя.
|
|||
110
IvanovIV
12.01.12
✎
22:24
|
(106) А коды вообще делаются недоступными юзерам
В глобальнике назначаются необходимые переменные справочники И там же в глобальнике в "ПриУдаленииЭлемента()" запрещается удалять то что предопределено |
|||
111
Aleksey
12.01.12
✎
22:25
|
(108) В каждом документе при создании нового
|
|||
112
Aleksey
12.01.12
✎
22:25
|
(109) проще просто код прописать, и голова не болит, что там у пользователя в настройках
|
|||
113
AcaGost
12.01.12
✎
22:28
|
(111) Если у всех пользователей и всех видах документов, в которых есть реквизит "Склад", то Константа
|
|||
114
Aleksey
12.01.12
✎
22:29
|
(113) Ага и еще закэшировать ее ...
|
|||
115
Rie
12.01.12
✎
22:29
|
(112) Не проще.
|
|||
116
Aleksey
12.01.12
✎
22:30
|
(115) Почему?
|
|||
117
Rie
12.01.12
✎
22:31
|
(116) Есть типовые механизмы конфигурации. А изобретение велосипедов - неблагодарное занятие.
|
|||
118
AcaGost
12.01.12
✎
22:31
|
(115) Не дошло до него! Диагноз!
|
|||
119
Aleksey
12.01.12
✎
22:33
|
(117) Ну да потом выясниться что кто-то поменял в настройках склад, потому что ему так удобно. А у тебя из-за этого неправильно доку формируются. Нафиг-нафиг эту универсализацию
|
|||
120
Rie
12.01.12
✎
22:33
|
(119) А для этого есть механизм прав.
|
|||
121
AcaGost
12.01.12
✎
22:34
|
(119) Доступ ВСЕМ на чтение, кроме себя дорогого
|
|||
122
Aleksey
12.01.12
✎
22:35
|
(120) Причем тут механизм прав? У пользователя стоит Розничный склад, а нам нужно чтобы поступления всегда делались на оптовый склад. И чем мне "типовой механизм" поможет
|
|||
123
medved_kot
12.01.12
✎
22:35
|
Т.е. боооольшая линейка для манагеров
|
|||
124
AcaGost
12.01.12
✎
22:36
|
(120) Был у меня один такой стюдент, борзый - до сих пор в падаванах
|
|||
125
Rie
12.01.12
✎
22:36
|
(122) Уж что-то одно - или крестик, или трусм.
См. (104). |
|||
126
Aleksey
12.01.12
✎
22:36
|
другая ситуация. Пишу обработку для загрузки документов. Я с базой не работаю, у меня нет доступа к настройкам пользователя и я понятия не имею проставлено ли у них что-то или нет, но мне надо чтобы при загрузки попадала на определенный склад
|
|||
127
Aleksey
12.01.12
✎
22:37
|
(125) Ну так не надо кричать тогда, что за такой код линейкой по рукам. Ибо случае разные бывают
|
|||
128
Rie
12.01.12
✎
22:39
|
(127) Во-первых, надо читать внимательно. И не путать, кто что писал.
Во-вторых, если предполагается более чем однократное использование - то, разумеется, не линейкой по рукам. А, к примеру, штрафовать за выход на работу. (126) Если предполагается более чем одноразовое использование - то придумать механизм хранения настроек. |
|||
129
Aleksey
12.01.12
✎
22:41
|
(128) А чем этот механизм хранения настроек во внешнем хранилище будет отличаться от кода?
|
|||
130
Rie
12.01.12
✎
22:43
|
(129) Пользователь должен иметь возможность настраивать обработку, не правя её код. Тем более если разработчик "не работает с базой".
Какой механизм (внешнее хранилище, справочник или ещё что) будет выбран - это другой вопрос. Но сама возможность настройки у пользователя быть должна. |
|||
131
AcaGost
12.01.12
✎
22:45
|
(126) Учу! Записывай.
На форме реквизит СКЛАД Сам настроишь для всех доступ(0) и ЗначениеВФайл(<?>,,); |
|||
132
Aleksey
12.01.12
✎
22:53
|
(130) Вот только у меня руководств считает, что все должно быть прозрачно для пользователя, он не должен думать ниокаких настройках
(131) Тот же код, вид сбоку |
|||
133
Aleksey
12.01.12
✎
22:57
|
К тому же привязка к коду можно рассматривать как дополнительная защита от бесплатного тиражирования обработки. (мы же не на продажу пишем, нам универсальность некчему. Чем больше индивидуальности, тем больше шанс что тупо не смогут скопировать обработку)
|
|||
134
AcaGost
12.01.12
✎
22:57
|
(132) Под одним пользователем доступ(1) - у кого права на настройку
|
|||
135
Rie
12.01.12
✎
22:57
|
(132) А зачем пользователю думать о настройках? Настройки задаст тот, кому это положено (руководитель отдела или кто там у вас). Но настройки должны задаваться без модификации кода - об этом должен позаботиться разработчик.
|
|||
136
Rie
12.01.12
✎
22:57
|
(133) А вот это уже попросту маразм. Полнейший маразм.
|
|||
137
AcaGost
12.01.12
✎
22:58
|
(133) Я поменял код у склада - твои действия?
|
|||
138
AcaGost
12.01.12
✎
23:00
|
(136) Вроде и не 17 лет ему, и опыт есть?...
|
|||
139
medved_kot
12.01.12
✎
23:00
|
Все-таки на тему поста ответил правильно (100)
|
|||
140
SnarkHunter
12.01.12
✎
23:01
|
Алёшка забавный... Код после него наверняка доставляет...
|
|||
141
SnarkHunter
12.01.12
✎
23:02
|
(139)В частном случае да...
|
|||
142
Rie
12.01.12
✎
23:02
|
(139) См. (3) :-)))
|
|||
143
Aleksey
12.01.12
✎
23:03
|
(135) Настройки задаю я. И для меня нет разницы что это будетнайти по коду или восстановить из файла?
|
|||
144
Rie
12.01.12
✎
23:04
|
(143) Предприятиям, с которыми ты работаешь - мои соболезнования.
|
|||
145
AcaGost
12.01.12
✎
23:04
|
(143) А на (137)?
|
|||
146
Aleksey
12.01.12
✎
23:04
|
(137) Любое внешнее хранилище настроек не спасет от изменения. Так что нет разницы как хранить.
|
|||
147
SnarkHunter
12.01.12
✎
23:04
|
(143)На тебе свет клином не сошелся...
|
|||
148
AcaGost
12.01.12
✎
23:05
|
(144) +1000
|
|||
149
medved_kot
12.01.12
✎
23:05
|
(142) ну, да. просто после 99 ответов прочитать (100) было как-то неожиданно
|
|||
150
Rie
12.01.12
✎
23:05
|
(146) Правда?
|
|||
151
Aleksey
12.01.12
✎
23:05
|
(147) А больше я никому не доверяю.
|
|||
152
SnarkHunter
12.01.12
✎
23:05
|
(146)О как...
|
|||
153
Aleksey
12.01.12
✎
23:05
|
(150) Правда
|
|||
154
SnarkHunter
12.01.12
✎
23:06
|
(151)Что-то ЧСВ зашкаливает, не?
|
|||
155
Aleksey
12.01.12
✎
23:07
|
(152) Да, потому что нет контроля ссылочной целостности. Т.е. ницего не мешает удалить склад и завести новый, и тогда у него будет и новый код и новый ID, т.е. восстановление из хранилища даст. "Объект не найден"
|
|||
156
SnarkHunter
12.01.12
✎
23:07
|
(153)Поздравляю, гражданин, соврамши...
|
|||
157
SnarkHunter
12.01.12
✎
23:07
|
(155)Речь про изменение кода была, при чем удаление?
|
|||
158
Aleksey
12.01.12
✎
23:08
|
(154) Нет потому что съезды пользователей "Программа дала" и "Это не я, это программа сама" приводит к тому что лучше пользователю ничего не давать, тем более настройки
|
|||
159
Aleksey
12.01.12
✎
23:08
|
(157) При том же, что и изменение кода
|
|||
160
Rie
12.01.12
✎
23:09
|
(158) "Это Вы их просто готовить не умеете" (c) старый анекдот
|
|||
161
IvanovIV
12.01.12
✎
23:10
|
(157) при том, что если мона менять код .. мона и удалить?
|
|||
162
Aleksey
12.01.12
✎
23:10
|
(156) И по чем ты будешь хранить? Заюзаешь внутренний ID? И что даст твоя обработка в другой базе? А моя по коду будет работать, даже если удалить и завести с тем же кодам
|
|||
163
Rie
12.01.12
✎
23:10
|
О! Я понял в чём дело - это пятничная ветка!
|
|||
164
SnarkHunter
12.01.12
✎
23:12
|
Что-то я попал не туда... Тут говнокодом хвастаются, я вас покидаю...
|
|||
165
Aleksey
12.01.12
✎
23:12
|
(160) Ну да, когда приходит чудо и говорит, а вы можете посмотреть что я поменяла в документе, когда и ЗАЧЕМ я это сделала. Наверное не умею готовить, к сожалению отдел кадров мне не подчиняется
|
|||
166
Rie
12.01.12
✎
23:12
|
(161) Ну, во-первых, удалить _гораздо_ труднее (элемент использовался кучу раз - пока не будут убраны ссылки, не удалится).
|
|||
167
Aleksey
12.01.12
✎
23:13
|
(166) Если могут править все подряд, то удалять, и ссылки не помешают
|
|||
168
Rie
12.01.12
✎
23:13
|
(165) Отдел кадров тут ни при чём. Это ты расписался в своём неумении.
Всё, что ты делаешь говнокодом - можно оформить по-человечески. И права расставить так, чтобы чудо не могло сильно напортить. |
|||
169
medved_kot
12.01.12
✎
23:14
|
(165) Вы не думали, что можно для этого чуда просто не показывать те настройки, которые она менять не должна?
|
|||
170
Rie
12.01.12
✎
23:14
|
(167) Ну а на фига ж ты даёшь править всем всё подряд?
|
|||
171
IvanovIV
12.01.12
✎
23:16
|
(166) Зачем вообще права юзерам на редактирование кодов?
Редактирование кодов отключается Приначале работы назначаются глобальные переменные Удаление их запрещается Что еще надо? |
|||
172
IvanovIV
12.01.12
✎
23:17
|
(171) + дальше ищи по коду скока хочешь
|
|||
173
Aleksey
12.01.12
✎
23:17
|
(168) Я фикси, для чего мне попу рвать и писать простыни кода? Для того чтобы человек с мисты сказал, да так правильно?
Мы же сейчас не тиражный продукт обсуждаем, а конкретный код, который выполняется в конкретной конфе и для конкретной задачи. Лично мне напрягает иметь 1000 констант на все случаи жизни. Мне проще прописать конкретный код, при условии что коды у меня закрыты от редактирования |
|||
174
AcaGost
12.01.12
✎
23:18
|
(163) Пока еще четверг
|
|||
175
Aleksey
12.01.12
✎
23:19
|
Если кому то религия мешает использовать коды, ради бога заводи константу, документ, справочник ... (нужное подчеркнуть). Только не надо другим насаживать свою религию, и бегать с линейкой
|
|||
176
Rie
12.01.12
✎
23:21
|
(174) У кого как :-)
|
|||
177
Rie
12.01.12
✎
23:21
|
(173) Вот и выяснилось - ты просто лентяй. Которому влом писать нормальный код, тяп-ляп и так сойдёт, после нас - хоть потоп.
|
|||
178
Rie
12.01.12
✎
23:22
|
(175) Это не религия. Это элементарный профессионализм. Или ты себя совсем не уважаешь?
|
|||
179
medved_kot
12.01.12
✎
23:23
|
(175) Уважайте свой труд, за это Ваш труд будут уважать другие
|
|||
180
AcaGost
12.01.12
✎
23:27
|
(173) Исправлял я один раз за таким. Ну и цирк был в его базе, краше чем у Никулина.
|
|||
181
Aleksey
12.01.12
✎
23:29
|
(178) 1000 констант - это профессионализм?
|
|||
182
Aleksey
12.01.12
✎
23:33
|
в 7-ный типовых (ТиС, комплексная) есть такой код
Если ПустоеЗначение(ИмяПользователя()) = 1 Тогда Код = "НеАвторизован"; Наименование = "Не авторизован"; ... КонецЕсли; Объект = СоздатьОбъект("Справочник.Пользователи"); Если Объект.НайтиПоКоду(Код) = 0 Тогда Объект.Новый(); Видно они писатели 1С не знают, что это плохой код |
|||
183
Aleksey
12.01.12
✎
23:34
|
При загрузки валюты там тоже активно юзается Найти по коду. Вод ведь дураки, а вдруг кто-то коду у валюты поменяет.
|
|||
184
Aleksey
12.01.12
✎
23:36
|
А что делают с планом счетов в типовых. Вообще страшно смотреть. одни найти по коду
|
|||
185
zak555
12.01.12
✎
23:37
|
(182) твой вариант, как переписать
|
|||
186
zak555
12.01.12
✎
23:38
|
+ (185)
я бы скрыл поле код в справочнике пользователи |
|||
187
Aleksey
12.01.12
✎
23:38
|
(185) А я разве доказываю что найти по коду это плохо и за такой код линейкой по рукам бить?
|
|||
188
zak555
12.01.12
✎
23:42
|
> Лично мне напрягает иметь 1000 констант на все случаи жизни. Мне проще прописать конкретный код, при условии что коды у меня закрыты от редактирования
о да, вот недавно видел отличную реализацию печати торг-12 привязка тупо к коду контрагенту, контрагент может находиться в группе т.е. будут перечисляться все "вложенные" контры вот спрашивает : накуя так писать, если можно было добавить реквизит префикс в группу/элемент и по нему искать наименование торг12_префикс в обработке ? |
|||
189
AcaGost
12.01.12
✎
23:43
|
(183) А что значит код в справочнике валюты?
(184) :-)))))))))))))))))))))))))))) |
|||
190
zak555
12.01.12
✎
23:45
|
(183) кстати, код у рубля не переименововался, а всего навсего добавился новый
РУР == РУБ |
|||
191
AcaGost
12.01.12
✎
23:45
|
(187) И не только линейкой по рукам, но и кнутом по заднице, чтобы контору не "разводил"
|
|||
192
zak555
12.01.12
✎
23:45
|
(184) ну так в 8ке идёт обращение почти по "коду"
|
|||
193
Aleksey
12.01.12
✎
23:47
|
(189) До некоторых пор и код в ОКСМ ничего не значил, а сейчас в связи с новыми счет-фактурами, он стал иметь большое значение
|
|||
194
AcaGost
12.01.12
✎
23:49
|
(190) Код у рубля - 810 по классификатору
|
|||
195
Aleksey
12.01.12
✎
23:49
|
(190) Это разве код? А не сокращенное наименование?
Код 810/643 у рубля всегда был |
|||
196
Aleksey
12.01.12
✎
23:51
|
А нет, все таки код
Согласно международному стандарту по обозначению валют (ISO 4217) для современного российского рубля: 1) Трёхбуквенный код: RUB 2) Трёхзначный числовой код: 643 До деноминации российского рубля в 1998 году в том же стандарте для российского рубля использовались коды: 1) Трёхбуквенный код: RUR 2) Трёхзначный числовой код: 810 |
|||
197
Lexxxxx
12.01.12
✎
23:51
|
(169) Вы не думали что это может Склад и быть? :)
|
|||
198
IvanovIV
13.01.12
✎
00:01
|
) наверное надо в любой типовой запустить "поиск во всех текстах" "НайтиПоКоду("
а потом дрючить разработчиков |
|||
199
viktor_vv
13.01.12
✎
01:07
|
Раз уж ветка плавно перетекла в пятничную. А то пристали к Aleksey .
Обратились как-то, потому как разработчик уехал далеко . Это кусочек процедуры строк на 2000 (две тысячи) в таком же роде. Я конечно и сам не без греха, но это уже за гранью добра и зла, а Aleksey просто младенец. КА=1; К=СоздатьОбъект("Документ.Калькуляция"); Т=СоздатьОбъект("Справочник.Номенклатура"); К.Новый(); К.ДатаДок=ДатаДок; глЗаполнитьШапку(К); Если Проведен()=1 Тогда К.ДокументОснование=ТекущийДокумент(); КонецЕсли; К.Склад=Константа.ОсновнойСклад; К.Продукция=Товар; К.КвоПродукции=Количество; К.ЕдПродукции=Единица; ///////////////////////////////////////////////////////////////////////////////////// ЖВ 1 Если К.Продукция.ЖВ1=1 Тогда К.НоваяСтрока(); Т.НайтиПоКоду("02467"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=КвоЛамелей;//*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02490"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=1*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02471"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=КвоЛамелей;//*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02472"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=1*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02474"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=КвоЛамелей;//*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02479"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=1*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02465"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=Ширина*0.001*КвоПрод; К.НоваяСтрока(); Т.НайтиПоКоду("02484"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); //Если Ширина<2 Тогда //К.Количество=Окр(Ширина*0.002)*КвоПрод; // //ИначеЕсли Ширина<2.3 Тогда //К.Количество=Окр(Ширина*0.003)*КвоПрод; // //Иначе //К.Количество=Окр(Ширина*0.004)*КвоПрод; // //КонецЕсли; // Если Ширина<1900 Тогда К.Количество=2*КвоПрод; ИначеЕсли Ширина<2300 Тогда К.Количество=3*КвоПрод; ИначеЕсли Ширина<2700 Тогда К.Количество=4*КвоПрод; ИначеЕсли Ширина<3300 Тогда К.Количество=5*КвоПрод; ИначеЕсли Ширина<3500 Тогда К.Количество=6*КвоПрод; Иначе //К.Количество=Окр(Ширина*0.008)*КвоПрод; КонецЕсли; К.НоваяСтрока(); Т.НайтиПоКоду("02480"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=1*КвоПрод; ккк=Цел(Ширина/2000); Если ккк>0 Тогда К.НоваяСтрока(); Т.НайтиПоКоду("02485"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=ккк*КвоПрод; КонецЕсли; К.НоваяСтрока(); Т.НайтиПоКоду("02473"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=1*КвоПрод; // добавили 5 новые позиции К.НоваяСтрока(); Т.НайтиПоКоду("02493"); К.Предпочтение=ПустоеЗначение("Справочник.Контрагенты"); К.Товар=Т.ТекущийЭлемент(); глПриИзмененииТовара(К); К.Количество=1*КвоПрод; Это, я так понял, что-то типа норм расхода материалов. |
|||
200
viktor_vv
13.01.12
✎
01:11
|
(199)+ Обратились, так как добавилась новая номенклатура, а разработчика нету. Вот это я понимаю защита :).
|
|||
201
zak555
13.01.12
✎
01:18
|
(196) ы =)
|
|||
202
zak555
13.01.12
✎
01:19
|
(199) что это ?
|
|||
203
abfm
13.01.12
✎
01:36
|
Если так рассуждать, то любая программа не требует обновления вообще, надо поменять настройки.
Мировые бренды с этим не согласны. Бабло надо стричь регулярно, как овец. |
|||
204
viktor_vv
13.01.12
✎
01:53
|
(202) Это к вопросу насчет НайтиПокоду(). Кусок реально работавшей конфы, не знаю ее судьбы сейчас. Надеюсь поверите, что не мое :).
|
|||
205
zak555
13.01.12
✎
02:27
|
(204) переписал бы
|
|||
206
viktor_vv
13.01.12
✎
02:57
|
(205) Ну я им предложил, даже накидал макет форм, как будет выглядеть. Их цена не устроила, или им сильно сложно показалось нормы набивать самим, попросили тупо добавить как уних есть для новой номенклатурыы. А сидеть копипастить че то мне влом было, короче не срослось.
|
|||
207
Rie
13.01.12
✎
07:08
|
(173) 1000 констант - тоже глупость.
(182) А ты посмотри, _что_ является кодом у справочника Пользователи. И в классификаторах - там код определён "свыше". Дело же не в самих словах "Код" или "НайтиПоКоду", а в том, как этот код используется. |
|||
208
zak555
13.01.12
✎
09:24
|
(206) значит много заломил =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |