<?php // Полная загрузка сервисных книжек, создан 2025-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) Загрузку в формате атол выложу, но позже.
Могу на электронку кинуть.
(1) Выгрузка в формате атол лежит сдесь:
http://infostart.ru/public/646123/
Что бы заработала в РМК, необходимо обработку выгрузки подключить в Дополнительных отчетах и обработках.
В РМК еще используется обработка по свертке данных. Сделана на основе стандартной свертки. Запускается ежедневно при первом запуске. Ее тоже выложу позже.
Загрузка справочника товаров из внешней системы и выгрузка отчета о продажах есть?
(5) Именно загрузки справочника товаров нет. Есть обмен в формате атол. Ссылка на выгрузку в (3)
РМК это обработка к Рознице, поэтому ничто не мешает использовать любые обмены с внешней системой.
Зачем на фронте вообще думать об остатках? Если кладовщик не успеет внести накладную или создаст пересортицу, то кассир не сможет продать товар, который по факту есть в наличии.
(7) Ситуации могут быть разные. Например:
Аптека. Приходит бабушка и спрашивает: а такие-то таблетки есть? Фармацевт бежит к шкафу смотрит — есть такие. Бежит обратно кричит бабушке: есть. Бабушка в ответ: а цена какая? Фармацевт опять бежит и смотрит. Бежит обратно. Затем бабушка захочет подешевле, не одну а две упаковки. И т.д.
Что бы не бегать нужны реальные остатки.
(7) Использую так же связку БГУ+Розница. В БГУ нет полноценного учета розничных продаж. Поэтому в Рознице эта галка очень помогает..
(8) Я и не говорил, что остатки не нужно показывать (хотя когда кассиры же проводят инвентаризацию, то остатки им не показывают, чтобы они результат под программу не подгоняли). Я просто в только положительных остатках смысла не увидел: кассир ведь не вручную список товаров прокручивать будет, что ему товары без остатка будут мешать?
(10) Если на данном скрине еще добавятся товары с нулевым остатком, то мне кажется будут мешать.

(11) Главное, чтобы продавец знал, что в случае чего — стоит и без галочки «Только положительные остатки» поискать.
(4)Юрий выложите пожалуйста обработку для свертки данных.
(14)выложил
Юрий, добрый день. Ваша обработка будет работать в Рознице 2.2.6.30-33?
(16) Не проверял.
Скачал Вашу обработку, идея понравилась, но:
1. Почему в нижней таблице не выводится характеристика? У нас аптеки, характеристика содержит цену, серию и срок годности и продавцу важно их видеть.
2. Если у товара несколько характеристик, а на остатке есть только с одной то в подбор попадают все см. скриншоты.
3. Не существенно, но все же. Обработка регистрируется, но не работает (моргает окно формы и все). Работает только через файл-открыть. Платформа 8.3.10.2466, конфигурация 2.2.6.33
(18) Затрудняюсь ответить.
Характеристики общие или индивидуальные?
РегистрСведений.ЦеныНоменклатуры по данной номенклатуре можно выложить?
Или может базу выложите и ссылку дадите?
(18) К сожалению не могу сказать почему у вас так характеристики выводятся. Нужна база. Прикрепил свои скрины.
Возможен ли такой выбор товара по артикулу, очень интересно ..
Какой именно выбор?
Извините не внятно выразился, возможно ли изменить РМК , при внесении в поле цифр это был бы заранее известен программе что поиск происходит по артикулу, кассир набрал 4 вводит Enter, товар с заданным артикулом сразу добавляется. Далее сразу вводит следующий артикул, после подтверждения товар снова добавлен, поиск по наименованию, цене, ШК остается так же через горячие клавиши. У нас столовая и в обеденное время немалый людской поток, кассир знает артикулы товара и ему необходимо как можно меньше движений при выборе товара
(23) А чем не устраивает ввести артикул и нажать F6?
Кассиру надо нажать то же самое количество клавиш, что и с вариантом «Enter».
Хотелось бы ускорить ввод артикула, ввести в поле артикул, нажать допустим Enter (или любую клавишу на цифровой клавиатуре) и товар сразу попадает в чек, без дополнительного открытия окна поиска ..т.е. кассир вводит — цифровой код артикула — Enter — цифровой код артикула — Enter, тем самым увеличивая скорость введения товаров в чек, что очень актуально при потоке людей в обеденное время
(25) Вам нужно добавлять товар без ввода количества и открытия формы подбора товаров.
В моей обработке этого нет.
Все равно хорошо сделано, спасибо,
поддерживаю, не отображаются характеристики, в настройках характеристики индивидуальные для номенклатуры. РС Цены номенклатуры прикладываю
(28) В предыдущий раз была проблема:
«нижняя таблица неправильно отображается если у магазина заполнен реквизит «Вид минимальных цен продажи».
(29) все в порядке с минимальным видом цен продажи
и еще очень не хватает редатирования текущей строки с изменением упаковки
(28) «не отображаются характеристики» — имеете ввиду не выводится наименование характеристики?
(32) да наименование, ну и срок годности.
(33) наименование характеристики не выводится и выводится не будет.
Срок годности, изготовитель, сертификат, серия и т.д. можно сделать через допреквизиты.
Но это не всем надо, поэтому каждый делает для себя индивидуально.
Добрый день! Подскажите пожалуйста, а в данной обработке в итоге реализован механизм внесения денег в ККМ без создания РКО?
Спасибо!
(35) Да, внесение сделано без РКО.
Добрый день! Скачал доработку, версия розницы 2.2.6.33. не могу удалить подобранный товар (
(37) Выделить строку и нажать Delete.
Добрый день.
Может подскажете как в РМК Розницы добавить «Позиций» и Итого количество, как у вас в РМК?
С полями и реквизитами понятно, а с кодом беда, знаний не хватает)
Спасибо
Добрый день, Сие чудо работает с ЕГАИС?
И еще вопрос, через стандартный функционал подключаемного оборудования умеет обмениваться ? Выгрузка в формате АТОЛ, в 1с Розница реализована уже давно, правда малось коряво, но это уже детали.
За основу взят стандартный РМК из Розницы 2.2.5.
Изменен внешний вид, подбор товара (положительные остатки, поиск по цене).
Для того чтобы поиск не тормозил, остатки предлагается хранить за определенный ограниченный период времени.
Что касается ЕГАИС, работы с оборудованием, то эта часть меня не особо интересовала и осталась так как есть.
Обмен в формате Атол в Рознице есть, но Розница в данном обмене выступает как товароучетная система.
Я предложил использовать Розницу в качестве Front-office. И формат обмена будет Атол, но другой.
(33) Для добавления характеристик в нижней табличной части достаточно включить видимость для элемента «ТаблицаОстаткиЦеныТоварыРасширениеХарактеристика» в табличной части «ТаблицаОстаткиЦеныТоварыРасширение» формы «ФормаПодборТовары» и все ок

Подскажите как отменить поиск в окне подбора. ввожу фрагмент ШК нажимаю «Штрихкод (фрагмент) Ctrl+F9», товар отбирается, а назад сбросить отбор не могу. Как это сделать?
Кнопка «Очистить поиск» не работает
Можно нажать Esc, окно подбора закроется и повторить поиск.
Или в окне подбора ввести новое значение для поиска и нажать горячую клавишу (Ctrl+F9 или другую в зависимости от того что ищите).
Лучше фронтола для кассы ничего нет и нечего мудрить, сейчас в законе много чего меняется и довольно часто нужны обновления, лучше напишите обработку для обмена с фронтол и оказывайте поддержку, штатная очень убогая.
(46) если ошибочно был введен не тот шк. То после очистки при вводе правильного шк (или при использовании любого другого поиска) поиск осуществляется в отобранном ранее (неправильном списке). Т.е. фильтр не очищается. При аналогичных операциях с другими вариантами поиска фильтр очищается. Это реальный баг обработки. неудобно открывать и закрывать окно подбора
такой вопрос возник
я правильно понимаю, что он показывает остатки по организации, а не по магазину, по которому выбран в кассе ккм?
(49) Да.
В обработке не работает поиск дисконтной карты по ФИО. Это будет исправлено?
(51) Я работу с дисконтными картами не изменял. Должно все работать штатно.
скопировал форму поиска дисконтной карты из обработки РМК типовой конфигурации и заменил в Вашей обработке, все заработало.
Я пробовал на Рознице 2.2.7. Возможно проблема в этом. Проблема решена.
(53) Скорее всего из-за этого. Т.к. отчет на основе 2.2.5.
Может еще что-нибудь в 2.2.7 не работает?
Добрый день. Установил обработку на Розницу 2.2.7.42 — не работает поиск по цене. Может я что то не так делаю? а уже вышел релиз 2.2.8.24, может с ним заработает ? 🙂
(55) Я на 2.2.7 и на 2.2.8 не проверял.
Но скорее всего поиск не работает по другой причине. Можете попробовать на 2.2.6 или 2.2.5?
Понял, Юрий. Благодарю. Буду пробовать.
Не планируете обновлять обработку под свежие релизы? Ведь все равно придется — скоро маркировка лекарственных препаратов придет. Или с аптеками больше не работаете?
С маркировкой еще ничего не ясно.
Обновлять по плану в июле.
Но в аптеках использовать не буду.
Простите, выкладывать 1500 р за описание обработки? Я понятия не имею, будет ли она у меня работать, будет ли соответствовать моим нуждам на самом деле, а не по «фоточкам», которые тут выложены. Ребята, вы наглеете. Понимаю, что нормальный продукт не может быть бесплатным. Дайте хоть триал-доступ к обработке, а не предлагайте кота в мешке.
(62) вопрос о приобретении снялся сам собой. Поддержки нет и не будет, «…Я на 2.2.7 и на 2.2.8 не проверял. «
На 2.2.7.40 работает
Обработка обновлена для Розницы 2.2.9
Обновлена также свертка данных.
Что-бы работала старая в 2.2.9 замените код:
Показать
разбивает ли он чеки на 2 системы налогообложения как в стандартной версии. И с безналом как взаимодействует с подключенным к компьютеру эквайрингу .
(67) должно работать штатно.
РМК для 1С77 .
а характеристики при подборе отображаются только с положительным остатком?
(70) если стоит галка «только положительные остатки».
Если не стоит, то тогда все.
Будет работать с базовыми версиями?
И, ребят, есть возможность приобрести расширение напрямую у разработчика?
(72) Это внешняя обработка. Подключается через Дополнительные отчеты и обработки, в том числе и в базовой версии.
Битый архив РМК_2.2.9, перезалейте
Какой архиватор?
Оплата бонусами работает в вашем РМК?
(77) За основу взят стандартный РМК из Розницы 2.2.
Изменен внешний вид, подбор товара (положительные остатки, поиск по цене).
Все остальное должно работать штатно.
Меня интересует, возможно включить в вашей обработке при подборе товара столбец характеристики? У нас магазин одежды, а характеристики это размеры и при подборе товара нужно видеть какой размер выбираешь!
(79) нет. нельзя.