<?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='\
красиво!
а торговое оборудование не цепляли?
(1) Спасибо. Пока не было необходимости
Здесь нехватает еще (не помню точно как называется — по моему сетки) Отчета где видна история полеченных зубов клиента (номер зуба и т.д.)
(4) Да много чего еще не хватает 😉
Всякая…….на плюс © Арчибальд
«стомотологического больного» 😀
Тема ОООООООЧЕНЬ интересная. Когда будет описание пользователя? Почему нет демо сборки? Эх… Буду ждать и надеятся. Многоперспективный продукт может получится. Надо еще о стоимости подумать. Твой клиент, как мне кажется, — это не гос учреждения (там все вяло), а частные лавочки, которые действуют в рамках конкурентного рынка. И твоя конфа может дать конкурентные преимущества. Эти вот конторки в большинстве не очень богаты, но потратиться вполне могут. Руководитель стоматологии, как правило еще и врач, человек высокообразованный. Ему с успехом можно провести презентацию демки. Удачи!
Хорошая конфа
Отлично смотрится
Такое дело надо продавать! 🙂 А то кто-то другой продаст.
Без какой -либо структуры, рекламирющей , проталкивающей , поддерживающей соваться в продажи не стоит. Впрочем , «прикола ради» можно выставить в магазин ИС. Там не затеряется.
Пожалуйста .. прошу подсказать .. как Вы реализовали печать общих макетов из серверного модуля? Ведь
ТабДок.Вывести(*****);
ТабДок.Показать(*****);
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Посмотрел Вашу конфигурацию, посмотрел код, хотел найти именно печать общих макетов по нажатию кнопки из любой формы, но у меня это не работает! 🙁 Жму на печать .. допустим .. «Договор» и ничего, вывода не происходит! 🙁 Может я что не так делаю?
(12) Вывести (доступна на сервере). а вот Показать() нет. А я думаю что за фигня в тонком клиенте не выводится на печать (сообщений никаких) в толстом все отрабатывает нормально. Можете глянуть (пришлось переделать)… спасибо для меня данная проблема была непонятна.
Значит так .. такое решение .. на клиенте придется добавлять
&НаКлиенте
Процедура АК043У(Команда)
ТабличныйДокумент = ПечатьАмбулаторнойКарты();
Если ТабличныйДокумент <> Неопределено тогда
ТабличныйДокумент.Показать()
Конецесли;
КонецПроцедуры
Соответственно, поменять процедуры на функции .. убрать Показать() .. И тонкий клиет работает! ВотЬ
P.s. Конфа мне понравилась .. разрешите введу у себя в госпитале? 😉
(14) Я так и сделал 🙂
Используйте на здоровье. Если что доработаете или найдете ошибки пишите
А че БСП не стал прикручивать?)
(17) Пока было незачем. Дальше посмотрим.
Теперь понятно, благодаря кому за выдирание зуба берут 200 баков…
(0) Конфа- хорошая ,но 8.2 и маленькие стоматологии где учет на буке ведется — ихмо пушка и воробьи… для продажи и 8,1 и 8,2 думаю стоит сделать. А в целом давно задумывался над таким только вот карточка зубов — нужная весчь + сканер подключить или если используется цыфра оборудование- прикрепление картинки снимка зубов. И пардон не могу открыть для посмотреть сейчас — там есть запись на прием с резервированием по кабинетно или по креслам?
(19) Спасибо… вы говорите по делу … это все в разработке
Хорошее начало! Успехов в дальнейшем развитии конфигурации
(0) Женя, если не секрет, сколько примерно времени потратил на разработку?
(22) Около 25-30 ч. (на 8.2 разрабатывать попроще)
А не думали о разработке для урологического кабинета ❓ ?
(24) не было заказчика
Залил видеоhttp://zalil.ru/30075615
в нем можно узнать чуток больше
(26) посмотри личку.
хорошая конфигурация, но орфографические ошибки стоило бы поправить. На скрине амбулаторной карты ошибки в словах «стомАтологического» и в слове «проффесия»
Нормальная конфа, Я похожую делал, увидел твою, тоже под управляемое приложение переделал.
(29) выложи, пришли… хочется посмотреть
замечательная конфигурация 1с
не используется ничего стороннего
гораздо лучше инфордента с его фаербердом
(31) Спасибо. Есть большой недостаток… она достаточно простая… работаю над этим.
Под кабинет уролога не появилось заказчика?
(33) Пока нет.
очень помогла
хочу посмотреть и возможно приобрести. есть заказчик
есть несколько вопросов для доработки
(36) Хорошо… можно в личку а лучше на емайл Evg-LylykСАБАКАmail.ru
Все конечно хорошо, но нужно допилить под собственные нужды и да управляемое приложение тут к стати…
В целом стоящий продукт для «начального» уровня со стандартным функционалом. Думаю, в основе данной конфигурации лежит конфигурация Аналит:Стамоталогия или другие анологичные продукты, которые стоят, между прочем, очень хороших денег. Конфигурацию можно дальше дополнять в зависимости от требований заказчика в частном случае. А вообще респект
(39)
Думаю, в основе данной конфигурации лежит конфигурация Аналит:Стамоталогия или другие анологичные продукты, которые стоят, между прочем, очень хороших денег.
делалось с оглядкой, но конфигурация решает довольно узкую задачу.
хорошая конфа, но конечно пока больше «теоретическая»..думаю мало стоматологических клиник смогут «поставить» себе ее и начать сразу работать
Как раз то что я искал. А то текст был а реализации не было. Теперь можно будет посмотреть это в живую. Спасибо выложившему. Удачных разработок.
Ностальгия….
В 1998-2000 годах я тоже делал конфу для стоматологии.
А скажите модули можно поспотреть?
(44) Конечно смотрите
Спасибо, интересная конфа.Только правильно сказали что не хватает сетки зубов,и еще я б прицепил возможность крепления определенного пациента к определенному врачу.
(47) Сетка есть в другой версии (не опубл.).
дельное пожелание… спасибо.
Интересная конфигурация, как не раз раз было сказано надо прикрутить ККМ и сетку зубов, а так все красиво реализовано. Желаю успехов в дальнейших разработках.
автору много +)), пытался покопаться не понял только почему не заполняет на рабочем столе прием пациентов.
(50) Нужно задать константу организация (у нее основной график) уже будет формировать + назначить графики врачам
Странно, но все задал организацию графики четные и нечетные, все равно не заполняет.
Еще получается организация работает по графику или сотрудник?
Конфигурации только 5 плюс.
суперская конфигурация… много отчетов…очень полезная конфигурация…большое спасибо автору
В целом стоящий продукт для «начального» уровня со стандартным функционалом. Думаю, в основе данной конфигурации лежит конфигурации для другие анологичные продукты, которые стоят, между прочем, очень хороших денег. Конфигурацию можно дальше дополнять в зависимости от требований заказчика в частном случае. А вообще респект автору за труд
Ну это самое начало пути.
хорошая разработка — но как всегда еще работать и работать
Я так понимаю небольшая критика и пожелания приветствуются?!
Критики особой не выдам, т.к. конфа хорошая, простая и решает основную задачу: учёт посещений и расчетов с клиентами! Многим этого достаточно! Так что GOOD!
Пожелание следующее: Документ «Прием-Наряд» графы «Номер квитанции об оплате» и «Оплаченная сумма». Лучше бы было чтобы эти графы заполнялись автоматически при вводе на ооснование «Прием-Наряда» документа «Возврат долга пациента»! Причём чтобы они были просто в виде надписей (чтобы регистраторы не могли их изменять). Соответственно надпись оплаты чтобы изменялась соответственно введенного на основании документа оплаты. Причем оплата может производится частями, несколькими документами оплаты.
Было бы вообще идеально!
Евгений, отличный вариант программы для стоматологов (я сам стоматолог), однако есть не очень нужные вещи, есть нужные, чего то не хватает. Мне необходимо дописать программу под конкретные цели, можете ли ВЫ это сделать? С уважением Александр( sanek-net@mail.ru)
Автору респект. Хорошая конфигурация. Чуть-чуть допилить и можно будет делать коробочное решение. )
Почему не работает прием пациентов?
В таблице ничего не появляется после записи графиков?
Что за ошибка? При нажатии уведомление пациентов?
{Обработка.ст_Уведомления.Форма.Форма.Форма(24)}: Значение не является значением объектного типа (Объект)
НовыйДокумент = ФормаДокумента.Объект;
И где расписание работы сотрудников? (графики врачей, ввод наряда из графика)?
(66), (67), (68) конфигурация для ознакомления. к сожалению нет много времени отвечать на вопросы.
Для построения расписания нужно заполнить константу Основная организация и ее график работы + графики врачей.
Жаль мне своего времени и денег, что потратила та такую пустую, не работающую программу, данную демонстрацию можно было и бесплатно выложить
(70) Сочувствую… программе много лет, она для простого ознакомления. Платно — это политика сайта. Когда она размещалась было все бесплатно.
Хотел бы узнать про конфигурацию — есть новые доработки, новый функционал ?
Хорошая конфигурация, но многое нужно напильником доработивать
Было бы хорошо если в карточке пациента имелись бы снимки рентгеновских снимков. Есть ведь специальные аппараты для внутриротовой рентгенографии (дентальные аппараты)… подключить его как торговое оборудование и в онлайн режиме загружать в программу (сохранять) снимки. ИМХО Программа была бы на расхват!
есть конфа на основе этой еще на сайтеhttp://infostart.ru/public/624923/