Привет Всем!
Возникала такая бананальная на первый взгляд ситуация
При отладке фонового процесса Не могу установить в 1С Розница константу с типом булево
В Процедуре общего модуля ВыполнитьОбменДаннымиПоРегламентномуЗаданию(КодСценарияОбмена)
делаю вызов своей серверной процедуры

```1c
    &НаСервере
    Процедура УстановитьКонстанту_СК_СтатусОграниченияДоступности() Экспорт
    Константы.СК_СтатусОграниченияДоступности.Установить(Истина);

    ПолучСтатус = Константы.СК_СтатусОграниченияДоступности.СоздатьМенеджерЗначения();
    ПолучСтатус.Прочитать();
    ПолучСтатус.Значение = Истина ;
    ПолучСтатус.Записать();
    КонецПроцедуры
```

не устанавливается константа! пишет Обращение к процедуре объекта как к функции (Установить)
Вынес процедуру в собственный общий модуль СК_Вспомогательный
со всеми галочками Сервер и Клиент() итд

```1c
    &НаСервере
    Процедура УстановитьКонстанту_СК_СтатусОграниченияДоступности() Экспорт

    ////попробовал так

    Константы.СК_СтатусОграниченияДоступности.Установить(Истина);
    ////и так
    Набор = Константы.СоздатьНабор("СК_СтатусОграниченияДоступности");

    ///теперь с помощью метода Прочитать() мы можем прочитать значения констант нашего набора
    // Набор.Прочитать();
    Набор.СК_СтатусОграниченияДоступности = Ложь;
    Набор.Записать();

    /////и даже так

    Константы["СК_СтатусОграниченияДоступности"].Установить(Истина);
    ////
    ////////ПолучСтатус = Константы.СК_СтатусОграниченияДоступности.СоздатьМенеджерЗначения();
    ////////ПолучСтатус.Прочитать();
    ////////ПолучСтатус.Значение = Истина ;
    ////////ПолучСтатус.Записать();
    КонецПроцедуры
```

Отладчиком дохожу до метода записать или установить выдает
Обращение к процедуре объекта как к функции (Установить)
Вынос

Посмотрел права, всего полно.Отлаживаюсь на локальной базе интерфейс Такси
запускался в режиме Толстый клиент(управляемое приложение)
Розница, редакция 2.3 (2.3.2.33) платформа 8.3.15.

Подскажите пожалуйста в чем затык ?
---
motiask
Отвечу развернуто, это будет скорее как напоминалка для себя,
изначально стояла задача блокировать окно РМК для пользователя в тот момент когда
начинается обмен данными по расписанию.
В процедуре общего модуля которая запускает обмен пытался устанавливать константу СК_СтатусОграниченияДоступности с признаком булево,
что бы потом отслеживать этот статус при записи константы в объекте подпискаНаСобытии и вызывать модальную форму для блокирования открытого РМК
Была попытка устанавливать константу с разными галочками в общих процедурах и так же в модуле обработки куда я вынес процедуру заполнения константы(в ней были сделаны экспортные методы) но ничего не помогло.
константа Ошибку не выдавала но и не устанавливалась
В итоге завел Регистр сведений с одним реквизитом и записал туда значение признака статуса доступности 0
при этом автоматически отработала подписка со своим Общем модулем
где я контролирую открытые окна.
(то что и требовалось)
Всем Спасибо !!!
---
константа создана через расширение?
---
///////константа создана через расширение?
нет обычно,расширения вообще нет.
---
Глупый вопрос) Но константа точно типа булево?
---
Да точно булево
Через внешнюю обработку значение константы устанавливается, а вот когда отладка идет через фоновый процесс нет не уставливается.
---
Ок, отладчиком по фоне идете?
---
/////Ок, отладчиком по фоне идете?
да запускаю фоновое задание отладчиком попадаю в сперва в процедуру
общего модуля ВыполнитьОбменДаннымиПоРегламентномуЗаданию(КодСценарияОбмена)
а из неё отладчиком попадаю в свой общий модуль и в процедуру
Процедура УстановитьКонстанту_СК_СтатусОграниченияДоступности() Экспорт

доходит до Константы.СК_СтатусОграниченияДоступности.Установить(Истина);
и всё, пропадает всё куда то, константа не устанавливается
 а из внешней обработки константа красиво устанавливается.
---
Как вариант, в модуле стоит галочка "Привилегированный" или УстановитьПривилегированныйРежим(Истина)?
---
//////Как вариант, в модуле стоит галочка "Привилегированный" или УстановитьПривилегированныйРежим(Истина)?
нет не стоит ..попробую поставить
Грешил на внешний модуль, вынес процедуру в модуль свой встроенной обработки
методы сделал экспортными
та же самая картина прихожу отладчиком в модуль обработки и Процедура УстановитьКонстанту_СК_СтатусОграниченияДоступности()
не устанавливает значение константы.
---
Получилось?
---
нет пока не получилось.
---
motiask
Отвечу развернуто, это будет скорее как напоминалка для себя,
изначально стояла задача блокировать окно РМК для пользователя в тот момент когда
начинается обмен данными по расписанию.
В процедуре общего модуля которая запускает обмен пытался устанавливать константу СК_СтатусОграниченияДоступности с признаком булево,
что бы потом отслеживать этот статус при записи константы в объекте подпискаНаСобытии и вызывать модальную форму для блокирования открытого РМК
Была попытка устанавливать константу с разными галочками в общих процедурах и так же в модуле обработки куда я вынес процедуру заполнения константы(в ней были сделаны экспортные методы) но ничего не помогло.
константа Ошибку не выдавала но и не устанавливалась
В итоге завел Регистр сведений с одним реквизитом и записал туда значение признака статуса доступности 0
при этом автоматически отработала подписка со своим Общем модулем
где я контролирую открытые окна.
(то что и требовалось)
Всем Спасибо !!!
---
https://infostart.ru/public/1243789/ пример где можно хранить свои произвольные данные
---
База файловая? серверная?, под каким пользователем запускается фоновое задание ? может у него прав нет на константу, хотя тогда была бы ошибка доступа. Может так

```1c
    набор=Константы.СК_СтатусОграниченияДоступности.СоздатьМенеджерЗначения();
    набор.Прочитать();
    набор.Значение=Истина;
    Набор.Записать();
```
---
На самом деле варианта всего 2, один из них скорее всего правильный. Либо вызываете процедуру УстановитьКонстанту_СК_СтатусОграниченияДоступности() как функцию, т.е. где-то есть код
```1c
    Переменная = УстановитьКонстанту_СК_СтатусОграниченияДоступности()
```
. Либо в самом отладчике в табло прописали эту процедуру и отладка в фоновом процессе повела себя неадекватно. Такое случается, когда отлаживаешь большие запросы с созданием временных таблиц в менеджере и когда в отладчике прописываешь Запрос.Выполнить().Выгрузить(), то сам код валится, потому что отладчик уже сам создал такой запрос с такими временными таблицами.