1С Управление торговлей 10.3.22.2. Что приготовила 1С пользователям




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?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='\

45 Comments

  1. makas
    Когда 1с выпустит исправленную версию, остается загадкой.

    …а зачем исправлять?????

    Имхо летом программеры сидят без дела, а тут им 1С работенку подкинула «пофиксить ошибки» :))))

    Reply
  2. AltF1

    Пункт 4 — подробнее, есть примеры?

    Reply
  3. Поручик

    (0) Вот как чуял, обновлятор скачал, но какой-то внутренний голос подсказал не обновлять.

    Reply
  4. baton_pk
    В модулях был изменён перевод строки (CRLF – LF).

    Вот же ж ни чего себе! А ведь потом и в УПП такое наверняка замутят — тогда нам вообще с месяц обновляться придётся.

    Reply
  5. logdog

    1С то в курсе этих ошибок?))

    Reply
  6. Поручик

    (5) Скорей всего нет. Управление торговлей 10.3 обновляется редко. А может готовят мега-супер-баг-фикс релиз, после которого уж точно наступит коммунизм без кризисов и безработицы.

    Reply
  7. nickolas-13th

    Да, засада полнейшая. Накосячили по полной. В предыдущем обновлении косяков было не столько. Сейчас с правами вообще беда, даже полные не дают выполнять некоторые операции. Прошлый релиз месяца три обновлялся, кажется так.

    Reply
  8. Поручик

    (5)(7) В 1С даже в ус не дуют.

    Ссылка для причастных

    Управление торговлей, редакция 10.3. Версия 10.3.22.2 . Информация об ошибках

    http://downloads.v8.1c.ru/content/Trade/10_3_22_2/ErrTrade_10_3_22_2.htm

    Нет там никакой инфы об ошибках релиза.

    Reply
  9. tiniji

    (2) kiv82, Роли: Пользователь, Менеджер по продажам. Заходим операции — Константы, вылетает 1С, нарушение прав, Если платформа не последняя, то не хватит прав на обработку НерекомендуемаяВерсияПлатформы. Это пока с тем, что я встретил.

    Reply
  10. tiniji

    Сейчас выложу незарегистрированные ошибки начиная с ранних версий. Которые мне встречались.

    Reply
  11. logdog

    (6) Я это к тому написал, что может их отправить в 1С?

    Так как система у них — чем больше юзеров написало об ошибке, тем ее быстрее фиксят …

    (8) За полгода, писанины багов для БП — мои ошибки, только раз попадали в их лист ошибок, часто они исправлялись «втихаря».

    (11) Есть еще ошибка с заполнением цен продаж в документах поступления, она не берется из настроек манагера.

    Reply
  12. Поручик

    (11) Попробуйте отправить в 1С. Может через полгода исправят, это же не УТ 11.1, которую надо усиленно продвигать.

    Reply
  13. sanches

    Немного не в тему. По поводу времени рассмотрения вопросов в службу поддержки 1С.

    Задал вопрос 25 мая 2013, по поводу учета НДС, до сих пор не получил ответа. На вопросы когда же они мне ответят, приходит стандартное письмо с содержапнием, что обращение зафиксировано под таким то номером и будет рассмотрено в ближайшее время.

    Reply
  14. DoctorRoza

    Видимо все, скоро прозвучит траурный марш по 10-ке! 1С дает понять, то все, мол, хватит, дорогу УТ 11. Очень даже возможно, что это один из крайних патчей! Их доработка с документами Корректировка поступлений/реализаций и корректировочные СФ — это то последнее, что они добавили.

    Reply
  15. kit

    (13) sanches, У меня такая же ситуация была. Примерно год назад задавал вопрос по Бух. 2.0, писали такие же письма, но примерно через 4 месяца ответили, когда это было уже не актуально.)) По-моему, дело даже не в управляемых формах, а просто забили они на пользователей. (причём вопрос задавался по действующей подписке на ИТС)

    Reply
  16. tiniji

    Вышла 10.3.23.

    Исправлены: п. 2, п. 3.

    Под вопросом: п. 5 (нет возможности проверить).

    Тем кто на 10.3.22 однозначно стоит обновиться.

    Reply
  17. sanches

    (15) kit, вот и у меня по действующей подписке ИТС )

    Тоже пришшлось вносить изменения в бухгалтерию по причине того, что штатными средствами не получалось сделать правильную корректировку НДС при комиссионной торговле. Франчайзи просто отвечало, что так сделать нельзя. Хотя, судя по законодательству программа должна давать делать такую корректировку. Решили написать напрямую в 1С, вот и ждем до сих пор ответа.

    Reply
  18. Rad90210

    Исторически уже давно сложилось, что 1С выпускает быстро заплатки исключительно тогда, когда количество обращений по выявленному глюку зашкаливают. Как результат — нужно регистрировать заявки и делать это массово. Так же исторически сложилось что НЕЛЬЗЯ в первые 2-3 месяца ставить новые релизы конфигураций (да и релизы платформы). А в случае с с чистой торговлей так и подавно.

    Reply
  19. Сергей Ю.

    Кстати в интерфейсе кассира еще глюк есть: там при открытии сначала получает список всех ккм, а потом уже текущую кассу пользователя. И если ккм в базе несколько то предлагает кассиру выбрать нужный ему. Надо запрос по «кассе по-умолчанию» сделать раньше чем запрос по оборудованию.

    Reply
  20. nickolas-13th

    Да, видать глюков очень много было, что так оперативно обновка вышла. Глюки при создании новых пользователей, в правах пользователей. Ща обновимся поглядим.

    Reply
  21. SergeyMordvin

    что вы имеете в виду под:

    «Во первых я не рекомендую обновлять УТ 10.3 до версии 10.3.22.2. Почему 1С не отозвала этот релиз до сих пор остается загадкой. Первая причина по которой необходимо обновить — это обмен с БП 2.0.49. Проще говоря, обмен с новой бухгалтерией будет работать только на версии 10.3.22.»

    не до конца понимаю логику фразы

    Reply
  22. tiniji

    (21) SergeyMordvin, В БП 2.0.49 — не работают правила обмена с УТ ниже 10.3.22. Первая мысль — обновить торговлю. Но что ожидает после обновления — описано в статье.

    Reply
  23. SergeyMordvin

    а, понятно.

    у нас в процессе обмена 10.3.22 с 2.0.48 ошибка

    ОписаниеОшибки = {Обработка.ОбменДаннымиXML.МодульОбъекта(7683)}: Ошибка при записи документа: Реализация товаров и услуг ОО000000337 от 15.04.2013 0:00:00

    [03.07.13, 18:10:45] Сергей Мордвин: Ошибка при выгрузке данных для узла плана обмена

    ТипОбъекта = Документ объект: Реализация товаров и услуг

    Объект = Реализация товаров и услуг ОО000001225 от 27.03.2013 10:11:12

    ОписаниеОшибки = Ошибка при записи документа: Реализация товаров и услуг ОО000001225 от 27.03.2013 10:11:12

    {Обработка.ОбменДаннымиXML.МодульОбъекта(4010)}: Ошибка записи объекта

    ТипОбъекта = Реализация товаров и услуг

    Объект = Реализация товаров и услуг ОО000001225 от 27.03.2013 10:11:12

    ОписаниеОшибки = Операция не выполнена: РегистрНакопления.НДСЗаписиКнигиПродаж

    {Обработка.ОбменДаннымиXML.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Записать): Не удалось записать: «НДС Продажи»!

    ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(3931)

    КодСообщения = 26

    ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(1300)

    КодСообщения = 72

    УзелПланаОбмена = Обмен с Проксима

    Ошибка при загрузке объектов. Было загружено: 481

    Произошла ошибка при выгрузке объектов. Было выгружено: 482

    Техническая информация:

    ОписаниеОшибки = {Обработка.ОбменДаннымиXML.МодульОбъекта(7683)}: Ошибка при записи документа: Реализация товаров и услуг ОО000001225 от 27.03.2013 10:11:12

    не сталкивались?

    Reply
  24. tiniji

    (23) SergeyMordvin, Скорее всего период закрыт. Если убрать дату запрета, должен обмен пройти.

    Reply
  25. Дмитрий74Чел

    по поводу обращений на v8@1.ru с вопросами «ну когда уже мне дадут ответ»: попробуйте написать в контрольную группу, k@1c.ru. Сразу может и не ответят, но пинка исполнителям дадут.

    Reply
  26. Дмитрий74Чел

    По поводу релиза: уже у 2х клиентов при обновлении через инет при повторном открытии в режиме предприятия выдает «не проведено обновление ИБ» (что-то типа того). Лечилось правкой константы номер релиза ИБ.

    Reply
  27. skvic

    И вот новый релиз вышел 10.3.23.3

    Ждём новых приколов 🙂

    Reply
  28. nickolas-13th

    Гемор для новых пользователей не исправлен. Т.е. создаем нового пользователя, права (пользователь, менеджер по продажам): при первом входе войти не возможно, ошибка доступа к базе, бла-бла-бла. Даем полные права, пользователь заходит и регистрируется в базе. В базе пользователь появляется, но нет краткого имени (если этого не сделать, следующий новый пользователь не войдет).

    Убираем полные права, практически на все доки матюкается на отсутствие прав, пока спасает только «полные права».

    Reply
  29. logdog

    (25) Вариант работает или будут отписки?

    Противно уже работать за свои деньги бесплатным бета-тестером продуктов 1С, мне оперативнее LibreOffice баги исправляет, не переспашивая по 5 раз очевидные вещи….

    Reply
  30. namazi74

    (28) nickolas-13th, какая версия УТ ? Буквально час назад делал новых юзеров, проблем не было

    Reply
  31. Brawler
    НЕЛЬЗЯ в первые 2-3 месяца ставить новые релизы конфигураций

    (18) Rad90210, если исходить из таких соображений, то на момент прохождения 2-3 месяцев собравшись ставить обновление, узнаешь, что и в них на 2-3 месяца верить нельзя. Такими темпами можно вообще никогда не обновиться.

    Reply
  32. Pawlick
    Reply
  33. Novoross11

    Будет еще одна платная подписка «ИТС Инфостарт»? 🙂

    Reply
  34. Brawler

    (32) Pawlik, уж лучше тогда писать вообще все с нуля и включая платформу. Нафига зависеть от 1С?

    Reply
  35. nickolas-13th

    (30) namazi74,

    В данный момент движок 8.2.18.104 конфа 10.3.23.3

    С заведением пользователей действительно проблема исчезла, но по правам так-же осталась. Т.е. еще повторюсь, пользователю надо только смотреть реализацию, ставлю права ПОЛЬЗОВАТЕЛЬ, МЕНЕДЖЕР ПО ПРОДАЖАМ, — смотреть доки по реализации он не может.

    ЗЫ В субботу пришел ответ от 1С заданный 3 месяца назад, точнее вопрос:

    Ваше обращение зарегистрировано под номером ХХХХХХХХ

    Пожалуйста, в тексте следующих обращений на эту же тему ссылайтесь на этот номер.

    Извините за возможный повтор, по данному сообщению не зафиксирован ответ.

    Подскажите, пожалуйста, данный вопрос еще актуален на текущих релизах конфигурации и платформы?

    Reply
  36. Pawlick

    (34) Brawler,

    С чего то же надо начать :-).

    Reply
  37. Pawlick

    (33) Novoross11,

    ДА!

    Только работающая! 🙂

    И потом, почему подписка!?

    Скачал обновление: — 100 $m.

    Нет $m, просто $ 🙂

    Reply
  38. Brawler

    (36) Pawlik, если продолжать быть зависимыми от 1С, то тогда не изобретайте велосипеды в рамках нее, пытающиеся ущемить доходы 1С, так как завтра 1С напишет новые лицензионные правила и все ваши поделки будут вне закона.

    Если и начинать, то начинайте с поиска умных людей, сдирайте наработки 1С, но дополняя их своими и перерабатывайте те участки которые не нравятся, потом начинайте делать мини конфигурации оттачивая функционал платформы, а уж потом и можно учетные системы писать более высокого класса, а походу жизни пилить и пилить платформу как это делает сама 1С, да и все в прочем.

    Сейчас 1С вроде и флагман в России, но в то же время и тормоз прогресса.

    Да, чудо контекстная подсказка в конфигураторе… давно ждали… столько же и других вещей наверное все ждут, кто когда либо сталкивался с Delphi, Visual Studio…

    Reply
  39. shard

    (38) Brawler, чисто теоретически возможно написать свою платформу. К примеру используя Qt (заодно кроссплатформенность будет, а то 1с про линух только-только вспомнили, про мак наверно вообще не слышали). Но будет большой вопрос: конфигурации. А именно:

    1) создание: и так все понятно — кто, как, на какие средства и в какие сроки

    2) сопровождение: оперативность реагирования на взбрыки правительства, именуемые постановлениями.

    Шикарно было бы интерпретатор модулей сваять (наподобие с паскаля на си — многие как курсовики писали) и дальше дорабатывать что получилось. Заодно и обновления на базе релизов от 1с клепать

    Reply
  40. Harry_Joplin

    Да-а-а! Беда, беда, огорчение, хорошо что вовремя встретил эту статью о казусах новой версии, а ведь почти собрались обновиться, автору + за труды и экономию моих средств и нервов

    Reply
  41. Дмитрий74Чел

    (32) вы разве не в курсе, что 50% акций (или чего-то там) Инфостарта купила 1С. Так что какая уж тут «политическая воля руководства Инфостарт».

    Reply
  42. Pawlick

    (41) Дмитрий74Чел,

    Вот блин, все пропало, шеф, все пропало!

    Reply
  43. Stamper

    ну как же так с интерактивным удалением-то?! 🙁

    Reply
  44. amiralnar

    Спасибо за Константы.ПараметрыСлужебныхСобытий.СоздатьМенеджерЗначения().Обновить();

    Reply
  45. nicxxx

    (32)

    наберет более 30 плюсов

    LOL! за 5 лет даже 30 плюсов не набралось :))))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *