CS CRM: Проектирование электрощитов в 1С (версии ‘2011 и ‘2013)

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

Число просмотров: 71 948 

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

Проектирование щитка: Документ 1С для редактирования щитка

Проектирование щитка: Документ 1С для редактирования щитка

Пост переработан в 2020 году. Здесь я рассказываю про начало этого проекта: когда он зародился в 2011 году и когда я его сильно дополнил в 2013ом году. С тех пор произошло ещё больше изменений и, когда я и доделаю, я выложу ещё один пост, а сюда поставлю ссылку на него. А все посты про мою 1Ску собраны то тэгу «CRM».

Я тут в недавней статье обещал вот что:

Или я напишу какую-нибудь прогу (или примочку к домашней 1С), в которой буду прям расставлять автоматы, и смотреть чего и сколько надо, или….

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

Самая первая версия проекта: 2011 год

Многие меня даже в 2020 году спрашивают, почему я сделал расчёт щитов на 1Ске. Здесь я расскажу кратко про достоинства 1Ски и своей системы, а в более новых постах расскажу подробно про новые доработки.

Главные достоинства 1Ски как движка вот в чём:

  • Она позволяет программировать самому то, что тебе удобно, так как состоит из движка (на котором всё крутится) и конфигурации — того, что ты напрограммировал. Программировать тут удобно на русском языке, потому что чаще всего те названия объектов и переменных, которые ты сделал в коде, сразу же с теми же названиями привязываются к экрану. Если бы мы прогали на английском (такая возможность есть), то надо было бы делать двойную работу.
  • В пределах базы всё, что ты напрограммировал, связано между собой. В терминах 1Ски это называется «Метаданные»: база знает о том, как связаны её объекты и их поля друг с другом. Эта информация доступна программно (можно узнать наличие у объекта (таблицы) какого-то поля, его тип или длину).
    Благодаря метаданным база сама поддерживает свою целостность. Если база видит, что Контрагент используется в Щите, Заказе или Поступлении денег — то она не даст тебе его удалить, пока ты не удалишь всё, что с ним связано. Также эта связанность даёт возможность обращаться к объектам типа «Щит.Заказчик.Адрес» прямо в коде программы. Для этого не надо делать какие-то дополнительные функции или подгрузку данных: движок сам всё поймёт и достанет нужные данные из связанных таблиц.
  • 1Ска умеет следить за событийной целостностью данных и не даст тебе поправить что-то задним числом, если это повлияет на текущие данные. Хочешь поменять количество товара в заказе, который ты сделал пару месяцев назад? Окей, откатывай всю базу на то время, меняй — и потом база не даст тебе работать, пока автоматически не пересчитает все данные на текущую дату. Все проверки данных и пересчёты делаются автоматически, самому ничего программировать не надо.
  • То, что очень круто отличает 1Ску от решений на других базах данных — это то, что вместо обычных операций «Добавить», «Изменить», «Удалить» ты программируешь ТОЛЬКО одну — «Добавить». Имеется ввиду следующее, на примере.
    Вот есть операция «Поступление денег». Надо: сохранить сумму денег, контрагента, на какой счёт это поступило, для какой цели, и обновить расчёт текущих остатков денег на счёте, а ещё привязать эти деньги к конкретному щиту. Все эти данные хранятся примерно в 10 полях и ещё и рассчитываются в разных таблицах (я использую термины, принятые в обычных SQL-базах, чтобы было понятнее).
    Если ты прогаешь обычную базу — то сначала ты пишешь запрос «INSERT» (вставить), когда данные первый раз сохраняют и их ещё нет в таблицах. Потом пишешь код их пересчёта и сохраняешь его результаты в других таблицах через INSERT/UPDATE. Если юзер что-то поправил — то ты пишешь запрос для «UPDATE», снова делаешь пересчёт других таблиц и их обновление. А если это надо удалить — то ты пишешь «DELETE» и снова делаешь пересчёты.
    Так вот в 1Ске, если продолжать пример, ты пишешь вообще только одну операцию: расчёты (ну, типа «Сумма = (Цена * Количество) + Комиссия»). Движок 1Ски АВТОМАТИЧЕСКИ запоминает, какие данные затрагивал твой расчёт, и дальше при редактировании, удалении или пересчёте этого объекта — сам знает, что ему где надо удалить или поправить. Вот это — прям самая главная круть из крути!
  • Ещё для меня было важным удобство и избавление от рутинной работы. В этой базе у меня есть Контрагенты (заказчики, клиенты, поставщики и их данные — вот, почитайте пост), Номенклатура (вон про неё пост был), учёт денег, учёт материалов (их заказы, количество в запасе), расчёты щитов. Вот глупо было бы считать щит в одной программе, делать на него документацию во второй, считать деньги в третьей, а список товаров на щит делать в экселе? А у меня это делается в одной базе!

Итак, когда я задумал сделать расчёт щитов — то я ориентировался на свою базу, в которой мы с напарничком уже веселились и считали сметы, причём иногда даже матерно:

Калькулятор для расчёта стоимости электромонтажа

Калькулятор для расчёта стоимости электромонтажа

И вот я взял и создал новый тип документа — «План щитка» (позже переименовал его в «План щита»). Документ в 1С — это прям вот аналогия с реальным документом. В реальности у нас есть «бланк», форма документа «Накладная». Но сама накладная каждый раз разная — там есть разные товары, суммы, контрагенты. Вот в 1Ске это так же и прогается.

Мой щит стал таким документом. Только вместо граф «Товар», «Цена», «Количество», «Сумма» и прочих у меня появились графы для описания одного элемента щита: его тип (УЗО, автомат, дифавтомат, рубильник), количество модулей на DIN-рейке, название, маркировка, марка кабеля, который к нему идёт (если есть), мощность нагрузки, стоимость и прочие подобные.

Вот и набивается щит в 1Ске построчно: рубильник, лампочка, УЗО, автоматы. А так как 1Ска заточена под автоматическое суммирование строк и их свёртку (если надо), то суммированием мы получаем итоги по щиту (сколько всего модулей, сколько всего мощности, сумма материалов), а свёрткой (это суммирование строк с чем-нибудь одинаковым, например товаром) — список компонентов щита для заказа.

Самое главное было придумать раскладку щита — расстановку компонентов по DIN-рейкам. В 2011 году это у меня больше всего времени отняло, потому что главный минус 1Ски (который очень сильно перевешивают её плюсы) — это то, что она не графическая: данные, которые она выводит, выглядят как таблицы Экселя. И вот как ты в таблице потаскаешь модульку по DIN-рейкам-то? Никак!

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

Есть печать списка этой самой начинки. Именно её я всем и высылаю, когда показываю, чего и сколько будет в щитке внутри. Теперь правда, со списком этих несчастных реек, таблица перестала влезать на А4, поэтому я думаю дописать свою CRM ещё немного и сделать полный и краткий вариант печати.

Проектирование щитка: Печать списка начинки щитка

Проектирование щитка: Печать списка начинки щитка

Ну а теперь — самое интересное! Можно выбрать другую печатную форму (работающися в 1Ске это будет понятно; другим поясняю: это как несколько кнопок «Печать того», «Печать сего»), и посмотреть полученную раскладку щитка.

Проектирование щитка: Печать раскладки автоматов (пример 1)

Проектирование щитка: Печать раскладки автоматов (пример 1)

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

Проектирование щитка: Печать раскладки автоматов (пример 2)

Проектирование щитка: Печать раскладки автоматов (пример 2)

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

Нажимаем «Печать» и получаем списочек:

Проектирование щитка: Список материалов для покупки

Проектирование щитка: Список материалов для покупки

А ещё на основании этого документа можно будет сформировать документ «Заказ поставщику» — но это уже совсееем другая история :) А пока что мы соберём щиток, который только что спроектировали.

Сборка щита по спроектированной в CS CRM документации (‘2011)

Полностью собранный щиток с ограничителями и маркировкой

Полностью собранный щиток с ограничителями и маркировкой

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

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

Подготовка к сборке щитка: разложим инструмент :)

Подготовка к сборке щитка: разложим инструмент :)

Так как теперь у меня есть маркировочный принтер DYMO Letra Tag, то в стадию подготовки входит печать наклеечек для подписывания автоматов. Тут вопрос несколько риторический. По идее, это очень просто и круто, когда на автомате прям маркером накарябано «Свет кухня». Всё понятно, всё находится внутри щитка (не видно снаружи), но выглядит кустарно.

Подготовка к сборке щитка: печатаем маркировочные этикетки

Подготовка к сборке щитка: печатаем маркировочные этикетки

Поэтому теперь я нумерую автоматы в своей базе (в табличке), и печатаю их номера.

Наклеиваем маркировку на все автоматы и компоненты щитка

Наклеиваем маркировку на все автоматы и компоненты щитка

Дальше (по нашей раскладке) мы крепим на DIN-рейку наши автоматы.

Расставляем все компоненты щитка на DIN-рейку в соответствии с планом

Расставляем все компоненты щитка на DIN-рейку в соответствии с планом

Всё должно совпасть визуально, и вживую должна получиться похожая на распечатку картинка. Кое-где я действительно закрепил автоматы ограничителями на DIN-рейку, но тут это действительно фикция и мажорство, особенно для нулевых шинок. Но мне же так хотелось поскорее их куда-нибудь внедрить! Ну а дальше — вуаля, соединяем всю получившуюся хрень проводками.

Соединяем всё по схеме при помощи проводов

Соединяем всё по схеме при помощи проводов

В данном случае, хоть щиток и набит кучей всего, задача была сделать его относительно бюджетно.

Козябры из проводов (подключение нескольких групп УЗО последовательно) можно было мутить только в том случае, если не ожидается больших токов через такие последовательные соединения. Здесь использован ПВ-3 6 кв.мм, а номинал вводного автомата на квартире ограничен 32А (или даже 25А). В случае, если номинал вводного автомата больше, следует озаботиться кросс-модулем и не рядить такие кривули из проводов!

Иногда из проводов рисуются вот такие козябры :)

Иногда из проводов рисуются вот такие козябры :)

Остаётся только стянуть всё стяжками (опять ушла треть пачки на один щиток; а на его подключение остаток пачки как раз и уйдёт!), сделать тут этакий BDSM, и обклеить его этикеточками.

Полученный результат окультуриваем при помощи стяжек

Полученный результат окультуриваем при помощи стяжек

Ну и любителям острых ощущений бонусом полный вид этого щитка в моей 1Сине (пришлось соскриншотить с уменьшенным масштабом). Вот такую распечатку и получит заказчик в комплекте к щитку.

Образец раскладки щитка для проверки на визуальное соответствие

Образец раскладки щитка для проверки на визуальное соответствие

Всё :)

Мощное обновление расчётов щитов (08.06.2013)

Документ "План щитка" в моей личной 1С базе данных

Документ "План щитка" в моей личной 1С базе данных

Я продолжаю свой рассказ про цикл инструментов для работы со щитами. А конкретно — всякого программирования и примочек в 1С 7.7, на которой я раньше прогал. Сразу же предупреждаю и «обламываю»: это моя ЛИЧНАЯ база, и она никому в руки не даётся и не продаётся! Я описываю её на блоге для того, чтобы показать то, как я проектирую свои щитки и какими инструментами я автоматизирую этот процесс так, чтобы сократить большинство ошибок вида «забыл», «не записал», «не учёл и не подсчитал». Однако любой программист, который более-менее нормально разбирается в 1С может после краткого моего рассказа о том, как это написано, может и самостоятельно сделать подобное.

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

Итак, что тут замутилось. Во-первых, сам документ «План щитка» конкретно так развился (фото выше). Напоминаю его базовый функционал:

  • Заполняем шапку: даём название щитку (если их несколько под один заказ, то это позволяет как-то в них ориентироваться). Ставим тип цены. Я напоминаю, что у меня есть тип цен, где цены специально завышены, чтобы не обновлять еженедельно прайсы и чтобы брать денег на материалы с запасом.
  • Набиваем строки в таблицу. Одна строка — это один элемент щитка. Обычно это одно DIN-реечное устройство. Но это может быть и клеммник или какая-нибудь шинка. Для каждой строки есть возможность выбрать конкретный товар из справочника Номенклатуры. Если для этого товара заполнены свойства — то 1Ска сразу подставляет цену, ширину в модулях и краткое наименование товара в графу «Модель».
  • Документ нам считает общее количество модулей, сумму за материалы, сумму за сборку (как % от материалов) и для трёхфазных щитков ещё и показывает распределение нагрузок по фазам, очень упрощая эту процедуру: достаточно только поназначать каждому элементу щитка фазы, смотря на сумму мощностей.

А теперь — новые навороты! Они все подходят под категорию приятных мелочей, но, как оказалось, очень-очень ускоряют работу со щитом.

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

Сделать автоматический подсчёт того, что указано в Модели щитка было бы логично. Но некоторые покупают корпуса для щитков самостоятельно, и их не надо включать в подсчёт и заказ. Поэтому операции с Моделью щитка я пока оставил наполовину ручными.

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

В графе «Номинал», где подставляется краткое название Товара, сделан список быстрого выбора, в котором есть все значения, которые использованы в этом щитке:

Быстрый выбор модели элемента щитка

Быстрый выбор модели элемента щитка

Теперь, набивая строки щитка, мы можем не лазить каждый раз в Номенклатуру, а сначала заполнить графу Номинал из списка.

После этого мы открываем меню дополнительных функций (оно тоже появилось: не под всё кнопок хватит) и выбираем пункт «Заполнить все Товары по Моделям (пустые)»:

Меню специальных функций

Меню специальных функций

И дальше ждём некоторое время. 1Ска сканирует таблицу щитка, ищет те места, где Товар не указан, а графа «Номинал» заполнена. И пытается найти позицию Номенклатуры, которая имеет такое же название. Если она найдена — она и подставляется в Товар. Получается всё очень быстро: заполнили таблицу по Ctrl-C/Ctrl-V, ткнули меню, посидели минутку — и всё заполнилось.

Я применяю эту фигку на автоматах и дифах. А на ручное заполнение остаются УЗО, рубильники и прочая мелкая фигня.

В этом же меню функций есть команда «Добавить строки из текста…». Она мне ОЧЕНЬ упростила жизнь в набивании линий. Если кто-то очень внимательно читает Правила и даёт хорошие вводные данные, где линии перечислены ровненьким списком, то мне останется копирнуть такой список в текстовое окошко:

Функция добавления строк в таблицу щитка

Функция добавления строк в таблицу щитка

А потом нажать «ОК» или Ctrl+Enter — и каждая строка, которая была в списке, превратится в новую строку таблицы щита:

Добавленные строки

Добавленные строки

Всё! Потом остаётся заполнить графу «Номинал» (вышеописанным способом при помощи команды «Заполнить все Товары по Моделям (пустые)») и радоваться жизни! =) Ну и названия подкорректировать, хотя это же можно сделать сразу при вводе строк.

Следующая фишка. Когда у вас щиток занимает где-то так строк 200 в таблице (мы же там описываем ещё и клеммы и прочую фигню), а потом заказчик говорит «Надо добавить ещё парочку линий» — то очень-очень ломает тыкать штатные 1Совские кнопки «Вверх» и «Вниз», чтобы поставить строку на нужное место таблицы. Поэтому была сделана команда меню, кнопка и горячая клавиша F7, которые открывают вот такое окошко перестановки строки таблицы:

Функция перемещения строки таблицы щитка

Функция перемещения строки таблицы щитка

Выбираем нужную позицию — тыкаем — всё, ура! Строка на нужном месте!

А теперь очень нужная важная фишка! Собственно, она ОЧЕНЬ давно используется, но была не показана на блоге, потому что была ОЧЕНЬ-ОЧЕНЬ нужна, сразу пошла в дело, а потом я так с ней свыкся, что забыл похвастаться =)

Это возможность создания и печати структурной схемы щита (аналога однолинейки, только вытянутой по вертикали, чтобы на листе А4 нормально печаталось). За основу был взят штатный 1Совский отчёт «Дерево документов».

Была написана своя обработка для вывода структуры щита и заведены две графы «ID» и «Родитель» в документе щита. ID каждой строки таблицы автоматически заполняется при её вводе в документ. А вот родителя можно задать снова окошком:

Функция выбора родителя элемента щитка

Функция выбора родителя элемента щитка

Таким макаром мы набиваем все связи. Защита от рекурсивных ссылок друг на друга есть ;) Обработку зациклить нельзя =)

Набиваем, и нажимаем кнопку «Печать: Структура». И получаем вот такое дерево:

Пример структуры щитка: практически готовая электрическая схема!

Пример структуры щитка: практически готовая электрическая схема!

А для трёхфазных щитов внизу ещё и пишется то, к какой фазе какие нагрузки относятся. Этому вообще тут не место, но эти данные удобны для сборки щитка: ты печатаешь одну распечатку «Структура», которой сам же, как схемой, и пользуешься. А для справки тебе как раз в конце «схемы» и даны обозначаения элементов щитка по фазам.

Сами понимаете, что лень — двигатель прогресса. Гм гм.. точнее. Главность фишки в том, что база — ЕДИНАЯ. Нет никакой херни вида «щиток в базе, а схема — в Visio где-то хер знает где» (хоть к документам можно прицеплять файлы). И на то, чтобы нарисовать схему щитка, время совсем не тратится. А это тоже очень-очень важно! А если ещё и поменять или добавить какие-то элементы — это ж сколько было бы мороки-то — по трём программам всё менять и не путаться. А тут всё в одной!

Дальше! =) А дальше, когда количество щитков увеличилось так, что их стало валяться по нескольку штук, пока Заказчики были не готовы их забрать, я решил что надо поиграть в адский цех и начать печатать этикетки на щитки. Я в тот момент как раз прикупил в АШАНе какую-то лажовую самоклеющуюся бумагу. И подумал что было бы здорово, раз уж я заматываю щитки стрейчем, ещё на них и надпись клеить.

Так вот! А как печатать этикетку (тогда, в 2013 году, я даже и не думал что куплю принтер для печати этикеток)? А снова из того же документа «План щитка»! Ведь вся информация, которая нужна для неё, в этом документе и хранится. Нажимаем — получаем:

Этикетка для наклейки на коробку с щитком

Этикетка для наклейки на коробку с щитком

Даже значки есть всякие охранные. А в последнее время я дополнил его ещё парой надписей про лицевую сторону щитка, которые в скриншот не влезли. Поэтому показываю живую фотку:

Пример готовой этикетки на коробке щитка

Пример готовой этикетки на коробке щитка

А так как парочку щитков у меня нагло спиздили (вот примерчик того, как спиздили аж всю демо-документацию щита, которая на сайте была выложена), то я решил начать издеваться и ввёл в документ галочку «Демо». Если её поставить, то всё печатается так же, как и обычно — но без информации о товарах и названиях линий.

Демо-режим: вся важная информация убирается нафиг

Демо-режим: вся важная информация убирается нафиг

Понятно, что это детский сад, но для совсем незнающего электрика это будет западло. А для заказчика, чтобы оценить вид щитка и расположение элементов — хватит. Для знающих электриков, конечно, догадаться и собрать щиток будет возможным. Но это будет значить что щиток, даже и сворованный и у меня, соберёт тот, кто в этом разбирается.

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

И теперь гвоздь программы по щиткам!! Я наконец-то сделал это!! Я написал адский зверский код для рисования подписей под автоматами!!!! УРА УРА УРА!!!!

Что было раньше? Раньше я собирал щиток, а потом глядел на Раскладку щитка в 1С и рисовал её в MS Visio, используя заранее нарисованные «кубики» шириной в 1, 2, 3 и 4 модуля. Их надо было накопировать и нарасставлять так же, как они шли в щитке. А потом заполнить надписями. Всё это отнимало жуткое количество времени — примерно минут 30 или даже час для сложных щитков. А самое западло было в том, что пока я всё это рисовал, мои глаза уставали, и вырезал я распечатанные наклейки криво, косо и по нескольку раз их переделывал.

В итоге получилась адская кнопочка «Наклейки»:

Кнопка вызова Visio для печати наклеек-подписей под автоматы

Кнопка вызова Visio для печати наклеек-подписей под автоматы

Она открывает MS Visio, создаёт новый документ, выставляет ему параметры бумаги, поля и прочие настройки страницы. А потом рисует ту же раскладку щитка, какая в нём и задана. А в качестве надписей использует то, что забито в щитке. Если в названии элемента есть символ двоеточия, то текст до него идёт в заголовок, а текст после — в подпись. То-есть надпись вида «Свет: Комната» превратится в два слова на чертеже.

Этикетки (подписи под автоматами) в Visio в процессе отрисовки

Этикетки (подписи под автоматами) в Visio в процессе отрисовки

При работе с Visio через OLE обнаружилась интересная особенность: Visio рисует элементы медленно, а не моментально. Поэтому при реальном выполнении операции ты сидишь и пялисшь на экран, на котором сами собой появляются и раскрашиваются квадратики.

Моя обработка заполняет даже свойства документа, поэтому даже после того, как я его куда-нить перешлю, всё равно все будут знать, где он создан:

Данная обработка даже задаёт свойства документа Visio

Данная обработка даже задаёт свойства документа Visio

А из мелочей в начале чертежа печатается текст с информацией о щитке: как она называется и прочие мелочи. Чтобы даже если название файла потеряется — всё равно можно было понять что к чему. Эта фишка… Ооо!! Если бы не она — я бы сдох нахер, собирая 15 щитов подряд (вот ссылка щитосборки лета 2013 года, а вот ссылка на пост щитосборок осени 2013)! А тут только бумага летела листами =)

Для ручной работы там остаётся не так много: кое-где расставить переносы строк и заполнить тот текст, который не сгенерировался автоматически. А это тоже просто, потому что оно сразу бросается в глаза.

Документ кабельного журнала. Это вот новый документ, который я тоже ввёл и стал сразу использовать, да так, что последний его номер в базе уже подходит к 100 (текущий — №91). Изначально этот документ должен был быть отдельным (и не иметь никакого ввода на основании) и служить для того, чтобы создавать списки кабелей на мои объекты (когда я ещё под ключ работал). Ну, дескать, если разводка кабелей была сложная, и какой-то надо было не забыть, то составлялся такой вот список, а потом проложенные кабели из него вычёркивались.

Но позже, когда я перешёл ещё и на сборку щитов, документ стал вводиться на основании документа «План щитка» (это тоже один из штатных механизмов 1Ски). Ведь в щитке у нас уже есть графа «Кабель». А значит что мы можем взять все названия, в которых она заполнена — и составить список кабелей по щиту. Получится вот такой документ:

Документ "Кабельный журнал" для создания списка кабелей щита

Документ "Кабельный журнал" для создания списка кабелей щита

Он проходит обычно две итерации. Сначала он просто генерируется по щитку и отдаётся в момент просчёта заказчику. Он может проверить — не забыли ли мы какие-то линии учесть в щитке, и оценить объём кабелей. Ну и этот же список кабелей отдаётся рабочим, которые должны подвести их к щитку. А вторая итерация — это когда после сборки щитка я вношу туда данные о том, какой кабель в какие места щитка надо подключить.

Позже оказалось, что графа «Маркировка» как раз удобна для указания мест подключений кабелей (потому что графа «Комментарий» используется по прямому назначению), и пришлось сделать списочек выбора названия для неё.

А ещё меня как-то задолбало писать «Все PE-провода собрать на шинку щита» в комментариях к каждому кабельному журналу. Я подумал, подумал — и сделал несколько галочек на все текущие случаи жизни (а позже — список инструкций, про который рассказывал в отдельном посте).

Теперь для выдачи документации на щиток достаточно просто расставить галочки и получить вот такую распечатку:

Также в документе автоматически можно создавать подобие документации на щит

Также в документе автоматически можно создавать подобие документации на щит

А ещё я решил автоматизировать выдачу расписок, когда получаю деньги на материалы. Некоторые их просят, а мне надоело постоянно одно и то же писать на клочке бумаги корявым почерком. Почему бы не быть документу в 1С? Быть!

Документ снова получился универсальным: можно задать то, какие реквизиты печатать и дописать дополнительные данные к тексту.

Документ "Расписка" - упрощает и эту процедуру

Документ "Расписка" - упрощает и эту процедуру

Получается примерно так:

Пример распечатки расписки

Пример распечатки расписки

Остаётся только подставить подпись =)

В отчёте по заказам добавил фишку вывода номеров счетов, по которым они были. Для того, чтобы её написать, пришлось переделать процедуру выборки данных, поэтому мне долго было лень к ней подступиться. Зато всё встало аккуратно и наглядно. Можно до всех докапываться =)

В отчёт по заказам добавлено отображение номеров счетов заказов

В отчёт по заказам добавлено отображение номеров счетов заказов

И я даже не забыл про такую мелочь, как меню выбора даты в документах. Иногда это удобно, если надо какие-то чеки за вчера ввести.

Кнопка быстрого выбора даты документа

Кнопка быстрого выбора даты документа

ну там… ушёл в запой xDD — потом начинаешь сводить баланс в базе. «Оййй… блин. Когда это было? А.. дааа.. вчера.. мы пошли в парк, потом в магаз…» =))

Вот такая вот у меня тут база выросла!

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

83 Отзывов на “CS CRM: Проектирование электрощитов в 1С (версии ‘2011 и ‘2013)”


  • лучше бы конечно как отдельное приложение, вообще не завязанное на одинэс

  • 2 CS  [Москва]

    А у меня в ней весь учёт. Отдельно мне мужичок советовал, вот есть шаблончики под Visio: http://visio.artberg.ru/loading.htm#a22 («Шаблон для компоновки электрощитов по стандарту DIN»). Но я его даже не смотрел, мне прям в базе удобнее. Потому что она ДЛЯ ВСЕГО вообще :)

  • вот есть шаблончики под Visio: http://visio.artberg.ru/loading.htm#a22

    эт несерьезно ))) а вот самостоятельная программка, если конечно имеется некоторое количество знаний в программировании, в перспективе может стать вполне успешным проектом

    мне вот лично неизвестно ни одной программы для обсчета клиентов в том, что касается электропроводки.

  • 4 CS  [Москва]

    А, то-есть ты предлагаешь мне её писать? Не! Это пиздец какое решение! Чтобы её писать — надо её продавать и развивать. И всё это — с нуля. А это нипкому нафиг не нужно.
    Моя 1С может следующее:
    * Учёт бабла (вообще любого; я там домашние расходы веду), скока где есть, скока пришло, ушло, на что конкретно потратил, кто кому должен.
    * Конкретные взаиморнасчёты с контрагентами: сколько денег когда получено, на что истрачено и сколько сдачи надо вернуть.
    * Выгрузка на сайт статусов заказов (полуавтомат).
    * Огромная база данных номенклатуры с вложениями к каждой позиции (документация, картинки), свойствами (типа «Номинальный ток», «Количество модулей на DIN-рейке»). К каждой позиции может привязываться куча цен и неограниченно число фирм-поставщиков. Фишка в том, что у каждого поставщика могурт быть свои цены, И (!!) своё название этой же номенклатуры, свой штрих-код, артикул и т.д.
    Наименование номенклатуры формируется вообще автоматически на основе свойств по шаблону. Ну типа есть шаблон вида: «Автомат [Производитель] [Модель] [Число полюсов]-полюсный [Категория отключения][Номинал]А» — подставляет все значения и выдаёт красивое «Автомат ABB S201 1-полюсный C16А». Сменил шаблон — и все наименования перестроились.
    Это используется далее по ВСЕЙ базе:
    * Банальный учёт всей хрени на нескольких складах — сколько купил (и за сколько), сколько потратил, сколько осталось.
    * Контроль минимального остатка — если для какой-нибудь позиции он задан, то когда при списании со склада (или складов) её стало меньше — вылазит предупреждение типа «Внимание! Данной позиции осталось хх штук! Не забудьте пополнить запас» =) Вот например для тех же ограничителей стоит минимальный остаток в 15 штук.
    * Пока не написал — параметрический поиск по свойствам. Ну типа «А найди-ка мне круглый кабель с числом жил не менее 7 штук и сечением их не менее 1 кв.мм из тех, что не являются заказной позицией». Заказная позиция — эхто у меня галочка такая. Отмечаю те позиции, с которыми геморрой, ну не ходовые.
    * Всасывание прайсов (обновление из них цен). Пока не написал — но напишу. Идея простая: ведь у нас есть свои названия товара для каждого поставщика? Вот и выполним обратный поиск: берём xls-прайс поставщика. Читаем его построчно, и по его названию/артикулу ищем нашу позицию и обновляем её цены.
    * Формирование заказов поставщикам — вот для каждого поставщика (если задано) — будет список товаров именно в его артикулах, названиях и т.п. То-есть, у какого-нибудь Престиж’а автомат будет называться «Авт.выкл 1-полюсный C16 ABB», а у какого-нибудь АБНа будет уже «ABB S201 Автоматическй выключатель категория С, 16А».
    При этом заказ может быть как просто списком для печати (чисто бумажку тёткам принести), так и запоминаться в базе, чтобы потом вылазить в отчётах в виде списка «не забудь купить».
    * Формирование списка работ (по аналогии со списком заказов) — ну типа сметы, только потом можно отмечать выполненные работы по ней, и они будут из списка убираться. То-есть список «не забудь доделать».
    * Список выездов — куда когда надо поехать и что сделать
    * Учёт показаний электро- и водосчётчиков (квитки печатает) — от руки задолбало заполнять!
    * Новая фишка, не оттестенная ещё. Составлять что-то типа кабельных журналов, но с закосом под слаботочку. Есть такие термины:
    Место — реально, место, помещение и т.д., где может что-нибудь находиться или проходить.
    Трасса — проходит в каких-то местах (списком). Короб, лоток, труба и т.д.
    Точка — розетка, щиток, распайка, муфта и т.д. Ею начинается и кончается кабель.
    Ну и Кабель — проходит в нескольких трассах (списком), имеет начальную, конечную и какие-то промежуточные точки (типа муфт/коробок).
    Отсда можно выдать и закос под кабельный журнал — длину, где, куда и откуда проходит.
    Можно выдатть список трасс и подсчитать их коэффициент заполнения (по суммарному сеченню кабелей) и позырить, сколько свободных % осталось.

    Касательно вообще Заказа — в базе он у меня называется «Договор». То-есть у каждого контрагента (клиента) может быть несколько заказов. И инфу про то, что купить, сколько чего на складах и сколько денег — можно смотреть как целиком, так и по конкретному договору/клиенту.

    Ну и вообще — про контрагентов в принципе (клиенты, поставщики и т.д.). У них может быть неограниченное число адресов, телефонов, мыл и прочего (а не одно-два поля на всё, как обычно). Можно выставить рейтинг или коммент типа: «Вид: Клиент (нервный)». Можно выставить Статус — «Ожидает», «Принят в работу», «Послан в жёпу» и запоминанием даты этого статуса и кратким комментом за что и про что :)

    Вот а теперь вопрос — ЧТО из этого должно входить в программу? И сколько такое писать? В 1ске удобно тем, что там дописывать функционал очень просто — прибило в голову, дописал. И то что она построена на так называемом функционале Документа. То-есть Документ — это объект базы. Для него запоминается дата, время, статус.
    Скажем, примеры документов: Покупка Товара, Списание Товара, Продажа Товара.
    А ещё экзотические: План щитка, План работ, Договор, Закрытие договора.
    Вот так и работаю. Считай, что это прога и есть. Я её писал с двух документов в 2008 году: «Поступление денег», «Расход денег» и дописывал то, что мне нужно было.

    Короче, благодаря своей базе, я могу поднять в любой момент ВСЮ историю любого заказа, и посмотреть всё — от того, по каким ценам я тогда что ему продавал или делал (сколько брал за работу), до того, какой автомат сверху, слева или справа у него за что отвечает, даже не глядя на его щиток.

    Отдельная прога не будет успевать выходить так быстро. Это действительно проще делать функционалом как дополнение к 1Су. Например, покупает чувак себе конфигурацию 1С:Деньги (или 1С:Бухгалтерия), и туда встраивается этот код. И она и деньги считает, и декларации о доходах печатает, и ещё и нашу электрику считает.

    З.Ы. Не злите программистов %)

  • хмм… мне кажется с одинэсом от нечего делать упражняются совсем немногие.
    и потом, платформа, на мой взгляд, представляет собой следующее: покупаешь неработоспособное говно, нанимаешь непонятных чуваков которые увеличивают стоимость примерно в два раза и потом с приобретением этим мучаешься, башляя по фиксированному тарифу за школьнико-час, в надежде что когда нибудь оно таки заработает так как надо (ну или хотя бы так, как обещали) ибо потраченых денег реально жалко

    как то так.

  • 6 CS  [Москва]

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

    Тут как. Если тебе тупо вести бухгалтерию и отчётность сдавать — то покупай решение из коробки и веди. А если тебе надо товар производить из полуфабрикатов, составляя план закупок, поставок — то всё, пиздец. Нанимай программиста.

  • 7 АН22

    А разработай для своего горячо любимого тролля проект переделки щитов СУчьего семейства :) типа СУ9ххх с тепловыми пакетниками А3141-А3143 :)

    там где раньше работал я, знаешь как наклейки на автоматы делали? режущим плоттером :) из бумаги, прям самоклейные бумажные букаффки :) тафольно таки интересное решение, благо мощности предприятия для собстенных нужд хватало :)

    Ты шинные системы освещения монтировал когданибудь? я не вкурсе допустимо ли их применять в полуподвальных помещениях? у нас ректор хочет в подвале галерею организовать, купили шинные светильники на 50вт 230в…вот и думаю..прибьет кого или нет?

  • 8 CS  [Москва]

    Нет, не монтировал. Неизвестно что за подвал. За этим — в инструкцию к шинной системе, читать требования по её монтажу.

  • 9 АН22

    ну такой…огромный, сыроватый подвалчег…сейчас там правда делают гидроизоляцию, но за 20 лет, как его построили, вся штатная проводка от сырости сгнила в труху..даже люминесцентные светильники прогнили так, что рассыпались от малейшего прикосновения :), причем вместе с дросселями

  • Интересный и продуманный подход к работе. Некоторое время назад стал задумываться о чем-то подобном. Увы, когда-то давно два семестра ковыряния с Turbo-Pascal начисто выпилили интерес к программированию…

    Когда закупал начинку для крайнего щитка, практически слово себе дал: монтажную и принципиальную схемы, а также спецификацию на оборудование делать заранее! Но этот заказчик давний и постоянный: для него можно и на ходу посоображать, стараясь успеть сделать «вчера».

  • 11 CS  [Москва]

    Да я ж раньше чертил, вот: https://cs-cs.net/wp-uploads/2009/09/EM28-Scheme.gif , а потом мне стало ОЧЕНЬ лень чертить эту хреноту руками под каждого. Вот я и накатал программку…
    А турбопаскаль это ЖОПА. Потому что в нём программирование — это не полёт мысли, а суровое брутальное ворочанье камней. Так что с тем, что он начисто отшибает охоту программировать дальше — согласен. Особенно с его типизацеий несчастной.

  • 12 gamer1986

    Приветствуй Всех.
    Читаю данный блог не давно, спасибо Автору за него. Заинтересовался вопросом программы для составления «смет» эл. щитков и действительно поиск в гугле не дал результата хотя с первого приближения программировать не очень много надо. С позволения Автора готов развить данную тему может чего то полезное получится.

  • 13 CS  [Москва]

    Привет! Так а что про неё интересует? Оно есть, оно работает…
    Ситуация с ними обычно такая:
    * каждый производитель обычно на каком-нибудь диске платную или бесплатную программу для проектирования шкафов, щитов. У меня где-то давно в архиве валялась Legrand’овская. Там будет всё в картиночках, 3D-модельках и фоточках;
    * Универсальные решения типа библиотек под Visio, ссылку на которые я приводил, но сам их не тестил
    * Интегрированое решение — как моя примочка к моей же домашней базе 1Са, в которой ведётся учёт всего, чего мне необходимо.
    Для меня последний вариант удобнее всего, потому что номенклатура с её характеристиками, деньги, заказы поставщикам и всё что угодно — под рукой. И не надо заводить они и те же данные в тридцать три разные программы.

    Касательно собственно программирования — а смысел? Там интересно совсем другое — чтобы она «знала», что у автомата S203 — три модуля в щитке, и автоматически всё это подставляла. А это больше относится к базе номенкатуры, чем к картиночкам. Картиночки-то можно хоть прямоугольником показывать.

  • 14 gamer1986

    Моё предложения своять для начала что бы просто рисовала «красивые» картинки потом добавлять функционал а в конечном итоге получить ПО (*SCRATCH* или сайт) в котором только нужно выбрать номенклатуру и получить всё что нужно начиная от красивых картинок заканчивая списком для заказа поставщику

  • 15 CS  [Москва]

    Хм. Подход в корне неверный. «Просто красивые картинки» нахрен нипкому не нужны. Для этого есть Visio например.
    Ну ваяй, а народ посмотрит что получится.

    А я щас пользуясь случаем выложу ещё одну фишку и посмотрю, что ты на это скажешь ;)

    Гы гы!! А я-то ЛОШАРА позорная! Прогграммист хуев :)
    Собственно история. В красках. Считаю следующий щиток, широким жестом нажимаю на «Печать списка компонентов» — вылезает листок вида «Автомат С10 — 7 штук, Автомат С16 — 9 штук».
    Отдаю заказчику, мол «Зацените как у меня всё круто, покупайте автоматы»!
    Заказчик покупает… начинаю собирать щиток, и что-то у меня не сходится. Как-то автоматов-то МАЛО!
    Вкуриваю, соображаю. В самом Плане Щитка прописано всё верно, ничего не забыто, маркировка не пропадал, строки не пропали… всё вроде бы есть! А что не так?
    А вот! Количество у меня подсчитывается элементарным кодом:
      ВыгрузитьТабличнуюЧасть(ТабДеталей);   ТабДеталей.Свернуть("Товар", "Количество");   ТабДеталей.Сортировать("Товар ");
    То-есть, в моей таблице щитка есть пара реквизитов: Товар — это ссылка на номенклатуру, которой оответствует нужная позиция щитка, и Количество — оно для каждой строки всегда 1 штука. Ну потому что на 1 строку — 1 товар (у нас в документе 1 строка — это один автомат, УЗО или прочее).
    Ну вот я широким жестом экономии дискового пространства базы влепил длину этого Количества в 1 знак. Потому что больше 1 оно не будет.
    А когда вызывается Свернуть(), количество-то увеличивается. И 1С:СукоСистема всё равно эту сраную длину реквизита в 1 знак соблюдает! И блядь округляет его нахрен! То-есть до 1 знака. Было 12? Станет 9. Было 9? будет 9!
    Вот тут на самом деле было 12 штук, а не 9 :) Плюнул на чудеса 1С (пожалуй, столкнулся с ними первый раз на свой опыт) и увеличил длину Количества до 6 знаков. Чтоб наверняка.
    Ща пойду докупать автоматов :)

    А вот другому заказчику с 19″ щитком просто ПОВЕЗЛО — у него на самом деле ровно 9 16-х дифов :) МОРАЛЬ: Пишете код? Отлаживайте во ВСЕХ возможных ситуациях!

  • 16 gamer1986

    :) по этому эсеры во всех манах пишут целая часть 10 дробная толи 3 толи 5

  • 17 CS  [Москва]

    А тут была фишка в том, что Количество это нужно только для Свернуть(), чтобы это было подсчитываемой колонкой.
    А так как у меня щиток описывается построчно: 1 элемент щитка = 1 строка, то оно в каждой строке всегда будет 1 :) Вот я недрогнувшей рукой и влепил 1 знак =)

    У них в штатных конфах обычно 10.3 и 12.2 для сумм

  • 18 gamer1986

    Ну вот накропал за пару тройку часов http://narod.ru/disk/19106667001/Project1.exe.html конечно не фонтан но для «затравки» пойдет наверно.
    Внес поправки «новая» версия http://narod.ru/disk/19108736001/Рисовалка.rar.html

  • 19 CS  [Москва]

    Ну что? Дельфистов я ненавижу принципиально (у них ёбнутое мышление). Так что поехали РВАТЬ :)
    Встретим по одёжке:
    1. Название проекта — по умолчанию. Плохо. Сразу наводит на мысли о тупом студне, который всё по книжке. «1212» — это к чему?
    2. Аналогично название формы. Кто этой программой будет пользоваться? Все? Это как ну… небритым и в вонючих кроссовках по улице ходить. Вроде ходить можно — но другие как-то косо смотрят.
    3. Шрифт установлен не системный, а MS Sans Serif, который в Windows не используется как системны начиная с версий 2000/ME.
    4. Вбил в количества буквы — вываливаетс критическая ошибка с красным крестом. Этого быть не должно. При этом если вбить буквы в поле «УЗО» — не вылезает никакой ошибки. А я так понимаю что должно — так как там тоже цифровые значения.
    5. Внутри названия элементов управления типа Label1 и Edit4 говорят о полностью отсутствующем стиле программирования как классе. Дорабатывать и поддерживать такой код будет стоить очень дорого — проще будет его выкинуть и написать с нуля.

    После этого программу смотреть неинтересно — гавно, оно и есть гавно. Но любопытство, как известно, Кошку сгубило. Попробуем проводить «по уму» — что по функционалу:
    1. Ввожу запредельные значения. Скажем количество модулей 1232 — ну промахнулся человек, опечатался. Программа куда-то как-то с экрана исчезла. Что это было?! ©
    2. Запускаем снова.
    Так, между делом вкуричваю. Оказывается поля «УЗО» и «Рубильник» — это их ширина на рейке. А известно ли что в щите может стоять узо трёхфазное, которое занимает 4 модуля и однофазное, которое занимает два модуля? И при этом их ширина не проверяется (как я говорил — вписал я туда буквы и никакой ошибки не вылезло)
    3. Задаю три рейки по 12 модулей. Нажимаю Рисовать, таблица заполняется.
    А где наглядность? Кто-то имел ввиду графическое изображение всего и вся? Или эта программа просто заполняет таблицу? Так нафиг она нужна — я и сам могу в экселе таблицу заполнить?
    4. Экспорт в эксель создал лист без единой строки и с 255 столбцов. Ы?
    5. Радиокнопки выбора Автомат/УЗО/Рубильник как должны работать? Запоминать состояние для каждой ячейки? Не запоминают…

    Резюме следующее:
    1. Стиль программирования как у студента. Такому бы я бы не доверил писать ничего.
    2. Прошла неделя кажется? Это за неделю рождено? Это рожается за два часа.
    3. Ну нарисовали мы положим щиток. А дальше куда его? Сохранить, открыть?
    4. Интерфейс построен неверно в корне. Идеальный интерфейс — это двигание графических прямоугольничков. Прям мышкой.
    Средний вариант — мой с заполнением таблицы. Только разница в том, что у меня ВСЯ информация об одном элементе щитка хранится в ОДНОЙ строке таблицы, а не где-то в полях формы или ещё где.
    Тебе нужен не сраный встроенный StringGrid (у которого ДАЖЕ высота строк не отрегулирована), а какой-нибудь продвинутый, чтобы прям в гриде были ComboBox.
    А для саааамого начала тебя надо отослать к древней Майкрософтовской книжке что-то типа http://msdn.microsoft.com/en-us/library/ms997492 и далее по ссылкам. Внимательно прочитай КАК и КАКИЕ контролы и зачем размещаются.

    Дальше мне чего-то рассказывать не интересно.

    З.Ы. Надо MasterWire на мою CRM посадить — пусть щитки рисует :)

  • 20 gamer1986

    Во конкретная критика в конкретных местах теперь есть от чего отталкиваться. Хм может я чего не так делаю но вбиваю букафки в узо и как положено ругается :). StringGrid высота регулируется. Это ты ещё не видел «специализированное» ПО которое стоит 400 тыс. в минимальном комплекте и падает от каждого шороха в здание.

  • 21 CS  [Москва]

    Видел, видел. Ща вспомню. Была какая-то мега-навороченная CRM, что-то под 600 тыр… Во! http://avaerp.com/ — вот это ЖОСТЬ) Тоже дельфи и полное уебанство.

    Отталкиваться надо с той книжки. И учиться правильно проектировать интерфейс пользователтя.
    Ты не понял: в поле для чисел должно быть можно вводить ТОЛЬКО числа. Буквы вообще вводиться не должны. Для выбора типа элемента прямо в StringGrid должен быть Combobox — автомат, узо и т.д.
    Причём отметь, что УЗО в два модуля жрёт сразу две ячейки SG. То-есть из 12ти остаются свободных 10, а у тебя этого нельзя будет сделать — то-есть, ограничить ввод.
    Аналогично выбор количества модулей на DIN-рейке должен быть Combobox, со всеми стандартными их вариантами (в щитках они стандартны). Последним пунктом в этом же Combobox должно быть что-то типа «Другой размер…» и при его выборе должно вылазить окошко, где можно указать свою, нестандартную длину DIN-рейки.

    В идеале, если писать отдельной прогой, то нужно использовать табличное дерево. Узлы — это DIN-рейки, строки таблицы — это элементы. И ТУПО реализовать перетаскивание их друг в дружку.
    До кучи можно сделать файлик типа INI, где будут описываться пресеты для щитков. Ну чтобы тоже было Combobox вида «Модель щитка:» и там список значений типа «Стандартный 12 модулей, стандартный 24 модуля», или прям конкретный ABB UK 540S. А в INI прописывается, что в этом UK 540S 4 DIN-рейки по 12+2 модуля каждая.
    В таблице будут графы: Тип элемента, Количество модулей, Обозначение, Название (для примера). При выборе модели щитка (причём если что-то было уже заполнено, то задаётся вопрос вида «Вы точно хотите сменить модель щитка?») в дереве сразу же появляются узлы вида DIN-1, DIN-2.
    Далее юзер жмакает кнопочку «Новый элемент», и в дерево добавляется новая табличная строка. Он её заполняет как хочет и таскает на любой узел дерева.

    Нужно так: http://www.codeproject.com/KB/tree/treelistcode.aspx
    И САМОЕ главное. Твоей программой никто не будет пользоваться, пока там не будет Открыть/Сохранить. Ибо ну нарисовал щиток. А дальше что?

    И я-то думал, что у тебя будет сразу печать на принтер и рисование именно графикой, то-есть без Экселя. Напоминаю что офис — это платная программа, и многие используют OpenOffice. А там хуяк — экселя-то нету :)

    И наиглавнейшее! Я вот что выдумал :) У меня ж в каждом элементе щитка указывается Номенклатура. А в Номенклатуре в аттаче есть возможность присоединить картинку. Смекаешь? Значит при выводе моих рисунков расположения щитка я могу подставить эти самые картинки и получить вообще мега-наглядный щиток, типа такой херни: http://content.foto.mail.ru/mail/valeryko/1/i-4.jpg

    Я тебя хочу наставить на путь истинный (ну и выебнуться конечно со своей 1С). В том смысле, что оказывается написать программу — это СЛОЖНО. Потому что она должна работать, исключая ЛЮБЫЕ нештатные ситуации.
    Вот например почитай, вникни: http://www.osp.ru/os/1998/06/179592/ Чуешь, чем твои цифирки с буковками в полях ввода пахнут? Поэтому я и сказал, что такому как ты не доверил бы ничего.
    А если писать под микроконтроллеры? Там микросхема. Там вообще не видно того, что происходит внутри. И там малейшая ошибка может стоить ну например выгорания шкафа привода стоимостью в несколько штук баксов, или краха станка… Вот к чему приводят простые букво-цифирки.

    Во-вторых, обращаю внимание что настоящий проограммист (как и любой настоящий Мастер) должен уметь подобрать правильное средство для решения конкретной задачи. Скажем, что-то писать на Дельфи, что-то на Сях, что-то — на 1С ;)
    Конкретно у меня выбрана 1С, потому что у неё документно-ориентированный подход: все объекты являются документами, и могут вводиться «на основании» друг друга, составляя древовидную структуру по всей базе целиком. Ну скажем, документу Договор (который символизирует заказ клиента) подчинены документы План щитка и Получение денег. А документу План щитка подчиняется документ Заказ товара и План работ.
    И всё это делается очень легко: в данном случае сама оболочка уже написана, остаётся только написать банальный код типа занесения товара на склад.
    Поэтому у меня получается огромная система, цельная и многофункциональная. В том смысле, что информацию, которая у меня хранится, я могу использовать как угодно. Ну хоть график построить «самая популярная модель щитка в этом году»: отберу все документы План щитка за год (или за другой период), сделаю свёртку по реквизиту «Модель щитка» и отсортирую по количеству. При этом исходные данные остаются как есть (в этом фишка). И с документами, введёнными три года назад, ничего делать не надо (допатчивать, изменять, подправлять).
    В этом смысле отдельно существующая программа нахрен не нужна, потому что ради каждого нового чиха её придётся дописывать и отлаживать. Ну смотри, вот например сколько и как тебе понадобится времени, чтобы добавить сейчас в свою прогу функцию выбора модели автомата. Так, чтобы оно выдало список — чего надо по щитку пойти купить?
    Это ж очень важно — без этого списка теряется весь интерес. В смысле «а зачем мне рисовать щиток, если для его печати всё равно надо эксель (я там сразу и нарисую) и если всё равно надо считать сколько каких автоматов купить (я и на бумажке могу посчитать)?»
    Задача программы — избавить человека от РУТИННЫХ операций, а не выпустить ещё одни рюшечки :)

  • 22 katuha_b

    «Дельфистов я ненавижу принципиально (у них ёбнутое мышление)»
    А у кого оно иное? ;) А на чем же тогда программировать, если не в 1С?

    Дополнение у Вас интересное, особенно хорошо что есть привязка к базе с материалами!

  • 23 CS  [Москва]

    Так языков полно. Вопрос надо ставить по другому. Не на чём, а ЧТО

  • 24 12

    Когда я был ещё студентом, и только знакомился с основами проектирования и построения АСУ в далёкие 80-е годы, умный препод говорил, что прежде всего нужно понимать, что может быть автоматизировано, в что — нет.

    Иллюстрацией грамотности такого подхода мог служить простой пример. Нужно было оценить порядок затрат чего-то, что исчислялось миллионами миллионов, для чего нужно было перемножить 9- и 6-значное число. Так вот. Самым простым и быстрым способом стало умножение «в столбик», то есть — вручную.

    С другой стороны, нам говорили, что если есть три точки, и известно решение от точки А до точки Б, а нужно найти решение от точки А до точки Ц, то решать надо отрезок Б—Ц, так как он — короче.

    Если есть механизм ведения базы данных, объединяющий в себе архив, бухгалтерию, данные по складу, даже по нескольким складам, подрядчикам, а также по текущим и прошлым работам и всё это объединено единым программным комплексом, способным выдавать отчёты как по конкретным проектам, так и по текущему состоянию дел, спрашивается: — зачем дублировать то, что есть? Хотя бы даже ради поддержания актуальности архива работ. А любой хороший разработчик старается сохранить память о своих работах…

  • 25 CS  [Москва]

    Добавил, пока вчерне, ещё одну фишку. Мы ведь указываем киловатты нагрузки, хоть и примерные? Указываем. И ещё ручками указываем фазу, типо пишем в поле ABC, A, B, C.
    Так теперь оно у меня суммирует нагрузку по фазам, и можно более точно распределять линии по фазам, если трёхфазный щиток проектируешь.

  • 26 comanche

    Прикольная у тебя штука в 1с получилась. Можешь поделиться?

  • 27 CS  [Москва]

    А как именно поделиться? Всю разработку не дам. А вот какими-то кусками кода или ещё чем поделиться — могу.

  • 28 comanche

    Лан не надо, мне кусками не собрать в 1с будет, я ее не настолько хорошо знаю :( Спасибо!

  • 29 CS  [Москва]

    А тогда зачем просишь, если не знаешь 1С? Чувак, я её писал (и пишу) около 4 ЛЕТ! Думаешь, вот этот труд я за просто так отдам? Да и хрен бы с ним, если бы отдавать. Но прога заточена уже лично под меня и под мои нужды. На ней держится и домашняя жизнь (подсчёт денег, квитки на счётчики печатать) — так что не могу дать.
    А описываю на блоге потому, что:
    а) Действительно как программист программисту поделиться с кем-то найденными решениями типа «Оо! Вон ка оно оказывается делается, а я тупил-тупил!»
    б) Распечатки моих щитков я даю именно в таком вот виде, как описано на блоге. Если распечатка уходит налево (типа заказчик говорит — ааа, я ща подумаю, и отдаёт другим) — я всегда могу ткнуть на вот эту статью на СВОЁМ блоге и сказать что это делал Я.

  • 30 Bambr

    «Козябры из проводов (подключение нескольких групп УЗО последовательно) можно было мутить только в том случае, если не ожидается больших токов через такие последовательные соединения.»

    последовательно — это вы имеете в виду монтажную последовательность? ведь электрически эта схема вроде всё равно параллельная. или нет? сорри за ламерские вопросы )

  • 31 CS  [Москва]

    Да, монтажную. Скажем, есть у вас ряд УЗО. Первое питает розетки помещений. Второе — розетки ванной (стиралки). … А пятое-шестое — какую-нибудь варочную в паре с духовкой.
    Вот тут ток сначала пройдёт весь шлейф проводов от первого УЗО до последнего (мы будем считать, что подали его слева), что не есть хорошо. Раньше я разбивал такой шлейф на два, а сейчас просто использую специальную гребёнку, которая сильно упрощает жизнь в этом смысле.

  • 32 InD1G0

    Сурово =)
    И снова мне на глаза попался этот ВВГ-НГ-ls.
    (Сейчас будет не по теме)
    СтОит он ощутимо больше чем просто ВВГ-НГп, так зачем тратить лишнее, если он 1 хер замажется в стены/пол/потолок, где дымить некуда?
    ЗЫ: мой товарищ, который торгует электроматами, поведал мне про новую фишку — ВВГ-НГ-NF! Типа вообще не горит. Не слыхал о таком?

  • 33 CS  [Москва]

    Да лан — пофигу что не по теме =)) Я по умолчанию пишу сразу ВВГ-нг-LS, а там какой будет — такой и будет! Ща с кабелями ОЧЕНЬ хреново стало!
    Так-то, если всё-всё под замуровку — то да, рассуждения верные. Но пишу я по максимуму =)

    Неа, не слышал. Я как с активной работы ушёл — уже всё =)) На кабели забил.

  • 34 elf.arxont

    Давай еще прилепи к компу считыватель штрих-кодов ;) И лазерный гравер, чтобы наносить информацию о сборщике внутри корпуса щита ;)) Тогда точно будет адский цех ;)))

  • 35 CS  [Москва]

    Ща я тебя как обломаю… =)) Я ваще давно думаю побаловаться и купить сканер штрих-кодов. Положим списывать компоненты всякие вон. А так, если ты помнишь — там в базе были шаблоны, по которым штрих-код составляется. И он уникален для каждого документа. И по коду этот документ можно сразу найти.
    А лазерка — всё, пиздец =)) Надо тогда отдельный ввод тащить. И водяное охлаждение делать )))

  • 36 elf.arxont

    Ы! Допиши фишку учета продаваемой продукции из твоих запасов и будешь как в АШАНе автоматы отбивать сканером ;) Типа:
    Заказчик:

    А можно мне еще и вводной автомат на всякий случай на 32А?

    Ты:

    А вот! (берешь автомат, тыкаешь в него сканером) Возьмите! С вас еще ххх рублей.

    А 1С-ка в это время прописывает продажу автомата со склада и получение денег за него в графу «расход денег» =))

    А с лазеркой — насчет отдельного ввода не знаю, а водянку по-любому надо =)))

  • 37 CS  [Москва]

    Это ко мне Meldir так заезжает! ))
    — Блин!! А ты будешь у Валентиныча — купи мне там ещё автомат на 32А двухполюсный!
    — Эээ… ща. Ну-ка погоди! Кажется у меня один про запас валяется! Во! На!
    — О.. Ладно! А закажи у него ещё переключателей E211- тогда.
    — Не! Погоди! Ща! Тебе сколько? Где-то у меня один валялся! Ага! Есть!

    =))) Короче пока без сканера, но периодически я шо-то продаю =))

  • 38 Димка  [Рязань]

    Видно, когда для себя пишешь! Сам такой же….

    А сканер ШК стоит всего 2500 деревянных — купи, поиграйся.
    Например, такой

  • 39 CS  [Москва]

    Воо!! За сканер пасибо!))) Надо будет прикупить. А он, по-моему, обычно клаву имитирует. И просто вбивает скан в текущее активное текстовое поле?

  • 40 Alexiy

    ЗЫ: мой товарищ, который торгует электроматами, поведал мне про новую фишку – ВВГ-НГ-NF! Типа вообще не горит. Не слыхал о таком?

    Есть LS — low smoke (дымит гламурным белым дымом)
    Есть HF — halogen free (типа такой поливинилхлорид, но без хлора — подобен кабелю с оболочкой, содержащей молекулы хлора, только без хлора! :))
    Есть FRLS — fire resistsnt + low smoke (обычно оранжевый — он даже после обгорания ещё некоторое время может успешно выполнять свои функции до замены на новый!)

    NF — это Ниф-Ниф, Наф-Наф или Нуф-Нуф… в крайнем случае NYM/NUM, наверное… Но я не встречал! :)

  • 41 Alexiy

    А я матами не торгую — я бесплатно могу таких электро-матов отсыпать, если мне больно на ногу наступят — не зря на военных сборах 3 недели под неусыпным надзором и руководством чутких офицеров тренировался!

    По теме No comments…
    Сам-то я в MS Access, да на (VB SQL Server Crystal Report) когда-то в детстве ваял… В мозгу уже не так много осталось, но третью нормальную форму помню хоть ночью разбуди… И мой макро-вирус под Word целых 14 месяцев ни одним антивирём не определялся…
    В итоге я всё-же решил прокачивать перса-электрика-проектировщика, а мог бы и кодера БД до 80-го левела прокачать уже! :)

    Короче, смотрю на твои инструменты и ностальгирую… Круто! Отлично задумано и реализовано! Такая аппетитная куча плюшечек прикручена! :)

  • 42 D. Alexey

    Мощно, завидую. У меня руки не доходят. Теперь знаю своё слабое место :)

  • 43 Globus

    RSS нормальный не отдаешь хотя это самый нормальный способ чтения сайтов, наработки выкладывать боишься…. Делая эти вещи ты все равно меньше зарабатывать не станешь, а уровень электриков мб и поднимется. (Лично меня коробит только RSS так как я уже почти забыл что такое бегать по сайтам….)

  • 44 CS  [Москва]

    Alexiy Я к тебе ещё ща на мыло обращусь как к Проектировщику — хочу уточнить начинку шкафа на столб =))
    Дык я раньше прогал, прогал — и ЗАЕБАЛСЯ!! Вообще от всех этих компов =)) И вот пошёл жечь по проводам. Но инструмент понадобился — я и накатал. А потом функций стало больше, больше, больше… =)

    Globus Эээээ. Ну-ка СТОП!! Я не боюсь, а НЕ ХОЧУ. А это разные вещи.
    а) 1Ска — моя ЛИЧНАЯ. Она ваще не готовый продукт для выкладывания. Ну например там кое-где надо UI пилить как следует. Всякие проверки ошибок, вводных данных. Я-то знаю, а другие — нет. И мне этим заниматься не охота. Равно как её потом и поддерживать. Я напрограммировался не для себя до усрачки. Выше крыши. И больше не хочу даже простенькую прошивку для AVR писать. Я с 96-97 года за компиляторами и исходным кодом — хватит =)
    б) RSS? Кому надо — прочитает полную версию. А так как по RSS у меня посты пиздят — нафига туда полностью всё выкладывать?..

  • 45 Gyrfalco

    Добрый день.
    В дополнительных рекомендациях в распечатке Кабельного журнала синий провод также указан как возможный фазный. Пофиксить бы…

  • 46 CS  [Москва]

    Ой бляя!!!!! Точно! ))) А ведь уже распечаток 6 с этим текстом ушло. И ни одна зараза их не читала внимательно!!
    Пофиксил! Спасибо! Чем я там думал в запарке (а этот кусок кода на коленке рожался) — я не знаю!

  • 47 Gyrfalco

    Со всеми бывает. А то что люди не читают — это факт.

  • 48 Димка  [Рязань]

    за сканер пасибо!))) Надо будет прикупить. А он, по-моему, обычно клаву имитирует. И просто вбивает скан в текущее активное текстовое поле?

    смотря какой возьмешь. Тот, что по ссылке — эмуляция клавиатуры. Без драйвера — только в активное поле ввода.
    Можно драйвер использовать, например старый атоловский. Тогда можно получать данные со сканера :
    Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)      Если Событие = "BarCodeValue" Тогда     // ШК в "Данные"   КонецЕсли;    КонецПроцедуры // ОбработкаВнешнегоСобытия()

  • 49 CS  [Москва]

    О! Круто! Порыл инет — интересно там всё! Спасибо!!

  • 50 Net_Cat

    …я как-то наткнулся на программу PDC от ABB. Она предназначена для создания однолинейных схем и компоновки шкафов, включая Smissline. Там выбор оборудования и шкафов из каталогов. Её более расширенная версия даёт возможность работать со шкафами TriLine (код лицензии по звпросу). Но, если честно, она какая-то мутная в плане совместимости. На моей win 7×64 она запускается, но настолько коряво, что работать невозможно, ошибки и вылеты через раз. Далее, они там рекомендуют обновить базу данных Article.mdb, которой уже нигде нет. В общем, надеялся на нормальный софт, оказался полный шлак. С бубном танцевал несколько дней… Прошло полгода, на днях повторил процедуру — всё то же самое… Похоже, программа основана на Access. Но ABB в этом смысле меня неприятно удивили. Что-что, а внятный софт под свои продукты они могли бы выложить в паблик.
    Вот ссылки на текущую версию:
    http://smissline.blogspot.ru/p/blog-page_10.html
    Я к чему пишу. Может, кто-то смог удачно запустить? Без вылетов и сообщений об ошибках? Или есть достойная альтернатива? Хотя бы как у Hager Schema 1-2-3, но заточенная под ABB?

    …п.с. Забыл добавить. Буквально недели три назад местное представительство проводило семинар, куда я ессно втиснулся). Правда, оказалась тема не по модульному оборудованию, а по электроустановочным изделиям… ну ничё, тоже полезно, в общем. Так вот. Я потом к ним пришёл на след. день с вопросом про софт для шибко умных отморозков-одиночек) — ответили, что в с этим у ABB полный капут и внятной причины этого не назвали. Как и про PDC.
    Блин.

  • 51 CS  [Москва]

    А попробуй ткнуть exeШнику режим совместимости с WinXP?
    АББ для отморозков-одиночек обычно ничего не делает. Это типа как у Rehau: трубы стоят дешёво, а комплект инструмента — безумно дорого. С расчётом на то, что спец, которому РЕАЛЬНО надо — купит и будет использовать. А левый чувак обойдётся.

  • 52 Net_Cat

    …да конечно пробовал режим совместимости. Глухо.
    Попробую обновить Access.
    Программа бесплатная на самом деле. Т.е. покупать её не надо, а просто зарегистрировать. Про отморозка-одиночку это для красного словца. Под этим я понимаю любого специалиста-фрилансера, не работающего в мегакорпорациях. Просто высококвалифицированный специалист.
    А ты работал в Panel Design Configurator? Может, я что-то упустил… Проблема именно технического характера. Просто не хочется ввязываться в с ними переписку, но видимо, придётся.
    п.с. Только что нашёл Article.mdb на сайте. Но ничего не изменилось. Надо копать дальше.
    …Т.е., проблема не в том, чтобы купить. А в том, что и у «спеца, которому реально надо» оно тоже НЕ заработает просто так. Вот в этом трабл.

  • 53 CS  [Москва]

    У меня на XP всё идёт, есть она у меня. Без лицензии, которая обычная базовая установка. Так что вродще пашет. А почему на Win7 не идёт — я хз.
    Как хоть падает?
    Точнее, я догадываюсь в чём фишка. В Win7 переделали нахуй блядь все-все пути к Rpogram Files и к Documents and Settings, от которых прога может охуевать.

  • 54 Net_Cat

    …Ото наверное оно — пути. Ладно, буду думать). Спасибо за наводку, CS.

  • 55 felixrus

    CS
    4 июля 2011 в 17:48
    Да я ж раньше чертил, вот: https://cs-cs.net/wp-uploads/2009/09/EM28-Scheme.gif , а потом мне стало ОЧЕНЬ лень чертить эту хреноту руками под каждого. Вот я и накатал программку…

    А можно поподробнее как и через что вы рисовали эти схемы. Возможно у вас шаблоны какиенибудь остались которыми не жалко поделиться. С фотошопом в принципе владах.

  • 56 CS  [Москва]

    Да тут часто спрашивали. Visio.

  • Кто в чём схемы рисует?
    Понятно, что CS в своей 1С-ке, а остальные в чём?

    Разнообразные visio и draw, на мой взгляд, плоховато подходят, т.к. они про номенклатуру ничего не знают.
    В XLS рисовать линейные схемы замучаешься.

    Мне не удалось запустить ABB’шную, Legrand’овскую и т.п. программы на Mac’е.
    Поэтому взял и набросал свой вариант: http://recordit.co/5WjNUvAeKX

    Норм или в топку?

    Продублировал на youtube: https://youtu.be/ofO5nqCHhTk

    Если пойдёт, можно и графические штуки рисовать.
    Ну, т.е. созданную модульку расставлять по рейкам.

  • 58 mummykbf

    Владимир Ситников
    7 мая 2016 в 21:45
    Кто в чём схемы рисует?

    я для своих нужд использую Компас 3d и Adobe Illustrator

  • 59 CS  [Москва]

    Во! Идея охеренская!
    Добивай туда ещё указания кабеля — и будет вполне себе клон моей системы.
    А с графикой будет интереснее.
    Тока я щас найду пост про CRMку и перенесу комменты туда. Не место им в этом посте, хорошо?

  • Тока я щас найду пост про CRMку и перенесу комменты туда. Не место им в этом посте, хорошо?

    Точно!

    Во! Идея охеренская!

    Спасибо. А комментировать/направлять/тестировать желающие есть?

    Добивай туда ещё указания кабеля – и будет вполне себе клон моей системы.

    Тут, на самом деле, вопрос как указывать сечения, чтобы удобно было.

    На линейной схеме (ну или как называется дерево) непонятно как рисовать, например, кросс-модуль. Или контактор, катушка которого запитывается от ПЛК, и который коммутирует 4 разных линии.

    Как вариант — в линейную схему «контактор» или «отдельные шинки из кросса» добавлять в нужные места. А «объединять» в один контактор уже на графической схеме.

    С внешими кабелями, наверное, попроще. Тут можно сделать «модульку» с классическими потребителями «стиралка», «полотенцесушитель». Я имею ввиду следующее: как на видео ставится автомат и узо, так же может ставиться и «полотенцесушитель», про который система знает, что «ну него обычно потребление такое-то, сечение проводов такое-то, и т.п.» Система сможет подсказывать «для полотенцесушителя нет смысла ставить УЗО типа A, и достаточно AC».

    Вот у меня вопрос, что должно быть первичным: «кабельный журнал» или «линейная схема»?
    Т.е. отдельно заполняем кабельный журнал и на него ставим ссылки в линейной схеме, или строить кабельный журнал на основе линейной схемы?

  • 61 CS  [Москва]

    Ага, а то как раз и пост по теме и его незаслуженно забыли =)
    Ну я тестировать не буду. Ежели кто ща в комментах увидит — то может и подтянутся. Можешь на YouTube видео на этот пост дать, чтобы они комменты тут и тебе и писали (или где-то ещё).

    Ага, у меня та же фигня с катушками и прочим. Причём я думал как сделать и решил что даже если какин-то связи рисовать — всё равно запутаешься. В итоге я себе в комментариях к блоку пишу, мол «управляется ПЛК». И потом создаю уже таблицу типа «IO ПЛК».
    Вообще я уже всё себе поделил. Что у меня от руки рисуется упрощённая графическая схема того какие блоки чего делают, а потом я прописываю блоки уже детально.
    У меня самое щас неудобное — именно раскидывать по рейкам. Я готов даже кнопки кликать мышкой, но лишь бы придумать так, чтобы из самой 1Ски всё делать, а не сторонний софют юзать.

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

  • Ты знаешь, у меня схема первична

    А в реальности сам щит никому не нужен.
    Нужно, чтобы свет включался, и чтобы холодильник работал.

    При проектировании щита, конечно, хочется сказать, что «щит главное». Я начал с того, что нарисовал где какие розетки/выключатели должны быть. Потом перешёл к щитку и задался вопросом «а не надо ли было от щита плясать».

    Сейчас склоняюсь к тому, что правильнее заводить «список линий», и потом ссылаться на них при проектировании схемы щита.

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

    Ну, тут система может подсказать «вон, у вас кабель не подключен». Прямо сам кабель жёлтеньким подчеркнуть.

    Кстати, CS, ты на 1С v8 перешёл? Наверняка же в с самой платформе полезные фишки появились.

  • 63 CS  [Москва]

    Но щит нужен мне, потому что мне надо сделать, чтобы свет и холодильник работали. И инструмент я создаю не для заказчика, а для себя.
    А то ты как-то глупо загнул. Заказчику и отвёртка не нужна. Но она нужна тебе.

    Ну так щит и есть список линий. Всё верно. Я с него и начинаю. А из линий получается и модулька щита (и потом вокруг неё добавляется вся «обвязка») и список кабелей.

    Нет, на 8 не перешёл. Чтобы перейти — там надо около года сидеть и заново всё писать, потому что там язык сменился. Поэтому остался на 7.7. У неё главный профит — это то, что вся база в одной папке и софт тоже. А восьмёрка по диску расползается по полной.

  • А то ты как-то глупо загнул. Заказчику и отвёртка не нужна

    Если реально — не нужна. Нужно уважение жены (а его в магазине, к сожалению, не купить), поэтому выбирается более долгий путь — «повесить картину на стене». «Дырку в стене» и «закрученный в неё шуруп» в магазине тоже не купишь (хотя, кто-то может и мастера оплатить ради этого), поэтому народ покупает перфоратор и отвёртку.

    В бытовом случае разницы между «хорошей» и «плохой» отвёртками не будет. В профессиональном случае хорошая отвёртка будет экономить время, уменьшать количество походов к врачу и т.п., поэтому в профессиональном сегменте есть спрос на «пипец какие дорогие отвёртки».
    «отвёртка ради самой отвёртки» вряд ли нужна. «Отвёртку ради самой отвёртки» покупают те, кто получают кайф от закручивания/откручивания. И, если бы этот кайф можно было купить в магазине, то покупали бы его, а не отвёртку Ж)

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

    И инструмент я создаю не для заказчика, а для себя.

    Для себя в каком смысле? Чтобы «сидеть и блогпосты фигачить <смотрите какой крутой у меня инструмент>» или чтобы «минимизировать усилия/затраты на проектирование/поддержку щитов»?

    Я говорю про вторую составляющую — минимизировать усилия на проектирование/поддержку.
    И, да, я, в первую очередь, рассматриваю тех, кто сам в состоянии собрать щиток.
    Тому, кто не отличает УЗО от автомата нужно не щиты проектировать, а теорию учить (либо обращаться за проектом к тем, кто разбирается).

    И тут я вижу 2 варианта
    1) Клиент говорит «у меня такие-то потребители». Мастер, говорит: реально не такие, и наверняка будет кондиционер, фигиционер и т.п.
    По этому списку линий (фактически, это почти список кабелей) составляется щиток.
    Т.е. список кабелей первичен (и кабели уже можно закладывать), а к нему уже подбирается щиток.

    2) Клиент говорит: «у меня…». Мастер, проигнорировав вообще всё сказанное: у меня есть готовая модель щитка, берите её (ну добавим-удалим пару автоматов и всего делов).

    Собирать одну и ту же модель щита мастеру, конечно, проще.
    Вот только тогда ты сваливаешь всю работу по «адаптации этого щита в реальность конкретной квартиры» на плечи клиента.

    Или вообще всё это ересь, и срабатывает 3-ий вариант?
    3) 40 потребителей? Значит (методом пальца в небо), 15 автоматов и 10 УЗО. Соберём щит — посмотрим как получится. Останутся лишние — пойдут на следующий заказ. Нехватило? Возьмём из запаса.

  • Немного подумал, и выразил вышесказанное короче:

    C точки зрения мастера, нужно оптимизировать время от разговора с клиентом до получения денег.
    Т.е. либо делать все щитки под копирку, либо учиться «быстро плясать от списка линий».

  • 66 CS  [Москва]

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

  • Тем более что у меня в ней кроме щитов много чего ещё считается и из 1С как из системы я уже не слезу

    Пересадить тебя с 1С-ки это вообще мега-win будет.
    Если на это ориентироваться, то даже если не пересадить, то достойная софтина получится.

    И, да, в 2008ом 1С было весьма разумной платформой для щитоводства.
    Да и сейчас, наверное, тоже не самый плохой вариант.

    Минус 1С-ки в том, что там тяжко с графическим редактированием.
    Таблицы-документы ещё как-то можно редактировать, а графику, ссылки, поиск — это всё хромает.

    Честно говоря, давно на 1С ничего не делал (было же время!), но, если правильно помню, то ссылку можно делать только на документ. Т.е. если нужна ссылка с автомата на кабель, то автомат и кабель должны быть документами.
    А, если учесть, что 1С не предоставляет «админку по умолчанию», то получается нездорово. Например, если сделать «кабель» отдельным документом, то нужно как-то рисовать форму «создания и заведения параметров» этого самого кабеля.

    Вот ты, с высоты своего полёта, что скажешь про подход «начинать от потребителей»?

  • 68 CS  [Москва]

    А зачем меня с неё пересаживать, если (ещё раз для тупых) я внеё считаю не только щиты, а ещё и водосчётчики, деньги, склады, товары и прочее?
    Прикажешь мне это писать и все данные переносить оттуда? А есть ли у меня время, чтобы писать всё с нуля?

    Т.е. если нужна ссылка с автомата на кабель, то автомат и кабель должны быть документами.

    Чё?

    что 1С не предоставляет “админку по умолчанию”

    Што это?

    Блин. Ты не читаешь что ли? Вот у меня пост. Вот там описано как это работает. Как раз на 1Ске. И чего? В чём проблема?

  • … Т.е. если нужна ссылка с автомата на кабель, то автомат и кабель должны быть документами.

    Чё?

    Вот тут поле «Имя группы» это просто текстовое поле? Или ссылка на группу ввода конкретного заказчика?
    https://cs-cs.net/wp-uploads/2013/06/1CSch01-DocSh.gif

    Я про то, что нормальных ссылок в 1С нет. Или ошибаюсь?
    Нормальная ссылка это когда переименовываешь группу «Розетки: спальня» в «Розетки: спальня 2», оно везде переименовывается само, и не нужно ходить/вручную обновлять в тех документах, где используется «старое» название.

    Или ты все подобные данные (например, названия вводов/помещений каждого клиента) заносишь в «1С справочник»?

    что 1С не предоставляет “админку по умолчанию”
    Што это?

    Имел ввиду то, что когда создаёшь новый документ (в конфигураторе), то нужно вручную рисовать схему. Похоже, тут напутал. Посмотрел видео, даже в 7.7 было «автосоздание формы» по набору реквизитов. Т.е. создавать документы на каждый чих (кабель-документ, клемма-документ) в целом можно (указал нужные реквизиты — форма редактирования хоть плохонькая, но создалась сама).

    Ты не читаешь что ли? Вот у меня пост. Вот там описано как это работает. Как раз на 1Ске. И чего? В чём проблема?

    Ты говоришь, что «в 1Ске можно создать программу для щитоводства». То, что ты пишешь в плане своего UI я вижу и понимаю.

    Я же говорю больше о том, что 1С как платформа (конфигуратор) имеет ограничения.

    Например, ты пишешь:

    Когда у вас щиток занимает где-то так строк 200 в таблице (мы же там описываем ещё и клеммы и прочую фигню), а потом заказчик говорит “Надо добавить ещё парочку линий” – то очень-очень ломает тыкать штатные 1Совские кнопки “Вверх” и “Вниз”, чтобы поставить строку на нужное место таблицы. Поэтому была сделана команда меню, кнопка и горячая клавиша F7, которые открывают вот такое окошко перестановки строки таблицы:

    А в более подходящей для этого платформе вообще такой проблемы не было бы.
    В моём видео есть такой момент: https://youtu.be/ofO5nqCHhTk?t=114
    Берём РН-106 и тащим в нужное место схемы. Хоть мышкой, хоть клавиатурой, хоть ctrl+c/ctrl+v. При этом, этот функционал вообще с платформой пришёл. Я ни строки кода не написал на его поддержку.

    Или тут:

    Теперь, набивая строки щитка, мы можем не лазить каждый раз в Номенклатуру, а сначала заполнить графу Номинал из списка.

    Да, autocomplete это хорошо. Но в 1С сделать автодополнение это целая история.

  • 70 CS  [Москва]

    Вот тут поле “Имя группы” это просто текстовое поле? Или ссылка на группу ввода конкретного заказчика?

    Текстовое, потому что именно оно и есть источник всей документации. Все проектные названия берутся именно отсюда — из этого поля. Поэтому оно обязано быть текстовым. Что не так?

    Я же говорю больше о том, что 1С как платформа (конфигуратор) имеет ограничения.

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

    Я так понял, что ты хотел спросить как я делаю какие-то задачи. А ты ответы на это получил и начал засирать её.
    Делай свою. Я могу тебя послушать, если ты мне скажешь как мне за один день (максимум два) перейти на твою систему и сразу же начать пользоваться 500 гб данных — то я начну тебя слушать.

  • Текстовое, потому что именно оно и есть источник всей документации. Все проектные названия берутся именно отсюда – из этого поля. Поэтому оно обязано быть текстовым. Что не так?

    Не так то, что «имя группы» у тебя дублируется. Надо переименовать — всё, беда-печаль. Иди и остальные вхождения переименовывай.

    Или, например, хочешь в кабельном журнале использовать эти самые имена — хрен-то там. Штатными средствами 1С будет ещё одно текстовое поле со всеми вытекающими проблемами поддержки уникальности/понятности.

    “Я не могу никому собирать щиты около полугода, вся инфа потеряна, ждите” и потерять все

    Что мешает собирать новые щиты в 8-ке, старые завершить в 7-ке?
    Удалять 7.7 же никто не заставляет.

    Оправдан ли переход на 8-ку это другой вопрос. Но переход на 8-ку это явно не «потерять всё».

  • 72 CS  [Москва]

    Не так то, что “имя группы” у тебя дублируется. Надо переименовать — всё, беда-печаль. Иди и остальные вхождения переименовывай.

    Где дублируется? У меня всё прекрасно работает.

  • Я так понял, что ты хотел спросить как я делаю какие-то задачи. А ты ответы на это получил и начал засирать её.

    Цели засрать что-то у меня нет.
    Я не собираюсь автоматизировать водосчётчики и банковские счета.

    Был такой вопрос (реально, он основной в обсуждаемом софте автоматизации электрощитков):

    Вот ты, с высоты своего полёта, что скажешь про подход “начинать от потребителей”?

    он же в другой формулировке:

    Т.е. либо делать все щитки под копирку, либо учиться “быстро плясать от списка линий”.

  • 74 CS  [Москва]

    Что мешает собирать новые щиты в 8-ке, старые завершить в 7-ке?

    Всё, чувак. Вот щас ты меня вывел. Ты дибил? Я тебе уже четвёртый раз пишу о том, что кроме щитов у меня в этой базе находится много другого, для чего она нужна мне каждый день в рабочем состоянии.
    Чтобы переписать это на восьмёрку — мне требуется около полугода. Я на это идти не готов.

    либо делать все щитки под копирку, либо учиться “быстро плясать от списка линий”

    У меня написано, как делаю я. В этом же посте.

  • Где дублируется? У меня всё прекрасно работает.

    Я не про то, что оно «не работает». Разумеется, работает. Да, возможно, дублирование это неправильное слово в конкретном примере.

  • 76 CS  [Москва]

    А про что?

  • Про то, что «использовать в нескольких местах одно и то же текстовое поле» тяжело.
    Если грубо, то это то же самое, что хранить список линий в блокноте, список автоматов в xls, а схему в Visio. Оно, конечно, работает, но есть способ сократить рутину.

    Ты делаешь «кабельный журнал» на основании (в смысле 1С) «плана щитка». Да, это способ обойти ограничение 1С, запрещающее ссылаться на «текстовые поля» (название кабелей просто копируются).
    Не вопрос, так работает, и я понимаю это.
    Не исключаю, что сама возможность создать «кабельный журнал» несколько раз на основании одного и того же плана щитка может быть даже удобной (например, показали клиенту «журнал №2», внесли правки в щит, и уже «журнал №3»).

    У меня же мысль была использовать «список линий» как самодостаточную единицу исходных данных.
    Т.е. заносим список линий, а в щитке ссылаемся на линии.

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

  • 78 CS  [Москва]

    …как ты замучил меня. Ты меня совсем не хочешь понимать и не хочешь понимать, что и зачем я задумал. Ну или просто хочешь обосрать, не вникая в то, что я сделал и чем пользуюсь? ОКей, продаю тебе идеи. Воруй! Копирайты за мной.

    Про то, что “использовать в нескольких местах одно и то же текстовое поле” тяжело.

    Почему тяжело-то? Линия называется везде едино, и всё. Если она зовётся как «Свет: Зал», то так везде и должна зваться.

    Да, это способ обойти ограничение 1С, запрещающее ссылаться на “текстовые поля” (название кабелей просто копируются).

    Дуракштоле? Какое ограничение, если в 1Ске полная объектная модель через точку?
    Я могу написать легко «ПланШита.Группа» где мне в задницу клюнет. И могу из этого же документа печатать и кабели, и их ID, и длину, и место подключения и ток линий рассчитывать и нагрузку по фазам и кучу всего.
    Документ «Кабельный журнал» сделан не для того, чтобы ограничение обойти. А для того чтобы можно было расписать ВСЕ кабели в проекте, а не только те, которые к щиту подходят. Чтобы можно было внести так:
    1. Розетки: Зал (от щита — в зал)
    2. Зал Шлейф 1 (от Зал Блок 1 — в Зал Блок 2)
    и так далее. Или вообще любые кабели вписать дополнительно.
    Штатно документ заполняется автоматом и там же автоматом прописывается, какие кабели куда надо подключить (куда фазу, а куда — ноль).
    И это адски удобно, потому что список кабелей у тебя не зависит от щита. Щит ты можешь коцать, перетряхивать, а кабели заказчик прокладывает по тому самому списку. И только когда щит собран — ты список можешь тронуть и подкорректировать, если это надо.
    Поэтому это не «огарничение 1С обойти», а глубоко продуманная и задуманная штука. Ясно?

    У меня же мысль была использовать “список линий” как самодостаточную единицу исходных данных. Т.е. заносим список линий, а в щитке ссылаемся на линии.

    Да без проблем. Я не стал этого делать, потому что тогда мне пришлось бы править всё в нескольких местах сразу: чуть что поменялось — сначала правь иди список линий, потом ссылки на него (ведь ссылки же будут как-то запоминаться — по объекту, по ID — и надо будет делать фишку «Замени эту ссылку на другую во всех местах»)… нах мне это надо, если у меня линии сразу в щите и генерируются и если я правлю щит — то правлю линии.
    А для быстрого создания линий у меня есть шаблоны. В которых даже комментарий типа «Оставить хвост в 1,5 метра и подключить его напрямую в варочную» прописаны вместе с номиналами автоматов.

    И, похоже, ты не считаешь правильным оставлять исходный список линий (хотя, ответ на этот вопрос хорошо бы получить без призмы 1С).

    Хера тебе с два! Для этого у меня есть документ «Техническое задание», где я собираю всю исходную инфу. В том числе список линий или сводную таблицу нагрузок. Там же можно автоматически проставить под них шаблоны (автоматом из того же окошка). Поэтому если это переносится в щит — то сразу набивается автоматами и нагрузками.
    А расставлять УЗО и прочее — это и остаётся творческая часть.
    Так что я бы на твоём месте перестал так обсирать мою систему и поучился бы методам и приёмам. Вообще, возьми тэг «CRM» и посмотри, что у меня в базу заложено и насколько удобно это прогать на 1С. Без 1С мне пришлось бы создавать свой движок базы, следить за полями, таблицами… целостностью данных.
    А в 1Ске я например могу откатить время на неделю назад, отменить проведение нужного документа — и она автоматом удалит всего его изменения во всей базе, и я автоматом на думая что где поменялось, всё равно получу правильные итоги и данные.
    И тут у меня и номенклатура, и склады, и учёт товаров, и вложения, документация, свойства, куча всего.

    CS-DB-Templates

  • 79 CS  [Москва]

    А ещё есть шаблончики начинки щита. Я их пока не дополнял, но туда войдут все типовые узлы (ПЭФ, сеть-генератор, обвязки UPSов и прочая стандартная фигня).
    Поэтому у себя в базе я решил ВСЕ вопросы, кроме того как быстренько всё ставить и двигать по рейкам. Вот именно с этим у 1С плохо, да. Но я и этот вопрос решу.

    CS-SH-Templates

  • А для быстрого создания линий у меня есть шаблоны

    Это то, о чём я говорил тут:

    2) Клиент говорит: “у меня…”. Мастер, проигнорировав вообще всё сказанное: у меня есть готовая модель щитка, берите её

    Т.е. заполнение рыбы по готовым шаблонам.

    Так что я бы на твоём месте перестал так обсирать мою систему и поучился бы методам и приёмам

    Да чего ты всё на личный счёт воспринимаешь?

    Я ж говорю, хорошо, что в одну систему многое свёл.

    Про «ограничения платформы» я не в смысле «твоя crm гавно», а в смысле «на другой платформе сделать подобное (или его часть) может оказаться проще».
    Сам же пишешь, что без 1С (скажем, на ассемблере) неподъёмно было бы.

  • 81 CS  [Москва]

    Дублирую коммент из МастерСити:
    А хочешь я тебе и тута мысли изложу. Мы сегодня ещё с камрадом говорили на эту тему. Итак, мысли для осмысливания и для новых идей:

    1. Ещё самое важное — как вообще заставить клиента выдать техзадание. Вот тут у меня два варианта. Один — это всякие правила или методчика. Так у меня и сделано, потому что мне не нужен поток всех, кого попало. А другой вариант — сделать какой-нибудь хитрый файл, форму HTML или чего-то такое, где юзер тыкал бы галки и говорил «Добавить комнату» — а там кликал свет, розетки, и так далее.
    Дальше это дело валится на мыло, а потом копипастится в программу, а программа сразу набивает тебе линии.

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

    3. Дальше мне понравилось как сделал ты — парсинг на лету в плане проверки ошибок. Такое я могу сделать и у себя, просто не делал пока. Скажем, просуммировать номиналы автоматов и проверить ток УЗОшки без проблем.
    Я это (обход структуры щита) пока использовал для автоматического генерирования подключений (формата Фаза: Q12, Ноль: N05).

    4. Графическая расстановка компонентов нужна конечно, потому что таблички — это жесть. У меня вот именно этот вопрос не реализован и именно на него я матерюсь. На другие вопросы (таблицы, выбор модульки, создание схемы) пока не матерюсь, значит проблем они не вызыают.

    Чего ещё может сгодиться?…
    Дальше вот как (ваще мы это на встрече сообщества как-то обсуждали и на двагеря разделились). В общем, есть ещё два варианта:
    а) Автоматическая генерация типовых схем щитов. Это вот когда ввод однофазный, штук 6 узошек, кучка автоматов — и всё. В принципе программно можно сгруппировать систему, что она будет отбирать линии со словом «Свет», «Розетки», «Кухня» (при условии что они верно заданы — а это можно сделать HTML-формой заказа) и группировать их по УЗОшкам с аналогичными названиями. Дальше проверять номиналы — и вот тебе и схема.
    Но это хорошо, когда щит простой — как раз для того, чтобы головой не думать, а поставить такие щиты на поток.
    Мне это уже ни к чему, потому что я начал возиться сам знаешь — с большими щитами, где сначала надо много думать, а потом делать, чтобы не ошибиться.
    Поэтому вариант
    б) Формализация техзадания теми или иными способами, генерация линий, а потом ручное творчество. Я вот по этому пути и пошёл, и трабла у меня только с расстановкой компонентов мышкой.

    А ещё даю свои методики. У меня щит проектируется такими этапами:
    1. Техзадание, которое делится на две части: ту самую таблицу потребителей, нагрузок и видов питания и текстовое описание вида «А ещё в щите стоит реле уровня, которое управляет насосом по сигналу от реле давления, охранной сигнализации или по уровню в баке».
    2. Дальше я выделяю из техзадания виды питания, которые должны быть в щите (скажем, неотключаемое, отключаемое, отключаемое только сеть итак далее).
    3. После этого я проектирую щит до кросс-модулей питания. Эта часть как раз мне сейчас самая интересная настолько, что я даже думаю собирать щиты частями. Скажем, отдавать шкаф до кросс-модулей на ABB, а потом заказчиу пусть для групповых линий ставит то, на чего бюджета хватает или чего нравится.
    4. А после кросс-модулей как раз и остаётся самая рутина — набить линии и распихать их по разным видам питания.

    И в итог получается вот что. Автоматизировать сложную часть (автоматику, управление питанием IPM, всякие секции, переключения) сложно, потому что тут и есть для меня творчество и изобретательство. А рутинная часть у меня давно автоматизирована ужо. Ну разве что нельзя из мыла текст скопировать и сразу список автоматов получить.

    Вот! Поэтому попробуй, перевари мой поток и подумай:
    * Может разделить твою систему на какие-то модули или плагины?
    * Под какие именно щиты её стоит заточить?
    * Что стоит автоматизировать по полной, а где оставить простор для творчества.

  • 82 Rem

    Извиняюсь за некропост, но глаза зацепились за «Visio рисует элементы медленно, а не моментально.»
    На самом деле для этого есть свойство «показывать обновления на экране».
    Перед началом отрисовки скрываем, после цепочки команд показываем. Ускорение получается до сотни раз.
    https://msdn.microsoft.com/en-us/vba/visio-vba/articles/application-screenupdating-property-visio

  • 83 CS  [Москва]

    О, пасибо! У себя оставлю анимашку, потому что так прикольнее. А на будущее буду знать.
    Я, когда себе код делал — просто макрос накидал и оттуда код стянул в 1Ску. И про это свойство даже и не искал — думал, что «пока только попробую».

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

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