Интерактивная ОСВ v2.53




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

99 Comments

  1. clappa

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

    Reply
  2. Shagan

    очень полезная ВЕЩЬ !!! Если полностью вникнуть, то меню отчетов от 1С, практически не нужно 🙂 Спасибо!

    Reply
  3. azernot

    Пользуюсь давно. Всем рекомендую.

    Пользуясь случаем, снимаю шляпу.. +1

    Reply
  4. azernot

    Вот страность какая… При горизонтальном развороте по периодам, сальдо на конец периода показывается как ########, хотя без разворота — нормально. Само сальдо больше триллиона (1,171,676,491.68).

    Reply
  5. vat-74

    Задумано хорошо, фунуциональность широчайшая. Да и выводится красиво. +1 и от меня.

    Reply
  6. JohnyDeath

    У нас тоже с недавнего времени пользуются. Главбух в восторге… и я вместе с ней

    +1

    Reply
  7. clappa

    Azernot, это в какой же валюте?! А ещё говорят что 7.7 — для малого бизнеса…

    Reply
  8. clappa

    * Исправлена ошибка: ширина последних столбцов не подстраивалась автоматически под разрядность сумм (thank’s to Azernot)

    Reply
  9. OlegTor

    Молодец!

    Reply
  10. azernot

    Вот вы смеётесь…

    А может я самолётами торгую? С итальянцами, за лиры?

    Представляете, что у меня в стандартных отчётах творится? 999,999,999.99

    Ну почему они считают стандартной Число 15.2?

    Reply
  11. berghouse

    Супер. +1

    Reply
  12. maljaev

    Отличная разработка. Вещь, которую нужно сделать и которую несложно сделать — добавить при экспорте в эксель группировки в том случае, если они есть. Тогда можно будет еще и в экселе сворачивать/разворачивать группировки. Где-то на проклубе у меня даже пример валялся.

    Reply
  13. O-Planet

    Слушай, за три дня рейтинг этой работы 17?! Присоединяюсь. Ты где был раньше-то? 🙂

    Reply
  14. clappa

    [to O-Planet] Так она уже давно в и-нете валяется. Ещё до инфостарта.

    Reply
  15. clappa

    * Добавлена группировка строк при экспорте в Excel (special for Maljaev)

    * Добавлена возможность использования отчета с TurboBL (если в каталог отчета положить turbobl.dll, она будет загружена при открытии отчета. Подробнее см. turbo.txt). Так как весь отчет построен на таблицах значений, ускорение на операциях, не связанных с запросами к бухитогам, до 80%. Искренняя признательность Александру Орефкову.

    * Исправлена ошибка: при сворачивании горизонтального разворота отчет формировался два раза подряд.

    Reply
  16. maljaev

    Прикольно получилось! Молодец, жалко не могу еще один плюс поставить, настолько нравится.

    Reply
  17. бубух

    Вам хорошо… А у меня пшик (скачал, загнал в Extform, включил в список-увидел!)- жмаю на ОК, а в ответ них…, т.е. ваще ничего не происходит! Ну очень хочется поглядель на нее. Подскажите пож. буху-чего еще надо сделать?

    Reply
  18. clappa

    (to бубух) Непонятно. По крайней мере, кнопки ОК в «Дополнительных возможностях» быть не должно. Попробуй просто запустить файл OSV2.ert через пункт меню «Файл->Открыть…». По результатам пиши на clappa<coбaka>mail.ru

    Reply
  19. clappa

    * Исправлена ошибка: отчет вываливался при одновременном вертикальном развороте по проводкам и горизонтальном — по периодам

    * Исправлена ошибка: не работала сортировка по суммам для разворотов ниже 2-го уровня

    * Исправлена ошибка: перепутаны кнопки управления точностью сумм в диалоге настройки отчета (thank’s to Vlad_Dimov)

    Reply
  20. clappa

    * Исправлена ошибка: в режиме расчета развернутого сальдо программа «ругалась» при попытке сделать разворот по корсчету

    Reply
  21. mgmac

    Разработка потрясающая 🙂

    Если бы в оборотке там где в качестве субконто выступает справочник выводить как нить группы и обороты по этим группам… эх 🙂

    +1 молодец

    Reply
  22. clappa

    [to mgmac] Это предусмотрено. Например, если у вас типовая конфигурация, то для счетов 60 и 62 доступен разворот по Контрагентам по группам.

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

    так называемый «пользовательский» разворот.

    Подробнее — в справке по отчету.

    Reply
  23. andrey995

    Спасибо Автору,

    ПочетИУважение_!!!

    Reply
  24. Плюшкин_

    Класс !!! Даже не знаю как выразить восхищение данной обработкой.

    Reply
  25. viktnov

    Спасибо

    Reply
  26. Блистательно!!!

    Слежу за развитием проекта уже несколько лет.

    Если бы фирма 1С объявила конкурс на лучшую утилиту, то эта обработка была бы главным фаворитом.

    Reply
  27. pr_kristar

    +1 Очень понравилось, спасибо Автору.

    Reply
  28. бубух

    Здравствуйте. Я заказал отчету многоуровневый разворот по счету 60. Разворот получился с таким комментарием: «Ошибка 2229

    Ошибка расчета развернутого сальдо по счету 60

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

    Reply
  29. clappa

    [to бубух] Спасибо за сообщение, постараюсь исправить в ближайшее время.

    Reply
  30. Filipp_inf

    Благодаря этой ПРЕКРАСНОЙ ОСВ даже противная работа стала доставлять удовольствие!

    Вот бы и для 8-ки такую-же !!

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

    Еще раз преклоняюсь перед Талантом и Щедростью АВТОРА.

    Reply
  31. clappa

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

    [филипп] Про щедрость вы зря. Денег, полученных за эту разработку, хватило бы на три такие.

    Кстати, просьба ко всем добрым людям, присылающим деньги на электронный кошелек — указывайте свои имена (или названия своих организаций). Чтобы я мог указывать в справке по отчету людей, способствующих его развитию.

    Reply
  32. clappa

    * Исправлена ошибка расчета развернутого сальдо при многоуровневом развороте (thank’s to бубух)

    Reply
  33. karaw

    Да-а-а, очень полезная вещь. Если бы еще отчет позволял получать обороты по иерархии элементов справочников, то я думаю вообще отчет можно было бы считать идеальным. А так, в любом счучае +1

    Reply
  34. clappa

    [to karaw] Возможность предусмотрена. См. ниже комментарий от 22.11.2006, и справку по отчету.

    Reply
  35. NeeDiGeo

    КРУТО!!! ВЫСШИЙ КЛАСС. АВТОРУ РЕСПЕКТ

    Reply
  36. karaw

    Спасибо! Отчет на самом деле совершенен.

    Reply
  37. genja

    Супер класс!!!

    Reply
  38. CheBurator

    Все хвалят, скачал посмотреть.

    да, сделано хорошо! +1 (сильно мщно оценить не могу — по бухии мало работаю)

    однако сколько не штрымдячил не удалось добиться следующего: хочу вывести ОСВ по сч.62 по субсчетам ТОЛЬКО для конкретного сочетания контрагент/договор (этого не получилось!!) — а уже дальше разворачивать суммы, ходить по корреспонденциям.

    … надо посмотреть инт.осв внутрях — чувствтую, будет чему поучиться…

    Reply
  39. CheBurator

    кста: напроклабе есть еще заменитель типовой ОСВ (конечно, не такой навороченный, но тоже нормалек) — подходит для тех бухов, которые не смогут осилить ИНТЕРАКТИВНУЮ ОСВ — Account Explorer — там кстати мне понравилось окошко с выбором периода…

    Reply
  40. bvk

    Спасибо!!!

    Reply
  41. oops-hi

    Креативно, нестандартно, суперфункционально! Спасибо!

    +1

    Reply
  42. Alexandra

    +1. Спасибо! Очень функциональная и удобная штука!

    Reply
  43. EddieTocha

    +1 Поставил. АВТОРУ — респект. Вот так пишут прфессионалы. Вот бы еще сама 1С у АВТОРА поучилась, представляете в каких конфах нам бы пришлось работать.

    Reply
  44. zaika

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

    Reply
  45. clappa

    Для бухгалтеров и делалось. Я вообще к представительницам этой профессии неравнодушен — жена бухгалтер.

    Reply
  46. alexmp

    да, здорово!!!

    Reply
  47. yulia

    Отчет замечательный — ШИКАРНЫЙ !

    Reply
  48. viktnov

    Ставлю еще один +

    Reply
  49. zaika

    сделать бы еще возможность отбора не по всем субконто, былa бы вообще сказка, а не отчет

    Reply
  50. FogOfJokes

    Приятно и красиво! +

    Reply
  51. akat65

    Очень прилично!Спасибо!!!

    Reply
  52. clappa

    Версия 2.53 отчета

    * Добавлена возможность расшифровки итогов в новом окне отчета

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

    * Добавлена возможность вывода промежуточного сальдо при горизонтальном развороте

    * Добавлена возможность быстрой настройки многоуровневого разворота

    Reply
  53. CheBurator

    Молодец!

    Reply
  54. CheBurator

    +1 оказывается я раньше не ставил!

    Reply
  55. tatyana_schukina

    ОЧЕНЬ ХОРОШАЯ ВЕЩЬ

    Reply
  56. ibm2007

    +1 Очнь нужная вещь !!!

    Reply
  57. v_id

    Однозначно лучший отчет для конечного пользователя. Очень функционально, удобно, понятно и красиво.

    Действительно «доступно и в серьез»!

    Reply
  58. maysi

    Отчет отличный! Заменяет и превосходит почти любой штатный отчет 1С,

    Большое спасибо автору!

    Небольшое замечание:

    В предыдущей версии (OSV250) была лучше реализована возможность разворота по периодам: отображались только те периоды, в которые были обороты, сейчас выводятся все.

    Reply
  59. ReaL

    Весчь !!!

    +1

    Reply
  60. константин

    Да…+3

    Reply
  61. Punisher

    Вещь — бомбовая. Следу за ней еще с версии 2.0

    Reply
  62. g789

    Это лучший отчет для 7 бухгалтерии

    Reply
  63. kss

    Это мой самый любимый отчет!:)

    Reply
  64. treeg

    Лучший отчет для платформы 7.7!!!!

    Reply
  65. registration

    Согласен

    Reply
  66. Йожкин Кот

    Супер удобный, супер быстрый, супер понятный!

    Жду что-то типа анализа субконто!

    Reply
  67. clappa

    [to Йожкин Кот] В шапке отчета, слева от надписи «Код» есть ячейка с символом «v». Если по ней щелкнуть, выбрать из меню «Полный список…» и далее нужный вид субконто, то будет построен отчет «ОСВ по субконто». Если ещё раз щелкнуть по ячейке, выбрать «Многоуровневый разворот», и добавить в список выбранных показателей «Кор. счета», то получится почти классический анализ субконто.

    Reply
  68. clappa

    [to Йожкин Кот] Сорри, в предыдущем посте следует читать «Счета/субсчета» вместо «Кор. счета»

    Reply
  69. Olyunchik

    Не ожидала!!! Бесподобно!!! Для «Восьмерки» интересно такое будет… Собираюсь переходить в ближ. будущем…

    Reply
  70. andrey995

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

    Reply
  71. yur_art

    Когда работал на 7.7 постоянно пользовался им. Превосходная вещь! Спасибо автору! В этом году перешли на 8.1. Жалко, что не могу воспользоваться больше этим отчетом

    Reply
  72. ВосточныйПарень

    Отличный отчет. Только подглючивает при фильтрации по субконто — не все счета показывает.

    Reply
  73. ded00786

    мощно…

    Reply
  74. Pride

    Бесподобно. Супер. Спасибо автору.

    Reply
  75. Искатель

    Присоединяюсь к [75]. Брависимо!

    Reply
  76. oops!

    Несколько лет тому назад пытался делать тоже что-то универсальное на тему ОСВ, но поглядев эту ВЕЩЬ, понял, что лучше не сделать 😉 — сделано с любовью! БРАВО!



    Для полного счастья не хватает фильтра по «красноте» — как в начальном и конечном сальдо, так и внутри (отрицательный оборот). Интересны «минусы» не только в суммах, но и в количестве (конечное сальдо «ноль», а по количеству глубокий минус). Ну и вариант отчета — вывести только «минуса» 🙂

    Reply
  77. Dolly_EV

    Присоединяюсь к 77 и по поводу «БРАВО» и про «минусы»

    Reply
  78. rasswet

    не сохраняет в настройках разделитель учета. приходится 20ть филиалов каждый раз заново подбирать…как настроить сохранение?

    Reply
  79. boobleak

    Очень удобно. Спасибо

    Reply
  80. Lych1

    Молодец!

    Reply
  81. Sprite

    Пригодилось. Вовремя. Удобно. «+»

    Reply
  82. starruslan

    Мое почтение супппееррррр!

    Reply
  83. бубух

    Отчет отличный- — радость главбуха! Вопрос. От OSV250 далеко ушлел OSV2.53? Стоит поменять или? Плюсую по любому.

    Reply
  84. бубух

    А чё низя второй раз плюсануть?! Один раз плюсовал-то год назад, несчитова.

    Reply
  85. AlexisVZ

    Блеск!

    Reply
  86. O-Planet

    Да, это нечто!

    Reply
  87. andrey_k65

    Приятно видеть такой уровень проработки отчёта. Молодец.

    Reply
  88. VIC_KIEV

    Отчет просто фантастика!

    Reply
  89. Kruzo

    С ОГРОМНЫМ нетерпением ждем версии Вашего шедевра для 8.1.

    Привык работать с Вашим отчетом в 7.7 — теперь не могу ничего сделать в типовой БП 8.1. Хоть опять переходи на 7.7.

    Как Ваши планы этим летом сваять нетленку и для 8.1? Не поменялись? Не убивайте надежду!

    Reply
  90. sssvvvvvvvvvvvv

    Солидарна с Kruzo, в 8.1 без такого отчёта, как «без рук». К хорошему привыкаешь быстро 🙂

    Reply
  91. бубух

    (84) «Стоит поменять или?» СТоит, проверил, поменял.

    Reply
  92. svsrus

    Мда… Только восхищение! +

    Reply
  93. MADINAABAZA

    Это просто фантастика!!!!

    Reply
  94. Morlias

    Автору низкий поклон!

    Reply
  95. Altair777

    Еще не знаю как мои бухши оценят, а я уже оценил!

    Reply
  96. Pavlovsky

    Бухам нужна фича — формировать ОСВ по списку фирм. Отчет это позволяет.

    Разработка залуживает уважения! Автору мое восхищение! Как отнесутся бухи к такому количеству настроек пока не знаю.

    Reply
  97. kulenk

    У меня субконто в счете — Контрагенты. А они группированы . В отчете не выводится итог по группам субконто.Хотелось бы узнать можно ли здесь, Вывести итоги по группам контрагентов и с развернутым сальдо(как по ведомости) ?

    Reply
  98. Доня

    Великолепно! Браво!

    Огромная просьба — ТАКУЮ ЖЕ для 1С8

    Reply
  99. Angel2009

    azernot 02.11.2006

    Вот страность какая… При горизонтальном развороте по периодам, сальдо на конец периода показывается как ########, хотя без разворота — нормально. Само сальдо больше триллиона (1,171,676,491.68).

    А самому размерность (формат ячейки в печатной форме исправить слабо!?)

    Reply

Leave a Comment

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