<?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.0 для Беларуси.
(1) Naton,
Здравствуйте.
Речь о Конфиге Розница 2.0 для Беларуси.
Обработка разрабатывалась и сопровождается под российскую конфигурацию Розница 2.0.
В ней реквизита документов «НомерБСО» нет.
Необходимо подправить функцию СформироватьЗаголовокДокумента(Шапка, НазваниеДокумента = «») указав реквизит НомерБСО.
нет, поправить нужно Функцию СформироватьОтчетТОРГ29
ОбластьМакета.Параметры.НомерДокумента = СтрокаТЗ.Документ.НомерБСО;
Ещё раз спасибо и за этот отчет и за расшифровку переоценок
(3) Naton,
Спасибо.
Добрый день, подскажите, пожалуйста, отчет работает только на Розница 2.0.4.5.???????
В Рознице 2.0.5.3 (для беларуси) работает
(5) s_uu,
Запустил на 2.0.4.5, работает.
ВЕРСИЯ 8.3.1 (.05.2015). Новая редакция.
— Добавлена возможность выбора ВидЦены, в ценах которых выводится отчет.
— Добавлены колонки отчета: «Себестоимость», «Наценка».
— Колонка «Оборот» за период заменена на «Продажи».
— Добавлен реквизит «МОЛ» (материально-ответственное лицо) с выводом в отчете.
— Изменения на вкладке «Цены и себестоимость» номенклатуры.
— Прочие изменения.
Кратное увеличение производительности по сравнению с предыдущими версиями.
ВЕРСИЯ 8.3.2 (06.2015).
— Исправлены выявленные недочеты.
— Добавлена таблица «Комментарии», в которую выводятся Сообщения/Предупреждения/Ошибки.
Это поможет «разобраться» с проблемными документами.
8.3.3 (15.11.2015).
— Расширен список отслеживаемых ошибок (выводится на вкладке «Ошибки» — ранее «Комментарии»).
— В таблице «Цены и Себестоимость» добавлена возможность фильтрации таблицы по «документу».
— Прочие изменения.
Добрый день, можно спросить почему в отчете вместо Поступления товаров ,выходит документ Установка цен?
(11) IgorQ,
Надо посмотреть. Проверю.
8.4 (07.2016).
— Исправление выявленных ошибок.
— Добавлена таблица «Товары и документы» (вспомогательная, для выявления ошибок даных).
— Прочие изменения.
Скачал, показал бухгалтеру. В общем, судя по всему, отчет Ваш собирает и суммирует товары (цена*количество) в документах, что не всегда совпадает с фактической суммой в строке товара (причина тому скидки у поставщика, или упаковка приходуется 6 шт по 200руб 17 копеек). В итоге в отчете укзаны суммы документов не совпадающие с суммой самого документа, что для бухгалтера делает отчет неприемлемым.
(14) bmf,
Посмотрю.
Скачал, все понравилось, но бухгалтерии не понравилось то, что иногда в расходной части (при формировании расширенного отчета), в графе сумма учетных данных, в отчетах розничных продаж, больше чем в графе продажи.
В обычном режиме в графе учетных данных, также выводится сумма больше, чем по факту в самом документе.
(14)
Цена и количество берутся из регистра.
Что туда записывается зависит от проведения документа.
Может быть что-то с упаковками — проверю еще раз.
(16)
Учетные цены — цены на товары на период до документа отчета о розничных продажах, установленные документами установки цен.
Эти документы могут сдвигаться по дате+времени. Документ отчет о розничной продаже сформировали, а документ установки цен внесли позднее и поставили его раньше этого документа о розничной продаже.
В результате цены учета реально могут отличаться от цен продаж.
Также может быть, что товар продали со скидкой, или цену указали при продаже вручную.
Это часто встречающаяся ситуация.
(17) Да в том то и дело, что цена * количество не всегда равно сумме в строке. А в отчет должна попадать именно сумма из документа, а не произведение количества в строке на результат деления суммы на количество, который 1С называет «ценой», при этом округляя до сотой рубля.
Цена в регистре — значение формируемое в регистре при проведении документа. Смотрите там.
понятно , спасибо
Не знаю где еще спросить. Подскажите почему сумма расхода по учетным данным отличается от суммы по продажи?
У меня есть позиция, поступление сделано 1 марта, установка цен тоже 1 марта, больше движений по данной номенклатуре нет, 4 марта осуществлена продажа. В отчете сумму по учету показывает больше чем сумма продажи. Больше не каких изменения цен не было. Почему так формирует? уже всю голову сломал.
Конфигурация розница 2.2
Да , есть там такой косяк , как я понял ,это связано с тем что установка цен происходит в течении дня , а на РМК (у меня пос на фронтоле) до установки цены пробивает по старой цене, а уже после установки новых цен, пробивает по новым . И поэтому сумма продажи отличается от сумму учетных данных , т.к она формируется уже по новым установленным ценам. Как победить — пока незнаю. Предложил клиенту делать установку до открытия кассовой смены 🙂 Там еще косяк с возратами есть — они вообще не вычитаются у меня из отчета ККМ . 🙁
У меня установка только одна сделана и до открытия кассовой смены. А все равно не правильно отчет формирует.
Если хотите , можете скинуть базу на мыло , могу посмотреть.
Здравствуйте, в отчете задваивается сумма учетных данных, хотя отчет по Оценки склада в роз ценах показывает правильно, в базе единственный документ Начальные остатки узлов, склад один
День добрый! Ваш отчет очень хороший, он всегда корректно отображает данные, в отличие от стандартного. У нас постоянно проблемы с ТОРГ-29, особенно часто появляется ошибка «Ошибка нарастающей суммы учета».
Получается итоговая сумма в стандартном ТОРГ-29 меньше, в вашем она отображается правильная и обработка выдает такую ошибку (вернее показывает) и подсвечивает сумму красным цветом. Подскажите пожалуйста из-за чего получается такая ошибка, как найти откуда ноги растут?
Я только начал работать с этим отчетом и никак не пойму почему такое происходит. Подскажите пожалуйста.
Спасибо.
(22)
(23)
(24)
(26)
(27)
В ближайшее время буду проверять обработку на версии Розницы 2.2.
По результатам выложу новую версию.
Ваши вопросы — посмотрю.
ВЕРСИЯ 9.0 (08.2017) НОВАЯ РЕДАКЦИЯ.
Существенные изменения, дополнения.
— Переработано формирование отчета.
— Переработан блок проверки полученных данных.
— Два режима работы отчета: Пользовательский и администраторский.
— Три варианта отчета: Типовой (только учетные данные), Расширенный (учетные данные и продажи при отсутствии учета по себестоимости), Полный (учетные данные,продажи и себестоимость).
— Таблица «Цены и Себестоимость» исключена из отчета.
— Таблица «Товары и документы» дополнена графами из таблицы «Цены и Себестоимость».
Таблица дополнена возможностью фильтрации по различным критериям.
Таблица позволяет получить более точное представление об учете в информационной базе.
— Добавлена возможность формировать документы, корректиующие имеющиеся ошибки учета.
— Добавлено описание, расположеное непосредственно на форме отчета.
— Добавлена поддержка конфигураций Розница 2.0 для Украины и Розница 2.2 для Беларусии.
— Прочие изменения.
Добрый день!
Обработку скачала. (версию 9.0)
При запуске в 1C 8.3 (8.3.9.2033) конфигурация Розница 2.2 (2.2.5.57) (http//v8.1c.ru/retail/) (толстый клиент)
сразу выскочила ошибка:
«Ошибка отображения типов:
Отсутствует отображение для типа ‘{http//v8.1c.ru/8.2/managed-application/logform}FormChildrenAlign’
И все. Запускала как внешнюю обработку через «Файл — Открыть».
Может я что-то сделала не так?
(31)
Здравствуйте.
Сейчас выложу новую версию. Должна работать на 9.3.9.
Дело в том, что версия 9.0 писалась на 8.3.10. С этим связано.
ВЕРСИЯ 9.0.2 (08.2017)
— Исправление недочетов.
Добрый день
а как в отчете обстоит дело с округлением до второго знака выражения Цена*Количество?
а то из-за этого и например данные по ОРП не сходятся на копейки и начальные/конечные суммы тоже не идут?
Добрый день!
Спасибо за версию 9.0.2 (08.2017) .
Теперь у нас отчет тоже заработал.
Прекрасный инструмент!
Все наглядно.
Еще конечно хотелось бы, чтобы обязательным был только выбор магазина, а по складу флажок — «все склады магазина»,
тогда получился бы более универсальный отчет, правда это уже не был бы ТОРГ-29.
Но для бухгалтерии более полный анализ.
Розница 2,2 «АКТ переоценки» переоценки берет не то количество товара по складу, не как в Вашем ТОРГ-29
Добрый день. Не правильно формируется сумма по документу Отчет о розничной продаже, если происходит изменение цены в течение дня. Т.е. если происходит продажа 10 ед товара по 10 руб, а позже 10 ед по 20 руб, в учетную сумму попадает как будто продали 20 ед по 20 руб. И по Переоценке товара он берет для переоценки кол-во товара на начало дня, а не на момент когда происходит изменение цены. Т.е. если на начало дня 10 ед.товара, затем происходит продажа 8, затем поступление товара, в результате чего должно произойти переоценка, он должен взять 2 ед оставшегося товара для переоценки, а в отчет попадают для всех 10. Планируется ли данное исправление? Или быть может, сможете дать комментарий, почему так должно рассчитываться?
Добрый день! При формировании отчета возникают ошибки: «Нарушена последовательность документов.
Поледовательность документов:Документ-Основание Отчет о розничных продажах РИРТ-000041 от 14.03.2018 21:52:22
— Эквайринговая операция РИРТ-000010 от 14.03.2018 20:55:14 раньше документа-основания.
— Возврат товаров от покупателя РИРТ-000023 от 17.03.2018 9:16:44″.
Ключ: «Иерархия»
Тип ошибки: «ошибка»
При этом даты документов расставлены корректно. Как исправить подобное?
Добрый день! При формировании отчета возникает ошибка нарастающей суммы учета в итоге. Подскажите пожалуйста, что с этим делать?
Добрый день. Как выбрать тип отчёта для формирования (типовой/полный)?
Добрый день, как можно связаться с вами по е-майл насчет отчета? напишите в личку, спасибо!