|
v7: Обработка флажка | ☑ | ||
---|---|---|---|---|
0
Масянька
16.08.17
✎
12:44
|
День добрый!
На форме док-та есть флажок, при установке которого в тек. строку ТЧ должна записаться строка. А как вот сделать, чтобы флажок (галочка/нет) отображался при перемещении по ТЧ (при наличии строки в ТЧ)? Спасибо. |
|||
1
Волшебник
модератор
16.08.17
✎
12:47
|
В восьмёрке это реализовано событием ПриАктивизацииСтроки
|
|||
2
2S
16.08.17
✎
12:48
|
(0) ТЗ на форме? Функцию повесить на эту ТЗ
|
|||
3
1dvd
16.08.17
✎
12:49
|
надо на форму повесить текстовое поле, в формулу прописать вызов функции, и эта функция будет выполнятся при любом передвижению по форме
|
|||
4
Масянька
16.08.17
✎
12:49
|
(2) Да, понятно, что можно и колонку сделать.
А вот так - в лоб? Чтобы флажок и вручную менялся, и программно. |
|||
5
Волшебник
модератор
16.08.17
✎
12:49
|
в семёрке на форму надо повесить надпись с формулой ?(ф(),0,0)
Далее внутри функции ф() проверять текущую строку и управлять видимостью |
|||
6
Злопчинский
16.08.17
✎
12:52
|
Масяню как всегда штырит не по детски.
В текущую строку тч записаться строка не может Нельзя впихнуть невихиваемое |
|||
7
Масянька
16.08.17
✎
12:54
|
(6) Да ладно... Мда...
|
|||
8
Злопчинский
16.08.17
✎
12:56
|
(7) да ладно.
Вот у тебя есть текущая строка тч. Как ты в неё запишешь "строку тч"? Заполнить текущую строку тч (уже существующую) можно, но вот записать в текущую строку тч " строку тч" - извини, не получится... |
|||
9
2S
16.08.17
✎
13:03
|
(8) ты понял что хочет автор?
две табличные части? |
|||
10
VladZ
16.08.17
✎
13:04
|
Ничего не понял.
|
|||
11
Злопчинский
16.08.17
✎
13:07
|
Тоже ничего не понял
|
|||
12
Масянька
16.08.17
✎
13:07
|
(11) А чего умничаешь?
|
|||
13
Масянька
16.08.17
✎
13:09
|
Вот - http://pastenow.ru/891a5831f11e17a8b61afd3e47625aa5.
Сейчас работает: ставишь галку - в комментарий садится. Как сделать, чтобы галка отображалась в зависимости от комментария? |
|||
14
Масянька
16.08.17
✎
13:09
|
(13) И да - ручками тоже менялась: поставил/убрал галку.
|
|||
15
Злопчинский
16.08.17
✎
13:09
|
В (8) я доколупался чисто формально.
А по факту прочитав (0) - я ничего не понял. Повторно перечитывать и интуичить влом. Мне своих Манагаров хватает которые внятно излагать потребности не могут... ;-) |
|||
16
aka AMIGO
16.08.17
✎
13:10
|
(14) Погоди, не спеши..
|
|||
17
Злопчинский
16.08.17
✎
13:10
|
(12) умный потому что
|
|||
18
oslokot
16.08.17
✎
13:10
|
а что в клюшках нет событий при активизации строки?
|
|||
19
Злопчинский
16.08.17
✎
13:11
|
(13) написали выше про текст на форме и функцию
|
|||
20
2S
16.08.17
✎
13:11
|
имхается, формекс нужен, не помню события активации строки в 77
|
|||
21
Масянька
16.08.17
✎
13:12
|
(19) Еще выше я написала про "в лоб".
|
|||
22
Масянька
16.08.17
✎
13:12
|
(16) У тебя есть?
|
|||
23
Масянька
16.08.17
✎
13:12
|
(17) Спорно :)
|
|||
24
Злопчинский
16.08.17
✎
13:13
|
(18) у кого как ;-)
Впрямую нет Вдобавок что такое при активизации строки ? Если я меняю строку в тч но при этом фокус не лежит на тч - это активизация строки или нет? |
|||
25
Злопчинский
16.08.17
✎
13:14
|
(22) верно
Ибо даже пословица есть Один дурак столько вопросов поназадает, что и сто мудрецов не ответят.... |
|||
26
aka AMIGO
16.08.17
✎
13:16
|
(22) Применял и не раз
Но готового примера нет, дома остался. По сути: Есть функция: ВыбратьЗначение(<?>,,,,) Синтаксис: ВыбратьЗначение(<Значение>,<Заголовок>>,<Позиция>,<Таймаут>,<СпособВыбора>) Назначение: Открыть окно для интерактивного выбора значения из списка. В реквизите "Способ выбора" ставишь "1" и расписываешь свою СЗ в Процедуре "ОбработкаВыбораЗначения" - для нужного реквизита ТЧ В одно из значений ставишь то, что тебе нужно.. "V" - для выбора или нужный тебе текст |
|||
27
aka AMIGO
16.08.17
✎
13:17
|
И это.. "Девочки, не ссорьтесь!" © :)
|
|||
28
aka AMIGO
16.08.17
✎
13:18
|
+26 в этом режиме получаешь менюшку в нужной строке и на нужном реквизите
|
|||
29
Рэйв
16.08.17
✎
13:18
|
в (5) же уже ответ.Чего копья ломаете?
|
|||
30
Злопчинский
16.08.17
✎
13:19
|
(26) ваще охренеть
Я понял так что если юзверь поставит галтчку то в комментарий (по текущей строке) должно записаться типа "по себестоимости" и удалиться из комментария при снятии галки юзверем |
|||
31
aka AMIGO
16.08.17
✎
13:19
|
В реквизите "Способ выбора" ставишь "1" или "2" уже забыл, лет 7 прошло с той конфы
|
|||
32
Ёпрст
16.08.17
✎
13:20
|
(0) Повесить функцию на текстовый реквизит, в ней, в зависимости от текущей строки устанавливать значение флажка.
|
|||
33
Злопчинский
16.08.17
✎
13:20
|
Я бы эту галку вообще убрал ввиду не ненужности
Если жмакнул в ячейку тч "комментарий" - то значение комментария меняется на противоположное. В случае двух значений посебестоимостм\пусто - вообще без всяких менюшек |
|||
34
aka AMIGO
16.08.17
✎
13:21
|
(33) мой вариант - не первый, не последний, и не лучший..
Просто я применял его, всех юзеров устраивало |
|||
35
oslokot
16.08.17
✎
13:21
|
(33) +1
|
|||
36
Масянька
16.08.17
✎
13:22
|
(26) Насколько я поняла: типа, выбора из выпадающего списка?
|
|||
37
Масянька
16.08.17
✎
13:22
|
(32) Получается: 2 фишки - флажок и текстовое поле...
|
|||
38
aka AMIGO
16.08.17
✎
13:23
|
(36) да, из СпискаЗначений, подготовленного тобой.
|
|||
39
Масянька
16.08.17
✎
13:24
|
(38) Прикольно... Но тут другая ситуация: предопределено только одно значение, а ручками зверюга может написать чего хочет (вариантов - тьма).
Но - спасибо. |
|||
40
Ёпрст
16.08.17
✎
13:24
|
(37) да.
Но, лучше делай как в (33). А флажки на форме, нужно делать кнопками - поставить всем строкам, снять всем, и инверсия. |
|||
41
Злопчинский
16.08.17
✎
13:24
|
(35) + автоматом переходить на след.строку
|
|||
42
Злопчинский
16.08.17
✎
13:25
|
(40) о, великий гуру всех гур, сенсей всех сенсеев!
|
|||
43
Масянька
16.08.17
✎
13:26
|
(40) Поле - для ввода ручками (с клавы). Может быть - что угодно душе. Есть только одно предопределенное значение.
|
|||
44
oslokot
16.08.17
✎
13:28
|
(41) я тут недавно в 8-ке встречал такой гомнокодище, что при установке флажка на форме создавались аж цепочки док-ов , затем у флажка доступность=ложь. ну чтоб, второй раз не нажали короче. жесть)
|
|||
45
Злопчинский
16.08.17
✎
13:31
|
(44) на просторах 1с можно всякое увидеть
|
|||
46
Масянька
16.08.17
✎
13:32
|
(38) Если не трудно - кинь своим примером. Пожалуйста.
|
|||
47
aka AMIGO
16.08.17
✎
13:32
|
(39) делаю пример.. 5 минуточек подождешь, или "ну его!"?? :)
|
|||
48
Злопчинский
16.08.17
✎
13:33
|
(44) даже на свой код смотришь и бывает мысли типа
- блин, я ж вроде веществ не употребляют, но как я мог ЭТО написать..? |
|||
49
Масянька
16.08.17
✎
13:34
|
(47) Жду!!!!
|
|||
50
Масянька
16.08.17
✎
13:34
|
(48) Настоящий программист пишет первые три года. Всю последующую жизнь - переписывает написанное. (С)
|
|||
51
Масянька
16.08.17
✎
13:40
|
(5) Кстати, вот тут бы код (который закрыт) пригодился.
|
|||
52
1dvd
16.08.17
✎
13:54
|
Опять все лавры Волшебнику, а я в (3) уже ответил тоже самое
|
|||
53
aka AMIGO
16.08.17
✎
13:55
|
В форме своего дока (только для примера) добавил реквизит Текст1, в свойствах/Дополнительно формулу "ПриВыбореТекста()"
В Модуле: Процедура ПриВыбореТекста() Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("V"); Меню.ДобавитьЗначение("Очистить"); Что=""; Поз=0; Если Меню.ВыбратьЗначение(Что,,Поз,,"2")=1 Тогда Текст1 = Меню.ПолучитьЗначение(Поз); КонецЕсли; КонецПроцедуры В диалоге на поле реквизита поставить курсор и нажать Enter Появится вот что: https://i.paste.pics/21e5de8dca0f30787e18e9b25c4ee52d.png мышкой или кнопками выбираешь нужное - в окне появляется то, что выбрано: https://i.paste.pics/ec11c1fe5aabec193febbfd163a95ff2.png Код писал впопыхах, преломи под себя, и вынеси создание СЗ из процы в другое место |
|||
54
aka AMIGO
16.08.17
✎
13:57
|
Должно быть вот так примерно:
Процедура ПриВыбореТекста() Что=""; Поз=0; Если Меню.ВыбратьЗначение(Что,,Поз,,"2")=1 Тогда Если поз=1 Тогда Текст1 = Меню.ПолучитьЗначение(Поз); Иначе Текст1=""; КонецЕсли; КонецПроцедуры |
|||
55
aka AMIGO
16.08.17
✎
14:01
|
+54 А код СЗ, соответственно, в теле модуля, ли в ПриОткрытии:
Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("V"); Меню.ДобавитьЗначение("Очистить"); |
|||
56
aka AMIGO
16.08.17
✎
14:02
|
А, да, в хидере объявить переменную:
Перем Меню; |
|||
57
Масянька
16.08.17
✎
14:09
|
(56) Мне нравится!
Огромное спасибо! |
|||
58
aka AMIGO
16.08.17
✎
14:10
|
(57) Не за что.. если поможет - буду доволен :)
|
|||
59
Масянька
16.08.17
✎
14:16
|
(58) А руками (ввести с клавы) в данном случае не ввести?
|
|||
60
aka AMIGO
16.08.17
✎
14:19
|
(59) у меня реквизит - строка, можно и ввести..
У тебя - не знаю.. Проверить не могу, уже всё, что относилось к сабжу, из конфу удалил.. |
|||
61
aka AMIGO
16.08.17
✎
14:19
|
* из конфы
|
|||
62
aka AMIGO
16.08.17
✎
14:20
|
Возможности у 7-ки ограниченные, нужно экспериментировать, чтобы получить ответ :(
|
|||
63
Масянька
16.08.17
✎
14:23
|
(60) Тоже строка (75). Набиваю текст, но после ввода жмакаю Enter и вываливается список.
|
|||
64
aka AMIGO
16.08.17
✎
14:25
|
(63) Ммм.. да, формула выполняется в любом случае..
Тогда - не знаюююуууу :) |
|||
65
Волшебник
модератор
16.08.17
✎
14:25
|
(62) Надо переходить на восьмёрку.
|
|||
66
Масянька
16.08.17
✎
14:25
|
(64) Всё равно - спасибо!
|
|||
67
Масянька
16.08.17
✎
14:25
|
(65) Надо - открыть код семерки.
|
|||
68
aka AMIGO
16.08.17
✎
14:25
|
а если после ввода мышой жмакнуть на другом поле/строке?
|
|||
69
Масянька
16.08.17
✎
14:26
|
(68) Во! Мышью сработало...
|
|||
70
aka AMIGO
16.08.17
✎
14:27
|
(65) 7-ка должна уйти © Волшебник :)
(69) - Можно энергично проинструктировать юзеров, будут работать.. |
|||
71
aka AMIGO
16.08.17
✎
14:29
|
+70 типа "Ентером - меню, мышью-текст.."
|
|||
72
Масянька
16.08.17
✎
17:10
|
(71) не плодить новые ветки: а есть вариант при открытии списка с выбором спозиционироваться не на первом?
Процедура ВыборСрокаГарантии() мПозиция = 0; Если (ПустоеЗначение(СрокГарантии) = 0) Тогда мПозиция = Менюшка.НайтиЗначение(Строка(СрокГарантии)); КонецЕсли; Сообщить("поз - " + мПозиция); Если Менюшка.ВыбратьЗначение(СрокГарантии, "Срок гарантии", мПозиция, "60", 0) = 1 Тогда СрокГарантии = Менюшка.ПолучитьЗначение(мПозиция); КонецЕсли; КонецПроцедуры Выводит - 2, а стоит на первом. |
|||
73
Ёпрст
16.08.17
✎
17:17
|
(72) пробуй еще ТекущаяСтрока установить, хз, мот прокатит
|
|||
74
Масянька
16.08.17
✎
17:19
|
(73) А то не пробовала... Не катит...
|
|||
75
Ёпрст
16.08.17
✎
17:32
|
(74) тогда сдвигай значение в списке, чтоб было первым +сособ выбора = 2 в твоём методе.
|
|||
76
Ёпрст
16.08.17
✎
17:32
|
или, пользуй активикс для списка. Там и галочки и картинки и что угодно :)
|
|||
77
Масянька
16.08.17
✎
17:37
|
(75) Как-то не по-человечески... Ну, выглядит...
(76) А подробнее можно? |
|||
78
Ёпрст
16.08.17
✎
17:39
|
(77) пример списка с "галочками", тут, например
http://catalog.mista.ru/public/79515/ |
|||
79
Ёпрст
16.08.17
✎
17:39
|
обычный активикс от мелкомягких
|
|||
80
Ёпрст
16.08.17
✎
17:40
|
||||
81
Злопчинский
16.08.17
✎
18:37
|
(72)
ВыбЗнач = 0; Если НачальнаяПозицияПриВыборе <> 0 Тогда глСервис.ЭмулироватьКлавиатуру("{DOWN "+НачальнаяПозицияПриВыборе+"}"); КонецЕсли; Если ШаблонАдресата.ВыбратьЗначение(ВыбЗнач,,Ном,,1) = 0 Тогда Возврат; КонецЕсли; //что-то действительно хотят |
|||
82
Duke1C
16.08.17
✎
21:25
|
Ежели я правильно понял хотелку ТС
то в модуль формы кинуть: Функция ПриТексте() Если (НомерСтроки>0)И(сокрЛП(Примечание)="По себестоимости") Тогда фл1=1; Иначе фл1=0; КонецЕсли; КонецФункции Процедура фл1() Если НомерСтроки>0 Тогда Если фл1=1 Тогда Примечание="По себестоимости"; Иначе Примечание=""; КонецЕсли; КонецЕсли; КонецПроцедуры // функцию "ПриТексте()" запихнуть в формулу невидимого текста на форме процедуру "фл1()" - в формулу флажка "По себестоимости" каг бэ фсё) |
|||
83
Duke1C
16.08.17
✎
21:27
|
+82 "фл1" заменить везде на идентификатор своего флажка (в названии процедуры можно не менять)
|
|||
84
Волшебник
модератор
16.08.17
✎
21:28
|
(83) Решение было в (5)
|
|||
85
Duke1C
16.08.17
✎
21:30
|
(84) Сдается мне в (5) не совсем то, что нужно автору... При всём уважении:)
|
|||
86
Волшебник
модератор
16.08.17
✎
21:32
|
(85) Ну ладно...
|
|||
87
Масянька
17.08.17
✎
08:32
|
(81) Спасибо!!! Сработало!!!
|
|||
88
Масянька
17.08.17
✎
08:32
|
(82) То, что было в сабже - уже решено.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |