Имя: Пароль:
1C
 
Ограничение на выбор значения в реквизите табличной части
0 NIGHTHUNTER
 
12.09.22
06:28
В документе, при установке значения одного из статусов, необходимо установить,
что бы в одном из реквизитов. доступных для редактирования можно было только перевыбрать существующее значение.
Без возможности выбирать другое. Тип реквизита табличной части документ.
В какой процедуре это правильно сделать?
В процедуре ПриИзменении(), уже идет выбранное значение значение. Нет возможности сравнить со старым.
Есть ли возможность, при выборе значения в реквизите табличной части сравнивать его с уже существующим?
1 Мимохожий Однако
 
12.09.22
06:43
ПриНачалеВыбора...
2 NIGHTHUNTER
 
12.09.22
06:48
(1) Ок, спасибо пробую разбирать эти 2 процедуры с выбором. Что связаны с полем Тч.
3 NIGHTHUNTER
 
12.09.22
07:02
Видимо недопонял вас, смотрел эти процедуры.
НачалоВыбора, ОбработкаВыбора, у реквизита табличной части.
Вы видимо про процедуру табличной части.

Сейчас поищу вашу.
4 NIGHTHUNTER
 
12.09.22
07:04
(1) Странно , но я не нашел такой процедуры.
5 NIGHTHUNTER
 
12.09.22
07:05
А в этих процедурах (3), нет переменной Отказ .
6 NIGHTHUNTER
 
12.09.22
07:26
В процедуру НачалоВыбора, почему то не заходит по точке останова.
Что бы посмотреть как там можно было бы обработать.

Я сделал так. Верно ли это? Получается СтандартнаяОбработка, в данном случае отрабатывает как Отказ.

&НаКлиенте
Процедура ЛимитыПредварительныйЗаказПоставщикуОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если ВыбранноеЗначение <> Элементы.Лимиты.ТекущиеДанные.ПредварительныйЗаказПоставщику Тогда
        Сообщить("Можно перевыбрать только, уже выбранное значение документа «Предварительный заказ поставщику» !");
        СтандартнаяОбработка = Ложь;
        Возврат;
    КонецЕсли;
КонецПроцедуры
7 NIGHTHUNTER
 
12.09.22
07:28
(6) Но так же это не является правильным. так как для пользовате, нет в видимой доступности выбранного документа для перевыбора.

Получается нужно смотреть все же НачалоВыбора, она вызывается при открытии списка Показать все.
8 DJ Anthon
 
12.09.22
07:29
Если работает, как надо, значит, сделал верно. И убери пробел и запятую в сообщении, пожалуйста.
9 NIGHTHUNTER
 
12.09.22
08:10
Заполняю ДанныеВыбора, но там все равно отображается весь список. При нажатии Показать все.

Я думал, что если я заполнил ДанныеВыбора. в этом случае там будет только один документ. Что бы пользователю было проще.

&НаКлиенте
Процедура ЛимитыПредварительныйЗаказПоставщикуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    ДанныеВыбора = Элементы.Лимиты.ТекущиеДанные.ПредварительныйЗаказПоставщику;
КонецПроцедуры  
//
&НаКлиенте
Процедура ЛимитыПредварительныйЗаказПоставщикуОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если ВыбранноеЗначение <> Элементы.Лимиты.ТекущиеДанные.ПредварительныйЗаказПоставщику Тогда
        Сообщить("Можно перевыбрать только уже выбранное значение документа «Предварительный заказ поставщику»!");
        СтандартнаяОбработка = Ложь;
        Возврат;
    КонецЕсли;
КонецПроцедуры
10 DrLekter
 
12.09.22
14:46
Если можно только перевыбрать (то есть нельзя менять), то почему просто не запретить выбор в этом случае? НачалоВыбора - СтандартнаяОбработка = Ложь. Ну можно ещё с каким-нибудь сообщением.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший