<?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='\
Однозначный плюс — во много раз превосходит стандартную по функционалу.
Понравилась доработка.
Жалко только что перепроводить можно только один документ, но я так понимаю тут дело в системных ограничениях, двойной клик на нескольких ячейках не возможен. Однако и так хорошо.
Хотелось бы и дальше видеть развитие функционала этой нетленки. Спасибо вам и автору оригинала.
(2) а какие возможности еще можно добавить и будут востребованы ?
(3) Из первого что в голову приходит это фильтрация по отрицательным значениям.
(4) близкое к данной хотелке (имеющееся в ОСВ) — настройка — развороты — нужный вид разворотов — сортировка
таким образом можно будет вывести отрицательные остатки вначале/в конце выборки
Автор молодец! Самая нужная обработка для бухгалтера по сути!
++++!!! Только общий журнал не выводится :=(((
7. Все… извиняюсь… разобралась…
3. Было бы не плохо 10 счет раскрыть по местам хранения в денежном выражении… А обработка классная…
Одна из самых лучших и используемых, с моей точки зрения, разработка из всех здесь представленных.
Большое спасибо автору или авторам за столь профессионально выполненную работу, как с точки зрения идеи, так и ее воплощения.
(3) в довесок к «Перепровести документ» можно добавить и «Отменить проведение»
написал (11), а потом вспомнил доработку которая мне очень жизнь облегчала
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3240
думаю этот (или похожий) функционал можно реализовать и здесь при работе с документом
(12) «отменить проведение» и «сделать непроведенным» — на мой взгляд достаточно опасно добавлять в оборотку, т.к. бухгалтер может по-невнимательности ошибочно выбрать этот пункт и потом долго не догадываться что же она удалила, даже если писать событие удаления в журнал регистрации, мало кто в журнал смотрит.
Про Структура подчиненности (Дерево документов), изменение времени и ввод на основании подумаю
(9) для исполнения озвученного желания нужно по субконто МестаХранения устанавливать признак ведения учета по сумме, это не к текущей обработке
(13) из своей практики: этим гениальным отчетом пользуются тоже весьма не глупые люди 🙂
а при отмене проведения можно и лишний раз спросить подтверждения и проверить штатно, не из закрытого ли он (документ) периода
Без исходной обработки ни я, ни мои коллеги уже не мыслим себе работы. Сделана суперпрофессионально и очень стильно во всех самых лучших смыслах! А за доработку — отдельное большое спасибо, полезно.
Супер обработка) скачивала как-то предыдущую редакцию, пользовалась — оч. нравилась, а потом то ли флешка умерла, то ли где-то потеряла эту обработку.. очень расстраивалась, и вот снова она со мной. очень полезная и удобная в работе. Автору большое спасибо!! несомненный плюс
Оссобая благоданость… РЕСПЕКТ… cool обработка!
И всётаки у меня не получилось открыть Общий журнал… «Свой» помоги… У меня 1С Бухгалтерий 7.7 (Украина)
(19) переадресую твой вопрос коллегам-1С программистам-украинцам, т.к. не знаю вашей конфигурации.
(20) Тогда уберите в описании что это универсальная ОСВ.
Она была раньше такой, до Вашего вмешательства.
Я ее пробовал на типовых украинских конфах.
Автору-спасибо огромное! Два плюса.
Удивительно красивая полезная и удобная обработка. Бухгалтерия в восторге. Большое спасибо.
Да, журнал добавился, но к сожалению исчез многоуровень
Доня, чтобы был многоуровень, нужно скачать остальные файлы исходного комплекта ОСВ2.5 (http://infostart.ru/projects/608/)
и запускать мой файл ВМЕСТЕ с остальными файлами автора clappa
СУПЕР!!! ОГРОМНОЕ СПАСИБО. Всем бухгалтерам буду рекламировать.
Согласен с большинством отзывов, вещь хорошая и главная полезная.
Извините за разрыв во времени, но только по ссылке увидела. Интересная. Попозже постараюсь погонять. А пока спасибо и с празниками. Удачи
давняя хотелка — как-нибудь «на лету» прикрутить фильтр по субконто.
«На лету» — имею ввиду чтобы он, например, устанавливался в выпадающем меню при развороте (именно по тем субконто, по которым в данный момент возможен разворот)
или на худой конец — возможность жестко задавать фильтр на форме
(3) У автора Clappa есть грешок — он наследует из стандартной поставки некорректное отображение развёрнутого сальдо, что приводит к невозможности выверки баланса по ОСВ. Судя по описанию, ты в этом направлении тоже ничего не делал. Было бы здорово, если бы тебе удалось побороть эту ошибку (точнее, целый ряд ошибок) развёрнутого сальдо. Если нужна дополнительная информация, могу рассказать, как именно можно это исправить.
Отличная обработка!!! Часто пользуюсь этой ОСВ в 7-ке. И в ходе работы возник вопрос?
Как можно настроить разворот, например по субконто Основные средства, чтобы выводилось не стандартное представление, а одновременно наименование с кодом а так же периодический реквизит. Конкретно — СчетЗатрат, это счет учета начисленной амортизации. По отдельности настраивается вывод или наименования с кодом, или счет затрат.
(30): собственно, развороты счетов настраиваются пользователем — так что вроде как бы мимо упрек.
или ты о чем?
(32) Я вот о чём:Ошибки оборотно-сальдовой ведомости стандартной поставки 1С .
Иными словами, настройки пользователя спасают только от части имеющихся некорректностей, но, к сожалению, не от всех. Это касается как версий 1С 7.7, так и версий 1С 8.
(34) Даже спорить не буду, т.к. мои тезисы — вовсе не мои, а стандартная устоявшаяся практика, которая распространена во всём мире. Она используется как в западных решениях, так и в отечественных. И я лично ничего нового не придумал, а просто рассказал, как можно, применяя стандартные правила, из программы, называющейся бухгалтерской, сделать по-настоящему бухгалтерскую программу.
Сделаю только единственное замечание, касающее вот этих слов:
>не недостатки довольно стандартного отчета, но ограничения, налагаемые организацией плана счетов
Именно план счетов и определяет структуру ОСВ, поэтому недоработки ОСВ — следствие недоработок плана счетов.
P.S. Здесь продолжать общение в таком нелицеприятном тоне не намерен, но если есть желание пообщаться вежливо и предметно, то могу доказать свою правоту в приватном общении.
(35): Ваши (именно Ваши) «тезисы» разобраны по сути; понимаю, что не нравится — не трагедия.
«Единственное замечание» — вновь мимо сути, отсутствие на синтетическом АП-счете аналитики, которая есть на субсчетах — вполне может быть и оправданной.
Ваши обвинения в «нелицеприятности» кроме как на испорченное кем-то до меня Ваше настроение или на воспаленное, простите, самолюбие списать не получается — в обоих случаях моей вины в том не видится и, соответственно, подразумеваемый упрек в невежливости и беспредметности — не принимается.
Неясностей в Вашей позиции по упомянутым вопросам у меня на текущий момент нет, поэтому вряд ли воспользуюсь Вашим «приватным» приглашением.
Удачи Вам.
Спасибо огромное !!!!!
+++++++++++++++ однозначно
и еще раз СПАСИБО !!!!!
Собственно возникла необходимость ОСВ по месяцам(отчет «вправо»), тут это прекрасно реализовано, однако у меня на некоторых счетах я добавлял еще уровни, и отображение групп, только элементов в настройке не работает :(. Еще не за лазил в обработку, решил написать тут. Попробую описать по лаконичней, Если количество уровней в справочниках отлично от стандартного (2 уровня..(Элемент,Группа)) отчет отображает не верно, а жаль инструмент действительно достойный.. молодцы ребята
(38): и все-таки непонятно — что, в каких обстоятельствах и КАК отображает, что такое «неверно» и как бы хотелось чтобы оно было..
отлично
Очень хороший отчет, главное очень удобен при детализациях
А как сделать в этом отчете сортировку по детализации субконто, необходимо вывести отчет атким образом чтобы сортировка была как в справочнике по папкам?!
Спасибо автору! Очень нужная обработка
Спасибо большое, очень пригодилась в работе.