CS CRM: Проектирование кабельного журнала для СКС

Проекту исполнилось 15 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".

Число просмотров: 20 261 

ВНИМАНИЕ! Мне не хотелось бы, чтобы этот пост был опубликован на других ресурсах (репост). Я хочу сохранить за собой право на его уникальность.

Меню проектирования кабельных журналов для СКС

Меню проектирования кабельных журналов для СКС

Ну… тут у меня уже даже в комментах народ порывается создавать мега-крутые программы для проектирования щитков, а сам материал «Проектирование начинки электрического щитка (примочка к 1С)» вызвал некоторое количество споров. Хы, прикольно. В таком случае продолжаю тему рассказов «за вечерним чаем» о своей домашней электрошаманской CRM.

Сегодня я покажу вам ещё одну интересную штуку, которую написал, честно сказать, из банального интереса и, самое главное, лени! Она имеет несколько сырой вид, много чего приходится редактировать руками вместо красивых окошек, и некоторые отчёты считают немного неправильно (потому что написанному коду уже полгода, а прямо сегодня дописал ещё одну функцию и, не отладив, наделал скриншотов). Просьба к читающим — если трёхбуквенное название конторы на скриншотах я пропустил и не замазал — сообщить в комментах, так как я обещал контору не палить.

Предысторией создания этой части моей CRM-системы было чтение ГОСТа о проектитровании СКС (ГОСТ Р 53246-2008: Системы кабельные структурированные. Проектирование основных узлов системы), в котором в главе 9 кратенько говорится о том, что к СКСине должна прилагаться огромная куча всяких кабельных журналов с описанием трасс, где проходят кабели, самих кабелей и точек к которым они подключены. Вот у меня как-то волосы дыбом встали и я немного запарился на эту тему: «Опаньки! Витую пару-то я тянуть умею! А если кому-то понадобится такая докума? Это ж охренеть таблицы в экселе составлять! А если работа уже сдана — так это будет ЛЕНЬ!»… А если программисту, пусть и бывшему (с полевой работы я ушёл, так плотно за неё и не засев) лень, то что он делает? Правильно! Пишет программу, которая всё делает за него! Ну вот и поехали вкуривать, что из этого получилось.

Сразу говорю — настоящих кабельных журналов я в глаза не видел и руководствовался описанием из ГОСТа типа «В записи каждого кабеля должны быть зарегистрированы: идентификатор кабеля, тип кабеля, ссылки на записи муфт, ссылки на записи позиций коммутационного обрудования […]. Рекомендуется регистрировать следующую дополнительную информацию: ссылки на трассы, в которых проходит кабель, имя производителя и его реквизиты […].». Сам концепт отлично выражен на картинке ниже.

Встроенная справка по проектированию СКС

Встроенная справка по проектированию СКС

Это встроенная в систему справка, которую я не поленился написать для себя же, чтобы потом не забыть структуру мега-вложенностей обектов друг в друга. В самой голове моё виденье СКС получилось таким. У нас есть ТРАССА, которая проходит в каких-то МЕСТАХ. У каждого объекта есть свой ID, чтобы по нему печатать маркировки. То-есть, у нас может быть трасса «Магистраль 1 этажа», которая имеет ID MG1, проходит в виде лотка в месте «Коридор 1 этажа», «Холл 1 этажа». Мест к одной трассе можно цеплять несколько, потому что физически она может идти в нескольких местах.

Далее у нас есть ТОЧКА сети, от которой начинается и которой заканчивается КАБЕЛЬ. В принципе точек у каждого кабеля может быть только две — начало и конец, но у меня это количество сделано неограниченным, чтобы можно было сделать точку «Муфта хх» или «Распайка 01-11» и кабель проходил бы через них. У каждой точки есть несколько (или один) ПОРТОВ. Порт — это что угодно типа розетки, клеммника, обжатого разъёма и т.д. Скажем, у нас может быть точка «Патч-панель 48 портов», и у неё 48 портов. Тогда логика будет выглядеть так: «Кабель ID хх идёт от Точки ааа, порт 111 до точки ббб, порт 222». Это вполне похоже на обычную сетку, не так ли? Ну и до самой кучи — кабель проходит (принадлежит) нескольким трассам.

До самой кучи есть простенькая табличка, в которую можно вписать расключение каких-нибудь муфт, клеммников или плинтов, чем я тоже пользуюсь. Она совершенно отдельная и никуда не привязанная. Предполагается, что в самом кабеле указывается его прохождение через точку ID xxx, а потом уже в табличке коммутаций создаётся строчка «ID xxx», где и пишется что куда.

Рассматриваем всю эту штуку в деталях. Всё построено на банальных 1Совских справочниках, совершенно примитивно и тупо. Список сетей вообще содержится в основном справочнике «Список сетей» (кто бы мог подумать!). Конкретно у меня в базе сделано так, что один Договор (заказ) с клиентом = 1 сеть. Она привязывается к заказу и дальше путешествует вместе с ним.

Итак, выбираем сеть и смотрим места, которые в ней прописаны:

Список сетей и мест сетей для СКС

Список сетей и мест сетей для СКС

Здесь и далее позиция «Вес» определяет сортировку списка объектов. Ну типа приоритета вывода, чтобы все отчётики были красивые: сначала серверная, потом магистральные трассы, а потом — локальные. Ну типа «Серверная, коридор 1 этажа, кабинет 20».

Дальше документируем все трассы, которые могут быть. Конкретно в этой сети я извратился и все куски короба на плане пронумеровал и запихал в трассы с указанием метража. У каждой трассы можно ещё задать её сечение (скажем, короб 80х35), и потом оно будет использоваться для вычисления коэффициента заполнения этой трассы кабелями. Если коэффициент заполнения будет больше заданного в описании сети (К1% и К2% на скриншоте выше), то в отчёте о трассах эти строки будут помечены ахтунгом. Ну и для каждой трассы пометим то, где она реально проходит. Вот тут у меня на скриншоте магистральная трасса между домами, побитая на куски, потому что она идёт с 1 здания через вспомогательное на 2-е и ещё в промежутках — по воздуху.

Список трасс сети и ссылок на места, где они проходят

Список трасс сети и ссылок на места, где они проходят

Далее можно заняться точками сетей. Список выглядит не так красиво, потому что на объекте сегодня была драка с бухгалтерами за рабочие места: им видите ли короб надо криво класть, потому что он цветам сцуко будет мешать красиво на стене висеть. В помещении 6 на 4 метра, блин. Вот потому план розеток будет завтра, а скриншоты — сегодня. Для понимания принципа более чем хватит.

Итак, опишем одну сдвоенную RJ-45 розетку. Она находится у нас в комнате 10а и имеет два порта. Я их обозначаю универсально: 1 (Левый), 2 (Правый). Это чтобы и мнемонически запомнить и нумерация была. А потом берётся 48-портовая патч-панель и эти порты туда разводятся столбиком. То-есть одна сдвоенная розетка занимает две дырки патч-панели друг под другом. Интуитивно и удобно!

Список точек сети (мест подключений) и ссылок на их порты и места

Список точек сети (мест подключений) и ссылок на их порты и места

Ну и теперь самое геморройное — описать конкретный кабель. Указываем его точки и их порты (порты выбираются каждый для своей точки) и ссылки всех трасс, где этот несчастный кабель находится. У меня получилось много коробов. А дальше кабель уходит в комнату 12 и теряется :) потому что я забыл дописать ещё пару коробов в той комнате.

Список кабелей сети со ссылками на их трассы и точки подключения

Список кабелей сети со ссылками на их трассы и точки подключения

Если надо оформить какую-нибудь коммутацию, то открываем соответствующий справочник и заполняем табличку. В табличке выбираются существующие (а не абстрактные) кабели сети и их же порты. Показываю на примере моего несчастного плинта у меня дома в щитке (Беглое переокучивание слаботочного этажного щитка).

Список кроссировки (коммутации) объектов сети

Список кроссировки (коммутации) объектов сети

А теперь переходим к выдаче собственно отчётов. Можно получить список кабелей сети с их ID, длиной, указанной пользователем, списком портов и трасс, где он есть. Вот вам кабельный журнал номер РАЗ. До кучи это сцуко суммирует указанную длину трасс вместе и выдаёт общую реальную протяжённость кабеля в трассах. Вот это я только сегодня придумал и до конца не отладил — на другом типе отчёта (ниже) оно считает совсем не то. Щас допишу статью и полезу в глубокий дебаг :)

Отчёт: кабели по трассам их прохождения

Отчёт: кабели по трассам их прохождения

До кучи можно вообще, в той же точке ввести ещё один параметр — запас на монтаж. И когда будет считаться длина кабеля, оно будет плюсовать к ней и запас, чтобы всё-всё было учтено. Скажем для розетки можно оставлять запас в 1 метр, так как ГОСТ требует чтобы она была передвигаемая, а для патч-панели — полметра.

Этот же отчёт можно развернуть по местам трасс, если не хочется знать детально всякие короба и потолки, а достаточно получить просто список помещений, в которых надо отыскать этот кабель.

Отчёт: кабели по местам их прохождения

Отчёт: кабели по местам их прохождения

Теперь интересный отчёт по трассам. Интересен он тем, о чём я писал выше — оно считает коэффициент заполнения трассы. Кое-где у меня не все данные вбиты, поэтому цифры плавают. Запись «F: xx%» показывает количество свободного места в трассе исходя из заданного К1 (обычно по ГОСТу это 40% после полной укладки кабелей). А ещё можно например посмотреть суммарное сечение всех кабелей и полезть в каталог каких-нибудь проволочных лотков, чтобы там подобрать нужный, в который все кабели влезут.

Отчёт по трассам и их заполнению кабелями

Отчёт по трассам и их заполнению кабелями

Ну и самый последний пример — выдача распечатки той самой коммутации. Это можно хоть прямо в нужную распайку или кросс-ящик укладывать.

Распечатка кроссировочной коммутации (для примера)

Распечатка кроссировочной коммутации (для примера)

Вот такая штука у меня получилась. Сегодня наконец-то попробовал ей пользоваться. Конечно все эти 1Совские окошки подчинённых справочников надо будет потом убрать и сделать свои красивые с человеческими кнопками «Добавить, Изменить, Удалить». Ну и ещё всякие мелочи поотлаживать типа подсчёта длин кабелей. Ещё мне уже не хватает отчёта типа «Статистика сети», в котором и будет выводиться всяка фигня типа «Общая протяжённость трасс (по типам), общая протяжённость кабелей (по типам)». А можно ещё к каждой трассе привязать ссылку на конкретную номенклатуру. Тогда это даст вот что: мы делаем свёртку по этой самой номенклатуре, и получаем список, похожий на список начинки для щитка аналогия та же): Кабеля ххх — 400 метров, лотка проволочного ууу — 20 метров, короба такого-то — столько-то метров. И бежим в магазин покупать :) Но это позже.

Я вообще пишу свою 1Ску сам, добавляя необходимые функции по мере их нужности. Так что у меня всё ещё впереди. А на этом заказе народ получит уже более-менее адекватные распечатки. Ну и мне по этим же распечаткам будет удобно кабели укладывать — прям по списку трасс (короба внутри маркером пронумеровать). Ы!

З.Ы. Пишу торопливо, если количество опечаток превысит все нормы — не стесняйтесь, указывайте мне на них пожалуйста!

Проекту исполнилось 15 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".

6 Отзывов на “CS CRM: Проектирование кабельного журнала для СКС”


  • 1 maxlive

    Ну что тут скажешь, КРУТО , молодец ! Вот это творчество которое требует дотаций.Остаётся найти спонсора и под твоим началом и с твоим генератором идей начать свою весьма богатую деятельность.Стоит развиваться в этой области , однозначно!

  • 2 CS  [Москва]

    Не, нафиг. Это моё личное творчество :) А подсчёт длины трасс и кабелей я подправил. Теперь оно ещё и массы пытается считать — тоже полезная тема. Выдаёт так:

    Трасса: 133.50 м / 7.63 кг; Кабель (реал.): 133.50 м / 3.74 кг; Запас монтажа: 2.40 м / 0.07 кг; ИТОГО Кабеля: 135.90 м / 3.81 кг

    Я думаю, для суровых дядей все примочки или уже есть или нафиг не нужны.

    З.Ы. Ещё выматерюсь и выложу статью про самое святое на свете — Номенклатуру. Давно хотел, ибо задолбали.

  • 3 Chip

    Интересный подход к своей работе. Вы молодец. В последнее время много попадается людей которые могут сделать монтаж, но оформить документально — это уже что-то нереальное. Просто глядя на Ваше творчество в 1С со своей стороны (работаю программером 1С более 10 лет) много интересных вещей подчерпываю для себя. В последнее время тоже иногда приходится подрабатывать монтажом СКС и электрики, и Ваша конфигурация очень интересна хотябы даже организацией интерфейса. Тоже написал самописную конфигурацию для маленького розничного супермаркета. Много идей позаимствовал из других баз.

  • 4 CS  [Москва]

    Знаете, я тоже ещё тот лентяй! У меня два выхода: или оформлять документацию, а потом по ней делать монтаж, или делать монтаж и не оформлять документацию :)
    Тут тупейшая конфа — одни подчинённые справочники. Здесь конечно 8ка пошла бы лучше, потому что у неё вроде как ТаблицаЗначений теперь может быть типом реквизита справочника. Но я для себя на 7ке останусь. Если будете что развивать — могу MDшником поделиться или чем-то, что вас заинтересует.
    Я сейчас допишу статью про номенклатуру — там тоже несколько прикольных решений.

    UPDATE: Сейчас закончил мелкую отладку и вбил полностью сеть той самой конторы, которая на скриншотах. Ёпт! Да оно реально работает! Заказал коробов 90 метров — по базе получилось 96, да и то из-за того что я где-то точные длины сегментов короба не высчитывал, а писал просто: «1 метр» вместо 0,8 реальных метров (типа оконного проёма).
    Витой тоже получилось 3,7 коробок, а я заказал 4 коробки. Гыыы!! КРУТО! Доволен офигенно.
    Не хватает двух отчётов:
    а) «Статистика Сети» (я о нём писал) — чтобы выводил итоговые длины кабелей, списки материалов и т.д.
    б) «Расключение Точки» — берёт заданную точку и тупо пишет список кабелей, которые от неё уходят и их конечных точек. Ну удобно для патч-панели, чтобы для неё отчет распечатался в виде «Порт 1: Розетка 20, Порт 1» и т.д. — чтобы это отдать прям Одминам, которые будут обслуживать данную систему.

  • 5 Chip

    Насчет «лени» можно говорить много… Для написания конфигураций нужно вдохновение… Часто этого не хватает. А насчет 8-ки это конечно более перспективно и возможностей кода очень много. Иногда приходилось извращаться если нужно типа таблицы значений сделать в реквизите справочника — делаешь реквизит — строка неогр.длинны и в нее выгружаешь/загружаешь временную ТЗ при открытии/закрытии формы. А вообще если не жалко конфигурацию естественно для личного использования (не для продажи) я бы не отказался, могу скинуть на мыло свою самописную конфигу по магазину если актуальна, но думаю что Вы сам уже все это можете воплотить. Сам сейчас пишу только под 7-ку, все типы типовых конфиг дописываю под клиента, понимаю что это тупиковая платформа, но народу в ней проще работать, а 8-ый язык отличается кардинально (недавно распечатал книгу по языку 8.1 — получилась стопка бумаги более 600 листов в 2 колонки с 2 сторон) вообщем надо потихоньку заставлять себя переучиваться на 8-ку. Вообщем, наверное надо переносить наше общение в е-mail если Вы не возражаете…
    С уважением, Борис

  • 6 CS  [Москва]

    Закинул. Было бы там что продавать! Там над кодом надо ржать (комментарии там дай боже!)
    Конкретно моя база будет на 7.7 до самого конца. Потому что 7.7 моя носится даже на флэшке. А 8ку этому народ не особо учит. Пожалуй, меня тормозит не незнание языка а необходимость для её работы ставить какие-то эмуляторы и прочую муть. А я свой комп люблю и лишними вещами загрязнять её не хочу.

    Вы там со строками неограниченной длины поосторожнее! Я повадился вешать подчинённые справочники (см. СтатусыКонтрагентов), потому что раньше накалывался. Для ТЗ на пару столбцов и размером строк в 10 это ещё катит, а когда она огромная — то лучше как-то по другому извращаться, потому что 1SBlob.Dbf — жуткая свалка и при записи строк больше определённой длины валит базу.
    Это я когда-то файловые аттачи пытался хранить прямо в базе данных. Это было ужасно плохим решением :)

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.