<?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='\
* Добавлены данные для заполнения стандартных календарей на 2007 год
Господа, где отзывы?
ух…. молодец
+1
По немногочисленным, но настойчивым просьбам:
* Реализована возможность автозаполнения сменных графиков произвольной периодичности (ранее было ограничение на периодичность до 8 дней)
* Реализовано автозаполнение графиков по формуле, задаваемой пользователем.
Это может пригодиться, например, для вахтовых графиков. Формула задается на встроенном языке 1С, вызывается для каждой даты из периода, и должна возвращать количество рабочих часов в указанной дате.
Например, для вахтового графика «Работа по 8 часов каждый месяц с 1 по 15 число» будет выглядеть: ?(ДеньМесяца <= 15, 8, 0)
а скриншот можно добавить?
Полезная обработка.
А где формулу то вводить???
[to Дмитрий] В обработке заполнения календаря надо выбрать тип графика «Пользовательский». Тогда появится поле для ввода формулы. Список переменных, которые можно использовать в формуле, приведен в справке по отчету.
Можно сохранить настройку заполнения вместе с формулой в файл Calendar_Fill.ini (вручную, или с помощью кнопки «Сохранить» в обработке заполнения календаря) — тогда соответствующая настройка станет предопределенной, и будет доступна для выбора в поле «Тип графика» другим пользователям и в других базах.
В файле Calendar_Fill.ini уже прописаны для примера две пользовательских настройки («Пользовательский вахта 1-16», и «Пользовательский вахта 17-31»)
Во, по скриншотам однозначно +1
Очень интересно, буду смотреть.
Супер! Еще бы табели рабочего времени заполнять..Ваще красота..
* Добавлены файлы для заполнения стандартных календарей на 2008 год в соответствии с постановлением Правительства РФ от 11.08.2007 № 512
Однозначно к чему-нибудь прикручу… уж больно красиво…
Классно! Очень наглядно
Замечательно и наглядно
Очень красивый, хорошо продуманный интерфейс! Здорово!
Замечательно!
Хорошо бы еще продумать для бухгалтерии в этом ключе.
Например: для заполнения табелей (есть такая обработка).
http://www.ya.ru
на запрос
«русский и английский формат календаря»
выдает абсолютно нерелевантный результат — первый раз сталкиваюсь…
хорошо бы добавить вывод календаря по выбору — в «американском» (по горизонтали» и русском — по вертикали…
[18] Добавить ещё один формат — не проблема. Но я, к сожалению, не знаю, как должен выглядеть «кошерный» американский календарь. Кроме того, что недели идут «колонками» и воскресенье стоит перед понедельником, есть другие отличия?
Отличая обработка! Красиво, локанично, удобно, БЕСПЛАТНО!!!
Автор — просто молодец, спасибо.
Эх, мне б такую обработку, но только в 8.0
Отлично
Спасибо, мне очень нужно было, но не хватает опыта.
Отличная обработка. Спасибо
ой!! Я промахнулся!
«Хотел плюс»
(25) Переплюсую!
(26) Спасибо, но еще 1 плюсик надо 🙂
(25) Оказывается, плюсик убирает минус!
http://infostart.ru/profile/8089/blogs/705/?cp=all написал мне
Вот гад этот Belomor в
126. Belomor 08.11.2008
(124,125) С тобой промахнулся — не туда на плюс нажал, захотел убрать но «+»-«-«=»-» 🙂
Отличная вещь. Спасибо.
Большое спасибо!
Здорово
А откуда можно загрузить *.ini файлы календарей?
Здорово! Очень удобно, легко и просто!
Красиво!
Замечательная обработка. Просто, лаконично, наглядно. Эталон!!! 😀
Добавлены файлы для заполнения стандартных календарей на 2010 год в соответствии с постановлением Правительства РФ от 31 октября 2009 г. N 869
Добротная вещь. Хорошо работает даже , когда графики из ряда экзотики.
Очень пригодилась. Вот если бы еще ее аналог на 8.1. В общем большой плюс.
Спасибо!
(35) Извини но у тебя тоже эталон, так что ворую 😀
Замечательная обработка. Просто, лаконично, наглядно. Эталон!!! 😀
Красота, глаз не отвести ! Спасибо!
Одна из немногих работ из огромного количества, выложенных в инете, которую использую совсем без доработок.
Просто «сел и поехал» ))
Красиво, классно — работает!
Автору ОГРОМНОЕ СПАСИБО!
Обработка меня спасла! ❗ ❗ ❗
Сколько ни пользуюсь — ничего лучше не видел.
Использую обработку для себя с удовольствием ))
Но несколько раз замечала странную проблему в ЗиК — смоделировать не могу, но периодически случается —
куда-то пропадают все праздники (сама вносила, сама работаю, есть данные, рассчитанные явно с учетом праздников…. и праздников совсем нет… злоумышленые действия пользователей исключены).
Поскольку чудес не бывает — прошла поиском по конфигурации по Удалить()
Из Удалить(), связанных с праздниками — только обработки заполнения календарей….. но не могу ни смоделировать ситуацию, ни вычислить логически….
Не сталкивались с такой проблемой? Ломаю голову уже давно.
(Natalia) Найдите функцию ОчиститьЧасыГрафика (она есть и в Calendar.ert и в Calendar_Fill.ert), и закоментируйте строчку
Клндр.Удалить(спДаты.ПолучитьЗначение(Инд))
Если проблема исчезнет — значит виновата обработка. Если нет, нужно искать причину где-то ещё.
Функцию-то нашла, и строчку тоже ))
Закомментировать — не проблема, но нужный функционал не хочется портить. Тем более что при прочтении все кажется вполне корректным. Проблема бывает изредка — раз в три-четыре месяца. Так что лучше я туда пока просто «ЗаписьЖурналаРегистрации» поставлю.
Супер
а если нет ЗиК — как тогда? Может кто-нибудь скинуть данные на этот год из ЗиК или пример, как из ЗиК это вытянуть для использования в другой конфе?
Очень удобный отчет! В прикрепленном файле календари на 2012 год: 40 часов, 36 часов, а так же праздники.
Отличная обработка! действительно помогает держать все графики в системе! Использую её давно, видела много других. Эта-без сомнения, самая хорошая и удобная во всех отношениях!)). Автору-огромное наше спасибо!))).Использую её как базовую для другой обработки, которая на основе этой выводит печатную форму графиков по сотрудникам по «роспись».
Отличная обработка! действительно помогает держать все графики в системе! Использую её давно, видела много других. Эта-без сомнения, самая хорошая и удобная во всех отношениях!)). Автору-огромное наше спасибо!))).Использую её как базовую для другой обработки, которая на основе этой выводит печатную форму графиков по сотрудникам по «роспись».
полностью согласен с вами
С У П Е Р !!! Спасибо!!!
Nady_71 пишет:
Отличная обработка! действительно помогает держать все графики в системе! Использую её давно, видела много других. Эта-без сомнения, самая хорошая и удобная во всех отношениях!)). Автору-огромное наше спасибо!))). Использую её как базовую для другой обработки, которая на основе этой выводит печатную форму графиков по сотрудникам по «роспись».
Присоединяюсь
ВОТ это да!!!! СУПЕР ОБРАБОТКА!!!
ВОТ это да!!!! СУПЕР ОБРАБОТКА!!!
Автору 1000 раз СПАСИБО!!!
1с-ки что додуматься до таково не могут? Либо просто не парятся по этому поводу? Я считаю что такие вещи изначально должны быть в 1с!!! Это же необходимость!!! Автору еще раз СПАСИБО!!!
Отчет предназначен для просмотра, редактирования, и автоматического
заполнения календарных графиков, таких, как графики рабочего времени
в программах расчета зарплаты. Может использоваться в конфигурациях,
базирующихся на компоненте «Расчет». Имеет возможность работы
сохранения (и восстановления) календарей в внешних файлах.
Некоторые возможности отчета (например, просмотр и редактирование графиков
работы конкретных сотрудников) доступны только в типовых конфигурациях
«1С:Зарплата и Кадры» и «1C:Комплексная конфигурация».
В комплекте с отчетом идет файл с данными о заполнении основных
календарей ЗиК (Праздники, 40-, 36- 30-, 24-часовая раб. неделя, отпуск по
календарным дням) за 2003-2010 годы.
Спасибо автору за отличную обработку, очень помогла. Огромное мерси!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Отличная обработка! действительно помогает держать все графики в системе! Использую её давно, видела много других. Эта-без сомнения, самая хорошая и удобная во всех отношениях!)). Автору-огромное наше спасибо!))). Использую её как базовую для другой обработки, которая на основе этой выводит печатную форму графиков по сотрудникам по «роспись».
Автору СПАСИБО! Хорошая вещь и описание супер-расписано, как для младенцев!
Огромное спасибо за обработку! Встретил ситуацию, когда за Январь 2013 года календарь-пятидневку ЗиК тупо удваивал… боролись 2 дня по всякому. Обработка помогла очистить календарь и заполнить заново, после чего все заработало отлично! Ставлю плюс.
спасибо, отличная обработка, работает без напильника
и описание доступное любому пользователю, разжовано до мелочей
Спасибо автору. Экономит кучу времени, не заменим при сменном графике работы!
Спасибо, прекрасная обработка! Еще бы добавить возможность загрузки из Excel, а не только ini.
Очень полезная вещь прикручиваю к конфигурации табель раб времени по подразделением с печатью формы Т-13. Допишу отдельное спасибо вам!!!!!!!!!!!!!
А еще бы добавить автозаполнение типовых недель по 40 часовой неделе по производственному календарю. Производственный колендарь же можно получить с сайта 1с???