Имя: Пароль:
1C
1С v8
Доп. колонка в таб. поле справочника списка
0 Aleksey_a_z
 
27.10.11
14:06
есть табличное поле на форме, тип значения СправочникСписок, добавил доп. колонку этому полю с свойствах колонки ЭлементУправлени = "Флажок"
в свойствах поля ввода колонки тип данных булево

Как теперь манипулировать этим флажком? Привязать его к каким то данным не могу. Пытаюсь отслеживать событие "Выбор"
СтандартнаяОбработка = Ложь; что бы не открывала элемент справочника
Но достучаться и записать какое то значение в эту колонку не могу
17 Starhan
 
27.10.11
14:23
(12) ТЗ где хранить будешь? Или тебе значение флажка важно только в открытом окне с этим списком справочника?
18 Aleksey_a_z
 
27.10.11
14:24
(11) да мне не нужно хранить эти данные в базе. Я просто хочу сделать удобный выбор элементов для пользователей.
Это все для отчета делается.
Логика простая.
Я хочу сделать отбор номенклатуры не через подбор или добавление в список а путем проставления флажков на элементы и группы
19 Aleksey_a_z
 
27.10.11
14:27
Это все для отчета делается.
Логика простая.
Я хочу сделать отбор номенклатуры не через подбор или добавление в список а путем проставления флажков на элементы и группы

К примеру на форме есть поля ввода, "Организация", "Поставщик", таб. поле "Номенклатура" с типом справочник список
Юзер выбирает поставщика, организацию формируется отбор по списку "Номенклатура", далее ему нужно в списке "Номенклатура" в доп колонке "Флаг" проставить нужные флажки на выбранные позиции и сформировать отчет, все!!!
20 Aleksey_a_z
 
27.10.11
14:30
Ну добавил я новую колонку к списку, ну могу я при выводе строки что нибудь в нее вывести, но мне нужно как то умудрится в нее что то интерактивно вносить? Или это из области фантастики?
21 DrShad
 
27.10.11
14:35
(19) множественный выделение это твое все
22 DrShad
 
27.10.11
14:36
+(21) как в экселе выделяешь через Shift или Ctrl и юзаешь потом как выделенныеСтроки
23 Starhan
 
27.10.11
14:37
(21) в его случае не совсем удобно для пользователя если список полностью не вмещается и его придется прокручивать.
24 DrShad
 
27.10.11
14:39
(23) и что выделение при этом снимается?
25 Starhan
 
27.10.11
14:41
(24) в екселе да если случайно щелкнуть по строке без кнопки шифт и контрол
26 Aleksey_a_z
 
27.10.11
14:42
короче при выводе строки

ОформлениеСтроки.Ячейки.Колонка1.ОтображатьФлажок = Истина;

зашибись, флажок есть, кликабельный

НО

в обработчике

ПриИзмененииФлажка

где теперь считывать значения флажка?
27 DrShad
 
27.10.11
14:44
можно еще на форме сделать табличное поле в которое перетаскивать необходимые элементы - всяко гемора меньше чем с флажком
28 DrShad
 
27.10.11
14:45
+(27) но видимо ТС не ищет легких путей, ему нужно черз пень колоду чтоб все было
29 Aleksey_a_z
 
27.10.11
14:46
(27) да вроде все должно буть норм. Колонку с флажком вывел, флажек кликабельный все нормально, осталось в обработчике при изменении этого флажка записывать в ТЗ значение Номенклатуры и флажка и все, список для запроса готов.
30 Aleksey_a_z
 
27.10.11
14:46
(28) это самый легкий путь для пользователя
31 Starhan
 
27.10.11
14:47
(26)уточни вопрос.
не наступает событие?

если событие отрабатывается, смотри, что там в элементе и колонке.
Колонка тебе известна, текущая строка тоже.

(27) ну мы же не знаем что именно там хотят пользовотели. Если для ТС реализация флажка сложна. То механизма драгээндроп темболле :).
32 DrShad
 
27.10.11
14:48
(31) да че там сложного в этом драгэнддропе? зато как красиво
33 Aleksey_a_z
 
27.10.11
14:48
(31) событие наступает ПриИзмененииФлажка.
Но где значение флажка при этом искать?
передается два параметра Элемент, Колонка
обрыл все, найти не могу
34 Aleksey_a_z
 
27.10.11
14:49
(32) да нифига это не красиво, вот поставил галочку напротив группы или элемента и кнопочку "Сформировать" вот это красиво
35 Starhan
 
27.10.11
14:49
(33) на память (могу ошибаться)
что то вроде

Элемент.ТекущаяСтрока[колонка].ЗначениеФлажка
36 Starhan
 
27.10.11
14:51
(33) посмотри в отладчике.
37 Starhan
 
27.10.11
14:52
(0) 5 лет в 1с впервые столкнулся с флажком.
38 Aleksey_a_z
 
27.10.11
14:52
(35)
у меня
Элемент.ТекущаяСтрока

имеет значение СправочникСсылка.Номенклатура
39 DrShad
 
27.10.11
14:52
(34) дело конечно твое, но я бы с такой реализацией задачи на работе не держал бы
40 DrShad
 
27.10.11
14:53
(38) все верно, потому что ты работаешь со списком справочника
41 Aleksey_a_z
 
27.10.11
14:54
(39) кого не держал? Ясен пень что с точки зрения реализации лучше стандартный механизм подбора, добавил список значений, определил тип и в перед но когда юзеру нужно отобрать куеву тучу элементов причем распиханых черти знает где то это не самы лучший вариант
42 Starhan
 
27.10.11
14:55
ЕМНИП Текущиеданные вернет справочник список
а текущаястрока строку ТП
43 Starhan
 
27.10.11
14:55
(38) какой тип у Элемента?
44 Aleksey_a_z
 
27.10.11
14:56
(43) табличное поле
45 DrShad
 
27.10.11
14:56
(41) а где ты прочитал про список значений?
46 Aleksey_a_z
 
27.10.11
14:56
(44) + тип значения табличного поля справочник список
47 DrShad
 
27.10.11
14:58
(46) даже форма выбора со множественным выбором лучше, чем то что ты изобретаешь
48 DrShad
 
27.10.11
14:58
+(47) и откуда такая уверенность что твой велосипед с квадратными колесами это единственно верное решение?
49 Aleksey_a_z
 
27.10.11
14:59
(48) а чем решение с перетаскивание лучше?
50 Aleksey_a_z
 
27.10.11
15:00
(49) + чем решение со множественным выбором с точки зрения пользователей лучше?
51 DrShad
 
27.10.11
15:01
(50) с точки зрения пользователей лучше чтоб конфа сама догадывалась что им нужно, а методы что я описал лучше, потому что как раз для таких случаев были разработаны
52 Axel2009
 
27.10.11
15:05
ну открывай свою форму списка для подбора. при выборе (2ом клике) добавляй в свою ТЗ строчку. при выводе значения проверяйся с этой ТЗ и отображай флажок, в чем трабла то?
53 Aleksey_a_z
 
27.10.11
15:05
(51) конфа не догадается, только пользователь сможет догадаться что ему выбрать. А удобней ему выбирать будет путем выставления флажков, стандартный механизм подбора в список с точки зрения пользователей не удобен, при добавлении ~500 уже тяжело ориентироваться в таком списке, визуально тяжело отследить что добавлено в список а что нет, визуально тяжело отследить какие группы добавлены в список а какие нет. Механизм с перетаскиванием гораздо лучше если не получится с флажками остановлюсь на нем
54 DrShad
 
27.10.11
15:06
(52) в таком варианте ТЗ не нужна
55 Aleksey_a_z
 
27.10.11
15:07
(52) зачем что то открывать? Список есть на форме, нужно проставляя флажки загонять в ТЗ строки. Только вот где значения флажка хранятся не пойму
56 hhhh
 
27.10.11
15:08
(53) у меня вот так сделано

Процедура ПриВыбореФлажкаПечать()
   Стрп = ТаблицаПечать.Найти(ЭлементыФормы.СписокРеализацийНаПечать.ТекущиеДанные.Ссылка, "Ссылка");
   Если Стрп = Неопределено Тогда
       Стрп = ТаблицаПечать.Добавить();
       Стрп.Ссылка = ЭлементыФормы.СписокРеализацийНаПечать.ТекущиеДанные.Ссылка;
       Стрп.Пометка = Ложь;
       Стрп.Напечатано = Ложь;
   КонецЕсли;
   Если Стрп.Пометка Тогда
       Стрп.Пометка = Ложь;
   Иначе
       Стрп.Пометка = Истина;
       Стрп.Напечатано = Ложь;
   КонецЕсли;
КонецПроцедуры
57 Axel2009
 
27.10.11
15:08
(54) ага, и где будет храниться что эта номенклатура выделена?
58 Aleksey_a_z
 
27.10.11
15:09
(57) +
ну открывай свою форму списка для подбора. при выборе (2ом клике) добавляй в свою ТЗ строчку. при выводе значения проверяйся с этой ТЗ и отображай флажок, в чем трабла то?

ну там где ты будешь отображать флажек как ты говоришь можно хранить и всю ТЗ. Задача в (0) немного другая
59 Aleksey_a_z
 
27.10.11
15:13
(56) ну в принципе разобрался. ПриИзмененииФлажка ищем в ТЗ строку по Элемент.ТекущаяСтрока
находим смотрим значение колонки "Флажек" и меняем на противоположный.
60 Starhan
 
27.10.11
15:17
(59)хз в твоем случае вот как. Твоя тз пуста. флажки пусты.

Попадаешь в процедуру ищешь ноеменклатуру в своей тз если нет. Добовляешь. если есть удалаяешь
61 DrShad
 
27.10.11
15:17
(57) в свойствах формы открытой для выбора
62 Starhan
 
27.10.11
15:21
(60) + 59. Ешще вижу у тебя вот какую проблему если пользователь отметил номенклатуру и изменил отбор у тя номенклатура запомниться а в списке будет уже совсем другая.
63 Aleksey_a_z
 
27.10.11
15:21
(60) + ну да
64 Aleksey_a_z
 
27.10.11
15:22
(62) если юзер изменит отбор то ТЗ очистится
65 Aleksey_a_z
 
27.10.11
15:23
просто если в отборе можно было задать то что нужно юзеру то ноу проблэм а так приходится выводит списком что что осталось после отбора и он потом будет более детально выбирать флажками то что ему нужно
66 Aleksey_a_z
 
27.10.11
15:25
Сейчас нашел другую проблему, при выборе флажком группы, все элементы в этой группе тоже должны отработать по флажку ан нет. Придется при выводе строки их проставлять сверяясь с ТЗ
67 DrShad
 
27.10.11
15:27
выводи флажок по родителю
68 Aleksey_a_z
 
27.10.11
15:29
(67) это где и как?
69 DrShad
 
27.10.11
15:30
(68) так же как ты выводишь флажок в любой другой строке, только значение флажка от родителя бери
70 Aleksey_a_z
 
27.10.11
15:30
(69) а ну да
71 Aleksey_a_z
 
27.10.11
15:32
(69) не катит, я же писал выше что значение флажка взять неоткуда. Разве что ТЗ перебирать
72 shuhard
 
27.10.11
15:35
(71) Оооооооооо
всего 70 постов и ты прочитал (6)
73 Aleksey_a_z
 
27.10.11
15:37
(72) я давно (6) прочитал
74 shuhard
 
27.10.11
15:37
(73) брешешь
75 Aleksey_a_z
 
27.10.11
15:39
(74) по существу давай.
при выводе строки где брать значение флажка от родителя. Перебирать ТЗ не вариант, будет долг работать
76 Aleksey_a_z
 
27.10.11
15:42
Все равно я не пойму почему платформа не позволяет прочитать значение флажка таб. поля.
Только изменить оформление при выводе и отработать событие, а само значение прочитать не дает
77 DrShad
 
27.10.11
15:42
(75) так еще и тз перебором юзаешь?
78 Aleksey_a_z
 
27.10.11
15:43
(77) пока еще ничего не юзаю, ну разумеется не перебором если на то пойдет
79 DrShad
 
27.10.11
15:44
(76) платформа то дает, но уж очень интересный тип у поля и не рассчитан на такие изврщаения
80 mooo
 
27.10.11
15:44
(0) Держи решение, в модуле формы:

Перем мВыбранныеЭлементы;

Процедура СправочникСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   Если Колонка.Имя = "Пометка" Тогда
       СтандартнаяОбработка = Ложь;
       Если мВыбранныеЭлементы.Найти(ВыбраннаяСтрока.Ссылка) = Неопределено Тогда
           мВыбранныеЭлементы.Добавить(ВыбраннаяСтрока.Ссылка);
       Иначе
           Пока Истина Цикл
               Индекс = мВыбранныеЭлементы.Найти(ВыбраннаяСтрока.Ссылка);
               Если Индекс = Неопределено Тогда
                   Прервать;
               КонецЕсли;
               мВыбранныеЭлементы.Удалить(Индекс);
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если НЕ (мВыбранныеЭлементы.Найти(ДанныеСтроки.Ссылка) = Неопределено) Тогда
       ОформлениеСтроки.Ячейки.Пометка.ОтображатьКартинку = Истина;
       ОформлениеСтроки.Ячейки.Пометка.Картинка = БиблиотекаКартинок.Утвердить;
   КонецЕсли;
КонецПроцедуры

мВыбранныеЭлементы = Новый Массив();


Единственное ограничение флажок ставится двойным кликом.
81 Aleksey_a_z
 
27.10.11
15:44
Блин, мне гуру тут ответят почему такая засада  в (76) ?
82 DrShad
 
27.10.11
15:44
(78) а чего тогда кричишь что долго будет?
83 Starhan
 
27.10.11
15:45
(75) Если бы это была табличная часть или твоя ТЗ то все бы получилсоь сразу.
а так со списком справочника уже задница какая-то.

(75) при щелчке по группе если групппы нет в ТЗ добовляешь туда группу и все подчиненные
Если есть удаляешь ее и снизу перебор на принадлежность к этой группе.
84 Aleksey_a_z
 
27.10.11
15:47
(82) ну потому что долго, одно дело посмотреть значение при выводе строки другое дело юзать метод "Найти" по ТЗ
85 Aleksey_a_z
 
27.10.11
15:48
(84) если будет выводится большой список то вообще не айс будет
86 DrShad
 
27.10.11
15:48
(83) зачем перебор снизу? просто в тз кроме элемента и родителя хранить, а потом НАйтиСтроки(Ключ)
87 Aleksey_a_z
 
27.10.11
15:49
(83) ну да, только так
ну всяко лучше множественного выбора с перетаскиванием
88 DrShad
 
27.10.11
15:49
(84) НайтиСтроки() юзай
89 shuhard
 
27.10.11
15:49
(85) пипец,
кто мешал сделать обработку с ТЧ и насиловать её ?
90 Axel2009
 
27.10.11
15:50
(84) ты не боись, тут на 10тыс строк за 1 секунду поиски отрабатывают. так что твои нещасные 20 вызовов никто не заметит.
91 Aleksey_a_z
 
27.10.11
15:51
(84) какая разница что юзать в обработчике "при выводе строки" один фиг это будет в разы дольше чем просто взять значение из параметра обработчика. Это же все построчно будет обрабатываться
92 Starhan
 
27.10.11
15:51
(89) думаю, ТС хотел не заморачиваться с отбором :).
93 Starhan
 
27.10.11
15:52
(86) зависит от количествао вложенностей :(
94 DrShad
 
27.10.11
15:52
(91) открой для себя ПриПолученииДанных()
95 DrShad
 
27.10.11
15:53
(93) согласен, но и это можно побороть
96 Aleksey_a_z
 
27.10.11
15:59
(92) да там жесткий отбор, там не привязать к какому то алгоритму
97 shuhard
 
27.10.11
16:00
(96) что нибудь одно
либо жесткий отбор
либо не привязать к какому то алгоритму
98 Aleksey_a_z
 
27.10.11
16:01
(97) не понятно))
99 Aleksey_a_z
 
27.10.11
16:04
(97) на каком то этапе я это все дело отбираю но дальше все равно без вмешательства менеджера не обойтись только он знает и понимает что там да как там и все это не постоянно и все это плавает от сезона все это очень жестко будет привязать к какому то одному алгоритму, поэтому на финальном этапе нужен удобный отбор для менеджера, причем менеджер очень бывает туп поэтому и хочу тупо флажки, дешево и сердито
100 DJ Anthon
 
27.10.11
16:05
сотко
101 DrShad
 
27.10.11
16:06
(99) два часа уже возишься - это дешево?
102 shuhard
 
27.10.11
16:07
(101) это сердито
103 Aleksey_a_z
 
27.10.11
16:08
(101) я хз знает как это но за этот отчет обещают хороший пряник поэтому я со всей душой подошел к процессу
104 DrShad
 
27.10.11
16:10
(103) никто не спорит, но реализация - ужасна
105 Aleksey_a_z
 
27.10.11
16:11
(104) а какая она должна быть? Предложения в студию
106 DrShad
 
27.10.11
16:24
(105) я их уже несколько выложил
107 Aleksey_a_z
 
27.10.11
16:33
(22) +(21) как в экселе выделяешь через Shift или Ctrl и юзаешь потом как выделенныеСтроки

выставил множественный отбор, дальше что делать? Ну выделил я несколько групп, потом провалился в одну из них, когда вышел все ранее выделенное исчезло
108 DrShad
 
27.10.11
16:53
(107) а множественный выбор в форме?
109 Aleksey_a_z
 
27.10.11
18:27
(108) это как? Я в свойствах таб. поля выставил множественный отбор, теперь могу выделять по Ctrl несколько элементов, но как писал они слетают
110 vmv
 
27.10.11
18:37
это назвается просто - страдать фигней.

гоните ветку до 1000 тогда
111 Aleksey_a_z
 
28.10.11
08:35
(110) дурачок.... мы решение ищем
Есть идеи? Нет, тогда тебе в соседние ветки
112 Aleksey_a_z
 
28.10.11
09:26
в топку флажки....
DrShad как перетаскивание реализовал?
113 Aleksey_a_z
 
28.10.11
09:28
(122) + ну в смысле справа окошко списка справочника, слева окно таблицы отбора куда перетаскиваешь?
Какие еще есть варианты кроме перетаскивания?
114 Reset
 
28.10.11
09:57
(111) Из вас двоих дурачок - ну точно не он.
115 Aleksey_a_z
 
28.10.11
16:02
(114) тогда ты...
116 Starhan
 
08.11.11
12:40
v8: флажок в ТП
пост №24