<?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='\
(0) Если Вам эти обработки нужны, и Вы решили скачать, то Вы либо поставите плюс или напишите, что Вам не понравилось и если это не исправят поставите минус.
Руководство к действию?
(0) ты бы хоть за орфографией последил.
(1) Нет. Плюсы ставит тот кто хочет, а кто не хочет я их заставить не могу, а тем кто все-таки поставил плюс или поставит — Всем большое спасибо за плюсы которые поставили и которые ещё поставят
(2) Спасибо у меня что-то клавиатура борохлит, а при наборе описания там текст очень мелкий, ещё раз спасибо за указание ошибок, вроде бы всё исправил
(3) Внизу, статьи в «Оценке сообщества» уже есть текст про «Не забываем ставить плюсы, если вам понравилась публикация, и минусы — если не понравилась. Плюс добавляет публикацию в Мое избранное.»
ИМХО, про плюсики-минусики писать уже излишне 🙂
(4) А что благодарить за плюсы уже нельзя? Я так пнимаю можно, что я и сделал в (3)
(5) Благодарить можно.
А вот из сабжа фразу «Если Вам эти обработки нужны, и Вы решили скачать, то Вы либо поставите плюс или напишите, что Вам не понравилось и если это не исправят поставите минус.» следует убрать, так как администрация не поощряет выклянчивание плюсов!
(6) Если честно выклянчивание плюсов как то не прокатывает. Но раз у Вас такие правила то подчиняюсь
(7) Спасибо за сознательность. Тем более сразу перед оценкой сообщества за Вас уже давно все написали! (это пишется для каждого сабжа, это на будущее) 😉
Вот похожая идеяhttp://infostart.ru/projects/3858/?p=1#comm6 Если соединить Вашу обработку с этой будет совсем хорошо…
(9) Так попробуйте написать конкретно, что бы вы хотели добавить и возможно мечта сбудется
(11) Спасибо. Реклама своего продукта дело полезное, но не я решил чего-то добавлять в обработку, а меня просят так что мне твоя обработка ни к чему, а что попросят попробую сделать лишь бы времени и сил хватило
(12) Нужная вещь молодец!! Нашел косяк: если устанавливаешь цены для новой номенклатуры он не может подтянуть валюту… смотрю на код и немогу понять он устанавливает только розничную цену???
(13) В докумет «Установка цен номенклатуры» он ставит только цену продажи (или розничную кто как назовет), цена покупки специально не вставляется, чтобы каасиры её не знали, но она должна сохраняться в регистре «Цены номенклатуры контрагентов»
—«Нашел косяк: если устанавливаешь цены для новой номенклатуры он не может подтянуть валюту… «— не понял как это не может подтянуть валюту
Вопрос: а можно сделать возможность изменения цены в графе новая «розничная цена»? Ну типа по тому что на некоторые товары цену ставим не просто в% накручиваем, а ручками типа у конкурентов 28 а мы ставим 27, и пофиг на проценты… ну а если еще когда я поставлю 27 обработка покажет сколь ето процентов наценено, то вообще шоколад
(15) А вообще-то она так и работает, и сохраняет только те цены, где стоит новая розничная цена
(16) ну я пробую ручкам цену забить старую розничную редактирует, а новую почему то нет
(17) Странно. Сейчас у меня технические проблемы, жестак с базами полетел, как только востановлю, сразу же посмотрю и дам ответ, хотя у меня в организации они по-другому цены и не заносят
Проект полезный, идея правильная. Ставлю плюс и буду разбираться в функционале.
(19) Спасибо за плюс. А функционал по моему не плохо описан , чего не поймешь пиши так или в личку
(17) Проблемы вроде прошли. Проверил обработку на двух своих базах, в обоих цена вручную ставиться, дажен сделал скриншот, где выделена ячейка установки новой цены или я чего-то не правильно понял.
(21) странно у меня немного другого вида эта обработка,чем у вас на скринах: у меня процент продажи, старые и новые цены все в одну строку, а у вас в (как в «установке цен номенклатуры»), нет кнопок печать накладной, печать ценообразования… я поместил её в [сервис/внещние печатные формы и обработки/внешние обработки], открываю оттуда же, мош я её не туда куда надо поместил?
(22) Попробуй просто открыть через файл —> открыть… и выбери файл с обработкой. Расположение колонок можно настроить с помощбю: На табличной части нажимаем правую кнопку мыши, в появившемся меню выбираем «Настройка списка», там справой стороны названия колонок, а справой стороны как распологать выделенную колонку: в новой колонке, на следующей строке и в той же колонке. Поэксперементируй. Да еще обработка писалась под разрешение экрана 1024х768, если у Вас меньше поэтому может быть кнопки и не влезают, тогда должна появиться справа полоса прокрутки
(23) розничная конечная цена так и не редактируется, мош проблема в редакции УТ 10.3.6.8 у меня… кнопок печать накладной, печать ценообразования нет, разрешение 1280*1024
(24) Но вообще-то когда -то она писалась под УТ 10.3.3.3, так что в этом проблемы быть не должно, могу только одним помочь, если пришлешь конфу на мыло Tchsn@bk.ru посмотрю в чем дело, и кроме тебя эту проблему больше никто не поднял
>> купном магазине
>> На основнии
>> руковдством
>>> у меня борохлит, вроде бы всё исправил
….
Блин, народ, porco madonno dios, это конечно моя придирка, но честно, заманало. На некоторые посты противно смотреть, как бомжа, жрущего из помойки.
ПРОВЕРЯЙТЕ ОРФОГРАФИЮ! ХОТЯ БЫ В MS WORD! ПОДУМАЙТЕ О ДРУГИХ ПОЛЬЗОВАТЕЛЯХ! О ПОИСКЕ, В КОНЦЕ КОНЦОВ!
(26) Спасибо ещё раз. Исправил. Если за это Вам надо плюс, то скажете сколько поставлю, а клавиатура действительно борохлит и шрифт там действительно мелкий. В комментарии (3) я написал что вроде бы все исправил, это не означает что всё, а только то что нашел. А вообще я пишу либо с утра , когда глаза еле открыты или же после работы, когда они уже плохо смотрят.
Тогда ещё один вопрос, а разве поиск ищет не по названию темы?
Было бы неплохо запускать обработку из документа «Поступление товаров и услуг» и ввести новое поле Торговая наценка установленная предыдущими документами «Установка цен номенклатуры» для сравнения с текущими наценками.
(28) Можно подумать про документ «Поступление товаров и услуг», но когда будет время, я так понимаю либо через печатную форму либо через обработку табличной части. Хотя я считаю этот вариант удобней так как можно обрабатывать документы пачками после их ввода в базу.
Насчет новой колонки яне очень понимаю зачем она, ведь есть на сколько процентов +/- цена поступления, и какой процент наценки получился после изменения цены поступления, отсюда проанализировав можно сделать вывод изменять цену продажи или нет.
Я постараюсь рассмотреть Ваше предложение в будущем , сейчас нет времени, если после моего ответа оно Вам все таки будет нужно.
Поясняю мысль по поводу Нового поля. Допустим после очередного поступления товара закупочная цена увеличилась. С помощью Вашей обработки анализируем ситуацию. Вапрос: Как узнать какая наценка должна быть у этого товара (наценка согласованная с начальством. В методологии 1С это наценка установленная на этот товар последним документом Установка цен номенклатуры) и соответственно нужно ли пересчитывать цену реализации) ? При оформлении больших накладных это большая проблема.
(30) Хорошо попробую с этим вопросом Вам помочь Только чуть позже сейчас нет времени приношу свои Извинения. Как только внесу изменения отпишусь
У меня та же проблема, описанная выше. Конфигурация 10.3.6.8. Если товар новый, в первой строке, к примеру, то при проведении появляется сообщение:
«Проведение документа: Установка цен номенклатуры 00000000104 от 09.10.2009 19:23:01
В строке номер «1» табличной части для типа цен «Розничная» не заполнена Валюта.»
Кроме того, для нового товара было бы неплохо, чтобы процент наценки брался установленный по умолчанию в спр. «Типы цен номенклатуры». Собственно, и валюта там же есть.
Исправьте, пожалуйста!
Вы господа придираетесь! Обработка отлично работает!!! Спасибо разработчику!
Спасибо, пригодилось
Добавил установку нескольких типов цен, и заполнение цены по заданным правилам, все супер, автору респект!
подскажите плиз а можно сделать возможность изменения цены в графе новая «розничная цена»? Ну типа по тому что на некоторые товары цену ставим не просто в% накручиваем, а ручками типа у конкурентов 28 а мы ставим 27, и пофиг на проценты… ну а если еще когда я поставлю 27 обработка покажет сколь ето процентов наценено, то вообще шоколад
Добавил установку нескольких типов цен, и заполнение цены по заданным правилам, все супер, автору респект!
Сделал тоже самое + в обработке есть ошибка — для новых позиций не устанавлявается цена из-за ошибки кода валюты.
А так супер!
Конечно можно! Если честно, думал что так и было)) Давно уже переделал. Еще можно с разрядностью чисел поковыряться, но тогда нужно будет и в регистрах менять.
спасибо, очень удачная обаботка
Можно обработку с данными исправлениями в студию, т.к. тоже выдает ошибку при наличии НОВОГО товара?
Описание очень заинтересовало!
Посмотрела, что автор давно не обновлял обработку. Если он все же следит за данным топиком, то:
Вопрос! А может ли данная обработка заполнять не документ «Установки цен», а табличную часть документа «Поступление товаров и услуг»?
Если она этого делать не может, то возможно подскажите где найти такую?
Полезная вещь! Кто поправил, выложите вариаты для испытаний, пожалуйста.
Помогите советом, как добавить контроль штрихкода при поступлении?
Подскажите, работает ли Анализ цен на платформе 8.2?
Как исправить эту ошибку с незаполненной валютой?
(41) Harry_Joplin, +1 выложите плиз исправленный, дополненный вариант!!!
все разобрался с валютой сам, в модуле стояла валюта по коду 810 (руб), а в конфигурации код 643, поменял в модуле все заработало, автору большой респектище! а так плюсанул 🙂
Запустили обработку в УТ 10.3.. Работает некорректно. а именно:
Не выделяет зеленым цветом строки, цена на товар в которых снизилась. и не выгружает данные в документ..
Может кто знает, как исправить?
У меня почему-то не подтягиваются действующие цены на товар, невозможно сравнить ничего.
В обработке поправил код валюты (с 810 на 643)), теперь вылазит другая ошибка:
{ВнешняяОбработка.ВО_АЛ_УстановкаЦен.МодульОбъекта(255)}: Ошибка при вызове метода контекста (Записать)
Докум.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Запись не верна! Значение поля «Тип цен» не может быть пустым!: ЦеныНоменклатуры: 17.01.2015, , [!]» Уши Эльфа с дождиком «А П, (Регистр сведений: Цены номенклатуры; Номер строки: 1)
«Управление торговлей», редакция 10.3 (10.3.18.3). Обработка не запускается! Подскажите поддерживает ли она эту версию или другая проблема?
Вобще не открывается, пишет «Внешняя обработка не может быть прочитана текущей версией программы»
добрый день
скачал обработку, на моей УТ 10.3.37.4 не запускается, пишет ошибка загрузки, типа в текущей конфигурации программы не может быть запущена
хелп! очень хотел эту обработку, и так опечалился
Сергей, ваша обработка сейчас работоспособна?
(53) Вряд ли, давно ее не проверял и не дорабатывал, да вроде бы 10.3 уже и никто не использует все ушли на 11 версию.
А я вот никак не могу собраться перейти на 11-ую. Такой идиотизм! Эта 11-ая.
Добрый день, попробовали вашу чудесную обработку. Получили такую ошибку:
{ВнешняяОбработка.ВО_АЛ_УстановкаЦен.МодульОбъекта(236)}: Ошибка при вызове метода контекста (Записать)
Докум.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Запись не верна! Значение поля «Тип цен» не может быть пустым!: ЦеныНоменклатуры: 01.10.2018, , Товар 3, (Регистр сведений: Цены номенклатуры; Номер строки: 1)
Если вы живы и здоровы (а вы наша предпоследняя надежда), исправьте, если можно.