|
v7: Запрет данных! | ☑ | ||
---|---|---|---|---|
0
TwoWorld
05.10.11
✎
12:36
|
Мне нужно чтобы при каком то определенно условии нельзя было добавлять в строку новую номенклатурную позицию: т.е. если остатков нет, то запретить добавлять номенклатуру в строку:
Вот пишу: Процедура ПриНачалеРедактированияСтроки() ЗапретИзмененияНоменклатуры(Контекст); КонецПроцедуры Процедура ПриУдаленииСтроки () ЗапретИзмененияНоменклатуры(Контекст); КонецПроцедуры Процедура ПриВводеСтроки() ЗапретИзмененияНоменклатуры(Контекст); Если СтатусВозврата() = 0 Тогда УдалитьСтроку(); КонецЕсли; КонецПроцедуры Вот проблема в том, что когда я добавляю новую строку, мне надо чтобы он ее не создавал, если запрет стоит! А в моем коде, он удаляет строку на которой курсор стоит! Как поправить? |
|||
1
KRV
05.10.11
✎
12:43
|
Чо?
|
|||
2
viktor_vv
05.10.11
✎
12:43
|
Убери УдалитьСтроку()
|
|||
3
KRV
05.10.11
✎
12:44
|
Доступность(<?>)
Синтаксис: Доступность(<Режим>) Назначение: Установка режима редактирования элемента диалога. Возвращает: текущее числовое значение режима редактирования элемента диалога (на момент до исполнения метода). Параметры: <Режим> - число: 1 - разрешено редактирование элемента диалога, 0 - запрещено (необязателен). Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма. |
|||
4
TwoWorld
05.10.11
✎
12:44
|
Процедура ПриВводеСтроки()
ЗапретИзмененияНоменклатуры(Контекст); Если СтатусВозврата() = 0 Тогда УдалитьСтроку(); КонецЕсли; КонецПроцедуры Как поправить, чтобы при выборе номенклатуры, если остатков нет запрещал добавлять строку вдокумент? |
|||
5
KRV
05.10.11
✎
12:46
|
У тебя номенклатура выбирается в строке?
|
|||
6
TwoWorld
05.10.11
✎
12:47
|
(5) да
|
|||
7
TwoWorld
05.10.11
✎
12:47
|
(3) на счет этого у меня вот:
Процедура ПриНачалеРедактированияСтроки() ЗапретИзмененияНоменклатуры(Контекст); КонецПроцедуры |
|||
8
TwoWorld
05.10.11
✎
12:48
|
(2) нельзя убрать, он все равно добавит.
|
|||
9
KRV
05.10.11
✎
12:49
|
Ну так, млять, задумайся: где ты будешь выбирать номенклатуру, как не в той строке, которую ты уже создал? Телепатировать предлагаешь программе какую следующую номенклатуру будешь выбирать?
|
|||
10
viktor_vv
05.10.11
✎
12:50
|
Так может тогда проверку повесить в формулу Реквизита номенклатура. А то ПриВводеСтроки() отрабатывает до появления строки в контексте.
|
|||
11
TwoWorld
05.10.11
✎
12:52
|
Строка добавляется после выбора номенклатуры, если только формулу написать и если не удовлетворяет условию - удалить строку.
|
|||
12
МастерВопросов
05.10.11
✎
12:52
|
Процедура ПриВводеСтроки()
Если КакиетоТамОстатки=0 Тогда СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры |
|||
13
viktor_vv
05.10.11
✎
12:54
|
(11) А выбор номенклатуры откуда инициируется ?
|
|||
14
TwoWorld
05.10.11
✎
12:55
|
изсправочника номенклатура!
|
|||
15
viktor_vv
05.10.11
✎
12:56
|
(11) Может ты последовательность попутал ? И сначала все-таки добавляется новая строка, а потом происходит выбор. Чето я тебя нифига не помойму. У тебя наверное стоит автовыбор и тебе кажется что сначала выбирается номенклатура, а потом добавляется строка, хотя все с точностью до наоборот.
|
|||
16
МастерВопросов
05.10.11
✎
12:57
|
(11)
Процедура ПриВводеСтроки() Если ОстаткиТМЦ.СводныйОстаток(,Номенклатура,,"Количество")=0 Тогда СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры |
|||
17
viktor_vv
05.10.11
✎
12:57
|
(14) Из справочника он уже выполняется, а я спрашиваю по какому событию открывается справочник для выбора.
|
|||
18
TwoWorld
05.10.11
✎
12:58
|
(15) да ты прав, сначала строка потом номенклатура
|
|||
19
МастерВопросов
05.10.11
✎
12:58
|
можешь с НачатьТранзакцию(); поэкспериментировать
|
|||
20
viktor_vv
05.10.11
✎
12:58
|
(16) Если уж ему так нравятся предопреденные процедуры, то ему скорее всего надо ПриРедактированииНовойСтроки().
|
|||
21
viktor_vv
05.10.11
✎
13:00
|
(18) Ну так тогда (10). В чем проблема.
|
|||
22
ZOMI
05.10.11
✎
13:01
|
(0) Почем велик с треугольными колесами брали ?
|
|||
23
TwoWorld
05.10.11
✎
13:01
|
(16) это да, но у меня стоит условие:
Процедура ПриНачалеРедактированияСтроки() ЗапретИзмененияНоменклатуры(Контекст); КонецПроцедуры Т.е если я стою на строке которая запрещена к редактированию, то он не даст добавить строку новую, т.к Процедура ПриВводеСтроки() а=ЗапретИзмененияНоменклатуры(Контекст); Если а = 0 Тогда СттатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры |
|||
24
viktor_vv
05.10.11
✎
13:03
|
(23) Да забудь ты про ВводНовойСтроки(). Разве что у тебя телепат в компе есть, как написано в (9).
|
|||
25
TwoWorld
05.10.11
✎
13:10
|
(24) я понял, кроме формулы никак нельзя?
|
|||
26
viktor_vv
05.10.11
✎
13:14
|
(25) Религиозные убеждения ?
|
|||
27
TwoWorld
05.10.11
✎
13:14
|
ПриРедактированииНовойСтроки() не потянет?
|
|||
28
viktor_vv
05.10.11
✎
13:16
|
Там не помню в какой момент она отрабатывает плюс тебе все равно надо ловить момент выбора номенклатуры или момент когда она там уже есть, самое логичное это все-таки формула в реквизите.
|
|||
29
TwoWorld
05.10.11
✎
13:18
|
(28) спасибо, ветка закрыта
|
|||
30
TwoWorld
05.10.11
✎
14:18
|
Ввел формулу в поле номенклатура, в процедуре пишу:
|
|||
31
TwoWorld
05.10.11
✎
14:19
|
а = ЗапретИзмененияНоменклатуры(Контекст);
Если а = 0 Тогда УдалитьСтроку(); // не помогает СтатусВозврата(0);Возврат; // не помогает КонецЕсли; все равно строку добавляет в документ, как сделать то? |
|||
32
МастерВопросов
05.10.11
✎
14:37
|
Процедура ПриОкончанииРедактированияСтроки(ФлагНовойСтр)
Если ФлагНовойСтр=1 Тогда Предупреждение(Номенклатура); УдалитьСтроку(); СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры |
|||
33
МастерВопросов
05.10.11
✎
14:43
|
Процедура ПриОкончанииРедактированияСтроки(ФлагНовойСтр)
Если ФлагНовойСтр=1 Тогда Предупреждение(Номенклатура); УдалитьСтроку(); Форма.Обновить(); Возврат; КонецЕсли; КонецПроцедуры |
|||
34
TwoWorld
05.10.11
✎
14:44
|
(35) спасибо
|
|||
35
viktor_vv
05.10.11
✎
14:45
|
(31) Нормально оно все удаляет. Там правда нафик не впали СтатусВозврата() и Возврат.
|
|||
36
TwoWorld
05.10.11
✎
15:29
|
(33) что то твой код вылетает!
|
|||
37
TwoWorld
05.10.11
✎
16:12
|
Процедура ПриОкончанииРедактированияСтроки(ФлагНовойСтр)
Если ФлагНовойСтр=1 Тогда Предупреждение(Номенклатура); УдалитьСтроку(); Форма.Обновить(); Возврат; КонецЕсли; КонецПроцедуры При этом коде прогу вышибает! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |