Имя: Пароль:
1C
1С v8
УТ 11 динамическое изменение функциональной опции
0 m1_1976
 
27.02.23
16:09
УТ 11.5.10.xx

1) Важно: Про "интеркампани" знаю!!!!
СУТЬ:
2) Сейчас в УТ три организации
По двум из них расходные документы хочу проводить со снятой галочкой КОНТРОЛИРОВАТЬ ОСТАТКИ ОРГАНИЗАЦИЙ - всегда галочка снята
3) А вот по одной организации (из 300 документов в день только 5-10 штук по ней проходит) нужно контролировать остатки организации.
Попытка такая:
Это пробую в Расширении в модуле объекта Реализация товаров и услуг.
Важно: В УТ 11.5 проверка идет в ПЕРЕДЗАПИСЬЮ... а не в обработке проведения.

Перед("ПередЗаписью")
Процедура м1ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
        Если СОКРЛП(Организация.ИНН)=НУЖНЫЙ_ИНН тогда
            //НУЖНАЯ мне организация!
            Константы.КонтролироватьОстаткиТоваровОрганизаций.Установить(Истина);
        Иначе
            Константы.КонтролироватьОстаткиТоваровОрганизаций.Установить(Ложь);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


&После("ПередЗаписью")
Процедура м1ПередЗаписьюПосле(Отказ, РежимЗаписи, РежимПроведения)
Константы.КонтролироватьОстаткиТоваровОрганизаций.Установить(Ложь);
КонецПроцедуры

================
Не срабатывает!
Я так понимаю это одна транзакция и на момент проверок константа так и остается в ЛОЖЬ :((((
================
Подскажите может есть еще какой простой способ в лоб решить задачу
1 unenu
 
27.02.23
17:45
при выключении есть сноска в форме (на время сеанса)

в сторону этой сноски и копайте - она говорит о том, что отключение можно дифференцировать.

ну глобальным поиском поищете в коде по полям настройки.
2 m1_1976
 
27.02.23
20:31
(1) Вы что-то спутали. Кнопка отключить на время сеанса отключает вообще контроль остатков. А мне надо именно Контроль остатков организации.

Сейчас операторы делают так. Проводят из 300 -> 290 документов по второй и третьей фирме - где все перепутано. В этот момент галочка "Контроль остатков организации" не стоит! Там один купил, второй продал ну или наоборот. Там все ок! Так можно. А потом вручную ставят галочку "Контролировать остатки организации" и проводят документы по третьей фирме - которая торгует только своим. Там проверка работает. Она нужна. Ассортимент сильно пересекается.
Хотел их избавить от необходимости вручную ставить эту галочку. А тут вот...
3 m1_1976
 
27.02.23
20:33
(1) Ой - ... сорри. Это я напутал... Да действительно. Все так как Вы пишете.
Спасибо! Буду завтра курить это дело!!!
Там вообще - то что нужно. Для контректного пользователя. Прям вот то что нужно!
4 m1_1976
 
09.03.23
09:12
В общем с трудом решил задачу.
Суть была такая два ИП могут продавать товар друг друга, а ООО - только свой.
Оказывается эта опция "КонтролироватьОстаткиТоваровОрганизаций" срабатывает только при проведении из непроведенного документа!!
Если до этого документ уже провели - она не срабатывает. Я так понял. Задачу решил добавлением такого кода:

&Перед("ПередЗаписью")
Процедура м1ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
        
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
                
        Если СОКРЛП(Организация.ИНН)=НУЖНЫЙ_ИНН тогда
            //ООО
            Если Проведен ТОгда
                Записать(РежимЗаписиДокумента.ОтменаПроведения);
            Конецесли;

            Константы.КонтролироватьОстаткиТоваровОрганизаций.Установить(Истина);
        Иначе
            Константы.КонтролироватьОстаткиТоваровОрганизаций.Установить(Ложь);
        КонецЕсли;
    КонецЕсли;
    
    
КонецПроцедуры
Независимо от того, куда вы едете — это в гору и против ветра!