О вреде жестких BPM или особенности CRM систем для сферы услуг




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

71 Comments

  1. GreenFox

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

    Reply
  2. Franco

    Беда регламентов — часто люди делают только то, что ими предписано, например:

    -продавец интернет-магазина отвечает, что заплатить за товар безналичным расчётом нельзя, поскольку им ничего не сказали о расчётном счёте его работодателя;

    -прачечная не берёт одежду в чистку, поскольку приёмщик не знает, что на то или иное пятно уже есть реагент;

    -врач не выписывает новые эффективные препараты, т.к. никогда их не выписывал;

    -программист не может добавить простую возможность в конфигурацию, поскольку она на поддержке, а внешнюю обработку делать ‘не принято’.

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

    Reply
  3. sovital
    Если разработчик электронного документооборота вздумал что он умнее человека, значит надо накол такого разработчика садить, и уж лучше бумагу использовать.

    Я считаю, что на кол надо садить руководителя, который сам не вникая во все нюансы работы решения дает задание разработчику. Разработчик не экстрасенс. Такое перекладываение ответственности с носителя информации на разработчика уже загубило немало проектов. До тех пор, пока не будет порядка и системности в голове заказчика (носителя информации), порядка со стороны разработчика (и тем более в дальнейшем у конечного пользователя) не будет.

    Reply
  4. Franco

    (3) sovital, согласен. Однако следует и разработчику помнить об этих подводных камнях, сразу поправляя и предостерегая заказчика.

    Reply
  5. rayastar

    вообще не понял о чем. как будто начало и конец оторвали

    Reply
  6. (1)(5)

    амсори 🙂 статью писал с прицелом на специалистов по управления бизнес процессами.

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

    Reply
  7. nurpoz

    (6)

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

    Reply
  8. Evgen.Ponomarenko

    (6)

    Тема безусловно интересная, хотелось разворота шире и глубже ))) в особенности в сторону ACM.

    Если разработчик электронного документооборота вздумал что он умнее человека, значит надо накол такого разработчика садить, и уж лучше бумагу использовать.

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

    Тезис первый: Если программа ограничивает бизнес в возможностях — зачем она такая нужна?

    Тезис второй: Мир бесконечен в своих проявлениях — приходится решать, что следует автоматизировать, а что нет. Бумага это тоже носитель информации.

    Reply
  9. nurpoz

    (9)

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

    У меня есть идеи по реализации, но не хватает матчасти именно в АСМ, хотелось бы с чего-то простого и наглядного начать.

    Reply
  10. bayce

    Если автор мог бы добавит несколько реальных примеров, по-моему статья стала бы более понятная.

    Не хватает примеров.

    Reply
  11. EarlyBird
    я долго думал над реализацией идей в 1С и пришел к выводу что это не реально или крайне сложно и дорого.

    1С слишком каменная система.

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

    Reply
  12. EarlyBird

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

    Так сказать, с руками по локоть в коде.

    Но ты не разработчик, ты просто стоишь рядом с 1С, и кормишься на внедрениях.

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

    Reply
  13. TODD22

    (2) Franco,

    -прачечная не берёт одежду в чистку, поскольку приёмщик не знает, что на то или иное пятно уже есть реагент;

    -врач не выписывает новые эффективные препараты, т.к. никогда их не выписывал;

    Какие то наивные и притянутые у вас аргументы.

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

    Да и рассуждать что врач не выписывает потому что никогда не выписывал глупо. ИМХО познакомься для начала с работой врача.

    Reply
  14. wondermaker

    Что-то «замудро» написано.

    В CRM есть типовые процессы, которые почти не связаны с темой.

    В той же CRM 2.0 есть быстрая продажа, а есть более разветвленная схема, учитывающая многие аспекты. И что-то я там не наблюдал проблем с тем, что выбрав какое-то направление продажи нельзя оформить коммерческое предложение (КП) по другому товару или как-то жестко ограничить пользователя в выборе. Может у вас так было решено кем-то «мудрым»? Сами себя загнали в угол? Ну так это не к системе претензии предъявлять надо.

    Может примеры приведены не совсем корректно? Что мешает понять на этапе оценки что же именно нужно и продолжить работу в нужном направлении?

    В чем проблема составить в рамках подготовки КП несколько коммерческих предложений? Ну и что, что услуга другая. Это в какой такой CRM есть такие жесткие ограничения?

    И в какой такой системе CRM такая «безошибочная» схема работы с клиентами?

    > 1С — можно отнести к современным BPM-системам в части того модуля, который там предназначен для схематизации процессов

    А более глубокий анализ можно увидеть? Или хотя бы условия этого анализа. На каких первичных данных основано это мнение?

    Да, CRM от 1С не самый гибкий и удобный продукт, но тут знаете ли, на вкус и цвет товарищей нет.

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

    > А сменил процесс, тут же меняется окружение. Подключаются нужные секции, поля, каталоги и др.справочники, требуемые для правильного выполнения услуги

    Может тут путаница в понятиях или использование системы не совсем по назначению? Вы оформляете услуги в CRM? Используете её как оперативную систему учета выполненных работ?

    Reply
  15. Franco

    (14) TODD22,

    >>то не проблема регламента и человека его состовлявшего. Это косяк того человека который не донёс до приёмщика что появился такой реагент который выводит определённые пятна. Регламент это инструкция к действию.

    То есть в регламенте ‘забыли’ прописать доведение до сведения приёмщика информации о пятнах и реагентах, их выводящих.

    >>познакомься для начала с работой врача

    Сводите ребёнка к участковому педиатру.

    Reply
  16. TODD22

    (16) Franco,

    То есть в регламенте ‘забыли’ прописать доведение до сведения приёмщика информации о пятнах и реагентах, их выводящих.

    Регламент приёмщика и регламент «доведения до сведений» это разные регламенты ИМХО. А то так получится что у нас будет один супермегарегламент для всех и сразу

    Сводите ребёнка к участковому педиатру.

    Поработайте в медицинском центре, автоматизируй формирование медицинской документации, учета медикаментов в поликлинике, сделайте медицинскую базу для проведения проф осмотров на предприятиях 3000+ сотрудников. И поучавствуй в проведение данного увеселительного мероприятия. Познакомься поближе с такими профессиями как врач общей врачебной практики, травматолог-ортопед, кардиолог и тд. Хотя бы поинтересуйся у них как они работают и чем занимаются.

    А то многие рассуждают что им не те таблетки прописали или не то лечение назначили… Выучись на врача, стань кандидатом мед наук, сядь на место врача, возьми на себя ответственность(не забывай так же что у врача ещё и уголовная ответственность есть), поработай лет 10 врачом терапевтом.

    Потом я с тобой с радостью подискутирую на предмет регламентов в медицине.

    Reply
  17. Franco

    (17) TODD22,

    >>Регламент приёмщика и регламент «доведения до сведений» это разные регламенты.

    Но это всё же регламенты.

    Насчёт медицины не спорю — это большая тема.

    Reply
  18. (13) А если найду? 🙂

    Под каменностью я понимаю сложность изменения и развития системы.

    И 1С — тот еще камень. Конечно же все относительно. Например если сравнить с САП или Мегапланом, да, 1С это просто пластелин из латекса.

    Но давайте рассмотрим такой пример:

    1. Вот есть конфигурация для управления процессами.

    2. Ее нужно заточить под разные отрасли.

    3. А также внутри отрасли, каждому предприятию нужно реализовать свои доработки.

    И тут в 1С начинается полная ж…па:

    1. под каждую отрасль приходится писать конфигурацию

    2. каждое предприятие пишет свои доработки и теряет возможность обновления

    3. хочешь обновиться — получи пачку гемороя и затраты с три короба

    Вот что я понимаю под «каменностью».

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

    Есть альтернативные платформы, много гибче чем 1С, быстрее, удобней и дешевле. Много лучше подходящие под ACM.

    Для примера — WordPress.

    1. Можно написать любые расширения и доработки. При этом они могут жить автономно от ядра.

    2. Можно к этим расширениям написать еще расширения. И они тоже будут жить автономно.

    3. Можно изменить, удалить или улучшить любой элемент системы. Любую кнопку, форму или поведение.

    И тут самое главное… когда приходит время обновляться, это все спокойно обновляется само по себе и не зависимо друг от друга.

    Любой модуль вы можете отключить без вреда для системы в целом. Отправить его в ремонт. Починить и включить обратно в систему. Пользователи даже не заметят. Кроме того что какая нибудь кнопочка вдруг пропадет.

    для 1С — это все фантастика.

    Reply
  19. (10) да, есть. Но я вот подумал как это можно показать и понял что это тянет прямо на еще одну статью. Там только снимков интерфейса штук 5-7 надо будет сделать и к каждому прописать комментарии.

    Но идея интересная. Постараюс в ближайшее время сделать.

    Reply
  20. (15) охохоюшки 🙂

    Привет знатокам 1С CRM! 🙂

    Какие еще ком.предложения? Вы где живете и в каком веке? Ком.предложения — это инструменты времен СССР. Да, конечно, в 1С этот инструмент здорово развит. На мой взгляд это одна из причин почему качество услуг в РФ в такой ж…е.

    Вы видели хоть одно современное предприятие с ком.предложениями? Их используют динозавры, которых давно уже пора закопать, а они все еще пытаются жить.

    И да, я понимаю от куда ноги ростут у вашего не понимания 🙂 Вы уверены что CRM — это продажи. Как впрочем и разработчики 1С CRM, Майкрософт CRM и прочих фекалий рынка CRM.

    CRM — это в первую очередь взаимодействие с клиентом. Если CRM нормально поставить, то от процесса продаж можно будет тупо отказаться. Но в РФ это мало кто понимает. Потому тут CRM используются для пордаж, спама и нервирования людей холодными звонками, ошибочно полагая что это и есть CRM.

    А? 🙂

    Reply
  21. (10) часть идей можно из этой статьи подчерпнуть http://casepress.org/kak-rabotaet-crm-acm-i-baza-znanij-v-odnom-komplekte-v-casepress/

    но там не раскрыта тема мутации из одного процесса в другой.

    ее надо будет отдельно расскрыть.

    Reply
  22. Да, вы не смотрите на мой напор 🙂 Я буду рад если кто-то меня переубедит или даст контраргументы 🙂

    Ну и конечно же я не против 1С. Бухучет у меня например на ее базе построен.

    Но вот документооборот, производство и управление — увольте. Лучше ACM пока ничего не нашел 🙂

    Reply
  23. nurpoz

    (22)

    Уже смотрел, не сильно показательно. Хочется посмотреть на процесс мутации, который нельзя отразить в 1С, но можно на базе вашей платформы.

    Reply
  24. mymyka
    Если разработчик электронного документооборота вздумал что он умнее человека, значит надо накол такого разработчика садить, и уж лучше бумагу использовать.

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

    (19)Как вы оцениваете свою разработку на вордпресс в качестве тиражного решения? И по какой цене вы бы ее предложили на рынке? Включая обновления, тех.поддержку и т.д.

    Если мне потребуется реализовать отсрочку оплаты по реализации, что-то типа, 30% в течении 3 дней, 40% в течении 2 недель, остальное в течении месяца, причем для каждого клиента набор, % и отсрочка может быть разная. И для добросовестных покупателей первый просрок до 3 дней не учитывать. Плюс примитивный отчет по дебиторке с учетом всей этой схемы?

    Насколько органично и в какие сроки вы сможете добавить данный момент в свое тиражное решение?

    Reply
  25. (25)

    Если мне потребуется реализовать отсрочку оплаты по реализации, что-то типа, 30% в течении 3 дней, 40% в течении 2 недель, остальное в течении месяца, причем для каждого клиента набор, % и отсрочка может быть разная. И для добросовестных покупателей первый просрок до 3 дней не учитывать. Плюс примитивный отчет по дебиторке с учетом всей этой схемы?

    Насколько органично и в какие сроки вы сможете добавить данный момент в свое тиражное решение?

    ну где то 5 минут.

    именно столько у нас ушло чтобы эту схему реализовать. по ней и работаем.

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

    ну и отчет конечно, который показывает где мы должны, а кто нам должен.

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

    Reply
  26. (25)

    по поводу цены. она бесплатная. открытый код.

    но пока что в закрытом тестировании.

    Reply
  27. (25) причем когда я говорю о том что настроили учет схемы, процесса, с разными полями, реквизитами и отчетами — это я даже за программирование не садился 🙂

    т.е. просто зашел в параметры и настроил.

    в этом суть адаптивности. тут программист нужен очень редко когда. 80% настроек делается мышкой. без программистов вообще.

    разве что в отчетах надо SQL знать.

    а процессы наши клиенты без нас настраивают. потому что там интерфейс чуть проще Word’а.

    Reply
  28. (25)

    а еще там есть такая клевая штука как GIT.

    т.е. как только мы выпускаем новую версию.

    все клиенты ее тут же могут одной кнопкой поставить.

    не надо обновлять клиенты у пользователей. не надо чего то от куда то скачивать.

    ядро обновляется само по себе.

    наше расширение само по себе.

    а разработки клиента под свои нужды — сами по себе. своими силами.

    и мы друг другу не мешаем 🙂

    Reply
  29. (24)кстати это особо интересно 🙂

    я слышал что 1с в последних версиях сильно поработала над гибкостью своих форм.

    возможно что то поменялось. не знаю.

    в общем скоро будет 🙂

    Reply
  30. (3) sovital, имелся ввиду не разработчика аля программист, а разработчик аля вендор.

    жесткие схемы идут не от программистов на местах, а от вендоров.

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

    программист на месте и сделать ничего не может, даже если сильно захочет 🙂

    Reply
  31. mymyka

    (26)И размер каждого части оплаты контролируется? И сроки просрочки? И платежная история контрагента? За 5 минут?) Ну тогда все понятно)

    она бесплатная. открытый код.

    я несколько о другом, за сколько вы ее готовые сделать тиражным решением, не теряя функционала?

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

    Reply
  32. Evgen.Ponomarenko

    (19)

    Есть ли в WordPress возможность создать аналог регистра накопления?

    Reply
  33. (32) конечно!

    Адаптивный кейс менеджмент — не сложно заметить слово «адаптивный»?

    Его суть как раз в том что он быстро настраивается. Много быстрее чем на 1С.

    А там где не настраивается, там можно подключать разработку. Но благодаря WP — эта разработка опять же гибче и проще чем у 1С. Вызывает в десятки раз меньше затрат.

    Reply
  34. (33)возможность есть. Там же язык программирования. Хошь, можно самолетики в космос запускать. Вопрос лишь … нафига? 🙂

    Reply
  35. Evgen.Ponomarenko

    (35)

    За НАХУА спасибо! ))) я понимаю, что там есть PHP и mySQL и возможно есть аналог регистра накопления.

    По моему опыту, такой наличие такого регистра увеличивает производительность запросов. Сами запросы становятся проще. По большому счету мне и таблиц хватает. Просто НАХУА делать, если можно спросить?

    Reply
  36. Evgen.Ponomarenko

    (34)

    Где и как можно посмотреть на это чудо?

    Reply
  37. (36)

    все много проще 🙂

    в 1С эти страшные штуки нужны ввиду ее архитектуры.

    здесь же на клиенте ничего нет кроме картинок. а все вычисления на сервере.

    если нам по какому либо набору транзакций, нужно хранить промежуточные кеши — мы можем их хранить.

    и это крайне редкий маневр.

    не считая уже создания отдельной таблицы в БД. что в моем понимании является почти верхом сложности.

    и пока что мы таким не занимаемся. хватает штатных механизмов.

    (37) на какое? 🙂

    На WordPress тут http://ru.wordpress.org/

    А вот CasePress — пока засекречен 🙂 Есть лишь выдаваемые порциями данные на нашем сайте http://casepress.org/

    Но будем надеяться в начале следующего года уже откроем код и выпустим в открытое плавание 🙂

    И это не альфа версия. Система уже опробирована на предприятиях до 1000 сотрудников. С распределенной структурой офисов. Сейчас на малых предприятиях обкатываем 🙂

    Reply
  38. Evgen.Ponomarenko

    (38)

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

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

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

    Мне очень интересно, с какими ограничениями вы столкнулись в 1С. Стандартный подход 1С действительно каменно-дубовый. Однако на сегодняшний момент, я еще не встречал задачи, которую нельзя сконструировать используя мои механизмы. Дело в том, что я сейчас провожу полный рестайлинг конструктора и меня иногда терзают опасения, «достаточна ли гибкость системы для реализации ЛЮБОЙ задачи?».

    Reply
  39. Evgen.Ponomarenko

    (38)

    А по поводу регистра накопления вопрос был с очеееень дальним прицелом. Я думаю, что КОГДА мне станет тесно в рамках 1С, то куда можно развиваться дальше и с помощью каких инструментов. В принципе есть аналоги регистра или нет, это не важно. Они могут появиться в MySQL позже или быть реализованы в «рукопашную», а может со временем появятся какие другие альтернативы. Просто боюсь пропустить этот момент.

    Reply
  40. nurpoz

    Мы реализовывали подобный функционал для учета издательских дел в журнале. т.е. заранее не известно какие материалы будут, какую информацию по ним надо собирать, как рассчитывать верстку и пр. И у нас была возможность «мутации» из рекламного блока в статью и наоборот с возможностью пользователем добавлять любые шаблоны. Делали давно еще на 8.0, вполне успешно работает до сих пор. Но, конечно, не за 5 минут и не за бесплатно. ) Поэтому интересно, что такого может WP, чего не может 1С.

    Reply
  41. (39)

    Ограничения два.

    Слишком тугая архитектура. Вот тут описана проблема http://forum.infostart.ru/forum24/topic101001/message1044083/#message1044083

    А второе, хорошо описывается ответом к (41)

    В 1С можно заложить мутацию. На 2,3,4 варианта, а более — уже сложнее.

    Даже возможность делать потомка там нужно закладывать. Ну например на основании счета сделать акт. Или наоборот.

    В ACM изначально полная свобода. Вы можете мутировать сущность из одного вида в другой, даже не зная какой набор сущностей у вас будет завтра. Например завтра мы придумали новую сущность «Гарантия», в которой будем учитывать гарантийные случаи и контроль исправления наших ошибок в ранее выполненных услугах или проданных товарах.

    Все! Не надо ничего и негде дописывать. Например клиент позвонил в контакт центр и сказал что ему вот тут кнопочка нужна. Контакт центр подумал что это какой то новый заказ. Сделал и выставил счет. Клиент позвонил и сказал — Ээээ! Вы а…ли! Вы мне должны были ее сделать по прошлому заказу! Почему я должен платить? Ну ка исправьте! Опля! И это уже не Заказ? Это Гарантия! Как нам из документа Заказ, мутировать в документ Гарантия? С сохранением всей истории общения и прочими реквизитами?

    Не 🙂 Я конечно понимаю что можно не мутировать. Можно закрыть тот документ или отменить его или удалить. И создать новый. По сути не такая уж проблема.

    Но переносить все взаимосвязи, заново заполнять и самое главное — по документу уже есть какая то история — все это сложно и трудозатратно.

    А тут просто опля и мутировали из заказа в гарантию. Теперь это не Заказ, денег тут нет, схема исполнения другая и отвечает теперь за это человек, который контролирует Гарантии, а не начальник отдела продаж, который контролирует заказы.

    Вот такая история 🙂

    Reply
  42. (13)

    Опыт разработчика не дает ему архитектурных навыков. Вот в чем засада 🙂

    По всей видимости это причина почему 1С так далека от MVC.

    MVC — это архитектурный паттерн.

    В 1С программисты достаточно опытны на ваш взгляд по части 1С?

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

    Именно MVC позволяет развивать системы много быстрее чем на 1С.

    Например сейчас в нашей системе порядка 100 модулей. Причем есть модули которые в 2 или 3 раза тяжелее самого ядра. Каждый из этих модулей может быть деактивирован в любой момент и отправлен в ремонт 🙂

    Мы можем в любой момент дописать какой то модуль или добавить свой.

    При этом где то 80% этих модулей написаны кем то кого мы даже в глаза не видели. Они как то сами обновляются когда им вздумается. Ядро обновляется само по себе. А мы свои доработки обновляем когда нам удобно.

    И все это каким то чудом живет не мешая друг другу 🙂

    Это и есть MVC. А также это именно то что подразумевал Аллен Кей когда придумал ООП.

    Другой вопрос что программисты потом сильно извратили термин ООП и придумали из него C++.

    А из C++ пошла 1С. Так наследовался маразм.

    И 1С также далека от MVC и ООП, как она далека от тех возможностей которые дают современные платформы.

    Reply
  43. (39) Бегом осваивать WP! )) Тебе понравится! с такими привычками 🙂

    У WP такая политика, что они точат ядро до блеска.

    А все остальное — делает сообщество.

    Там тьма тараканья разных метаконфигураторов. Скажем я могу добавить какую то модель и функционал кодом. А могу поставить метаконфигуратор, который позволит мне сделать тоже самое просто тыкая мышкой.

    Причем там есть метаконфигураторы на самые разные случаи 🙂

    И пока не встретил ни одной задачи, которую нельзя было бы там решить 🙂

    Reply
  44. DoctorRoza

    (35) пришлите, пожалуйста, в личку ссылку на картинку ритуала, распечатаю, на стенку повешу!

    Reply
  45. nurpoz

    (42)

    Да не сложно такую мутацию заложить, в WP ее заложили тоже не за 5 минут. И мутация с сохранением данных из любой сущности одного порядка в другую тоже не сложна, не надо думать, что в моем примере мутации программировались отдельно для каждой пары сущностей, писался сразу универсальный механизм, т.к. издательское дело тоже постоянно мутирует и они сами не знают, что они будут завтра публиковать и какие блоки продавать. Просто это не было заложено в 1С изначально. На вскидку, это с нуля 1-2 часа работы программиста, если делать грубыми мазками. Могу даже технический концепт накидать, если увижу ваш пример.

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

    Вы приведите практический пример, а там посмотрим. Понятны ограничения 1С, как платформы, но те идеи которые вы описываете пока в них укладываются.

    Самый главный минус подобных разработок ИМХО в том, что они не будут интегрированы в текущую экосистему 1С (раз уж мы на ИС), не будет интеграции с БП, УТ, ЗУП, УПП это все придется делать с нуля и поддерживать. И тут, что поделки на WP, что поделки на 1С этого избежать не смогут.

    Reply
  46. nurpoz

    И да! Вы привлекли мое внимание к WP ))

    Reply
  47. (46)

    Самый главный минус подобных разработок ИМХО в том, что они не будут интегрированы в текущую экосистему 1С (раз уж мы на ИС), не будет интеграции с БП, УТ, ЗУП, УПП это все придется делать с нуля и поддерживать. И тут, что поделки на WP, что поделки на 1С этого избежать не смогут.

    мы как то спокойно живем в связке: КейсПресс (CRM, ERP, ECM, ACM), 1С (БУ для ООО) и МоеДело (БУ для ИП).

    Не пыхтим 🙂

    Примеры мутации запланировал. И вы удивитесь, но для нас это заняло в общей сумме 5 минут.

    А для WP — ничего.

    Точнее никто не делал там эти мутации. Они просто сами появились в результате работы над палировкой архитектуры 🙂

    Reply
  48. (47) очень рад 🙂 Значит не пропал еще навык продажника )))

    Reply
  49. nurpoz

    (49)

    Вот вы заладили «5 минут»… это ведь не ваша заслуга, это было заложено в WP и писалась и вылизывалась эта возможность совсем не 5 минут. Смысл ожидать такие не очевидные вещи от учетной системы типа 1С, где это особо никогда не было востребованным? Вы пишете, что нельзя реализовать, я пишу, что можно. Давайте смотреть пример уже, а то позиционируете себя, как практика, а пока только одни слова.

    Reply
  50. (46) ты хочешь сказать что в 1С можно реализовать модульную свободу? (см (43))

    А это очень важно в таких делах 🙂

    Reply
  51. (51)даду даду как говорил наш классик 🙂

    Reply
  52. (51) и еще, в WP даже не подозревают что их система поддерживает механизмы мутации для бизнес процессов )))

    там даже не в курсе что дикие сибирские русские смогли заточить блоговую платформу для личных дневников до системы управления бизнес процессами 🙂

    потому фраза

    это ведь не ваша заслуга, это было заложено в WP и писалась и вылизывалась эта возможность совсем не 5 минут

    в целом не имеет смысла 🙂 никто туда эту возможность не закладывал. потому что она нафиг никому не нужна была.

    кроме нас 🙂 а мы ее просто увидели. она там была.

    Reply
  53. nurpoz

    Продолжим после примера, а так, только время тратить на пустое.

    Reply
  54. mymyka

    (42)Вместо разделения по метаданным добавьте реквизит ВидДокумента, изначально привяжите к нему бизнес-логику, вот вам и мутация, за 5 минут)Правда и модули описания бизнес-логики получатся строк так в тысяч 10.

    Опять же архитектурное решение, и к платформе разработки никак не привязано.

    (51)Вот и меня терзают аналогичные сомнения, что за «5 минут», там настраивается только готовый шаблон. Это как сайт писать на cms, вроде туда-сюда-мышкойкликлик-5 минут-сайт готов. Но кто-то же данную cms написал, и отнюдь не за 5 минут )

    Reply
  55. nurpoz

    Во времена фидо еще не было ATX корпусов, а на работе ругали за то, что на ночь комп в рабочем состоянии оставляли. Знаете как мы отрубали тачку после окончания сеанса поздно ночью, чтобы утром не спалиться? Приматывали на изолетну вилку штепселя от компа к головке принтера, приставляли принтер к розетке. После окончания всех процессов, запускался простенький скрипт, который печатал символ в правом дальнем углу. Принтер печатал, головка ехала, выдергивался штепсель. Наши предки в войну из репы шестеренки для машин вырезать умудрялись, чтоб доехать, поэтому удивляться русской находчивости нечего, жизнь заставила.

    (56) mymyka,

    +1

    К виду документа можно привязать бизнес-логику внешними обработками и вызывать методы в соответствии с именами видов документов. Реквизиты таких уникальных документов можно хранить в табличной части из двух колонок, где левая часть — ссылка на справочник видов реквизитов: имя реквизита, а правая — реквизит завязанный на планвидовхарактеристик, куда засунуть все нужные объекты метаданных. Прописать алгоритмы автоматического создания нужных объектов метаданных. Закрыть юзеру возможность менять структуру табличной части, оставить возможность заполнять правую колонку. Прописать алгоритм мутации, которая будет перебрасывать значения табличной части по именам реквизитов. Все. Я говорю, там дел на 1-2 часа для прога. Мы еще прикручивали бизнес-процессы на документы аналогичным способом, т.к. постоянно перепрограммировать БП, которые дает 1С не представлялось возможным и отрисовывали карты таких процессов через макет, взяв идею верстки, как это делается в html с картинками. Все можно сделать, были бы голова и руки.

    Reply
  56. (56) в 1С ИТИЛИУМ поступили еще проще. Там добавили реквизит «Услуга» и «Состав услуги».

    И даже какую то логику туда смогли привязать. Мудро, сложно, хитро, но можно 🙂

    В целом это полный аналог нашего «Категория кейса».

    За рядом исключений, которые мы сможем выловить в следующей статье 🙂

    (55) хорошо. Благодарю за пытливость в отношении темы 🙂 Мне правда интересно понять возможности 1С в этом направлении. Потому следующая статья будет в ближайшее время 🙂

    Reply
  57. Evgen.Ponomarenko

    (42)

    аааа… понял… мы уже забыли про эту проблему ))) у нас в системе 6 документов-контейнеров

    1. Заявка/Сделка

    2. Движение ДС

    3. Движение ТМЦ

    4. Расходы

    5. Закрытие месяца

    6. Универсальный документ

    Далее… идет деления по видам документа

    к примеру

    2.1 Приход

    2.2 Расход

    2.3 Перемещение

    2.4 Производство

    2.5 Списание

    и т.д.

    в случае, когда ошибочно был введен документ, вид документа может меняться в пределах допустимых,

    на физическом уровне — это ограничение накладывается самим документом-контейнером. К примеру легко можно поменять «расход» на «перемещение», но нельзя поменять «приход ТМЦ» на «приход ДС». При этом сохраняются содержимые реквизитов и ссылочная целостность. Если я правильно понял ваш термин «мутации» конечно.

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

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

    Reply
  58. (59) Да, вы в том же направлении двигаетесь 🙂

    Знаю еще транспортную компанию, которая похожие идеи на базе 1С сделала.

    Reply
  59. Evgen.Ponomarenko

    (60)

    Еще бы… вся проблема началась с логистики )))

    Reply
  60. AnryMc

    (34)

    Можно легко настроить (раставив «галочки»), только если «внутри» уже предусмотрено это поведение… А жизнь так многогранна…

    Reply
  61. Evgen.Ponomarenko

    (62) AnryMc,

    точно-точно… Жизнь предприятия многогранна как алмаз )))

    и по тому:

    — качество алмаза определяется архитектурой модели,

    — шлифовка граней выполняется в «событиях»,

    — а гармония приходит со временем, через опыт

    Reply
  62. Chernik

    (59)Evgen.Ponomarenko,

    аналогичный механизм (т.н. конструктор проводок) использую еще со времен 7.7. Есть несколько основных (контейнерных в вашей терминологии) документов. И есть справочники «Хозяйственные операции» и подчиненные ей «Проводки по БУ» и «Движения по регистрам». Собственно они и определяют сущность документа и то каким образом документ будет отражен в учете. Считаю, что без таких механизмов адаптация конфигурации под постоянно изменяющиеся потребности — сущий ад.

    Reply
  63. Chernik

    (50)

    можешь поставить себе еще один плюсик. 😉 Заинтересовал ты меня ACM и WP

    Reply
  64. Chernik

    (62) AnryMc,

    Жизнь, конечно, многогранна. Но не стоит пытаться автоматизировать ее во всей полноте. Чревато 😉

    Любая программа — это отражение (реализация) определенной модели. Но любая модель начинается (в т.ч.) с определения границ моделирования. И в разработке ПО важен компромисс между жесткими и универсальными архитектурами. Ну а соблюсти баланс (с учетом множества факторов) — креативная задача архитектора системы.

    Reply
  65. AnryMc

    (66) Chernik, Ну а я про что?…

    Reply
  66. nurpoz

    (65) Chernik,

    тоже залип на wp )

    Reply
  67. (68)(65) Ну вы блин даете 🙂

    Тогда к вам, как к тем кто в теме есть еще один вопрос 🙂

    WordPress и веб-технологии в первую очередь мне понравились ввиду наличия REST-интферйса.

    Если по тупому, это возможность управлять приложением через URL.

    Ну например берем Яндекс Маркет. Выберите там все телевизоры марки Тойота с диагональю более 50 дюймов.

    Вы увидите что URL поменялся. И на выходе вы получили то что нужно.

    Вы можете отправить этот УРЛ мне и сказать «Глянь какие клевые телекиТойота, давай парочку купим», я открываю УРЛ и вижу что ага, круто.

    И так работает весь веб. 99% сайтов и веб приложений работает по этому принципу.

    И есть 1% которые не умеют так. И в этот 1% входит как раз 1С.

    Мы через REST дофига чего делаем. Например в Яндекс ПДД через REST можно админа создавать, мы часто через REST пишем парсеры.

    По сути REST это аналог командной строчки Windows/Unix в мире веб.

    Но самое главное не то что на выходе, а то что внутри. Я могу хуком перехватить параметры переданные в REST и дать команду на выполнение чего либо на основе этих данных. Делается это через перехват переменные $_REQUEST[‘var’]. И работает почти везде.

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

    А может ли 1С так делать? 🙂

    Reply
  68. Evgen.Ponomarenko

    1С типа пытается )))

    23.12.2013 Автоматически генерируемый REST интерфейс прикладных решений 1С:Предприятия

    http://v8.1c.ru/o7/201312rest/index.htm

    Reply
  69. (70) Супер! 🙂

    На самом деле это уже 80% решения проблемы 🙂

    То что пользователю это не доступно конечно печаль, но в целом за ссылку спасибо! Думаю она мне скоро пригодится 🙂

    Reply
  70. Evgen.Ponomarenko

    Там же и зазеркалья )))

    30.12.2013

    HTTP-сервисы в прикладном решении

    http://v8.1c.ru/o7/201312http/index.htm

    09.12.2013

    Инструменты рефакторинга и отказа от модальности

    http://v8.1c.ru/o7/201312ref/index.htm

    воодушевляет…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *