Делюсь опытом работы программиста




Принцип обмена данными из 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='\

86 Comments

  1. Уфимская

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

    И еще! Никогда не дискредитируйте себя, соглашаясь на работу с нелицензионным ПО

    Reply
  2. ediks

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

    Reply
  3. Schlesinger

    В общем-то ничего нового (я работаю с 1С более 12 лет), но лишний раз перечитать не помешает.

    Насчет нелицензионного ПО. Если клиенту жалко денег на законное приобретение программы, то тем более будет жалко платить специалисту.

    Reply
  4. tango

    Моральный кодекс вольного стрелка.

    Reply
  5. Збянтэжаны Саўка

    Классный логотип — в тему на все 100! 🙂

    Reply
  6. Арчибальд

    (5) Блондинка 14 раз наступила на грабли. Так и не поняла, в чем прикол…

    Reply
  7. vip
    5. Улучшение программ без согласования с клиентом.

    Каюсь, грешу этим. И иногда это занимает много времени.

    Есть такое понятие — рефакторинг.

    Своими словами — через полгода тошно смотреть, что я наваял.

    А в основном все верно.

    Reply
  8. vip

    +(7) Вырожденный случай — когда тошно глядеть уже утром.

    Reply
  9. Bor_ka

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

    «Лояльные» клиенты — подарок для начинающего программиста, «вредные» — испытание для бывалых.

    Reply
  10. Alav

    Категорически несогласен с пунктом 8.

    Когда ты работаешь с клиентом-заказчиком, то не вижу смысла переубеждать его. Т.е. довести до него свою точку зрения нужно, а учить его делать бизнес … если клиент готов за свои деньги набить себе шишки, то ради бога, почему я должен ему мешать? Более того это поднимет в глазах клиента меня, как специалиста, когда в конечном итоге мы все равно вернемся к тому, с чего начали и сделаем так как я и предлагал в самом начале.

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

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

    P.S. это не относиться к случаю когда заказчик-работодатель. Здесь никто платить за его ошибки не будет, и здесь уже нужно по возможности «работать по своей схеме.»

    Reply
  11. Bor_ka

    (10) Иной раз, когда речь идет о внедрении более-менее серьезной системы (там где о результате спросят с Вас), то внедренец не должен идти у клиента на поводу, иначе проект будет непременно завален и оправдания «Ну Вы же меня просили сделать так….» не помогут.

    Возможно в п. 8 статьи и идет речь о таких внедрениях.

    Уступать можно в мелочах, которые не повлияют на весь процесс. Обычно такие уступки даже приносят радость, причем обоим сторонам 🙂

    Reply
  12. iov

    9) не работайте в долг над длинными проектами берите по частям…

    Reply
  13. Alav

    (11) Согласен. В любом вопросе нужен компромисс.

    Reply
  14. CheBurator

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

    Reply
  15. lihomanov

    ну, да так-то так! 😀

    Reply
  16. iov

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

    Reply
  17. awk

    (10) А мне платят в 90% случаев за то что я переубеждаю клиентов и берусь только за 10% работы. Я бы еще добавил пару пунктов. Первый — переоценка своих сил. Это когда вы беретесь за задачу боясь сказать нет. Было у меня такое. Правда, тут и начальство подставило (я в сервисной компании работал). В итоге один проект сорвался на этапе ввода в эксплуатацию, а на втором я хорошо потерял в авторитете. Ну дома скандал, из-за работы по 18 часов 7 дней в неделю. И как следствие второй — не перерабатывать. При работе без отдыха, начинаются такие глупые ляпы — за голову хватаешься.

    Reply
  18. awk

    (2) Было сижу матерю код — смотрю, а это я его года два назад писал. Хорошо рядом никого не было 🙂

    Reply
  19. sound

    Остается только верить, что вспомню об этих правилах, когда будет новый проект и не брошусь писать сломя голову, увидев «бальшую деньгу», как это часто случается 🙂

    Reply
  20. Збянтэжаны Саўка

    (6) а почему именно 14, а не 13 или 8 ? 🙂

    Reply
  21. Збянтэжаны Саўка

    (18) > смотрю, а это я его года два назад писал

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

    Reply
  22. Арчибальд

    (20) Откуда мне знать? Она и сама этого не знает…

    Reply
  23. AmoZ

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

    Reply
  24. Tararui

    1. Всегда вначале думаем, а потом делаем (строим стратегический глобальный план по удалению какой нибудь хрени, и только потом выполняем «Enter» по очистке корзины, для большей уверенности ставим Undelete, и чтобы не пришлось стучать в бубен пользуем Recuva, не забываем о зеркале диска, и храним дома под подушкой архивные копии всего за последние этак 10 лет).

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

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

    4. Если за день никто на вас не обратил внимание, значит уже пора (кому вирус, задержку транзакций, или коллизии в сети)

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

    Reply
  25. Tararui

    И вообще запомните!

    Умный учится на своих ошибках…

    А мудрый, мудрый их не допускает!!!

    Reply
  26. log

    полезно разбивать даже ТЗ и ТТ на отдельные этапы, заранее описанные, и поэтапно проплачиваемые. Помогает даже с очень тяжкими клиентами и их сисадминами. Если предполагается работ более чем на часа 4 — разбивать! Железно согласен с пунктом №5 Tararui

    Reply
  27. nuendel

    тут же писалось, что наличие ТЗ ничего не гарантирует

    Если клиент не захочет, то не заплатит полюбэ

    http://www.kolesnikov.com.ua/index.php/%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8/19—1/130-2010-03-24-11-13-12

    с пунктами 5, 8 согласен…

    пункты 6, 7 не стоило бы и писать… это как 2х2, прописная истина

    Reply
  28. idef

    (27) Правильно, но с ТЗ хоть какой-то аргумент заказчику можно предъявить, а без него только дырку в полу носком ковырять.

    Если клиент «кидала» то не заплатит полюбэ.

    Хорошо, что нормальных клиентов все-таки больше.

    Reply
  29. nuendel

    Потеря времени и нервов на предъявление аргумента окажутся в конечном итоге значительно дороже

    Reply
  30. CheBurator

    да! Обходя грабли — мы лишаемся бесценного опыта!!!!!!

    Reply
  31. idef

    (29)

    1. Если не тратить время и нервы то и заниматься внедрением не стоит.

    2. Еще не видел ни одного внедрения без нервов.

    3. При умелом предъявлении аргументов затраты времени и нервов можно минимизировать — политика и болтология тут рулит. А отсюда следует, что желательно иметь в команде грамотного «переговорщика» — не программиста.

    Reply
  32. bolivar63

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

    Reply
  33. idef

    (32) Тут главное не переусердствовать, чтобы не получилось из всего этого какого-нибудь сериала. Там ведь тоже ищут различные пути решения задач 🙂

    Если вы говорите о типовых решениях, то вариантов здесь немного, а если о решениях «1С-Совместимо», то имеем сериал.

    Reply
  34. bolivar63

    (33) Заказчику важно РЕШИТЬ свою задачу, а сериал не сериал, зависит от корректности постановки этой задачи заказчиком и от правильного понимания ее исполнителем. Сэкономить время на этой стадии,- потерять свое время и деньги заказчика

    Reply
  35. Skylark

    Заголовок надо бы переименовать — причем тут программирование?

    🙂

    Reply
  36. idef

    (34) А вы не думаете, что у заказчика мосг перегреется от такого количества инфы?

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

    Reply
  37. Tararui

    Я считаю что ТЗ необходимо в рамках внутренних отношений внутри своей конторы!

    Вот пример: У меня есть трудовой договор который составлен согласно трудовому законодательству и колективного договора внутри конторы.

    Так если в моём договоре сказано что моя работа оценивается согласно составленному, подписанному и выполненному ТЗ на основании Акта выполненных работ (даже если внешний заказчик его не подписал), а в акте есть подпись моего босса то зарплату я обязан получить от своего РАБОтодателя (то есть мне пофиг заплатит заказчик али нет, суд их рабирёт)!!!

    Разборки между моим работодателем и заказчиком енто не моё дело, для меня бабки важней!

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

    Т.е. я хочу сказать что работу я выполняю для своего работодателя, а не для Заказчика (единственная поправка мой Босс хочет в итоге мою работу продать Заказчику и мне скорей всего придётся показать фантик от конфетки Заказчику).

    Для выполнения такой работы в моей конторе как минимум должны быть:

    Директор — ну должен же кто-нибудь подписать договор;

    Юрист — от А до Я;

    Бизнес-аналитик — впаривать воздух тоже надо уметь;

    Бухгалтер — тестер;

    Программист — главный стукач.

    Последния четверка может быть в моём одном лице, Заказчику правда я не под каким дулом не признаюсь, что знаю больше него (данное правило продиктовано тем, что работаю я на своего работодателя) 😀

    Reply
  38. marsohod

    (0) Вкратце …

    п.2. Работа «со слов» клиента (без ТЗ)

    Многое зависит от клиента. Конечно, некий документ, смахивающий на ТЗ или ТТ на начальном этапе обязательно должен быть. Но слишком сильно углубляться в бюрократию и описывать каждую мелочь по-моему не слишком разумно. Если клиент достаточно самокритичен и нацелен на результат, то ни на какие грабли тут не наступишь — он признает свою ошибку, если она имела место. Хотя… может мне просто везет с клиентами 🙂

    Reply
  39. TriodPlusP

    Полностью поддерживаю автора в том, что нужно вести документацию. Что не записано того не существует. Я иногда иду еще дальше : каждый пункт ТТ здаётся под подпись и часто только перед тем как подписать они действительно «проверят» а не пройдет несколько месяцев и вспомнят что что-то там неверно работает. Подписали значит вопрос закрыт (даже если с юридическою точки зрения эта подпись и не имеет значения, но с точки взаимоотношений с клиентом ценность ее очень огромная)

    Reply
  40. awk

    (38) Нет ТЗ — нет задачи. Я то же долго не понимал зачем блок-схемы нужны. Когда проги переросли институтский уровень, тогда понял.

    Reply
  41. CaSH_2004

    Мда, все бы хорошо но только когда очень хорошо это тоже плохо.

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

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

    у меня пока только варианты такие:

    1. личные связи

    2. пойти во франч и там работать от них, если у них есть такой вариант и они поставят туда именно меня

    3. пойти на фирму где ченибудь недоделано (например 7.7 а нужен 8.1 а то и 8.2) и там уже делать

    варианты 2 и 3 не очень, т.к. гарантий мало что заплатят достойно (п.3), что попаду к кому нужно и получу что нужно (п.2)

    Есть у кого предложения по этому вопросу?

    Reply
  42. main_jox

    Читаль и плакаль…

    История, как я попал на этот сайт:

    Я владелец небольшой компьютерной фирмы, большинство программистской и админской работы делаю сам, еще не нашел в штат программера…

    Решил что фирма доросла до автоматизации.

    Опыта разработки и пользования 1С не имею в принципе, 🙁 ка-то не пришлось…

    Просмотрев возможные варианты остановился на 1С и ВПЕРВЫЕ решил нанять «профессионала»

    — нашел программиста 1с в своем городе, со стажем работы 12 лет и рекомендациями!

    — пригласил его в офис, оплатил час нашего разговора о «1С — что такое и с чем его едят» — 25уе/час

    — осмыслил что я хочу от 1С и пригласил его повторно, еще час и 25уе/час

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

    — что хотел:

    — импорт номенклатуры из ексель (с полями: код поставщика, артикул, штрих-код, номенклатура, ценаЗакуп, ценаПродажи, количество)

    — импорт приходных накладных (по аналогии с импортом номенклатуры)

    — добавить в ценообразование колонки: ценаЗакуп, код поставщика и штрих код

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

    — фронт-энд кассира

    Вопросов от исполнителя не возникло, и сказав что в этом случае лучше всего будет 7.7 ТиС, с доработкой, озвучил мне цену: 100уе-ТиС, 100уе — доработка.

    Я оплатил 225 уе (с учетом часа времени)

    На протяжении полугода исполнитель объявлялся 3-4 раза с набором РАЗНЫХ ПОЛУФАБРИКАТОВ, без ТЗ, которое он потерял или собака сгрызла или дети порвали или в машине соседа… и я заново рисовал ему ТЗ.

    Итог — все та же куча полуфабрикатов с сайта, наподобие этого, без почти доработок, и без проверки, попытки реальной работы провалились из-за ошибок в самых разных местах…. 🙁 🙁 Жаль только что я доплатил еще 100уе…

    Исполнитель все время рассказывал как ему тяжело в семье и как клиенты доводят его до «белого каления» своей тупостью и нежеланием платить за выполненную работу, как ему бедному пришлось месяц на «дурке» пролежать, вон как его достали…

    Мне оставил последнюю его «доработку», т.к. ему уже надо ехать на море и доделать он ее сейчас уже не хочет, посоветовал мне разобраться самому и НАЧИНАТЬ работать, т.к. в «процессе работы» все-равно будут вопросы и доработки…

    Попытки поработать с говном без обертки меня просто вывели из состояние покоя и было решено заняться этим вопросом самому…

    Итог 350уе за пиратскую нерабочую ТиС, 250 уе за киги и «версию обучению программированию, пол-года времени, и куча нервов…»

    на 1-го прогера 1С будет больше…

    Спасибо «профи», благодаря им появляются нубы типа меня…

    А вы тут заказчиков хаите…

    Reply
  43. Sintson

    (42) Жаль что с Вами такое произошло.

    1С77 видимо близка по духу Вашему программисту и, видимо не очень профессиональному.

    Уверен, что Вы что-то недоговариваете, т.к. внедрить у Вас ТиС (не важно 77 или 8) по утвержденному Екселю пару дней работы вместе с чаепитием.

    Reply
  44. tango

    (42) «месяц на дурке» — «и я заново рисовал ему ТЗ» — «Я оплатил 225 уе» — «вы тут заказчиков хаите» — «Читаль и плакаль… «

    Reply
  45. L_B

    (42) Гениально! «Все сам, все сам» (с) не мое 🙂

    Reply
  46. fastwriter

    Да, ошибки, изложенные в статье приводят к неприятным последствиям. Вот только почему новые поколения начинающих одинэсников продолжают их совершать — непонятно — ведь в инете полно инфы по этому поводу, и перед началом работы всегда полезно ознакомиться с опытом предшественников.

    Reply
  47. Поручик

    Читал, плакал, валялся пацтулом.

    И вообще запомните!

    Умный учится на своих ошибках…

    Или это развод, или Бисмарк нихрена не понимал в жизни.

    Решение: перед обновлением делать копию обновляемых баз.

    Это гениально!! (С).

    Reply
  48. Jack07

    автор как будто вчера родился

    о сколько нам открытий чудных… (с)

    Reply
  49. IsiKosta

    Возможно данные рекомендации можно применить ко всем видам деятельности, кроме 6 и 7 пунктов.

    Reply
  50. Sibiryak

    п.7 должен быть на первом месте

    Reply
  51. orefkov

    Я бы дополнил п.7

    7. Обновление базы без создания резервной копии.

    Результат (вероятный): потеря базы, а возможно и клиента. А возможно и яиц или головы.

    Reply
  52. Dnki

    Знаете что я скажу? Автор статьи прав во всех пунктах. Вот только дело в другом: все мы знаем как надо делать. А слабость наша (ладно, за себя только скажу) в том, что тяжело подметить за собой, когда надо сделать так или иначе. Вам не знакома мысль «вот только сейчас сделаю по-быстрому (обновлю без сохранения, запрограммирую без ТЗ, без теста исправлю и т.д.) а уж в другой раз…». Вот поэтому и наступаем на грабли, несколько раз подряд. Так устроен человек — меняет поведение либо когда весь в шишках, либо ударили один раз но очень больно.

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

    Reply
  53. Jon2011
    Tararui пишет:

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

    зарплату нужно получать на карточку и тратить по возможности в интернет-магазинах.

    Reply
  54. smirnoffs

    Советуете работать с большими клиентами? А кто же с нами, с маленькими предпринимателями работать будет? 🙂

    И так толкового специалиста днем с огнем не сыщешь, приходится вместо торговли изучать 1С.

    Reply
  55. Jon2011

    (54) smirnoffs, А я вот не люблю работать в большой конторе. Там ты просто винтик. ТЗ, отчеты ежедневные, планы, совещания, согласования. Вообщем сплошная бюрократия. Год такого дурдома в ТЕЛЕМАСТЕРе мне хватило за глаза и за уши. Сейчас работаю фрилансером через удаленный доступ с 3-4 мелкими конторками — все довольны.

    Reply
  56. smirnoffs

    (55) Jon2011, Мне кажется, что, работая с несколькими заказчиками, еще и заработать можно приличнее. К тому же задачи разнообразнее и рост как специалиста происходит быстрее.

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

    Reply
  57. Jon2011

    (56) smirnoffs, У меня 2 конторы из 4 розничная торговля сувенирами, а две другие оптовая торговля спецодеждой и материалами. Удаленный доступ он-лайн — в любой момент могу подкрутить что-то или посоветовать как выйти из тупика. Тем более распределенная база в разных городах (Москва и Питер), везде держать своих админов накладно будет.

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

    Если что-то специфичное, типа настройка нового оборудования, я к ним приезжаю.

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

    Reply
  58. kosten

    Спасибо за полезную информацию!

    Reply
  59. Lyuba-Lyuba

    Ставлю плюс!

    Reply
  60. vovche

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

    Reply
  61. websamson

    Автор, без обид, но советы из серии «шубу в трусы не заправлять»

    Reply
  62. websamson

    (7)Это ведь показатель профессионального роста. Если не нравится свой старый код, значит растешь!

    Reply
  63. icich

    Хорошие советы для начинающих!

    Reply
  64. Redokov

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

    Reply
  65. Attest

    Отлично написано, но на своём опыте пока не пройдёшь не поймешь!

    Reply
  66. zverek2

    Все правильно, но вот если видимым результатом работы является небольшая печатная форма или видимый(новый) реквизит на форме — клиенту не понять почему он должен платить за 1 или 2 часа работы… и как ему доказать что для отображения данных в данном реквизите пришлось добавить дополнительный регистр и прописать пару десяток строчек кода или для этой «маленькой» печ формы пришлось достаточно поработать с запросом, результатом запроса, макетом и кодом… Многие этого не понимают… и когда разговор заходит об оплате начинаешь доказывать, что это не пятиминутная работа…

    Reply
  67. daho

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

    Reply
  68. Olejkee

    программист — это дипломат.

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

    Reply
  69. Sergio79

    Персоналу все эти автоматизации нафиг не нужны.

    Проект может быть доведен до конца только в том случае, если в его результате кровно заинтересован спонсор проекта/ руководитель проекта СО СТОРОНЫ заказчика — все остальное (на мой взгляд) просто «освоение бюджета»

    Reply
  70. natnat3
    Sergio79 пишет:

    Персоналу все эти автоматизации нафиг не нужны.

    Проект может быть доведен до конца только в том случае, если в его результате кровно заинтересован спонсор проекта/ руководитель проекта СО СТОРОНЫ заказчика — все остальное (на мой взгляд) просто «освоение бюджета»

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

    Reply
  71. master_yoda

    Хочу добавить: Необходимо документировать выполенные задачи хотя бы кратко — как вариант в отдельной своей конфе например в «Учет времени разработчика». Полезно иногда будет знать истори по контрагенту …или по задаче конкретной… существенно ускоряет процесс понимания того что от тебя хотят заказчики

    Reply
  72. serge_focus

    (71) natnat3,

    Sergio79 пишет:

    Персоналу все эти автоматизации нафиг не нужны.

    Проект может быть доведен до конца только в том случае, если в его результате кровно заинтересован спонсор проекта/ руководитель проекта СО СТОРОНЫ заказчика — все остальное (на мой взгляд) просто «освоение бюджета»

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

    Как прпавило бывает по-разному.

    Но хорошо удавшийся проект как правило зависит от ПРАВИЛЬНОЙ постановки задачи. И роль 1с-програмера

    или (руководителя проэкта) здесь караз и понять следующее :

    1-Что нужно заказчику

    2-Какие подводные камни в лице самой 1С и ее будущих пользователей могут возникнуть, и спланировать их обход.

    3-Дожать заказчика на оплату или быть уверенным -что труд будет вознагражден.

    И только тогда ВПЕРЕД.

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

    И на ПОКУШАИТЬ их нужно очеь много…

    Reply
  73. vitn

    (2) ediks, Полностью согласен — вне зависимость от отношения руководителей к предыдущему программеру, ваш рейтинг упадет!

    Reply
  74. vitn

    Как правило простым пользователям любое внедрение нафиг не надо, (работали раньше и будем дальше также работать))

    Reply
  75. zigomodo

    Спасибо что поделились опытом.

    Reply
  76. daho

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

    Reply
  77. aochkasov

    Интересная статья. Автору спасибо за труды.

    Reply
  78. AlexO

    Хоть и хрень собачья, но написано грамотно и по делу.

    В смысле, сермяжная правда, которую открывает каждый на своем 2-5 клиенте.

    Плюс ставить не буду — студенты и так все заплюсовали, но поддержу авансом: автор, как созреешь писать не только прописные истины 1с-базара, милости просим с дельной статьей 🙂

    PS/

    Для тех, кто снова будет искать подвох в моих постах — Арчибальд etc к студентам не относятся.

    Reply
  79. AlexO

    (47) Поручик,

    Сергей, уже не первый раз ловлю себя — что согласен с вашими древними постами.

    Что-то у вас в современности поменялось….

    Reply
  80. Markin

    Самая трудная работа когда твой начальник или заказчик ничего не понимает в компьютерах и программах.

    Очень трудно объяснять что почему и как работает.

    Reply
  81. daho

    (82) Markin, Наоборот это хоршо когда заказчик ничего не понимает! Главное это разузнать что у заказчика есть и что ему хочется, потом чтото от себя добавить в плане улучшений. Если ему понравится — огласить сумму, затраты и ваще что для этого надо! Согласиться — действуй! Сделаешь — покажешь результат заказчик тебя разцелует…

    И нафиг ему понимать что-либо еще в программах, компьютерах и пассионарной теории Гумилева, когда он реально держит в руках вещь, которую хотел купить..

    Хреново когда заказчик начинает умничать и лезть в сам процесс, причем злостно и придирчиво. меняя цели и приоритеты прям на ходу.. В итоге в лучшем случае влетаем по срокам.. в худшем посылаем друг-друга на юх потеряв кучу времени на ничто..

    так что главное чтоб заказчик понимал не в компьютерах что либо.. а в проектном менеджменте..

    Reply
  82. FE_D_OR83

    Результат: отсутствие доверия клиента

    Решение:

    а) назначать встречу на 1ю или 2ю половину дня или например: с 10 до 12;

    б) планировать маршрут, учитывать пробки, часы пик.

    В) Перед встречей не есть селёдку запивая молоком.

    В целом за картинку к статье плюсую, да ещё мне впомнил это слово «технические требования», теперь буду ходить козырять знанием лексикона.

    Reply
  83. EarlyBird

    Вашу мать, эта статья старушка 2010 года рождения.

    Чё вы за неё цепляетесь? Дайте ей помереть спокойно.

    Или это чисто для заработать пару баллов?

    Reply
  84. daho

    (85) EarlyBird, Да, вы что….!!!! Как можно………..

    Reply
  85. KillHunter

    а как-же тогда деньги зарабатывать,если работаешь не с лицензионной 1ской?

    Reply
  86. Асов

    (27) Акты никто не отменял. Сначала Листы учета, потом акт о выполненных работах на подпись, причем важно чтобы этих актов за проект было несколько, а не один в конце всего…

    Подписанный Акт — это уже юридическая ответственность, с ним можно и в суд и надавить и т.д.

    Reply

Leave a Comment

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