<?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='\
Вот наваял 🙂
Интересно. Посмотрим чего у нее внутре )
Хотел посмотреть, но не запускается в режиме Предприятия (8.2.9.356)
я же написал в файле «прочти» — создаете нового пользователя, даете ему права аминистратора, и закрыватете конфигуратор. Открываете конфигуратор под новым пользователем и работаете дальше под новым пользователем
А если есть по два счетчика хол. и гор. воды?
(5) Что-то с набором услуг напряженка… Счетчиков электроэнергии и газа тоже бывает по нескольку штук… 🙁
И мне крайне не нравится все перЕодическое… 👿
Интерфейс вражественный… Несмотря на инструктаж 😐
Не представляю, как операторов учить такому…
(5) В перечислении Виды счетчиков внесите сколько угодно
(6) набор услуг базовый — дополните своими сколько угодно. Счетчики не могут быть не переодические, как и тарифы (больше ничего периодического нет)
(7) интерфейс администратора и неприкрашен — все что есть чтобы не искать в меню операции. Под пользователя можно сделать любой — не проблема.
Интересно 43 скачало, 4 отметили — а остальные «про запас» качают что-ли ❓
(9) Чуть было не изменил баланс: хотел минус поставить, не скачивая…. 😉
Не фик список друзей скрывать. Хорошо хоть, что у тебя аватарка запоминающаяся 🙂
ммм, я бы плюс поставил, да вот пишет «Для голосования необходмо авторизоваться». Глюк, я же сообщение это авторизованный написал…
(11) оп, получилось 🙂
я просто прочитал что фирма 1С за разработку данной темы отдала кому-то тендер на ~1 200 тыс руб = это был «мой ответ Чемберлену» — месяц работы и никаких денег. «Нам солнца не надо -нам партия светит, нам денег не надо — работу давай!»
В конце концов,
«Каждая самописная работающая конфа имеет право на плюс» (с) Арчибальд
пока не нужно, но пусть будет. когда управляемые формы сделашь, откоменти мне плиз, буду обучаться.
Разбежался было ставить плюс, но при запуске (под 1С:Предприятие 8.2.9.356) выдается ошибочка:
«{ОбщийМодуль.МодульТехнический.Модуль(25)}: Значение не является значением объектного типа (Имя)».
А модули-то закрытые — так вот ничего и не посмотрел, а посему и оценить к сожалению не могу.
Еще не скачал, но в любом случае МОЛОДЧИНА!Сам отработал 7 лет в расчетном центре, знаю эту кухню изнутри — геморрой, но надо….Чуть попозжа поюзаю…
(16) Пользователя заведите, назовите его Иванов Иван Иванович, дайте права админитсратора и……. будет Вам щастье 🙂
(14) Поддерживаю слова предыдущего оратора 😉 .
(18) спасибо помогло, но почему конфе не нравилось что администратора зовут Gosha?
(20) Откройте справочник Сотрудники — там ответ. 🙂
модули закрыты 🙁
Плюс, конечно. Работа большая сделана. Жаль не на управл. формах. А почему регистры сведений …УслугиЛицСчета не периодические? Сам буду скоро творить для расчетов, поэтому интересуюсь.
(23) а смысл ? Есть даты начала и окончания — больше ничего не нужно. Кончилась или не началась не считаем 🙂 Зачем базу «дуть»
(24) Она и так нехилая 😀
(25)Сжатая, заполненная база с 2 месяцами расчета = 4124 кб
(26)+ НЕ сжатая
Учёт льгот есть? ИМХО по работе в ЖКХ самое замороченное было эти льготы.
Есть конфа на 77 по расчёту тепла на отопление, используется для расчета планового и потреблённого тепла юрлицами(дом с частниками считали за один объект). Писал, когда там работал. А сейчас не знаю как с правами быть. Считаю, что права принадлежат конторе, но если есть потребность могу выложить.
(28) да льготные категории учитываются. Заморочки по льготникам потому что нет четкого определения по некоторым категориям — пользуются еще и ведомственными документами и постановлениями
(29) Определей-то хватает, даже через-чур. Пример: у одной категории льгота распространяется на долю, но не более определённого значения, у другой — на соц.норму, у третьей — на весь объём… одна только на бытовую воду, другая на поливную… А самое прикольное их сочетание в непрогнозируемых вариантах 🙂
(30)Все «сочетания» для наших льготников прописаны — справочник Льготные категории 🙂
(31) Отлично. Заслуженно ставлю «+». Направлю своих, пусть потестят.
(32) буду только рад. Все вопросы и пожелания — seermak@mail.ru (Только пусть внимательнее читают помошь)
КЛАССНАЯ КОНФА!!! ПЛЮС
Конфигурация для 1С: Предприятие 8.1; 1С: Предприятие 8.2, в 8.1. не могу загрузить, почему?
(35) под 8.1 не работает — исправил в заголовке
Не могли бы связаться со мной по асе 316615837
28_10_2008 — выложил демонстрационную базу с рабочим местом паспортиста, переведенным в управляемое приложение. Вот…
уже прошло 24 часа почему я не могу сачать файл
Уважаемый автор! Что-то я никак не могу открыть Вашу конфигурацию ни с какой учетной записью… В файл-серверном варианте все работает, а на клиент-сервеном не хочет :cry:… Уже даже сделал выгрузку данных из рабочей базы, но пользователя, который также присутствует в справочнике сотрудников, так и не пускает. Ошибок нет, просто идет окно загрузки, которое закрывается сразу после надписи «Расчет платежей»…
1С:Предприятие 8.2 (8.2.12.78)
Расчет жилищных и коммунальных платежей для домоуправления (000.000.000.001)
(40) это демо-версия, рассчитана для файл-серверного варианта, для клиент-серверного надо немного поработать ручками 🙂
Переустановил, вроде пошло. Спасибо, будем изучать!
Отличная разработка, только вот почему-то модули все запаролены? Вроде бесплатно раздаешь, а править низя ((. Дай паролик в личку 😉
(43) потому, что это демо. 1.поищите — здесь есть решения для снятия паролей 2.мне интересно было бы поработать напрямую с покупателем/пользователем
мдя сам из крыма тут вопрос нужна конфа для автоматизации ЖКХ помоему наверное ток под заказ (((
Доброго вам времени суток!
Решил покопаться в Вашей конфе «Расчет жилищных и коммунальных платежей»
их хелпа….
Справочник Улиц — предназначен для хранения наименований улиц, используемых в программе. Можно заполнить справочник автоматически. Для этого необходимо:
Открыть обработку «Редактирование адресов»;
Выбрать свой регион;
Выбрать свой город;
Выбрать свою улицу — откроется форма списка улиц;
Правая клавиша мыши на поле списка — пункт меню «Заполнить справочник улиц » и справочник улиц будет автоматически заполнен улицами выбранного города.
Заполнение НЕ РАБОТАЕТ! Выдает ошибку
{РегистрСведений.АдресныйКлассификатор.Форма.ФормаВыбора.Форма(204)}: Ошибка при вызове метода контекста (Записать)
НовыйЭлемент.Записать();
по причине:
Значение поля «Код» не уникально
Судя по всему не срабатывает отбор по городу….
Пробовал на Вологодской области, г. Вологда. …хотя думаю не важно…
Хотел подправить…. но увы ….:-((((((
(47) Ничего не могу сказать — конфигурация менялась многокартно — такой ошибки нет — через адресный классификатор выбираете свой регион, улицы подгружаются автоматически И потом, кто же пытается записать новый элемент через форму выбора этого элемента…. Еще = можно убрать в конфигураторе проверку кода на уникальность
(48) шутить изволите?
«Еще = можно убрать в конфигураторе проверку кода на уникальность» — а пароль на конфе?
попробую скачать еще раз конфу….
попробую другой регион…
…. уже попробовал….
взял в этот раз Санкт-Петербург .. ну чтобы меньше выбор полей в обработке…
ТО ЖЕ САМОЕ….
подумал что какая то проблема с кодом справочника улиц (тип число) и попробовал маленький городок Котлас Арх-я обл…
то же самое…
а дело в том что со времени написания конфы (2009 кажись) изменился классификатор … ИМХО
«НовыйЭлемент.Код = СтрокаНабора.КодУлицыВКоде;//число Код »
не прокатывает… в отборе «КодУлицыВКоде» как минимум 21 цифра «1» и т.д.
так что для «современного» классификатора…..
(49) см. пост 44
как начать изменять — разобрался…
а причина КМК написал ранее