Имя: Пароль:
1C
1C 7.7
v7: Запрет редактирования реквизита табличной части документа
0 kupec
 
19.09.14
10:31
Всем доброго дня и с пятницей. ПриНачалеВыбораЗначения() не срабатывает для тадличной части документа, а именно для ввода количества (или суммы), т.е. необходимо отловить условие при которм реквизит бы не изменялся, можно ли как то перед началом редактирования поймать старое значение и если у товара (приходная накладная) стоит галочка например не менять цены, то система выдавала предупреждение необходимого мне содержания, ну и соответственно реквизит не менялся
1 lavalit
 
19.09.14
10:33
ПриНачалеРедактированиСтроки()
2 kupec
 
19.09.14
10:36
немного не то, в нее не передается редактируемый параметр (реквизит)
3 Ёпрст
 
19.09.14
10:38
(2) то-то.. подумай еще раз
4 Classic
 
19.09.14
10:38
(2)
Запоминай всю строку
5 kupec
 
19.09.14
10:41
да вроде придумал функцию, которая держит в себе все значения, поставил процедуру при вводе значения и проверяю условие, при несоответствии условия вертаю старое значение, правильно ли так, или можно как то проще и правильней сделать
6 varelchik
 
19.09.14
10:44
(0)Используй
ПриНачалередактированияСтроки()
запаминай редактируемое значение
ПриОкончанииРедактированияСтроки()
пиши его назад что бы туда не внесли.
7 varelchik
 
19.09.14
10:45
ПриНачалеВыбораЗначения()
ВЫБОРА
а у числа не выбора значения.
8 kupec
 
19.09.14
10:46
а если в строке 19 параметров, пользователь все 19 параметров высчитал и установил, а после ввода последнего значения оказывается что из них 11 редактировать нельзя, первый вопрос пользователя...  х...ли мне сразу не сказали что редактировать нельзя а я как дурак мучился
9 kupec
 
19.09.14
10:46
(7) так собсно по этому и был задан вопрос
10 Злопчинский
 
19.09.14
10:46
ПриНачалеРедактированияСтроки()
СтатусВозврата(0)
.
при удалении тсроки и при добавлении тсроки - не облажаться!
11 lavalit
 
19.09.14
10:47
(2) Ну и что что передается значение текущего редактироемого параметра.... ет просто что бы ты знал с какой такой колонки ты жмакаешь.. остальные то реквизиты доступны... тем более , что строка табчасти уже установлена... зачем же еще свю строку куда то запоминать.. запомни, только то, что необходимо
12 Злопчинский
 
19.09.14
10:49
сказочные дятлы... ;-)
13 lavalit
 
19.09.14
10:49
(7) здесь в принципе ПриНачалеВыбораЗначения() не подойдет, потому как это ТабЧасть а не шапка
14 kupec
 
19.09.14
10:49
(12) обоснуй
15 lavalit
 
19.09.14
10:50
(12) лес потому что сказочный.....)))) трава тоже сказочная и деревья сказочные...ГЫГЫГЫГЫ))))))
16 Chum
 
19.09.14
10:51
Форма.РеквизитТЧ.Доступность(0);
17 kupec
 
19.09.14
10:51
(16) для другой строки он может быть должен быть доступным
18 lavalit
 
19.09.14
10:53
Так погодь сча нарою.. я делал такой фокус.. для таб части. в каких то строках даю разрешение на установку скидки а в какой то не даю... отсюда иполучается, что реквизит в разных строка либо доступен либо нет
19 kupec
 
19.09.14
10:55
(18) а если на форму кинуть функцию и в ней отслеживать параметры товара, если он значение 1 тогда доступность 0 иначе доступность 1, работа формы не будет затормаживаться?
20 kupec
 
19.09.14
10:55
что будет правильней (19) или (5) ну и в плане быстродействия
21 lavalit
 
19.09.14
10:58
(18) доступность ко всей колонке во всех строках получится.. но ты же говоришь, что в разных строках может быть разная доступность
22 lavalit
 
19.09.14
10:58
Поентому Доступность() полюбому не катит... надо СтатусВозврата(0) юзать
23 kupec
 
19.09.14
11:01
Функция РаботаФормы()
Если Товар.Значение=А Тогда
Форма.Реквизит.Доступность(1);
Иначе
Форма.Реквизит.Доступность(0);
КонецЕсли;
КонецФункции

Вот и получается, если стоишь на одной строке то срабатывает одно условие, если на другой то другой, соответственно и доступность реквизита меняется
24 lavalit
 
19.09.14
11:08
Но ведь тебя это не страивает? так? а попробуй встать н астроку, где оно стало доступно а потом жмакни сразу мышом, где по идее должно быть не доступно... Может случиться, что в эту функцию даже не зайдет оно и доступность сразу собьется...
25 lavalit
 
19.09.14
11:12
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = "Нужная колонка" Тогда
СтатусВозврата(0);
//Здесь делаешь, все, что надо
//те же твои действия
Если Товар.Значение=А Тогда
//Делаешь сдесь изменение реквищита на чтотам тебе надо
Иначе
//можно промолчать а можно и сделать
Предупреждение("Не шали парниша");
КонецЕсли;
КонецЕсли;

Ну как то примерно так)))
26 kupec
 
19.09.14
11:12
при щелкании мышью на форме автоматом срабатывает функция, или нет??? В любом случае я сделал по другому, так как думаю что данная функция будет подвисать ЦП
27 kupec
 
19.09.14
11:12
Форма.ТекущаяКолонка()
а я про это и не знал ))) спасибо ))
28 lavalit
 
19.09.14
11:13
))) ну успехов)))