|
Каскадная связь таблиц. Аналог в 1С. | ☑ | ||
---|---|---|---|---|
0
Kongo2019
06.02.25
✎
12:44
|
Каскадная связь таблиц. Аналог в 1С.
Есть обычная БД. В ней три таблицы. Таблица 1. Список изделий ИД И куча прочих полей Таблица 2. Список операций ИД ИД для связи с таблицей 1 И куча прочих полей Таблица 3. Кто выполняет операцию. ИД ИД для связи с таблицей 2 И куча прочих полей Для примера такая организация. Изделие 1 -- Операция 1 ---- Работник 1 ---- Работник 2 -- Операция 2 ---- Работник 3 ---- Работник 5 -- Операция 3 ---- Работник 2 ---- Работник 4 На справочниках-то понятно три справочника, Основной. Подчинённый первому. Подчинённый второму. А как это сделать для дока? В доке хранить не вариант, потому потом начинается движении по этапам, и док держать не хорошо каждый раз чтобы обновить на каком этапе сейчас это все идёт. Регистры не ссылочный тип. Как вариант тоже напихать ИД. Но как это все обработать и красиво показать в документе? |
|||
1
RVN
06.02.25
✎
12:41
|
не очень понятно что нужно.
Если для ввода то, например: Документ. в нем 3 таб. части "Список изделий", "Список операций", "Кто выполняет операцию". В каждой таблице обязательное поле ИД строки, в подчиненных еще поле ИД владельца. А отображать можно деревом. Примерно как сделан стандартный документ Прайс-лист в ЕРП и обрезках. |
|||
2
Garykom
гуру
06.02.25
✎
12:59
|
(0) Банальный РС Связи
С тремя измерениями (Изделие, Операция, Работник) Ресурсы не нужны но можно туда даты и прочее, если периодический не делать РС |
|||
3
Kongo2019
06.02.25
✎
13:06
|
(1) Да вот такое и нужно.
Блин без ИД никак получается, то бишь переложить на 1С контроль ссылочной целости не удастся. (2) Как бы вариант, но не нравится он мне. Усложнение схемы получается. В общем опять все лапками. На 1С это переложить не получится походу. |
|||
4
Garykom
гуру
06.02.25
✎
13:14
|
(3) Это не усложнение а упрощение себе жизни
Чтобы изменить не надо доки перезаписывать и перепроводить |
|||
5
Garykom
гуру
06.02.25
✎
13:20
|
(4)+ В целом есть простое правило:
Ссылка/id на Родителя/Владельца сохраняется в Подчиненном объекте (один ко многим) Или во внешнем объекте/таблице связей обе ссылки/id (многие ко многим) |
|||
6
arsik
гуру
06.02.25
✎
13:18
|
А можно в одной таблице все хранить с 3мя колонками :)
|
|||
7
Волшебник
06.02.25
✎
13:20
|
(6) Нужно больше треша! Можно всё хранить в одном реквизите типа "ХранилищеЗначений". Загнать туда дерево значений.
|
|||
8
Kongo2019
06.02.25
✎
13:23
|
(4) Сам то он не заполниться. Надо будет в него писать. Обработчики надо рисовать.
Да и получится я все солью в один регистр где будет много дублирующей информации. Изделие 1- Операция 1- Работник 1 Изделие 1- Операция 1- Работник 2 Изделие 1- Операция 2- Работник 3 Изделие 1- Операция 2- Работник 5 Изделие 1- Операция 3- Работник 2 Изделие 1- Операция 3- Работник 4 Мне места на диске не жалко конечно. Но как-то оно не то. |
|||
9
Kongo2019
06.02.25
✎
13:24
|
(5) Но это работает 1С только в справочниках.
Регистры не ссылочный тип. |
|||
10
Garykom
гуру
06.02.25
✎
13:25
|
(9) не тупи
реквизит Основание у документов и в РС пишутся ссылки на твои ссылочные тыпы (справочники или документы Изделие, Операция, Работник) |
|||
11
Kongo2019
06.02.25
✎
13:25
|
(6) А если у метя каскад из пяти, десяти таблиц?
Хотя в типовых походу так и колбасят |
|||
12
Garykom
гуру
06.02.25
✎
13:26
|
(8) ты думаешь запись в РС занимает больше места чем еще реквизиты в объектах метаданных?
|
|||
13
Kongo2019
06.02.25
✎
13:27
|
(10) туплю, не понимаю я твоего предложения, сорри.
Можно как-то на пальцах, или пример какой? |
|||
14
Garykom
гуру
06.02.25
✎
13:30
|
Для примера такая организация.
Изделие 1 -- Операция 1 ---- Работник 1 ---- Работник 2 -- Операция 2 ---- Работник 3 ---- Работник 5 -- Операция 3 ---- Работник 2 ---- Работник 4 Справочник "Изделия" Справочник "Работники" Справочник "Операции" или Документ "Операция" РС "Связи", измерения: 1. "Изделие" тип СправочникСсылка.Изделия 2 ."Операция" тип СправочникСсылка.Операции или ДокументСсылка.Операция 3. "Работник" тип СправочникСсылка.Работники |
|||
15
Kongo2019
06.02.25
✎
13:30
|
(12) Нет, но так сильна раздувается таблица.
В (0), в примере, у меня одна в первой таблице, три записи во второй и шесть в третей. Ты мне предлагаешь свали все в одну. А как же ароматность записей? Первая нормальная форма и все такое? |
|||
16
Kongo2019
06.02.25
✎
13:31
|
(14) И куча прочих полей из (0) я куда дену? Выкинуть?
|
|||
17
dmt
06.02.25
✎
13:31
|
(15) чето непонятно какую проблему решаешь, и пятница только завтра
|
|||
18
Garykom
гуру
06.02.25
✎
13:32
|
(15) Еще раз
Ссылка/id что в отдельной новой таблице Что в существующей таблице еще новые реквизиты Одинаково места! |
|||
19
Garykom
гуру
06.02.25
✎
13:32
|
(16) Это уже платная услуга
Раскидать по справочникам или в ресурсы РС |
|||
20
Kongo2019
06.02.25
✎
13:36
|
(19) Ну и будет РС с кучей ресурсов которые тупо дублируют друг друга.
Или моя твоя не понимает? |
|||
21
Kongo2019
06.02.25
✎
13:43
|
(17) Ща картинку нарисую. Ну попробую по крайней мере.
|
|||
22
Garykom
гуру
06.02.25
✎
13:43
|
(20) ты реляционные базы данных (модели сущность-связь) и всякие нормальные формы с нормализацией изучал?
|
|||
23
Kongo2019
06.02.25
✎
13:46
|
(22) Вот я тебе про эту нормализацию и пытаюсь рассказать. Походу фигово.
|
|||
24
Voronve
06.02.25
✎
13:46
|
(0) 4й справочник. кода нет, наименования нет, одно поле составного типа; в типе три твоих справочника, рулить типом на уровне элемента, вложенность групп 3, подчинение элементам
|
|||
25
arsik
гуру
06.02.25
✎
13:48
|
(24) Так у него еще ресурсы есть
|
|||
26
PLUT
06.02.25
✎
13:52
|
гляньте, как справочник ключи аналитики чего-то там в типовых устроены
в справочник пихаете свои реквизиты. а в регистры - одну сцылку на этот самый элемент справочника - ключ аналитики ?? всё не читал |
|||
27
Voronve
06.02.25
✎
13:53
|
(25) Первые три справочника живут своей жизнью; тащат там в себе что надо. этот 4й только для связи
|
|||
28
arsik
гуру
06.02.25
✎
13:55
|
Ну так в документе как указать ресурсы на каждый уровень имея только 4ю аналитику?
|
|||
29
Garykom
гуру
06.02.25
✎
13:56
|
(23) а на практике излишняя нормализация нафик не нужна
да она экономит место но замедляет скорость |
|||
30
Voronve
06.02.25
✎
14:03
|
(28) Это уж как реализуешь работу с этим справочником в документе
|
|||
31
dmt
06.02.25
✎
14:04
|
(21) А проблема-то в чем? Заводи справочники, документы, да что угодно - заводи реквизиты для связи.
Если ты на одном экране всю информацию по изделию хочешь видеть, конечно придется самому рисовать интерфейс. Какие у тебя требования к решению, что хочешь получить? Не в структуре данных, а конечный результат какой? |
|||
32
Kongo2019
06.02.25
✎
14:26
|
(31) Да пытаюсь изобразить рабочее место оператора для цеха. Чтобы максимально простое и информативное было.
То что мне интерфейс придется лапками рисовать, я уже смирился. Раньше он был на Дельфи писан. Но вот решили заканчивать с лоскутной автоматизацией, собираем все единую кучу. Ладно, в общем надо пробовать и так и этак. Идей тут накидали чуток. |
|||
33
Bigbro
07.02.25
✎
13:28
|
я до самого конца так и не понял в чем проблема...
ну есть 3 уровня подчиненности сущностей и что? бывает и 4 и хоть 10. если оно заранее известно - так вообще никаких проблем. а если может быть разным - то лучше сделать как уже выше писали. единый справочник с подчинением элементам и в нем одно из полей тип - который будет определять глубину вложенности. и все, набивай туда что хочешь, хоть 20 подчиненностей хоть 50. |
|||
34
sikuda
07.02.25
✎
14:20
|
(21) Так весь один 1С такой - на ссылочности
ERP - производство 1. Номенклатура 2. Ресурсная спецификация - Осн. изделие - номенклатура 3. Выпуск продукции - Спецификация - ресурсная спецификация... |
|||
35
Kongo2019
07.02.25
✎
14:34
|
(33)Зачем мне справочники? Это не справочная информация же по идее.
(34)С регистром такая фишка не прокатит. Он не ссылочный тип. |
|||
36
sikuda
07.02.25
✎
14:37
|
(35) У тебя же ссылочная информация можно на документах или справочниках (Выпуск продукции-документ)
И вoобще нарисуй это в SQL с первичными ключами и реализуй где хочешь. |
|||
37
Волшебник
07.02.25
✎
14:39
|
(0) Можно такую структуру:
Справочник Номенклатура Бизнес-процесс Операция1...3 (можно завести ТЧ Продукция) Задача.Исполнитель (в шапке ссылка на БП-операцию) |
|||
38
Bigbro
07.02.25
✎
14:43
|
Я думал, что справочная по описанию. Выглядит как технологическая карта. Вполне себе справочная информация.
Если нужен документ, то документ фиксирует какую-то хозяйственную операцию. Нужно определиться, что за операцию фиксирует документ, и исходя из этого уже его проектировать. |
|||
39
PLUT
07.02.25
✎
14:43
|
||||
40
lEvGl
гуру
07.02.25
✎
14:44
|
надо озвучить задачу в прикладном варианте, в чем смысловая нагрузка
|
|||
41
Asmody
07.02.25
✎
14:53
|
А давайте дружно попросим 1Ску сделать таб.части в таб.части, и будет всем щасте!
|
|||
42
Asmody
07.02.25
✎
14:58
|
(38) жизнь такова, что чаще всего необходимо все существенные данные переносить из справочника в документ, либо хранить их (данные) в периодических РС. Ибо жизнь изменчива, а документ одномоментен.
|
|||
43
Kongo2019
07.02.25
✎
15:05
|
(40) Да простая там смысловая нагрузка.
Оператор сделал док. Рисует некий маршрут как некая фигонина будет двигаться по операциям и кто эти операции будет выполнять. Так как док содержит кучу инфы, и их несколько вариантов(не дублировать же это все в каждом виде дока), он зарывается. Поэтому маршруты мне надо вынести в отдельные регистры. А там уже пик сканер ответственный что пришло на текущую операцию, то бишь записали в регистр дату и время прихода на операцию, если пикнули - а он предыдущую операцию не прошел, то злобный бип(я там сирены прикрутил, вместо спикера уже) и большая красная надпись верни назад и диспетчеру соответственно сообщение придет там чебурашки косячить пытаются. На операции чебурашки чего там ваяют, отваяли приложили карточку к считывателю, опять записали что такая чебурашка в дату, время и параметры его ваяния. Ответственный за операцию пикнул сканером и передал на следующую операцию, опять пишем дату, время и параметры оперции. |
|||
44
Kongo2019
07.02.25
✎
15:07
|
(41) Дык дерево же есть. Геморройно конечно события обрабатывать, но рисует красиво.
|
|||
45
Kongo2019
07.02.25
✎
15:09
|
(38) Справочники тоже есть. Но там просто справочник операций с табличной частью рабочий. Не набивать же оператору каждый раз.
Это типа заготовки, шаблон маршрута. |
|||
46
Kongo2019
07.02.25
✎
15:12
|
(36)Это в SQL у меня уже есть. См(21). Но блин все это писалось разными людьми в разное время. Еще и на разных языках.
Решили вот в общую базу завести. |
|||
47
DiMel_77
07.02.25
✎
16:47
|
(45) Так если вам нужен документ - делайте в нем, в чем проблема? В ЗУП так связаны табличные части Начислений и показателей по идентификатору. Я думаю ещё в куче конфигураций. Вы сами определитесь что вам нужно...
|
|||
48
Адинэснег
07.02.25
✎
15:20
|
(0) 1C тоже хранится в обычных таблицах
вопрос, в том, насколько хочешь ты упражняться в логике управления этими связями |
|||
49
Kongo2019
07.02.25
✎
15:24
|
(47) Да я уже сваял два регистра.
В одном операции, в другом рабочие. Теперь вот выбираю что использовать в качестве идентификатора для связи. Если в SQL это можно на движок базы положить всякие составные ключи, триггеры там. То тут мне надо самому следить. Кстати, а как захныкать регистр чтобы пользователь его не нашел? |
|||
50
Kongo2019
07.02.25
✎
15:25
|
(48) Да вот хотел 1С заставить следить, не удалось.
|
|||
51
Волшебник
07.02.25
✎
15:25
|
(49) гляньте (37), там будет ссылочная целостность
|
|||
52
Bigbro
07.02.25
✎
15:27
|
(43) по такому описанию пожалуй я бы выбрал (37)
не только выполнение задач в рамках бизнес процесса, но и доп логику туда же можно в БП зашить чтобы разруливать разные условия. шаблоны БП набил с основными вариантами и запускай по ним, пусть как по конвейеру едут. |
|||
53
Kongo2019
07.02.25
✎
15:32
|
(51) Так мне на каждом этапе еще кучку параметров записать, в регистрах это идеально, там ресурсы есть.
Но попробую. вдруг чего и там интересного нарою. |
|||
54
Волшебник
07.02.25
✎
15:32
|
(53) в БП и Задачах есть реквизиты и таб.части, они круче
|
|||
55
Kongo2019
07.02.25
✎
15:34
|
(52) Я же не смогу бизнес-процесс на уровне пользователя править.
Или можно? Как-то я в них не силен. Щас почитаем. |
|||
56
Волшебник
07.02.25
✎
15:36
|
Можно завести спр. Задачи, подчиненный сам себе (иерархия элементов).
Задача верхнего уровня - это изделие. Задачи среднего уровня - этапы изготовления изделия Задачи нижнего уровня - технологические операции, самые детализированные |
|||
57
Волшебник
07.02.25
✎
15:35
|
(55) БП по сути документ, его можно исправлять и записывать.
|
|||
58
Bigbro
07.02.25
✎
15:39
|
(55) пользователь не должен их править. он должен исполнять свои задачи в рамках БП.
а вот аналитик должен нарисовать шаблоны БП для запуска процессов с учетом всех нюансов которые вам хочется править - вместо правок - зашивайте условия и пусть в рамках шаблона эти условия проверяются и улетают на той или иной ветке. ну и если уже очень хочется - то всегда можно разрешить изменения документа по которому запущен БП. более того можно настроить доступность редактирования документа на каждом из этапов для разных пользователей по определенным условиям или значениям реквизитов |
|||
59
Kongo2019
07.02.25
✎
15:46
|
(58) У нас гибкие цепочки. Не прокатит.
Изучим, на улице все равно делать нечего, штормит, пороюсь пока по бизнес-процесам. |
|||
60
Bigbro
07.02.25
✎
15:47
|
(59) у нас тоже гибкие цепочки. и БП позволяют эту гибкость программировать, закладывать допустимые варианты развития событий. и при этом исключать произвольные ошибочные и бредовые.
|
|||
61
Волшебник
07.02.25
✎
15:49
|
Карта маршрута БП может быть тривиальной: старт - точка операции - проверка на конец - финиш.
![]() Весь маршрут можно задавать в таб.части БП |
|||
62
Мультук
гуру
07.02.25
✎
15:53
|
(49)
>> Кстати, а как захныкать регистр чтобы пользователь его не нашел? А как же ОН его найдёт ? Доступа к "Все операции" у пользователя нет. Или есть ? |
|||
63
Мультук
гуру
07.02.25
✎
15:56
|
И даже если найдёт (перейти по ссылке).
У пользователя права только на чтение и Просмотр. Пусть смотрит, хоть засмотрится. |
|||
64
Ногаминебить
07.02.25
✎
15:58
|
Справочник Изделий,справочник Операций, документ с реквизитом Изделие и ТЧ с колонками Операция, Исполнитель и может еще чота что захочется.
|
|||
65
Волшебник
07.02.25
✎
16:01
|
(64) БП с задачами лучше. Задача может отражаться у пользователя в списке "Мои задачи". Её выполнение можно фиксировать в реквизитах задачи, независимо от других задач. Можно параллелить процесс по разным исполнителям, можно настроить адресацию по роли. Короче, БП круче
|
|||
66
Kongo2019
07.02.25
✎
16:04
|
(62) Не будет. Но можно по ссылке же.
(63) На запись же тоже будет. Или запись вынести в общий модуль на сервере с привилегированным режимом. |
|||
67
Asmody
07.02.25
✎
16:29
|
(44) ты не путай структуру хранения данных и их визуальное представление
|
|||
68
lEvGl
гуру
07.02.25
✎
17:39
|
(43) ок, а рабочих может больше двух? обычно начал/закончил достаточно, правда зависит от требований по детализации, у рабочего может быть помощник, например
|
|||
69
lEvGl
гуру
07.02.25
✎
18:11
|
+ (68) на одной операции, конечно
|
|||
70
Конструктор1С
07.02.25
✎
20:50
|
NoSQL отлично подходит для решения подобных задач. Можно тупо хранить данные в иерархическом виде а ля json
|
|||
71
lEvGl
гуру
07.02.25
✎
23:16
|
(70) У него обычные творческие муки в архитектуре обычной реляционной базы. Просто они лишние. Документ с двумя связанными между собой ТЧ (1) в скл варианте и будет, то что он хочет - по ключам и лапки не нужны. Только данные будут в документах, а не регистрах. Можно самому по нескольким регистрам разложить, либо в один, но будет дублирование данных (2). Просто не совсем понятно, что именно не устраивает - от этого никуда не деться. Множиться будут либо строки либо колонки. Конечно, в идеале бы так чтобы таблиц вобще не было, просто - раз и данные на форме появились
(0) нужно искать не в технической части, а в логике процесса. Если, например, сотрудников фиксированное количество, то они могут быть реквизитами одного РС. Будет одна таблица и в ней в каждой строке будет дублироваться только изделие, тк выносить изделие в отдельную таблицу с одной колонкой смысла нет. Нууу это нормально "Прочие данные" вынести в доп свойства или еще какие то таблицы |
|||
72
lEvGl
гуру
07.02.25
✎
23:18
|
Но в целом желание сделать с максимальным отсутствием избыточности понятно
|
|||
73
lEvGl
гуру
07.02.25
✎
23:24
|
гм (2) не совсем правильно понял, это о другом. Связи тут кажутся лишними, хотя от задачи зависит, в частности от "Прочие данные" изделия, например. Если они статические, то не надо, если динамические то надо
|
|||
74
Kongo2019
08.02.25
✎
12:04
|
(67) Хорошо оформить на экране тоже важно. Операторы будут меньше тупить и ошибок делать.
(68) До десятка. Плюс надо записать на них время и материалы. чтобы потом концы найти когда брак разгребать будут. (70) Но хотелось бы в 1С реализовать. (71) Ну во первых док не прокатывает, потому что после запуска он переводится в режим только чтение. Во-вторых менять док не в концепции 1С. В-третьих доки разного типа будут и бегать по их табличным частям потом не айс. Добавится доки и опять все переписывай? Да и в каскаде может быть до 5-6 таблиц. Это я простой вариант привел, для примера. (73)В том и прикол что они динамические, иначе бы я их тупо их в справочник загнал. |
|||
75
lEvGl
гуру
08.02.25
✎
13:50
|
(74) попробуйте подойти с методической стороны. Десяток исполнителей на одной операции общего маршрута это что за операция такая, постройка атомного реактора что ли, а общий маршрут - его запуск и добавление в каскад других реакторов? Поэтому можно разбить маршрут детальнее, тогда исполнителей, и остального, станет меньше, этим можно варьировать. Для исполнения лучше отдать это на откуп кому то, обычно это планово диспетчерский отдел + нормативщики, а не рабочий на месте. Цех должен иметь возможность вносить корректировки для конкретной работы, но остов лучше создавать грамотному в логистике работ специалисту.
Это конечно не решает проблемы универсальности хранения данных: материалы, оборудование, технологическая информация и так далее - все это раскладывается по разным таблицам, вопрос масштабнее, чем казался в (0) :), поэтому для него и ресурсы нужны, "по-легкому" не получится |
|||
76
Bigbro
08.02.25
✎
14:02
|
(74) мой опыт показывает что чаще всего разговоры о супер гибкости, которую невозможно формализовать - синоним бардака.
в реальной жизни все равно любой специалист будь он хоть супер уникальным принимает решения на основе некоторых факторов. и их хорошо бы выделить и фиксировать. а тогда у нас рождается алгоритм. который можно и нужно зашить в бизнес процесс. со всеми ветвлениями возвратами при условиях нарушения тех карты с хранением доп реквизитов как результатов исполнения в каждой задаче каждого исполнителя на каждом этапе. и финальным сбором отчета по прохождению изделия, которое собирает все эти данные в одну кучу. |
|||
77
lEvGl
гуру
08.02.25
✎
14:10
|
>>которую невозможно формализовать - синоним бардака
формализовывать должен компетентный специалист, но с возможностью корректировок со стороны цеха динамика - затратно для прога и хорошо всем, ведь и к программе вопросов нет ) |
|||
78
lEvGl
гуру
08.02.25
✎
14:13
|
формализовывать сам процесс конечно, для этого им нужен инструмент
|
|||
79
Kongo2019
08.02.25
✎
14:48
|
(75) Для этого у меня технологи есть.
И так у же раздробили как смогли. Народа много потому что у каждого свои допуски. Нельзя сделать универсального бойца, электрик-механик-сварщик например. Хотя на операции они могут быть задействованы всего на пару минут. Так технологи с логистами и формируют эти маршруты, и следят за ними. У меня они операторы. В цеху тока пикать сканером могут. (76)Элемент бардака конечно присутствует, так как это заказное производства, нет четкого понимания что делаем сегодня, чего завтра. Но посты обработки уже сформированы, и поэтому надо подстроится под них. Да там зачастую оптимально, но переоборудование дело дорогое и не быстрое. Ветвлений нет. Движение только вперед. Линейное. (78)Вот что-то пытаемся нарисовать. Потому сейчас все посты изолированы и максимум, что на сейчас сделали это льем в одну базу периодически. Хоть аналитику собрать можем. |
|||
80
Kongo2019
08.02.25
✎
14:52
|
В общем пока идея реализована такая.
В регистры пишется гуид. Контроль целостности прописан в самом модуле регистра. То бишь повторил реляционную модель MS SQL. Не нравится мне это, но работает и довольно просто получилось с реализацией. Но явно где-то есть грабли, пока не наступал. |
|||
81
Волшебник
08.02.25
✎
14:58
|
(80) Не нравится мне это...
|
|||
82
Kongo2019
10.02.25
✎
09:37
|
(81) Согласен. Не по 1С-ки получается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |