|   |   | 
| 
 | Исключить выбор перечисления в реквизите | ☑ | ||
|---|---|---|---|---|
| 0
    
        NIGHTHUNTER 14.04.22✎ 14:13 | 
        Пользователю, нельзя дать возможность, выбрать одно из значений перечисления.
 Если у одного значения табличной части, есть галки. В какой процедуре свойств поля это нужно делать? Подскажите пожалуйста. ПриИзменении() не подойдет наверное. НачалоВыбора() ОбработкаВыбора() ? | |||
| 1
    
        1Сергей 14.04.22✎ 14:14 | 
        НачалоВыбора     | |||
| 2
    
        dreizehn 14.04.22✎ 14:16 | 
        (1) А он ручками, текст введет =)
 (0) Проверять при записи, грязно ругаться и не давать записать. Грязо ругаться умеешь? | |||
| 3
    
        NIGHTHUNTER 14.04.22✎ 14:20 | 
        (1) Сейчас буду пробовать, поставил точки останова.
 (2) Нужно при вводе, не дать ему выбрать это значение. если в табличной части есть галки, в одном из полей. | |||
| 4
    
        Kassern 14.04.22✎ 14:21 | 
        создайте свое поле с блек джеком и списком выбора с нужными элементами.     | |||
| 5
    
        dreizehn 14.04.22✎ 14:22 | 
        (3) Сначала выбираем запрещенное значение, а потом ставим галку. Жизнь становится еще интереснее.     | |||
| 6
    
        NIGHTHUNTER 14.04.22✎ 14:23 | 
        (1) А как ей пользоваться? если выбранное значение есть только в процедуре ОбработкаВыбора()
 ОбнработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) | |||
| 7
    
        DimG 14.04.22✎ 14:24 | 
        Правильно это заполнить ПараметрыВыбора при НачалоВыбора     | |||
| 8
    
        dreizehn 14.04.22✎ 14:27 | 
        (7) Правда всегда одна. Это сказал фараон. Он был очень умен. И за это его называли. Тутанхамон.
 =) | |||
| 9
    
        NIGHTHUNTER 14.04.22✎ 14:59 | 
        А как присвоить пустое значение реквизиту типа перечисление, если нельзя выбирать значение?     | |||
| 10
    
        Kassern 14.04.22✎ 15:00 | 
        (9) ТвоеПолеСПеречисление=Перечисления.ТвоеПеречисление.ПустаяСсылка()     | |||
| 11
    
        Kassern 14.04.22✎ 15:00 | 
        Скорее всего можно и еще проще, прописать ТвоеПолеСПеречисление="";     | |||
| 12
    
        NIGHTHUNTER 14.04.22✎ 15:01 | 
        (10) А Неопределено можно?     | |||
| 13
    
        NIGHTHUNTER 14.04.22✎ 15:01 | 
        (11) Даже пусто можно? Кавычки?!     | |||
| 14
    
        Kassern 14.04.22✎ 15:02 | 
        (12) (13) Конфигуратор в руки и веред, проверить это 1минута     | |||
| 15
    
        NIGHTHUNTER 14.04.22✎ 15:02 | 
        (14) Я это делаю. Продолжительно грузится стоит. Занимаюсь. Продвигаюсь к цели.     | |||
| 16
    
        dreizehn 14.04.22✎ 15:04 | 
        Предлагаю присвоить 0, это сэкономит нажатия на кнопки и ресурс клавиатуры. Насколько я помню, для Андрея это критично.     | |||
| 17
    
        dreizehn 14.04.22✎ 15:05 | 
        (15) Вот представь себе, насколько ты уже свою клавиатуру испортил бестолковыми нажатиями для пустого общения на форуме?     | |||
| 18
    
        NIGHTHUNTER 14.04.22✎ 15:21 | 
        не получается через неопределено обнулить реквизит типа перечисления, значение в нем остается
 делаю на клиенте Объект.СтатусНарядЗадания = Неопределено; ничего это не дает. | |||
| 19
    
        NIGHTHUNTER 14.04.22✎ 15:22 | 
        (18+)  В отладчике обнуляется. А на форме остается.     | |||
| 20
    
        Kassern 14.04.22✎ 15:22 | 
        (19) это точно из серии 18+))     | |||
| 21
    
        NIGHTHUNTER 14.04.22✎ 15:24 | 
        (20) Как обнулить? На форме не исчезает, только в отладчике.     | |||
| 22
    
        NIGHTHUNTER 14.04.22✎ 15:25 | 
        может нужно на сервере обнулять?     | |||
| 23
    
        dreizehn 14.04.22✎ 15:25 | 
        Интересно, а нет ли в "обнуляется" политического подтекста?     | |||
| 24
    
        NIGHTHUNTER 14.04.22✎ 15:27 | 
        в чем ошибка? Почему остается значение, хотя обнулилось в отладчике?     | |||
| 25
    
        Kassern 14.04.22✎ 15:27 | 
        (21) а в элементе формы какой путь к данным прописан?     | |||
| 26
    
        NIGHTHUNTER 14.04.22✎ 15:30 | 
        (25) Объект.СтатусНарядЗадания     | |||
| 27
    
        Kassern 14.04.22✎ 15:31 | 
        (26) Попробуйте вместо неопределено присвоить пустую ссылку на перечесление     | |||
| 28
    
        NIGHTHUNTER 14.04.22✎ 15:32 | 
        (27) Пробую сейчас     | |||
| 29
    
        NIGHTHUNTER 14.04.22✎ 15:34 | 
        (26) Все равно остается
 Объект.СтатусНарядЗадания = ПредопределенноеЗначение("Перечисление.НарядЗаданиеСтатус.ПустаяСсылка"); | |||
| 30
    
        NIGHTHUNTER 14.04.22✎ 15:35 | 
        В отладчике его нет, но на форме в поле есть     | |||
| 31
    
        NIGHTHUNTER 14.04.22✎ 15:36 | 
        делаю в процедуре обработка выбора, какой тут секрет?
 &НаКлиенте Процедура Закупки_ХХХ_СтатусНарядЗаданияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если ПроверкаВыбораПринятоОТКНаСервере() и ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПринятоОТК") Тогда Объект.ХХХ_СтатусНарядЗадания = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПустаяСсылка"); Объект.ХХХ_СтатусНарядЗадания = 0; Объект.ХХХ_СтатусНарядЗадания = Неопределено; КонецЕсли; КонецПроцедуры // | |||
| 32
    
        Kassern 14.04.22✎ 15:37 | 
        (31) беда...     | |||
| 33
    
        NIGHTHUNTER 14.04.22✎ 15:38 | 
        (32) В чем? Что поправить?     | |||
| 34
    
        Kassern 14.04.22✎ 15:38 | 
        (33) зачем вы 3 раза переприсваиваете Объект.ХХХ_СтатусНарядЗадания?     | |||
| 35
    
        Kassern 14.04.22✎ 15:38 | 
        зачем это делаете на клиенте?     | |||
| 36
    
        NIGHTHUNTER 14.04.22✎ 15:39 | 
        (31+) По разному сбросить значение пытаюсь уже     | |||
| 37
    
        NIGHTHUNTER 14.04.22✎ 15:39 | 
        (34) Потому что не работает, долго обновляется, я пробовал все три варианта. Не работает, решил все три попробовать     | |||
| 38
    
        NIGHTHUNTER 14.04.22✎ 15:43 | 
        Подскажете секрет, почему в табло значение пропадает в (31), а на форме нет ?
 Что ещё обнулять, как? | |||
| 39
    
        unbred 14.04.22✎ 15:44 | 
        если выбранное значение = "запретное значение" тогда
 выбранное значение = прошлое значение сообщить("ацтань,пратиный"); конецесли; | |||
| 40
    
        NIGHTHUNTER 14.04.22✎ 15:45 | 
        пропадает оно в отладчике к стати только в этой процедуре (31)
 после перехода в другую оно снова появляется | |||
| 41
    
        unbred 14.04.22✎ 15:45 | 
        (38) потому что ты, скорее всего, в (26) наврал     | |||
| 42
    
        unbred 14.04.22✎ 15:46 | 
        в топике у тебя не было задачи по обнулению.     | |||
| 43
    
        Kassern 14.04.22✎ 15:46 | 
        (38) А вы на кой с табло то сравниваете? На Сервере присвойте пустую ссылку вашему реквизиту     | |||
| 44
    
        NIGHTHUNTER 14.04.22✎ 15:47 | 
        (43) тогда нужно с клиента на сервер передавать, выбранное значение
 &НаКлиенте Процедура Закупки_ХХХ_СтатусНарядЗаданияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) | |||
| 45
    
        Kassern 14.04.22✎ 15:48 | 
        (44) И в чем проблема?     | |||
| 46
    
        NIGHTHUNTER 14.04.22✎ 15:51 | 
        (45) Сейчас буду пробовать, подумал что может стандартную обработку нужно в ложь? Пробую.
 Проблема в утомлении. Я пробую сейчас эти моменты. | |||
| 47
    
        NIGHTHUNTER 14.04.22✎ 15:59 | 
        Вот так работает, если так оставить, будет ли нормально?
 &НаКлиенте Процедура Закупки_ХХХ_СтатусНарядЗаданияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтандартнаяОбработка = ложь; Если ПроверкаВыбораПринятоОТКНаСервере() и ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПринятоОТК") Тогда Объект.ХХХ_СтатусНарядЗадания = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПустаяСсылка"); Иначе Объект.ХХХ_СтатусНарядЗадания = ВыбранноеЗначение; КонецЕсли; КонецПроцедуры | |||
| 48
    
        NIGHTHUNTER 14.04.22✎ 16:05 | 
        Странно, но если я ставлю в ложь в (47) почему то перестала запускаться процедура при изменении     | |||
| 49
    
        Kassern 14.04.22✎ 16:07 | 
        создайте внешнюю обработку и балуйтесь в ней с событиями реквизитов формы, чтобы долго не ждать обновления конфигурации. А перед этим почитайте за эти события и что значит СтандартнаяОбработка     | |||
| 50
    
        NIGHTHUNTER 14.04.22✎ 16:10 | 
        (49) То есть, так и есть? Вызов процедуры ПриИзменении, не производится, потому что я ставлю стандартную обработку в ложь?
 Значит после КонецЕсли, нужно ее в истину вернуть? | |||
| 51
    
        NIGHTHUNTER 14.04.22✎ 16:15 | 
        (49) я думал, стандартная обработка устанавливается в разрезе процедуры, на другую не распространяется     | |||
| 52
    
        NIGHTHUNTER 14.04.22✎ 16:27 | 
        я обнуляю на сервере, но все равно значение не обнулилось ((((
 Объект.ХХХ_СтатусНарядЗадания = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПустаяСсылка"); | |||
| 53
    
        NIGHTHUNTER 14.04.22✎ 16:28 | 
        (43) это не работает     | |||
| 54
    
        NIGHTHUNTER 14.04.22✎ 16:34 | 
        Как можно обнулить значение реквизита, типа перечисление?     | |||
| 55
    
        NIGHTHUNTER 14.04.22✎ 16:35 | 
        не работает
 &НаСервере Процедура ПроверкаВыбораПринятоОТКНаСервере(МАСС) ЧастичноПринято = Объект.ХХХ_Товары.Выгрузить().Найти(Истина,"ЧастичноПринято"); Если ЧастичноПринято <> Неопределено и МАСС[0].ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПринятоОТК") Тогда Объект.ХХХ_СтатусНарядЗадания = Перечисления.ХХХ_НарядЗаданиеСтатус.ПустаяСсылка(); КонецЕсли; КонецПроцедуры так же, в процедуре обнуляет, при переходе в другую там значение и на форме так же остается | |||
| 56
    
        vde69 14.04.22✎ 16:50 | 
        кодить не надо от слова совсем...
 установить "режим выбора из списка" и заполнить список выбора | |||
| 57
    
        dreizehn 14.04.22✎ 17:21 | 
        (56) > кодить не надо 
 Читать тоже. Там разные списки в зависимости от настроения галочки в табличной части. | |||
| 58
    
        NIGHTHUNTER 15.04.22✎ 04:42 | 
        Вот решение данного вопроса.
 Суть, была в том, что нужно обнулять не реквизит, а переменную ВыбранноеЗначение. // &НаКлиенте Процедура Закупки_ХХХ_СтатусНарядЗаданияОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если ПроверкаВыбораПринятоОТКНаСервере2() и ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПринятоОТК") Тогда ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ХХХ_НарядЗаданиеСтатус.ПустаяСсылка"); КонецЕсли; КонецПроцедуры // &НаСервере Функция ПроверкаВыбораПринятоОТКНаСервере2() ЧастичноПринято = Объект.ХХХ_Товары.Выгрузить().Найти(Истина,"ЧастичноПринято"); Если ЧастичноПринято <> Неопределено Тогда Возврат Истина; КонецЕсли; Возврат Ложь; КонецФункции // | |||
| 59
    
        NIGHTHUNTER 15.04.22✎ 04:43 | 
        (56)(57)  С этими методиками не знаком. Пока вот решил, имеющимися средствами.     | |||
| 60
    
        DEVIce 15.04.22✎ 05:14 | 
        Не проще через выбор из списка и заполнить только разрешенными значениями?     | |||
| 61
    
        NIGHTHUNTER 15.04.22✎ 06:35 | 
        (60) На что хватило сил. 
 Я сделал то что мне было проще. Это же можно сделать, разными методами и возможностями. Я вот сделал какой мне был ближе. и то с переделками разными. Какой из методов, показался ближе. тот и стал рассматривать. На прочие, которые ближе кому то, у меня не хватило уже энергии. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |