Имя: Пароль:
 
1C
1С v8
УНФ 1.6 Контроль остатков при проведении
0 I_learn_1c
 
31.01.18
11:58
Доброе утро,

есть проблема. подкиньте идей пожалуйста.

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

добавить при старте пользователя кусок типа

Если РольДоступна("ПолныеПрава") Тогда
Константы.КонтролироватьОстаткиПриПроведении.Установить(Ложь);
Иначе
Константы.КонтролироватьОстаткиПриПроведении.Установить(Истина);
КонецЕсли;

не вариант, так как пользователи одновременно работают, заходят, выходят.. будет скакать значение константы тогда.

как его бы установить отдельно для каждого?
1 Джо-джо
 
31.01.18
12:00
>>Контроль остатков при проведении
>>добавить при старте
2 по логике
2 arsik
 
31.01.18
12:01
(0) Найди где эта константа проверяется.
3 arsik
 
31.01.18
12:05
Посмотрел. Да. Криво они там сделали. При проведении проверяется константа, хотя есть метод для проверки
ОбщийМодуль.УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков()
4 arsik
 
31.01.18
12:08
Поменять в модулях менеджереров документов в процедуре "выполнитьКонтроль" вот этот кусок
    Если НЕ Константы.КонтролироватьОстаткиПриПроведении.Получить() Тогда
        Возврат;
    КонецЕсли;

на это

    Если НЕ ОбщийМодуль.УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков() Тогда
        Возврат;
    КонецЕсли;


и чуть поправить функцию
ОбщийМодуль.УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков()
5 Джо-джо
 
31.01.18
12:09
(4) Почему бы не проверить роль?
6 arsik
 
31.01.18
12:11
(5) Ну проверить роль но только в одном месте, вот тут
ОбщийМодуль.УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков()
7 arsik
 
31.01.18
12:12
* (4) Ошибка
правильно так
    Если НЕ УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков() Тогда
        Возврат;
    КонецЕсли;
8 I_learn_1c
 
31.01.18
12:30
(7) я тоже нашла эту функцию но не так быстро.
то есть если подправлю ее вот так, то норм же?

Функция ВыполнитьКонтрольОстатков() Экспорт
    
    Если РольДоступна("ПолныеПрава")Тогда
        Возврат Ложь;
    Иначе    
        Возврат Константы.КонтролироватьОстаткиПриПроведении.Получить();
    КонецЕсли;
КонецФункции // ВыполнитьКонтрольОстатков()
9 arsik
 
31.01.18
12:34
(8) Нет не  норм. Это только часть.
Кроме нее еще нужно исправить модули менеджеров документов, где встречается вызов "Константы.КонтролироватьОстаткиПриПроведении.Получить()"
и заменить на "УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков()"
10 I_learn_1c
 
31.01.18
12:35
(8)
и плюс в каждом документе поменять тоже? правильно поняла?

это
в процедуре "выполнитьКонтроль" вот этот кусок
    Если НЕ Константы.КонтролироватьОстаткиПриПроведении.Получить() Тогда
        Возврат;
    КонецЕсли;

на это
    Если НЕ УправлениеНебольшойФирмойСервер.ВыполнитьКонтрольОстатков() Тогда
        Возврат;
    КонецЕсли;
11 I_learn_1c
 
31.01.18
12:36
(9) спасибо большое) сейчас попробую
12 arsik
 
31.01.18
12:38
(11) Вообще сделай полный поиск по конфигурации "Константы.КонтролироватьОстаткиПриПроведении.Получить()" увидишь все места где нужно поправить
13 I_learn_1c
 
31.01.18
12:40
(12) а позже при обновлении релиза эти поправки могут затереться же?
14 arsik
 
31.01.18
12:41
(13) Ну конечно. На вашем месте, я бы это сделал через расширение.
15 I_learn_1c
 
31.01.18
12:55
(14) почитала про расширения. вроде штука полезная,но не до конца понятная, пойду с ними разбираться.. спасибо большое еще раз:)
Программист всегда исправляет последнюю ошибку.