Переход с 8.1 на 8.2. Этапы, некоторые особенности, проблемы




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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='\

56 Comments

  1. Vladuha

    На курсе перевода прикладных решений на 8.2 перед конвертацией рекомендуют делать тестирование логической целостности, а после конвертации — реструктуризацию таблиц

    Reply ↓
  2. Saipl
    Написанную «с нуля» конфигурацию при желании перейти на 8.2 нужно переписывать полностью

    Это еще почему ????

    Reply ↓
  3. Alraune

    (1) Спасибо за дополнение! Тестирование никогда не помешает, Вы абсолютно правы.

    (2) Где-то видела на сайте 1С, но этот пункт мной не опробован по причине отсутствия примера такой конфигурации, так что, наверно, сейчас его уберу. Спасибо!

    Reply ↓
  4. noprogrammer
    Отменять режим совместимости сразу не стоит! Во всяком случае, на рабочей базе. Если конфигурация не подготовлена к этому, то могут произойти странности в оформлении

    Очень бы хотелось узнать что за странности могут возникнуть (конкретнее)


    (возможно, и более серьезные проблемы), в частности, при тестовом переходе в одном случае со всех форм пропали табличные части и страницы.

    Было переведеного множество клиентов, ни у одного подобной проблемы замечено не было.

    Reply ↓
  5. noprogrammer

    Вообще в 8.2 сильно изменилась лишь одна процедура «ОбработкаЗаполнения»), вот ее придется переписатьподкорректировать тем у кого конфы написаны с нуля (в типовых скорее всего либо переписали уже либо перепишут)

    Reply ↓
  6. Alraune

    (4) Не было — и хорошо! Это же не истина в последней инстанции, а частное впечатление, оно у каждого свое, если кто-то столкнулся с одними проблемами, это не значит, что с ними столкнутся и все остальные. Я всегда считаю, что чем больше знаешь про грабли, на которые наступали другие, тем меньше вероятности сделать это самому.

    А за дополнения — спасибо!

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

    Reply ↓
  7. DanilaDru

    Если говорить про грабли дальше после перехода, то после публикации базы на веб-сервисе и динамическом обновлении базы пользователи не всегда могут зайти под веб-клиентом. Надо рестартовать IIS/Apache.

    Особенность поведения платформы: под управляемым интерфейсом в режиме совместимости пока не создадите основные управляемые формы не сможете добавить элементы справочников, документы, записи в регистры…..

    Reply ↓
  8. Alraune

    (7) Спасибо за дополнение!!!

    Reply ↓
  9. slovopotam

    Я думаю на Инфостарт до конца субботы ходить не стоит. 😉

    Кроме потока учебных статей ничего не будет.

    Reply ↓
  10. Арчибальд

    Мой плюс №10 🙂

    Reply ↓
  11. Шёпот теней

    молодцы 1С … активная … настойчивая … и БЕСплатная (для неЁ) реклама …

    … теперь ВСЕ … озадумаются переХодом … дурь конечно — но такая слАдкая …

    … вот …

    Reply ↓
  12. Шёпот теней

    …

    на повестке дня только один не отвеченный вопрос: «А зачем ПЕРЕходить на 1с 8.2. … ? … » …

    … пять лучших ответов получат соответствующее количество «плюсов» за любые ветки победителей …

    … вот …

    п.с. … а если ничего не меняется — то зачем ??? …

    …

    Reply ↓
  13. Ish_2

    (10) Хитрый угодник.

    Reply ↓
  14. alexk-is

    (12) Варианты:

    1. 1С:Сервер под 8.2 падает реже и с меньшим стуком

    2. У предприятия уже есть мощный сервер и Oracle, покупать ещё один сервер и MS SQL не дают

    3. Необходимо организовать оперативную работу удаленных складов по дохлым каналам связи на дохлых ПК

    4. Начальство жмет деньги на апгрейд техники прикрываясь кризисом, а базы пухнут и тормозят всё сильнее

    5. А на семинаре сказали, что все уже работают на 8.2 и им очень нравится

    Reply ↓
  15. alexk-is

    (15) Вообще-то это ответы тех кто уже перешел на 8.2

    Reply ↓
  16. afanasko

    (12)

    Ну хотя бы ради тонкого клиента и отказоустойчивого кластера (если есть потребность).

    Остальные плюшки (особенно интерфейсные) вызывают довольно противоречивые чувства.

    Reply ↓
  17. Шёпот теней

    (16) … хм … а разве есть разница … ? (между тем кто перешёл и рекламой 1с) …

    … любой перешедший (лох) всегДА говорит что теперь стало лучше … а куда ему деваться … прекрасно помню очень живые крики отличия 8 от 7 -ки ине менее живые сравнения типа «жигули 7 модели с 600 мерседесом» … и что … ? …

    … известный факт — ИТ не увеличила производительность труда (максимум эффект обозначен как 5-7 процентов) … множат информацию — да … но к производительности это не имеет никакго отношения … а ужжж к экономике …

    … вот …

    Reply ↓
  18. Шёпот теней

    (17) … а кто мешает совершенстовоаться в рамках старой парадигмы … (позвольте по-умничать) … вот … (и есть ли потребность у всех … которые за всЁ это заплатятЬ …) … совсемВОт …

    …

    Reply ↓
  19. fishca

    (14)

    1С:Сервер под 8.2 падает реже и с меньшим стуком

    Это смотря какой релиз 😉

    Reply ↓
  20. Шёпот теней

    … дык сказали же … ре-же-па-да-ет … т.е. не сказали что НЕпадает … а остально это знаете-ли от лукавого … всЁ тАААк относительно … и всё тАААк НЕодНОзначно … ))) … вот …

    Reply ↓
  21. Alav

    (14) Половина из тезисов подходит как причина перехода с 8.х на 7.7. Останется добавить

    — На 7.7 не приходиться раз в 3 года адаптировать обработки из-за смены платформы.

    Reply ↓
  22. afanasko

    (19) Ну это вроде бы и есть «старая парадигма». Ведь это эволюционный подход, а не революционный — по сравнению с 8.0 не так уж много изменилось.

    Потребности может и не у всех есть, но кто заставляет? Многие до сих пор на 7.7 работают и в ус не дуют (и мы в том числе).

    Опять же насчет «заплатятЬ»: платформа 8.2 бесплатная для тех кто уже платит 😉 (ИТС). Отказываться глупо, так же как владельцам Windows от очередного сервис-пака.

    Вот.

    Reply ↓
  23. Шёпот теней

    (23) … ох … ! … ох слАдки твои речи … особенно в части «кто заставляет» … говорИИИшь … ))) …

    … вОт …

    Reply ↓
  24. Арчибальд

    Вот в тему http://infostart.ru/public/75335/

    Reply ↓
  25. Шёпот теней

    … в целом ситуация будет только ухудшаться … и вот уже в качестве ПК установлены Серверы 3-5 летней давности … количество информации увеличивается в геометрической прогрессии каждые 3 года … перепроведение документов занимает часы …

    … но обЪём работа Бухгалтера остался прежним … правда их количество, вместе с обслугой (отдел ИТ) — увеличилось в трое …

    … хм …

    п.с. лучше Семёрки — может быть только Семёрка …

    … вот …

    п.с.2. кстати: мамонты вымирают …

    … вотУЖЖЖвот …

    Reply ↓
  26. wumka

    «не было у бабы забот, купила баба… 8.1, а потом апгрейдила до 8.2».

    (это я про себя)

    «Как известно, с 2011 года фирма 1С собирается перестать развивать платформу 8.1» — мне подобное было неизвестно, более того, переписываясь с разработчиками 1С по поводу 8.1, те ни словом в своём ответе о подобном не упомянули, как не упомянули и о возможности апгрейда до 8.2.

    Тем более удивляет, что апргейд до 8.2 позволяет решить возникающую в 8.1 проблему: в 8.1 Базовая версия нет возможности автоматически начислять уральский коэффициент, в 8.2 — есть.

    Reply ↓
  27. Шёпот теней

    «»Как известно, с 2011 года фирма 1С собирается перестать развивать платформу 8.1″ — мне подобное было неизвестно, более того, переписываясь с разработчиками 1С по поводу 8.1, те ни словом в своём ответе о подобном не упомянули, как не упомянули и о возможности апгрейда до 8.2. » …

    … вот это и имелось ввиду «а кто заставляет переходить на 8.2» … никто и не заставляет ))) …

    … вот …

    … вполне советское «хамское отношение» … пИпОл, он же лОх — хавает …

    Reply ↓
  28. afanasko

    (24) Согласен, я может слишком категоричен )). Семерку сейчас довольно сложно купить, будут усиленно отговаривать. Наверное будет точнее относить мои слова к переходу на самые свежие версии. Платформу 8.1 может обновлять и перестанут, но обновления конфигураций никто не прекратит по крайней мере лет 5-ть. Кажись для 8.0 до сих пор выпускают, или нет?

    Вообще, переход на новые версии — не самая большая проблема 1С. 😉

    Reply ↓
  29. almas

    Привет, насчет того, что падает меньше, не сказал бы, происходят непонятные сбросы сеансов, и зависания сеансов. При этом писюлек никаких. В 8.1. если тебя кинули, мало-мало понятно, а в 8.2…. То, что работаетбыстрее — ФАКТ. Из замеченных проблемз — по другому определяются типы объектов. В 8.1 можно было добраться из ссылки.метаданные(), в 8.2 — ИндейскаяХижина :D. Зер гуд насчет организации модульной структуры. 1с-ники наконец-то стали проводить вынесение ВСЕ на сервер…

    Reply ↓
  30. Yackov

    «Конфигурация 1.6 под 8.1 и 8.2 – это РАЗНЫЕ конфигурации, с разными обновлениями» — ничего подобного..модули абсолютно одинаковые и ПроверкаКонфигурацииДляПереводаНа82.epf выдает кучу ошибок если ее запустить в типовой 8.2..

    Reply ↓
  31. Alraune

    (31) Спасибо за уточнение. Очень может быть, материал опробован на практике только частично, а частично взят с различных обсуждений на форумах. Времени было мало, а написать было надо срочно. Поэтому неточности могут быть.

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

    Reply ↓
  32. prog-eg

    (31) Модули одинаковые, но могут быть разные значения свойств; ПроверкаКонфигурацииДляПереводаНа82.epf, как я поняла, осуществляет поиск уязвимых мест, а требуется или нет доработка — определяется визуально.

    Reply ↓
  33. w-w-w-w-w-

    Не совсем понял.

    Написано — типовые конфигурации можно сразу конвертировать.

    У меня Бухгалтерия предприятия, редакция 2.0 (2.0.14.5) на платформе 8.1

    Если файл с обработкой ПроверкаКонфигурацииДляПереводаНа82.epf запустить выдаёт список на 6 страницах — типа несоответствует.

    Или на это можно не обращать внимаение — при дальнейшем обновлении на платформе 8.2 всё прокатит..

    Reply ↓
  34. Alraune

    (34) Если она точно типовая, без каких-либо изменений, то да, единственное, лучше, чтобы был релиз максимально поздний.

    Список «типа несоответствует» — это не ошибки.

    Reply ↓
  35. vdi1950

    Спасибо за статью.

    Извините за возможно наивные вопросы. К сожалению, я не программирую.

    1)Правильно ли я понимаю,что режим управляемого приложения для типовых решений реализован только для конфигурации «Управление небольшой фирмой»?

    2) Если это так, то при переводе, например, типовой бухгалтерской программы с ред. 2.0 с платформы 8.1 на 8.2 оставляем режим совместимости с 8.1. При условии, что нас не интересует тонкий клиент, веб-клиент и увеличение быстродействия конфигурации. Так?

    3) Если в п.2 меня интересует только увеличение быстродействия, тогда отключаю совместимость с 8.1. Но возникает еще два вопроса.

    4) Надо ли снимать конфигурацию с поддержки?

    5) Вы пишите «Для отключения режима совместимости, возможно, потребуется внести некоторые изменения в конфигурацию, по различным оценкам, в среднем на это требуется 1 день». Можете ли вы сказать хотя бы обзорно, о каких изменениях идет речь, если перевод осуществляется для типовой конфигурации.

    Reply ↓
  36. Alraune

    (36) Спасибо. Статья была написана как учебная, как, впрочем, из комментариев понятно. По вопросам.

    1. Не могу ответить, к сожалению.

    2. Да, это так.

    3. 8.2, кстати, и так работает быстрее, чем 8.1

    4. Нет, не надо.

    5. «по различным оценкам» — информацию пришлось собирать где только можно, поэтому дана усредненная цифра, как я понимаю, что-то типа средней температуры по больнице. Но вообще-то как раз изменения нужны для НЕтиповых, если она типовая, то ничего делать не надо. А если изменений много, то примерно оценить необходимость изменений может помочь обработка с ИТС ПроверкаКонфигурацииДляПереводаНа82.epf, только надо учесть, что она выдает все кажущиеся ей подозрительными места, а на деле там может быть все нормально.

    На ИТС есть еще материалы о переходе «Адаптация конфигураций 1С:Предприятия 8.1 к работе на платформе 1С:Предприятие 8.2 без режима совместимости с версией 8.1», «Перевод конфигураций на версию 8.2 с частичным использованием управляемого приложения, на примере УПП 1.3».

    Reply ↓
  37. Nigelist

    Здравствуйте, возникли сложности с установкой обновлений на 8.2 после перехода с 8.1. А именно, после обновления конфигурации сохраняю изменения в самой конфигурации, потом пытаюсь обновить конфигурацию ИБ. Сразу же начинается реструктуризация базы. На этапе реструктуризации регистра бухгалтерии.налоговый приложение зависает. Может кто-нибудь уже встречался с этой проблемой?

    З.Ы. Конфигурация — Бухгалтерия для Казахстана 2.0.2.10, до была 1.5.19.5 (ее же конвертировал). ИБ весит ~ 8Гб. Старая платформа — 8.1.15.14, новая платформа 8.2.13.219.

    Reply ↓
  38. Lara.Builova

    (38)

    1. Конвертация 1.5.19.5 на 8.2.

    2. Сохранение конфигурации.

    3. Сохранение базы данных.

    4. Обновление сконвертированной базы на 2.0.2.10 через поддержку.

    5. Сохранение конфигурации.

    6. Сохранение базы данных.

    На каком конкректно этапе зависает?

    Reply ↓
  39. Nigelist
    Lara.Builova пишет:

    На каком конкректно этапе зависает?

    На шестом этапе, а именно при реорганизации регистра бухгалтерии — налоговый.

    Reply ↓
  40. Lara.Builova

    Если 2 и 3 этап не пропущены — должно все прожевать, может быть долго, так реконструирует план счетов и перепроводит все документы, возможно их просто много, обрабатывается весь период — от начала ведения данных.

    Reply ↓
  41. Nigelist
    Lara.Builova пишет:

    Если 2 и 3 этап не пропущены — должно все прожевать, может быть долго, так реконструирует план счетов и перепроводит все документы, возможно их просто много, обрабатывается весь период — от начала ведения данных.

    Вы хотите сказать, что не смотря на сообщение диспетчер задач «приложение Не отвечает». Необходимо ждать, пока процесс реструктуризации не завершиться?

    Reply ↓
  42. Lara.Builova

    (42) Да. Очень часто во время реструктуризации приложение не отвечает.

    Сколько времени висит процесс?

    Reply ↓
  43. Nigelist
    Lara.Builova пишет:

    Да. Очень часто во время реструктуризации приложение не отвечает. Сколько времени висит процесс?

    Висит с утра воскресения.

    Кто-нибудь пробовал разбить процесс ТиИ на несколько этапов?

    Reply ↓
  44. Lara.Builova
    Кто-нибудь пробовал разбить процесс ТиИ на несколько этапов?

    Опа. Так оно у тебя ТиИ не проходит?

    Ошибки выдает?

    Reply ↓
  45. Nigelist
    Lara.Builova пишет:

    Опа. Так оно у тебя ТиИ не проходит? Ошибки выдает?

    До ТиИ не дошло. 🙂

    Reply ↓
  46. Dushka

    пригодилось…благодарю

    Reply ↓
  47. Angeros

    Непонятно как такая статья набрала столько плюсов — одна вода. Ну и оформление — кричащий шрифт…

    Reply ↓
  48. ign

    Спасибо, с вашей помощью благополучно перешли на 8.2. До этого год медитировали.

    Reply ↓
  49. kozai05

    Да вроде не сложно, даже не типовую — конвертация конфигурации при запуске в конфигураторе — да и все. Правда жаль потом обратно при необходимости никак не конвертнуть — бывает у тебя свежая платформа стоит, а у клиентов более старые, не всегда удобно потом ездить им обновлять.

    Reply ↓
  50. AndreyNit

    Большое спасибо автору, как только начал заниматься переводом сразу же нарвался на вашу статью. Очень помогла, всё ясно как дважды два.

    Reply ↓
  51. lees

    Спасибо! после прочтения отпадает сразу куча вопросов!

    Reply ↓
  52. xzevsx

    После прочтения удовлетворил своих бухгалтеров)

    Reply ↓
  53. v.l.

    Если в обоих базах (8.1 и её сконвертированной в 8.2 копии) завести полный план обмена и обмениваться, то можно и откатиться назад, просто запуская 8.1 вместо 8.2

    Reply ↓
  54. klirinda

    спасибо, очень полезная статья

    Reply ↓
  55. Новиков

    Спасибо. В 2015 еще актуально!

    Reply ↓
  56. Светлый ум

    На этой странице, можно скачать обработку бесплатно:

    http://its.1c.ru/db/metod8dev#content:3272:hdoc:_top:проверкаконфигурациидляпереводана82

    Кнопка «Копировать»

    Reply ↓

Leave a Comment

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