<?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) ekaruk, Злить никого не хотел, сори 🙁
Думал, что по группировкам в шапке будет понятно что в белых квадратиках: на первом скрине Организация — Контрагент — Заказ клиента — Номенклатура по иерархии, на второи скрине — Номенклатура.
А чем не угодил штатный механизм управления запасами?
(3) pbazeliuk, Там нет данных по оплатам, СКД-шных отборов и группировок.
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
{ВнешнийОтчет.АнализЗаказовКлиентов.МодульОбъекта(94)}: Поле объекта не обнаружено (ЗаказКлиента)
Если ЗначениеЗаполнено(стр.ЗаказКлиента) И ЗначениеЗаполнено(стр.Номенклатура) И ЗначениеЗаполнено(стр.ПользовательскиеПоляПоле1) И стр.ПользовательскиеПоляПоле1 > 0 Тогда
(5) Kolledei, На какой версии УТ запускаете отчет?
Управление торговлей, редакция 11.1 (11.1.10.103)
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика — ‘ПриКомпоновкеРезультата’
по причине:
{ВнешнийОтчет.АнализЗаказовКлиентов.МодульОбъекта(94)}: Поле объекта не обнаружено (ЗаказКлиента)
Если ЗначениеЗаполнено(стр.ЗаказКлиента) И ЗначениеЗаполнено(стр.Номенклатура) И ЗначениеЗаполнено(стр.ПользовательскиеПоляПоле1) И стр.ПользовательскиеПоляПоле1 > 0 Тогда
(7) Bodyk, Здравствуйте, проверено на демо версии 11.1.10.103 — отчет формируется. Ваша конфигурация типовая, не измененная?
А в редакции 11,2 этот должен работать?
Выдает ту же ошибку что и у Kolledei
(9) sbshop, Да, на последней версии (11.2.2.116) работает, только что проверил на демо базе.
Отчет работает только при включенной функциональной опции «ИспользоватьОбособленноеОбеспечениеЗаказов». В демо базе она включена.
на 11.2.3.182 не работает
у меня отчет работает.
но в настройки не входит — ошибка передачи служебного параметра «НастройкиОтчета». как-то так…
(13) 1st RUS, Скорее всего открываете через «Файл — Открыть…» ?
Нужно добавить отчет во внешние обработки (Администрирование — Внешние печатные формы и обработки).
Подскажите, проверялось ли на версии УТ 11.3 ?
Управление торговлей, редакция 11.2 (11.2.3.143)
ошибка Поле обьекта не обнаружено «заказ клиента»
Управление торговлей, редакция 11.2 (11.2.3.202), сам отчёт работает, нажатие на «Настройки» выдаёт — «Не передан служебный параметр «НастройкиОтчёта». Обработку подключил в Дополнительные отчёты и обработки. Что делать?
Управление торговлей, редакция 11.3 (11.3.3.163)
ошибка Поле обьекта не обнаружено «заказ клиента»
(18) Проверил отчет на демо-версии 11.3.3.163. Все работает, ошибки нет. У вас типовая конфигурация?
(15) Да, на версии 11.3.3.163 работает.
(17)Поправил. Выслал отчет в ЛС. Позже и публикацию обновлю.
Подскажите, в этом отчете отображается товар, который был закуплен по заказу и лежит на складе, но не отгружен? На картинке не видно. Резерв — я так понимаю — это не совсем оно.
И если делать корректировки, учитывает ли этот отчет их? Спасибо.
(22)Да, это кол-во будет в колонке «Заказано». И да, корректировки учитываются.
(23) Алексей, а скажите, как сделать, чтобы эта колонка «Заказано» появилась. У меня ее нет и в настройках не нашел.
Проверил по отгрузкам, корректировку реализаций этот анализ у меня не учитывает. Возможно где-то нужно дополнительно что-то настроить, подскажите?
Спасибо.
(24)Колонка «Заказано» идет после резерва и до колонки «Осталось обеспечить».
Имелась ввиду корректировка регистров, не реализации. Сори, не так понял
Здравствуйте. На основании заказа покупателя сформированы заказы поставщикам.
1. Можно ли в отчете видеть, какие позиции заказаны, а какие осталось заказать (включая те, что еще не поставлены ни на какой склад)? У меня графа Заказано совершенно пустая, хотя все позиции заказаны.
2. Можно ли видеть, какие из заказанных позиций пришли на склад и готовы к отгрузке?
Благодарю вас
Здравствуйте. Проверьте, пожалуйста, включено ли в настройках УТ обособленное обеспечение заказов. Поиск заказов и приход на склад этих заказов осуществляется по назначениям (в назначении указывается отгружаемый счет).
Купил отчет,
1) При нажатии создать заказ поставщику
{ВнешнийОтчет.АнализЗаказовКлиентов.Форма.ФормаОтчета.Форма(51)}: Поле объекта не обнаружено (КПоступлению)
ПараметрыЗаполнения.Вставить(«Статус», Перечисления.СтатусыЗаказовПоставщикам.КПоступлению);
2)При нажатии кнопки настройки
{ОбщаяФорма.ФормаНастроекОтчета.Форма(31)}: Не передан служебный параметр «НастройкиОтчета».
ВызватьИсключение НСтр(«ru = ‘Не передан служебный параметр «»НастройкиОтчета»».'»);
11.3.4.149.
Добрый для 11.4 пойдет?
(29) Добрый день. На 11.4 не тестировал, не знаю точно
А будет работать на последних релизах 11.4?
(31) Не знаю, на последних версиях не проверял.
11.2.3.129 работает
Спасибо
Отвечу на вопрос идет ли данный отчет на 11.4. Ответ: «Всё работает», при учете всего вышесказанного. Проверила на 11.4.5.86.
Но анализ не совсем понравился. А именно, после того как заказ закрывается, то есть, отменяются некоторые строчки. То Отгружено становится равным Запланировано, что не верно.
Может же быть такое заказали 100 единиц товара, продали 99 единиц, а одну отменили. Отменили не значит,что продали и отгрузили.
Если уж это АНАЛИЗ, то хочется анализировать. А так информация, которая выходит в отчете можно и так получить штатными средствами.
Но, всё, равно, спасибо.
11.4.2 — не работает(((
Поле обьекта не обнаружено «заказ клиента»
(35) Здравствуйте. Для новой версии УТ этот отчет я не делал, он создавался для старой версии .Это писалось выше неоднократно. Могу лишь предположить, что у Вас не включен обособленный учет заказов в настройках.
Добрый день!
Уточните плиз условия когда заполняются колонки отчета а особенно Заказано!? Обособленный учет товаров по заказу включен.
Вот мой процесс обработки заказа, может что-то я неверно оформляю?!
1.На основании заказа покупателя ввел Заказ поставщику на часть товара.
2. в заказе Покупателя перезаполнил обеспечение, в строке появилось состояние Резервировать к дате, в отчете колонка Заказано не заполнена!
3. После на основании Заказа поставщику ввел Поступление (перезаполняю обеспечение в заказе покупателя), заполнилась колонка Резерв и Осталось обеспечить (все верно)
4. Ввожу Заказ поставщику на остальной товар (перезаполняю обеспечение в заказе покупателя), провожу. Колонка Заказано не заполнена!
5. После на основании Заказа поставщику ввел Поступление (перезаполняю обеспечение в заказе покупателя), заполнилась колонка Резерв и Осталось обеспечить пустое (все верно)
6. Снова перезаполняю обеспечение в заказе покупателя, устанавливаю статус Отгрузить, колонка Осталось обеспечить снова заполняется данными, ровно теми позициями которые находятся в заказе покупателя в статусе Отгрузить…
7. Отгружаю часть товара. Заполняется колока Отгружено, в колонке Осталось отгрузить ровно те позиции которые еще не отгружены, и это же количество в колонке Осталось обеспечить!
Конфигурация ут11.4, но механизмы этого модуля по сравнению с 11.3 не изменялись!
(37)Добрый день. В запросе есть только одно жесткое условие на вывод информации в колонках — тип номенклатуры должен быть равен «Товар» или «Услуга». Ну и условие на период естественно — дата между начальной датой и конечной датой. Связь между документами определяется назначением, точнее заказом, который указан в назначении. Указано ли назначение в заказе поставщику / поступлении / реализации?
Извините но я туплю… где в заказе поставщику и остальных документах можно увидеть Назначение… по иераржии документов видно следующее
Коммерческое предложение клиенту МКЦБ-000001 от 16.07.2018 0:00:00 на сумму 643 505,3 руб.
ГУЗ , МКЦБ-1, 16.07.2018 (Заказ клиента) (Назначение)
Заказ клиента МКЦБ-000001 от 16.07.2018 13:43:57 на сумму 644 087,5 руб.
Заказ поставщику МКЦБ-000001 от 01.08.2018 12:00:02 на сумму 326 175,6 руб.
Приобретение товаров и услуг МКБП-000103 от 29.08.2018 12:00:00 на сумму 276 420 руб.
Реализация товаров и услуг МКЦБ-000001 от 29.11.2018 22:00:05 на сумму 367 467,8 руб.
Заказ поставщику МКЦБ-000002 от 29.11.2018 22:21:12 на сумму 244 631,7 руб.
Приобретение товаров и услуг МКБП-000116 от 04.10.2018 13:32:52 на сумму 207 315 руб.
но в самих документах такого реквизита нет…
(39)Колонка с назначением появляется во вкладке товаров при включенном обособленном учете в настройках. Там где все номенклатуры вбиваете.
Спасибо огромное разобрался! Все работает на версии 11.4.
Есть пожелание! Очень не хватает расшифровки до регистратора! либо по данным в колонках по двойному нажатию (предпочтительно) либо новой иерархией!
И все таки вопросы остались!
Как заполняется колонка Оплачено и Осталось оплатить?
у меня в договоре устанволена детализация по договорам, и соглашения не оформляются, только договора!
Наверное это неправильно, а как верно?
Мне сейчас в начале можно подстроиться под реграмент и настройки при которых Ваш отчет будет работать без вопросов
(41)Извините. Делать расшифровку в планах нет.
(42)»Оплачено» и «Осталось оплатить» берут данные из стандартного регистра «Расчеты с клиентами». В него делают движения обычные платежки, т.е. обычные оплаты по заказу. Не важно есть соглашение или нет.
ясно, не заполняется в 11.4… видимо тут отличия есть
(45)Может быть… А вы сам заказ в платежке указываете? Поиск оплаты именно по нему и идет.
в платежке не вижу где внести заказ
Мне пока сложно отойти от стереотипов УПП и УТ10 (мои основные конфигурации раньше) поэтому многие вещи совсем неочевидны как там…
Вроде нашел. Выбрал заказ как основание платежа, провел, но все равно поля пустые.
Что-то не так может заполняете (вид операции, дата вне диапазона)? Так не могу ничего сказать не видя базы. В 11.3 работает все.
а какой вд операции должен быть?
(50)Оплата от покупателя конечно
конфигурация УТ 11.2 (11.2.3.266)
выдается ошибка как на скриншоте
Поле объекта не обнаружено (ЗаказКлиента)
(52)Добрый вечер. Вероятнее всего у вас не включен обособленный учет заказов в настройках базы.
На второй вкладке заказы поставщикам есть ли возможность сделать разбивку формировать заказы на закупку позиций номенклатуры по поставщикам которые располагают этими позициями товаров?
Еще включенный обособленный учет заказов каким образом поменяет учет заказов, если ранее, он не был включен, и база работала без него уже как пару лет?
(54)Нет, самостоятельно, в режиме пользователя, это сделать не получится… это можно сделать только программированием, изменив форму и код
(55)включение этой настройки на старые заказы никак не повлияет. Отчет будет работать только заказов с обособленным учетом, т.к. все связи между документами осуществляются через назначения.
Отчет очень информативный, сразу напрашивается две доработки 1. сворачивания верхней части с параметрами отбора для увеличения рабочей области окна, и 2. возможность формировать заказы с разбивкой по поставщикам и их товарам
Если отвязать отчет от зависимости обязательного включения обособленного обеспечения заказов, вносящего свои коррективы в работу с заказами, было бы вообще супер. Для включения обособленного обеспечения заказов есть какая-то глобальная причина без этой опции отчет не смог бы функционировать совсем или это временное решение и его можно доработать на работу без включения опции обособленности обеспечения?
(58)По поводу доработок (сворачивание и разбивка по поставщикам) — сейчас пока нет времени дорабатывать отчет, к сожалению. А так, да, обе идеи хорошие. Про обособленное обеспечение — это не временное решение, это именно необходимость для правильной работы отчета. При обособленном учете в документах заполняется назначение для каждого товара. В назначении указывается заказ покупателя и именно назначение «связывает» документы (поступление, отгрузка, резервы) с заказом покупателя.
Добрый день! Не могу связаться с вами через кабинет!
При использовании отчета с разворотом по характеристикам, данные получаются не совсем корректные, хотел уточнить возможность анализа базы!!1
(60)Добрый день. Характеристики в отчете не учитываются, к сожалению.
Здравствуйте, хотел бы приобрести данный отчет. За рубли есть возможность купить?
(62)Здравствуйте. Напишите мне в личном сообщение адрес электронной почты, я пришлю отчет просто так, не жалко 🙂
(63)Спасибо)
(63) Нет возможности отправить личным сообщением пришлите пожалуйста на почту logarifm_roman@bk.ru