![]() |
![]() |
|
Доступность колонки в табл.части документа | ☑ | ||
---|---|---|---|---|
0
schalke
16.03.07
✎
13:07
|
1С: 7.7
Есть ли возможность сделать в нужной строке табл.части документа недоступной определенную колонку? Колонка делается целиком недоступной (Форма.НазваниеКолонки.Доступность(0)), а можно чтобы только в определенной строке? |
|||
1
Ёпрст2
16.03.07
✎
13:09
|
(0) Можно... Только вот как определять будешь, в какой именно строке? ...
|
|||
2
mergan
16.03.07
✎
13:09
|
можно
|
|||
3
Ёпрст2
16.03.07
✎
13:09
|
(0) Можно естесственно, другими методами ...
|
|||
4
schalke
16.03.07
✎
13:12
|
(1) например, текущая строка
т.е. юзер, что-то ввел и в зависимости от этого сделать недоступной, например, соседнюю колонку (но только для текущей строки) |
|||
5
пубик
16.03.07
✎
13:15
|
ставь доступность/недоступность для всей колонки.. все равно в один момент времени больше одной ячейки редактировать не сможешь
поменялись условия(строка,ввели что-то) меняешь на то, что нужно |
|||
6
Ёпрст2
16.03.07
✎
13:16
|
в ПриРедактированииНовойСтроки(),ПриНачалеРедактированияСтроки() смотри на реквизит и в зависимости от него делай СтатусВозврата(0);
|
|||
7
demonas001
16.03.07
✎
13:16
|
Процедура ПриНачалеРедактированияСтроки()
КонецПроцедуры Синтаксис: ПриНачалеРедактированияСтроки() Назначение: Предопределенная процедура при интерактивном редактировании строки документа. Замечание: Данная процедура может располагаться только в модуле формы документа. ' |
|||
8
mergan
16.03.07
✎
13:16
|
//*******************************************
procedure OnStartEditLine() strItem = Form.ActiveControl(); if strItem = "ИмяБлокируемойКолонки" then if (LineNum / 2) = int(LineNum / 2) then domessagebox("Каждую четную строку редактировать низя!!!!"); returnstatus(0); return endif; endif; endprocedure |
|||
9
Ёпрст2
16.03.07
✎
13:17
|
(5) Ну -ну .. установили значится доступность(0) для колонки и всё .. сдец для других строк ...
|
|||
10
mergan
16.03.07
✎
13:17
|
(5)идите по спите товарищ
|
|||
11
пубик
16.03.07
✎
13:18
|
+(6,7) еще не забудьте свою процедуру написать, котораяобрабатывает ситуацию "что-то ввел"
|
|||
12
mergan
16.03.07
✎
13:20
|
(11)я же говорю спать
|
|||
13
schalke
16.03.07
✎
14:04
|
Дело в том, что мы делали через ПриРедактированииНовойСтроки() и СтатусВозврата(0)
Не отрабатывает случай, если поменяли значение в колонке и перешли мышкой(именно мышкой) в другую колонку, которую надо сделать недоступной: если переходим по Enter или Tab, то срабатывает, а мышкой - нет. Непонятно почему, но это факт, проверяли. |
|||
14
Конь в пальто
16.03.07
✎
14:06
|
(5,11) в мемориз!
|
|||
15
КонецЦикла
16.03.07
✎
14:06
|
ПриРедактированииНовойСтроки() строки еще нет, все ж написали как делать... какого хрена?
|
|||
16
kiruha
16.03.07
✎
16:28
|
Ну дети право
Процедура ПриНачалеВыбораЗначения(ЭлементДиалога) Если ЭлементДиалога = "Номенклатура" Тогда Сообщить(Номенклатура); КонецЕсли; КонецПроцедуры |
|||
17
Ёпрст
гуру
16.03.07
✎
16:31
|
(16) мда ..вопрос явно не читал ...
|
|||
18
kiruha
16.03.07
✎
16:39
|
(17) Надеюсь уважаемый ЕПРСТ сообразит сам - как поставить
ФлагСтандОбр=0 тем более подобная процедура применяется 166 раз в типовой торговле |
|||
19
igork1966
16.03.07
✎
16:41
|
(18) Ты предпологаешь что запрещать нужно только поля в которых кнопка выбора есть? ;-)
|
|||
20
kiruha
16.03.07
✎
16:48
|
(19) Да, в обратном случае не проходит.
А у автора колонка какого типа? |
|||
21
igork1966
16.03.07
✎
16:49
|
(20) "А у автора колонка какого типа?" автор об этом умалчивает..... ;-)
|
|||
22
Ёпрст
гуру
16.03.07
✎
16:54
|
(18) Зачем юзверю вообще чего-то давать выбирать ???, чем тебе ответ Скунки не устроил ?
|
|||
23
kiruha
16.03.07
✎
17:05
|
(22)См (13)
Ответ Скунка годится только если колонка - текст, как выбор партии в типовой. Тоже вариант. |
|||
24
Ёпрст
гуру
16.03.07
✎
17:08
|
(23) Ну с чего вы это взяли? Годится для Любой колонки !
И причем тут текстовая колонка? ... и как вы можете редактировать текстовую колонку ? :) |
|||
25
kiruha
16.03.07
✎
17:15
|
(24) Лично проверил в отладчике - в (13) все верно написано.
Текстовую колонку "редактирую" достаточно часто. При нажати на нее отрабатывается процедура (если строка введена) ПриНачалеРедактированияСтроки() Далее вызываю форму ввода, в зависимости от ввода - вывожу в текстовую колонку нужный результат |
|||
26
Ёпрст
гуру
16.03.07
✎
17:22
|
(25) ПриНачалеРедактированияСтроки() и ПриРедактированииНовойСтроки() найди 2 отличия ...
ЗЫ: Текстовая колонка - это та, что вставлена через Текст(синенький) ... и она просто для отображения чего либо ...и как ты "вывожу в текстовую колонку нужный результат" непонятно ... |
|||
27
kiruha
16.03.07
✎
17:40
|
(26) Пошагово. Для чего у меня используется текстовая колонка.
1. Есть текстовая колонка в документе 2. На колонку повешана функция. В частности у меня она показывает "галочки" 3. Есть реквизит табличной части документа не видимый на форме - тип число. 4. При нажатии на текстовую колонку срабатывает процедура ПриНачалеРедактированияСтроки() .Меняется реквизит - если был 0 то стал 1 и наоборот. 5. Функция , повешанная на текстовую колонку выводит "галочки" в зависимости от этого невидимого реквизита. Фу... Устал писать :) |
|||
28
Ёпрст
гуру
16.03.07
✎
17:44
|
(27) И причем тут всё вот это и вопрос в (0) ?
И где ты в вопросе (0) увидел текстовые колонки? И нахрена автору ПриНачалеВыбораЗначения ? И чем не устраивает (8) ? И смотри, что я в (6) написал, а Скунки в (8) разжувал ... |
|||
29
kiruha
16.03.07
✎
17:51
|
(28) Либо издеваешься либо ...
ПриНачалеРедактированияСтроки() он же OnStartEditLine() Еще раз (13) : "Не отрабатывает случай, если поменяли значение в колонке и перешли мышкой(именно мышкой) в другую колонку, которую надо сделать недоступной: если переходим по Enter или Tab, то срабатывает, а мышкой - нет. " Неужели трудно самому проверить??????? |
|||
30
Ёпрст
гуру
16.03.07
✎
17:53
|
(29) Я ? Нисколько, читаем (13), потом (26) ...много думаем...
|
|||
31
Ёпрст
гуру
16.03.07
✎
17:56
|
+ 30 И для тек, у кого плохо с английским :
ПриНачалеРедактированияСтроки() - OnStartEditLine() ..... ПриРедактированииНовойСтроки() - OnEditNewLine() |
|||
32
kiruha
16.03.07
✎
18:04
|
(31) Обе процедуры не срабатывают.
Ладно, похоже бесполезно что то объяснять. Удачи в программировании!! |
|||
33
Ёпрст
гуру
16.03.07
✎
18:05
|
(32) Наглая ложь...
Процедура ПриНачалеРедактированияСтроки() Сообщить("Ну ка, попробуй че нить изменить"); СтатусВозврата(0); КонецПроцедуры |
|||
34
kiruha
16.03.07
✎
18:12
|
(33)
Нда... Пользователь меняет в табличной части несколько колонок в ОДНОЙ строке, в зависимости от их НОВОГО(!!!) состояния требуется поставить запрет на определенную колонку. ПриНачалеРедактированияСтроки() срабатывает ПРИ НАЧАЛЕ Редактирования Строки, не при начале редактирования реквизита. мда.... |
|||
35
kiruha
16.03.07
✎
18:13
|
(33) еще раз читаем что хотел автор (0) и (13)
|
|||
36
kolobike
16.03.07
✎
18:34
|
100 раз делали..
Делается на форме текстовая метка( за пределами формы ) и на нее вешается функция, которая неважно что возвращает.... В теле функции смотришь что у тебя в реквизитах и в зависимости от надобности доступна/недоступна. Если, допустим, нужны более сложные изменения - к примеру, менять заголовки таб части, еще что-то ресурсоемкое, что заставляет мигать таб часть - добавляется еще реквизит "текНомерСтроки", который сравнивается с текущей строкой и если равен и условия доступности не изменились, то функция не срабатывает. |
|||
37
kolobike
16.03.07
✎
18:44
|
(36) Извиняюсь - ввел в заблуждение
текНомерСтроки - не реквизит - а переменная модуля формы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |