|
Не могу понять, почему процедура то отрабатывает, то нет | ☑ | ||
---|---|---|---|---|
0
Dyspho
18.10.16
✎
07:32
|
Есть:
Функция ПолучитьЗначениеПраваПользователя(Право, ЗначениеПоУмолчанию) Экспорт КэшДополнительныхПрав = глЗначениеПеременной("ЗначенияДополнительныхПравПользователя"); МассивЗначенийПрава = КэшДополнительныхПрав[Право]; Если МассивЗначенийПрава = Неопределено Тогда МассивЗначенийПрава = Новый Массив; Если РольДоступна("ПолныеПрава") Тогда ЗначениеПрава = ПолучитьЗначениеРазрешенногоПрава(Право); МассивЗначенийПрава.Добавить(ЗначениеПрава); Иначе ОбъектПрав = глЗначениеПеременной("ПрофильПолномочийПользователя"); Если ЗначениеЗаполнено(ОбъектПрав) Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("ОбъектПрав", ОбъектПрав); Запрос.УстановитьПараметр("ПравоПользователя", Право); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегистрЗначениеПрав.Значение КАК Значение |ИЗ | РегистрСведений.ЗначенияДополнительныхПравПользователя КАК РегистрЗначениеПрав |ГДЕ | РегистрЗначениеПрав.Право = &ПравоПользователя | И РегистрЗначениеПрав.Пользователь = &ОбъектПрав"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ЗначениеПрава = Выборка.Значение; Иначе ЗначениеПрава = ЗначениеПоУмолчанию; КонецЕсли; МассивЗначенийПрава.Добавить(ЗначениеПрава); Иначе ТекущийПользователь = глЗначениеПеременной("глТекущийПользователь"); МассивЗначенийПрава = ПрочитатьЗначениеПраваПользователя(Право, ЗначениеПоУмолчанию, ТекущийПользователь); КонецЕсли; КонецЕсли; КэшДополнительныхПрав[Право] = МассивЗначенийПрава; #Если Сервер Тогда глЗначениеПеременнойУстановить("ЗначенияДополнительныхПравПользователя", КэшДополнительныхПрав, Истина); #КонецЕсли КонецЕсли; Возврат МассивЗначенийПрава; КонецФункции |
|||
1
Dyspho
18.10.16
✎
07:33
|
Функция ПравоЕстьУПользователя(Право, ЗначениеПоУмолчанию)
МассивЗначенийПрава = ПолучитьЗначениеПраваПользователя(Право, ЗначениеПоУмолчанию); Возврат МассивЗначенийПрава.Найти(Истина) <> Неопределено; КонецФункции |
|||
2
Dyspho
18.10.16
✎
07:33
|
Функция РазрешеноПревышениеОбъемаЗаказаПриОтгрузке() Экспорт
Возврат НЕ ПравоЕстьУПользователя(ПланыВидовХарактеристик.ПраваПользователей.КонтролироватьПревышениеОбъемЗаказаПриОтгрузке, Ложь); КонецФункции // РазрешеноПревышениеОбъемаЗаказаПриОтгрузке() |
|||
3
Dyspho
18.10.16
✎
07:34
|
То контролирует превышение объёма, то нет
Не могу понять почему |
|||
4
_Дайвер_
18.10.16
✎
07:49
|
(3)я в 1с слабоват еще, но возможно стоит очистить значение в начале функции???
//Здесь добавить КэшДополнительныхПрав.Очистить(); КэшДополнительныхПрав = глЗначениеПеременной("ЗначенияДополнительныхПравПользователя"); МассивЗначенийПрава = КэшДополнительныхПрав[Право]; |
|||
5
_Дайвер_
18.10.16
✎
07:51
|
(0) Либо здесь:
Функция ПравоЕстьУПользователя(Право, ЗначениеПоУмолчанию) //МассивЗначенийПрава.Очистить(); МассивЗначенийПрава = ПолучитьЗначениеПраваПользователя(Право, ЗначениеПоУмолчанию); Возврат МассивЗначенийПрава.Найти(Истина) <> Неопределено; КонецФункции |
|||
6
Dyspho
18.10.16
✎
07:52
|
Ты это просто так сказал или знаешь, что надо ?)
|
|||
7
_Дайвер_
18.10.16
✎
07:53
|
(6) попробуй, возможно при отработке функции значение остается , и при повторном отрабатывании заполняется значение из кеша
|
|||
8
DDwe
18.10.16
✎
07:54
|
(6) Попробовать совсем лень?
|
|||
9
Dyspho
18.10.16
✎
07:54
|
(7) Ну мне нужно ВСЕГДА контроировать превышение
|
|||
10
Dyspho
18.10.16
✎
07:54
|
Если в кеше остаётся значение, то оно и должно оставаться "контролировать"
|
|||
11
Dyspho
18.10.16
✎
07:55
|
(8) Да нет, не лень, просто возможности проверить нет
|
|||
12
_Дайвер_
18.10.16
✎
07:56
|
(10) У тебя в запросе идет проверка прав пользователя
|
|||
13
_Дайвер_
18.10.16
✎
08:00
|
(12) в (4) не проверяй его, это не правильно, (5) способ проверяй.
|
|||
14
Dyspho
18.10.16
✎
08:05
|
(13) Спасибо, только проблема ещё в "проверяй"
как? он иногда(оч редко) не контролирует |
|||
15
Dyspho
18.10.16
✎
09:00
|
Ну вот и чо, проверил я, но как убедиться, что оно работает, если и так работало, но не всегда)
|
|||
16
FIXXXL
18.10.16
✎
09:07
|
(15) что значит "не всегда"? у разных пользователей? как у тебя там кто работает? мож в регистр руками лазают?
|
|||
17
Dyspho
18.10.16
✎
09:12
|
(16) Нет, пользователь 1, ТСД пробивает и если больше чем в заказе переносят, то ошибку выдаёт, а вот иногда пропускает
|
|||
18
Dyspho
18.10.16
✎
09:30
|
Ладно
|
|||
19
Torquader
18.10.16
✎
12:20
|
(17) Возможно, что в ТСД две строки - каждая не превышает, а обе вместе - превышают.
Таблицу терминала сворачивал перед загрузкой ? |
|||
20
Dyspho
18.10.16
✎
12:22
|
(19) Слушай, а возможно две строки - каждая не превышает, а обе вместе - превышают.
И как это поправить ?) А про "Таблицу терминала сворачивал перед загрузкой ?" - не совсем понял о чем речь |
|||
21
Dyspho
18.10.16
✎
12:36
|
а?
|
|||
22
Torquader
18.10.16
✎
13:10
|
(20) Ты из ТСД перегружаешь товары в документ 1С, который потом проводится.
Вот в процессе перегрузки ты получаешь таблицу товаров, в которой товары, их атрибуты (если используются характеристики или серии) и количество. Так вот, если по Товары и атрибуты свернуть, суммируя количество, то в полученной таблице записи по товарам будут уникальными, то есть не будет встречаться несколько строк с одними и теми же данными товаров. Стандартная обработка загрузки из ТСД, например, задаёт вопрос "Свернуть или нет", так как некоторым иногда очень нужно, чтобы было две строки с одним товаром. А самое простое - проверять остатки после проведения документа, и если находится хоть один отрицательный, то запрашивать право "на отрицание" и отменять проведение, если такого права нет. |
|||
23
Dyspho
18.10.16
✎
13:14
|
(22) Я если честно никогда с ТСД не работал в 1с, со слов я понял, что в ТСД интерфейс 1с, и док там и проводится
|
|||
24
Torquader
19.10.16
✎
01:16
|
(23) Если он подключен через RDP - то да - с терминала работают в 1С, а если там Cleverence или что-то подобное, то работа идёт через "прослойку", которая подключается к 1С в режиме COM-соединения от имени какого-то заданного на этапе настройки пользователя.
|
|||
25
Dyspho
19.10.16
✎
05:53
|
(24) Через РДП наверное, я ещё не видел, но мне сказали "захожу в 1с и ввожу лог пасс"
|
|||
26
Dyspho
19.10.16
✎
08:47
|
т.е. получается галка Контролировать превышение объема заказа при отгрузке не отрабатывает, если позиции 2 и в сумме они превышают заказ?
|
|||
27
Dyspho
19.10.16
✎
09:25
|
Точнее получается так: в Заказе допустим 1200ШТ
И товар проходит больше чем надо в той ситуации, если: Перемещения по заказу 2 реализации в 1ой реализации 600 во 2ой 640, вроде бы как они обе не превышают заказ, а если вместе, то не 1200, а 1240 из-за этого и контроль превышения объёма походу не отрабатывает так ?) |
|||
28
Dyspho
19.10.16
✎
09:30
|
имею ввиду "контроль превышения объёма" отрабатывает не по сумме товара во всех перемещениях, а только по всем документам и если будет 2 документа с одинаковой позицией, то есть возможность превысить объём заказа ?
|
|||
29
FIXXXL
19.10.16
✎
09:42
|
(28) наврядли, по нормальному читаться должен остаток регистра, а не количество документа-основания
|
|||
30
Dyspho
19.10.16
✎
09:44
|
(29) Ну просто я заметил, если в 1 реализации больше чем в заказе - ошибка, если в 2ух реализациях в сумме больше, но по отдельности меньше чем в заказе, то ошибки нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |