|
Хранение массива в ТЧ справочника/документа | ☑ | ||
---|---|---|---|---|
0
bahtik
11.08.14
✎
23:24
|
Здравствуйте!
Подскажите, пожалуйста, как правильно решить такую задачу. Есть справочник "Технологические операции", у него есть ТЧ "Персонал" с полями "Должность", "Навыки", "Количество", в которой перечисляется необходимый персонал для выполнения данной технологической операции. Поле навыки должно содержать массив значений типа "СправочникСсылка.Навыки". Как это реализовать примерно таким образом, как, например, в конфигураторе указывается составной тип значения (т.е. при начале выбора открывается список с пометками, а при сохранении отображается строка, в которой выбранные значения перечислены через запятую)? |
|||
1
MadHead
11.08.14
✎
23:31
|
Сделать такое поведение "в один клик" не получится.
Для хранения навыков нужно будет добавлять либо РС либо ТЧ. И уже при выводе заполнять чудо реквизит, для редактирования так же нужно будет подменять стандартный обработчик и открывать свою форму. |
|||
2
bahtik
11.08.14
✎
23:36
|
(1) Т.е., напрмер, делаю РС с измерениями "ТехОперация, Должность, Навык" (без ресурсов), а в ТЧ справочника строковый реквизит неограниченной длины?
|
|||
3
bahtik
11.08.14
✎
23:38
|
А реквизит типа ХранилищеЗначений не подойдет вместо РС?
|
|||
4
MadHead
11.08.14
✎
23:45
|
(3) это будет не прозрачно и не оптимально. Если задумаете построить отчет или отбор по навыкам
|
|||
5
bahtik
11.08.14
✎
23:54
|
(4) Понятно. А вариант из (2) насколько адекватный? Хранение строк неограниченной длины в ТЧ это нормально?
|
|||
6
MadHead
11.08.14
✎
23:56
|
(не надо нечего хранить строки неораниченной длинны.
В ТЧ данные вы только отображаете, а храните в РС |
|||
7
MadHead
11.08.14
✎
23:56
|
то есть в таб части не должно быть реквизита "навыки", а только поле на форме
|
|||
8
bahtik
12.08.14
✎
00:00
|
(7) Изначально я так даже и начал делать, но потом столкнулся с проблемой заполнения этого самого элемента формы.
|
|||
9
bahtik
12.08.14
✎
00:08
|
И еще один нюанс. Например, для выполнения какой-либо операции необходимо 3 специалиста одной должности (например, оператор установки), но при этом достаточно, чтобы только один из них имел определенный навык (сертификат). В этом случае получается, что мне нужно 2 строки в ТЧ, в одной из которых я указываю Должность - Оператор установки, навыки - пусто, количество - 2. А во второй строке Должность - Оператор установки, навыки - сертификат "А", количество - 1. В этом случае РС уже не получится делать такой структуры, как я описал - измерение должность не подходит, т.к. может повторяться. Номер строки - тоже пока не совсем понимаю, как потом обрабатывать изменения в ТЧ (удалили строку, заново ввели и т.п.)
|
|||
10
Torquader
12.08.14
✎
00:10
|
(8) Если сделать табличную часть с реквизитом, то заполняться она будет автоматически системой, только вот связь двух табличных частей будет не очевидна.
ТЧ1:Должность,Навыки,Количество,КлючУникальностиПеречисленияНавыков ТЧ2:КлючУникальностиПеречисленияНавыков,Навык |
|||
11
bahtik
12.08.14
✎
00:10
|
В общем, я догадываюсь, что оно должно делаться "как-то так", через РС или еще одну ТЧ... Но вот как конкретно реализовать, пока не пойму.
|
|||
12
Torquader
12.08.14
✎
00:11
|
(9) Тогда нужно две графы - количество и количество сертификатов.
|
|||
13
bahtik
12.08.14
✎
00:11
|
(10) Вот, вот! КлючУникальностиПеречисленияНавыков - это как раз то, о чем я говорю. Оно мне и надо ) Только как этот ключ формировать?
|
|||
14
MadHead
12.08.14
✎
00:13
|
(9) в таком случае строки будут уникальными.
|
|||
15
bahtik
12.08.14
✎
00:15
|
(12) Это будет крайне неудобно: в дальнейшем планируется использовать этот справочник в документе планирования проектных работ, и для каждой строки указывать конкретного работника.
|
|||
16
bahtik
12.08.14
✎
00:16
|
(10) Все таки, что должен представлять из себя реквизит "КлючУникальностиПеречисленияНавыков"?
|
|||
17
bahtik
12.08.14
✎
00:18
|
(16) Сделать в документе реквизит, в котором хранить счетчик, который будет увеличиваться каждый раз при добавлении новой строки?
|
|||
18
MadHead
12.08.14
✎
00:20
|
(16) а зачем ключ уникальности?
Должно Навык Ко-во Рубитель березы Игра на балалайке 3 Рубитель березы пусто 2 В регистре все будет ок |
|||
19
bahtik
12.08.14
✎
00:22
|
(17) ... Тогда можно будет сделать РС (или ТЧ2) с измерениями "ТехОперация", "Ключ" (этот самый счетчик), "Навык".
|
|||
20
Torquader
12.08.14
✎
00:22
|
(18) Если Рубитель берёзы,Игра на балалайке+Игра на фортепиано, 2 шт.
То есть, если требуется одновременно несколько навыков. Хотя, очень непонятно, от одного рабочего навыки или от двух ? |
|||
21
bahtik
12.08.14
✎
00:23
|
(18) Не совсем понятно. Задача - три рубителя березы, и чтобы один из них обязательно играл на балалайке. В приведенном примере все получается аж 5 рабочих, вместо 3...
|
|||
22
MadHead
12.08.14
✎
00:24
|
(20)
Должно Навык Ко-во Рубитель березы Игра на балалайке 3 Рубитель березы пусто 2 Рубитель березы Игра фортепиано 2 |
|||
23
MadHead
12.08.14
✎
00:25
|
(20)хотя признаю, не прав
|
|||
24
bahtik
12.08.14
✎
00:25
|
(22) А это уже целых 7 человек! ))
|
|||
25
bahtik
12.08.14
✎
00:25
|
Откуда я столько людей возьму? ))
|
|||
26
bahtik
12.08.14
✎
00:25
|
Мне надо три.
|
|||
27
MadHead
12.08.14
✎
00:26
|
Тогда да в сроку ТЧ и измерение нужно засунуть guid
|
|||
28
Torquader
12.08.14
✎
00:27
|
Мне кажется:
таблица 1: 1) Должность (Рубитель берёзы) 2) Ключ уникальности (1) 3) Количество (3) Таблица 2: 1) Ключ уникальности (1) 2) Навык (игра на балалайке) 3) Количество (1) 1) Ключ уникальности (1) 2) Навык (игра на фортепиано) 3) Количество (1) |
|||
29
bahtik
12.08.14
✎
00:27
|
Нужно, чтобы потом при планировании было две строчки: в первой - рубители березы без навыков и в ней нужно будет указать подходящих двух сотрудников. И вторая - рубитель березы с навыком игры на балалайке, и в нем указать одного подходящего сотрудника (не совпадающего с предыдущими двумя, т.к. всего должно быть трое).
|
|||
30
Torquader
12.08.14
✎
00:28
|
(27) Не обязательно GUID - можно число, только в новую строку писать число, больше максимального или ноль.
Можно глянуть как в УТ или рознице серийные номера вводятся - там как раз "ключ уникальности" есть. |
|||
31
Torquader
12.08.14
✎
00:29
|
(29) Мне кажется, что в документе должна быть - одна строка - один сотрудник.
|
|||
32
bahtik
12.08.14
✎
00:30
|
(30) Ну я ж говорю в (17), можно сделать счетчик.
|
|||
33
bahtik
12.08.14
✎
00:30
|
(31) почему так?
|
|||
34
Torquader
12.08.14
✎
00:31
|
(32) Вполне можно.
Сейчас остался вопрос - как описать навыки и их количество. |
|||
35
Torquader
12.08.14
✎
00:31
|
(33) Если сотрудник выбирается, то выбирать его в табличной части проще всего.
|
|||
36
bahtik
12.08.14
✎
00:34
|
(34) А, ну, в принципе, да, это да. В документе планирования так и надо будет сделать, согласен. Только вот меня смущает структура хранения в справочнике (28)
|
|||
37
bahtik
12.08.14
✎
00:36
|
Она, как раз не очень прозрачная. Если например, мне надо одного с навыками "А" и "Б", а второго с навыками "Г" и "Д". То в такой структуре уже непонятно, у кого чего должно быть...
|
|||
38
Torquader
12.08.14
✎
00:36
|
(36) Просто она позволит не уточнять, если нужны два навыка на трёх рабочих - должно быть два рабочих каждый со своим навыком или один из трёх - с двумя.
Если такой ситуации нет, то можно во второй табличной части количество убрать и пользовать дублирование строк. |
|||
39
Torquader
12.08.14
✎
00:38
|
(37) см (38) Если навыки нужны "обобщённо", то будет (28).
Если навыки указываются точно: три рабочих - один играет на балалайке и на фортепиано, а два - так пришли, то количество навыков всегда будет 1 и его можно не писать. |
|||
40
Torquader
12.08.14
✎
00:38
|
Однако, я бы его оставил, чтобы можно было указать общий случай.
|
|||
41
bahtik
12.08.14
✎
00:40
|
(40) Да, идея заманчивая, но усложнит и восприятие (читабельность) для юзера, и дальнейшую обработку... Лучше все же без количества сделаю, наверное. С дублированием строк.
|
|||
42
bahtik
12.08.14
✎
00:40
|
В общем, вроде все прояснил, всем спасибо! ))
|
|||
43
Torquader
12.08.14
✎
00:43
|
(42) В справочнике можно "сляпать" ТЗ и кинут её на форму - стока для выбора навыков - неограниченной длины, где навыки перечисляют через запятую (и ещё одну колонку, где будет жить список, чтобы хранить ссылки на навыки).
В общем, если постараться можно сделать так, что пользователи и не заметят, что табличных части две. |
|||
44
bahtik
12.08.14
✎
00:48
|
(43) Строкой через запятую не подойдет: навыки - это элементы справочника "Навыки". И еще есть регистр сведений "Навыки сотрудников" с двумя измерениями "Сотрудник", "Навык" (без ресурсов). Потом в документе планирования нужно будет проверять соответствие выбранного работника на соответствие всем требованиям.
|
|||
45
bahtik
12.08.14
✎
00:58
|
Так что итоговый вариант я пока вижу такой:
В изначальную ТЧ (назовем ее ТЧ1) добавляем реквизит "КлючДанныхСтроки", в шапку справочника добавляем реквизит "СчетчикКлючей". При добавлении новой строки в ТЧ1 будем увеличивать "СчетчикКлючей" на 1, и присваивать полученное значение реквизиту ТЧ1 "СчетчикКлючейДанных". Ну и при выборе поля ТЧ1 "Навыки" открывать отдельную форму - список элементов справочника "Навыки" с пометками, и реализовать запись помеченных элементов в ТЧ2, имеющую структуру "КлючДанныхСтроки, Навык". Вроде и вся идея, основанная на полученных советах. Теперь осталась рутина все это сделать удобно и красиво. |
|||
46
bahtik
12.08.14
✎
01:01
|
Хотя еще остался вопрос с отображением этих навыков в ТЧ1 справочника (да и потом в ТЧ документа планирования). Ведь ТЧ2 - чисто служебная и не должна быть видна.
|
|||
47
bahtik
12.08.14
✎
01:10
|
А, ну, вроде понял: надо добавить реквизит формы типа "Табличная часть" с колонками "КлючДанных, НавыкиСтрокой", где "НавыкиСтрокой" - строка неограниченной длины. Заполнять ее при открытии формы ну и обрабатывать при изменении ТЧ1...
|
|||
48
bahtik
12.08.14
✎
01:13
|
(47) Не, не получается. Путь к данным у ТЧ объекта нельзя указывать к другому реквизиту формы... ((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |