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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *