Полный вариант решения задач для подготовки к экзамену 1С : Специалист 8.х по платформе (все разделы учета)




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

98 Comments

  1. Serjik78

    P/S/ Предыдущие публикации:

    http://infostart.ru/public/58878/

    http://infostart.ru/public/58918/

    Reply
  2. Serjik78

    За самим сборником просьба обращаться в личку.

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

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

    Reply
  4. Serjik78

    ( 3 ) Благодарствую 🙂

    Reply
  5. Amali

    Ничего себе… щедрая душа… сдал уже на специалиста?

    Reply
  6. Serjik78

    ( 5 ) Сдал, пусть теперь другие сдадут 🙂 А то я устал готовиться, чтобы в эти 4 часа уложиться.

    Reply
  7. codingone

    (0) БУ И Зарплатные задачи совпадают с ранее выложенными?

    Reply
  8. Serjik78

    ( 7 ) Да, совпадают.

    Reply
  9. Serjik78

    Очень много просьб:

    Уважаемые дамы и господа, по эл. почте решения высылать не могу. На работе и эл. почту пасут и трафик занимать внешний не могу, расстреляют. Дома Интернет очень дохлый, качайте пожалуйста отсюда. Заранее спасибо за понимание 🙂

    Reply
  10. RailMen

    Предлагаю Сержика 78 причислить к лику святых инфостартовцев!

    Reply
  11. AS108

    (0)

    Пусть Ваше сердце всегда будет таким щедрым!

    И пусть Ваш ум всегда будет открыт ко всему новому!

    И пусть Ваше тело никогда не знает усталости!

    И пусть Ваша душа всегда стремится к совершенству!

    И пусть удача сопутствует Вам во всех Ваших начинаниях!

    Низкий поклон и Большое человеческое СПАСИБО за Ваши труды!!!

    Reply
  12. AS108

    PS: И пусть Ваш трафик будет ничем не ограничен 😀

    Reply
  13. mishaninv51

    Большое спасибо! Слов нет, одни плюсы!!!

    Reply
  14. M.Shalimov

    Спасибо милый человек, это какраз вовремя))))))

    Reply
  15. chost

    По задаче 3.11

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

    Не увидел этого в задаче. Без этого «задача не решена в полном объеме — 2 балла!»

    Reply
  16. Serjik78

    ( 15 ) Хороший вопрос. Насчет привязывать новые виды расчета — я закладывался, что, при расчете тех же премий используется универсальный запрос. Т.е. вводите новый расчет, включаете в базу для премий и будет считаться.

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

    Так что этот вопрос сам хотел бы обсудить 😉

    Reply
  17. afanasko

    Ппц. Вот как плюсы зарабатывать нужно, оказывается!

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

    Reply
  18. Serjik78

    ( 17 ) Если задачи не прорешать самому, то экзамен не сдать. А так помощь людям, ИМХО экзамен сложный по платформе стал.

    Вот сами посудите: философствовать некогда на экзамене, 1 час на БУ, 1 час на ОУ, 1.5 часа на Расчет, 15 мин на бизнес-процессы. 15 минут на всякие мелочи. Выйдет 4 часа и ошибаться некогда, застрял на какой-нибудь детали «Ручная операция» и все, тут минус 1 балл, там скинут за «неоптимальность», зададут доп. вопрос с подковыркой, за него снимут.

    При этом Ваши комментарии не слушают: «Придете на передсдачу, она же льготная». И хоть расшибитесь — «Преподаватель не обязан объяснять».

    Так что пусть люди не будут наступать на одни и те же грабли.

    А плюсы — их в карман не положишь… Зато приятно 🙂

    Reply
  19. rasswet

    могу зазеркалить куда-то. будешь рассылать ссылки, если надо. делать?

    Reply
  20. larisab

    (16)(18) Это что за экзаменаторы пошли? Раньше помнится на такие вопросы не только отвечали, а еще и помогали в осознании многих понятий :).

    Reply
  21. pal_vas

    Спасибище!!!

    Reply
  22. Serjik78

    ( 19 ) В каком смысле? Уточните, пожалуйста, что имеется ввиду.

    Reply
  23. ураниум

    Офигеть!!!

    Reply
  24. rtimothy

    Готовлюсь к специалисту и не могу скачать выложенные задачи.Помогите!

    Reply
  25. Serjik78

    ( 24 ) Как так? Вижу 991 скачавших 😉

    Reply
  26. kkvlad

    Сдавать или нет экзамены — это одно, а знать все равно нужно.

    Спасибо!

    Reply
  27. mpkfa

    молодца однозначно ПЛЮС

    Reply
  28. VitalyK

    «Все разделы учета…» при распаковке выдает «неожиданный конец архива…». Хотя по размеру вроде скачен полностью.. В чем может быть дело? Но вообще однозначно ПЛЮС!

    Reply
  29. JIGIT

    Спасибо!!! и + однозначно! 🙂

    Reply
  30. Serjik78

    ( 28 ) Попробуйте еще раз скачать. Вы — первый после 800+ скачиваний этого файла 😉

    Reply
  31. chost

    По задаче 3.11

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

    По алгоритмам — это реквизит у ПВР. Соответственно в коде проверки не на вид расчета, а на ВидРасчета.Алгоритм

    Reply
  32. kubiky

    Огромное спасибо — хорошее подспорье для подготовки

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

    (17) Специалист И «1С-специалистПоПлатформе» — это не одно и то же 😀

    Reply
  34. srvrv

    Почему были выбраны именно эти билеты?

    Reply
  35. Serjik78

    ( 34 ) Потому что они на экзамене встречаются.

    Reply
  36. rtimothy

    в контексте этой темы и имеется ввиду Специалист по платформе,по конфигурациям сдают на специалиста-консультанта. 😀

    Reply
  37. srvrv

    (35)

    Встречаются только эти? Или могут быть любые?

    Reply
  38. Serjik78

    ( 37 ) Эти в том числе, всего билетов, которые я видел 24. А сколько всего — боооольшой вопрос 😉

    Задач в сборнике 150, комбинаций по правилу множеств = 50 * 40 * 50 * 10 = 1 000 000 😀

    Reply
  39. megaalex

    Спасибо!

    Reply
  40. Serjik78

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

    Reply
  41. DarkAn

    А где можно прочитать сами формулировку задач? т.е. саму задачу?

    Reply
  42. dim0n_la

    Успел посмотреть только БУ четыре задачи. По всем четырем решение к сожалению не соответствует требованиям поставленным в задаче. Дальше смотреть интерес пропал.

    Думаю, что когда выкладываешь подобные вещи, на которые некоторые люди потом ещё и вздумают ровняться, то нужно быть уверенным, что именно этот вариант решения 100% даст пять баллов а не -2 на экзамене.

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

    А так спросить даже не о чем, т.к. решений я не увидел. Может и стоит дальше посмотреть…

    Reply
  43. larisab

    (41) А вот это уже нельзя.

    Как зеницу вока…

    Зо 2 дня почти 2 тыс скачиваний и почти 400 плюсов!!

    Если бы все заплюсовали ❓

    Вот это фурор!!! А ведь спецы нужны практически только франчам… А еще считается, что сайт фрилансеров 😀

    Reply
  44. DarkAn

    (43) ну а как тогда в (42) посте знают, о том что задача не соответствует требованиям?

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

    Reply
  45. larisab

    (44) Это-то понятно, но выкладывать здесь нельзя.

    Их вообще никому не дают, только на экзамене, запрещено 1С.

    А в 42 откуда знает, экзаменатор ❓ ❗

    Reply
  46. DarkAn

    (45) Ок, все ясно 🙁

    Reply
  47. ivashale

    Это самое лучшее и самое полезное, что я когда-либо встречал на Infostart. Автору низкий поклон

    Reply
  48. Source

    Подскажите, где можно скачать текст заданий???

    Reply
  49. PavelBaryshev

    Спасибо большое, есть же добрые люди 🙂

    Reply
  50. KukA.5

    Полезно не смотреть в чужие решения, а самому по заданиям решить их! Это гораздо эффективнее 🙂 Я когда в свое время готовился к спецу, посмотрел некоторые решения, которые коллеги по Рарусу (сдавшие уже на спеца) дали из своих подготовок — все это беспонтовка полная, как правило.

    Таблетка от «лени и от нежелания лично думать, нежелания прорабатывать задания и набирать навыки для сдачи экзамена» — вот что выложил уважаемый автор…

    Это просто мое мнение. Ставлю МИНУС за неправильно задаваемый вектор для других (выкладывания вариантов решения без текста заданий).

    Reply
  51. Istur

    (48) Купить у 1с. http://v8.1c.ru/metod/books/book.jsp?id=171

    Или вбить в поисковике запрос: скачать сборник задач для подготовки к экзамену специалист по платформе 8 …..

    Reply
  52. Istur

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

    Reply
  53. марокко

    Ух ты! Класс! Огомное спасибо! Так пригодилось!

    Reply
  54. Serjik78

    (50) Соглашусь с уважаемым Istur, все зависит от человека. Начинаем мы учиться на примерах. Я тоже по крупицам информацию собирал, когда начинал готовиться. Расчетную часть вообще не знал, если бы не было «таблеток», то времени бы убил очень много.

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

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

    Reply
  55. kuzyak7

    Serjik78, а какие билеты лично вам попались?

    На какую оценку препод оценил решение? Были ли ошибки?

    Reply
  56. cmd_vasec

    А какой редакции книги относятся решения?

    Reply
  57. Serjik78

    (55) Мне попался билет, который я выложил. Выносили мозг по рачетной задаче, я упирался, что премия у меня начисляется отдельно по валютам, а препод настаивал, что нужно сразу на все делать. Еще была пара мелочей по оптимальности решения. Оценили на 3+. На мои вопросы как же надо было правильно меня послали «лесом», что отвечать не обязаны.

    Reply
  58. Serjik78

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

    Reply
  59. Andy525

    Здорово помогает, большой плюс

    Reply
  60. Rusik49

    Сержик78, вы молодец! Спасибо. Вы все правильно написали- времени в обрез и чем лучше подготовишься и просчитаешь время — тем надежнее.

    Reply
  61. jhfrek

    Благодарю!

    Reply
  62. Requiem

    Задача 1.37. Вместо решения выложена чистая каркасная конфа.

    Reply
  63. netstep

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

    Reply
  64. Scorp_Freeman

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

    Reply
  65. manan

    уважаемый автор. вот здесь обнаружил ваши материалы http://www.sky1c.ru/node/53

    и, кстати, свою конфигурацию «Тестирование 1С Профессионал», что меня не очень порадовало.

    Reply
  66. Serjik78

    (65) Вообще там человек взял несколько ссылок (моя только одна) и выложил на сайт, внизу страницы есть ссылка на infostart. Говорит о том какие там профессионалы в автоматизации 😀

    Reply
  67. Serjik78

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

    Reply
  68. boggonzikov

    что-то скачать не получаеться

    Parse error: syntax error, unexpected ‘:’ in /usr/local/www/data/bitrix/stack_cache/MYSQL/b_iblock/30/306004069f336106238000efc8c322b9.php on line 5
    Reply
  69. Аверков

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

    Reply
  70. manan

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

    http://infostart.ru/public/62680/files/

    Reply
  71. manan

    (71) см. вот эту ссылку:

    http://infostart.ru/public/66244/

    Reply
  72. Boris-Leleko

    Решения всех билетов по управляемому интерфейсу

    http://infostart.ru/public/77754/

    Reply
  73. azza

    Помогите разобраться, что за формат файла, как его открыть-то?

    Reply
  74. TUTSIC9

    Очень полезная книжка, ибо сдать на спеца нереально просто!!! эта вещь может очне ьдаже помочь!!!!

    Reply
  75. netserfer

    Вопрос. Начинать готовиться или не начинать

    Reply
  76. lemonadze
    netserfer пишет:

    Вопрос. Начинать готовиться или не начинать

    А трава зеленая? )

    Reply
  77. HarleyDavidson

    Спасибо!

    Reply
  78. BurSer

    Скачал. Спасибо. Пойду готовиться к сдаче.

    Reply
  79. Zoomby

    Спасибо, интересный материал. 🙂

    Reply
  80. Stepan_1c

    спасибо за труды и старания всем=)

    Reply
  81. Stepan_1c

    надо будет собраться с духом и начать нормально готовиться = )

    Reply
  82. h_vitya
    Boris-Leleko пишет:

    Решения всех билетов по управляемому интерфейсу

    http://infostart.ru/public/77754/

    Спс!

    Reply
  83. 1C-Nic

    Спасиба

    Reply
  84. deus78

    Спасибо …ученье свет !!! )

    Reply
  85. jiggli

    Спасибо!

    Reply
  86. divalis

    Спасибо, помогло!

    Reply
  87. povelivatel

    Большущее спасибо за данные материалы, надеюсь они пригодятся мне.

    Автор молодец, нигде больше такого найти не мог.

    Наверное плохо искал, но не суть.

    Reply
  88. Bassgood

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

    Reply
  89. opolyakova

    не полный.

    Reply
  90. orsprog

    Судя по отзывам материал помог сдать экзамены, версия еще не устарела?

    Reply
  91. ann_ver

    Спасибо автору за материал!

    Reply
  92. ann_ver

    спасибо большое

    Reply
  93. quadro3

    Спасибо!

    Reply
  94. miledi.80

    Спасибо! Пригодилось.

    Reply
  95. Kohmar

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

    Reply
  96. frea

    спасибо, отличная подборка. пригодилось

    Reply
  97. dvarf

    (2) Пришли пожалуйста все вопросы.

    Reply
  98. XelOla

    (9) будьте добры вернуть 1 стартмани. не обратила внимания на дату публикации. 2009 г(((

    Reply

Leave a Comment

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