Хитрости платформы: использование конфигурации поставщика




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

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

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

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

98 Comments

  1. sCHTASS

    Спасибо. Действительно про написанное не знал.

    Reply
  2. practik1c

    Пожалуйста, как показала практика, многие про это не знают. Да что греха таить, когда-то и сам не знал 🙂

    Reply
  3. AlX0id
    Итак мы понимаем, чтобы разобраться нам нужна типовая конфигурация текущего релиза (допустим 1.1.23.1). Но где ее взять? Если есть знакомый франч и он может оперативно переслать дистрибутив — прекрасно, но предположим его нет, а исправить проблему нужно срочно. (Варез не предлагать!)

    Если конфа легальная — users.v8.1c.ru и хоть обкачайтесь.

    Если нелегальная, то за Вами скоро выедут.

    Reply
  4. practik1c

    (3) AlX0id,

    Если конфа легальная — users.v8.1c.ru и хоть обкачайтесь.

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

    Reply
  5. hulio

    (3) AlX0id,

    Если конфа легальная — users.v8.1c.ru и хоть обкачайтесь

    :D:D:D

    Да-да, сначала обкачайтесь (полный дистрибутив только первой версии + все обновления), а потом заустанавливайте (установите дистрибутив и последовательно установите обновления ))))

    Не болтайте ерундой 🙂

    Автор статьи все верно написал: в информационной базе присутствует как минимум 3 конфигурации:

    1. Текущая конфигурация (собственно, это та конфигурация, которую мы правим)

    2. Конфигурация базы данных

    3. Конфигурация поставщика

    Почему «как минимум 3 конфигурации»? Да потому что конфигураций поставщиков может быть сколько угодно много 🙂 И с каждой из них можно делать все то, о чем писал автор (0)

    (0) вы бы еще написали про то, как важно устанавливать обновления через меню «Конфигурация —> Поддержка —> Обновить конфигурацию», а не просто через «Сравнить/объединить» 🙂

    Reply
  6. practik1c

    (5) hulio,

    вы бы еще написали про то, как важно устанавливать обновления через меню «Конфигурация —> Поддержка —> Обновить конфигурацию», а не просто через «Сравнить/объединить» 🙂

    По этому поводу возможно напишу отдельную статью.

    Reply
  7. cmd_vasec

    Спасибо. Однозначно плюс. Это из раздела: это должен знать каждый. 🙂

    Reply
  8. AlexO

    (7) cmd_vasec,

    вы хоть помечайтесь — «студент Вася: отлично! все понравилось» ничего не знаю, но это должен знать!»

    Reply
  9. AlexO

    (2)

    и какая же у вас практика? чтобы писать такое — видимо, очень богатая:

    Единственный способ поставить конфигурацию снова на поддержку — это загрузить (не в режиме сравнения и объединения, а именно пункт Загрузить конфигурацию из файла) типовой .cf.

    .. и потерять все данные, которые введены и хранились в реквизитах и таблицах изменения.

    Если не знаете, как поставить конфу обратно на поддержку — так и пишите. А не то, что вы сами напридумывали.

    А еще лучше — пишите в начале статьи: «я еще студент, но вот решил написать статью о том, что сам не проверял, но предполагаю…»

    Reply
  10. alext88

    (9) AlexO, А Вы хоть раз пробовали загружать из цфки конфу? Если нет, то не пишите, что

    потерять все данные, которые введены и хранились в реквизитах
    Reply
  11. AlexO

    (6)

    По этому поводу возможно напишу отдельную статью.

    тогдла уж начните с — «Использование 1С в народно-хозяйственном учете. Функции и возможности». 🙂

    Reply
  12. kereo

    (9) Алекс

    .. и потерять все данные, которые введены и хранились в реквизитах и таблицах изменения.

    Очень интересно узнать как же специалист может вернуть конфигурацию на поддержку и не потерять данные, которые хранились в добавленых реквизитах?

    Reply
  13. cmd_vasec

    (8) AlexO,

    Вы противоречите себе. Пишите обдумано свои комментарии. А то складывается такое мнение, что у вас плохо с логикой.

    И на будущее не оскорбляйте присутствующих.

    Reply
  14. sstar90

    Спасибо за ликбез

    Reply
  15. marsohod

    «А слона-то он и не заметил…» (с) 😀

    Reply
  16. petrov_al

    К сожалению все это известно…думаю и большинство программистов знают, …публикация для новичков

    Reply
  17. koklobok

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

    Reply
  18. JesteR

    А вот некоторые обновляют через сравнение и объединение, и в таком случае конфигурация поставщика не обновляется. Или я ошибаюсь?

    Reply
  19. cmd_vasec

    (19) JesteR,

    не ошибаетесь.

    Reply
  20. AlexO

    (19) JesteR,

    конфигурация поставщика обновляется при установке обновления.

    Reply
  21. AlexO

    (13) cmd_vasec,

    что у вас плохо с логикой.

    с 1с-овской? да, признаю, плохо. Даже с «женскую» — намного лучше понимаю.

    Reply
  22. Yashazz

    Умиляюсь каждый раз, когда за пересказывание штатного мануала так рьяно благодарят. РТФМ, господа, и будет щастье. А то самое интересное осталось «за кадром». И что конфигураций поставщиков бывает несколько, и что на основании конфигурации «А» можно сделать свою «Б» (доработанная типовая как своё тиражное), тогда работа ещё интереснее… И что иногда конфигурация находится на поддержке без возможности изменения, обновляется файлом от производителя, а пункта «Конфигурация поставщика» в меню сравнения нет как нет… И про особенности сравнения, особенно применительно к модулям, лазающим в интернеты… А очевидные вещи, они в книжках и так есть.

    Reply
  23. AlexO

    (10) alext88,

    т.е. вы не знаете, что есть реквизиты из типовой, а есть — нетиповые? Тогда от

    (13) cmd_vasec,

    Пишите обдумано свои комментарии. А то складывается такое мнение, что у вас плохо с логикой.

    И на будущее не оскорбляйте присутствующих.

    — это к вам, видимо.

    А то он кнопкой ошибся.

    Reply
  24. AlexO

    (12) kereo,

    Очень интересно узнать как же специалист может вернуть конфигурацию на поддержку и не потерять данные, которые хранились в добавленых реквизитах?

    Можно.

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

    А также — какое открытие для студентов-специалистов! — есть возможность создавать свои собственные CFU с полной «поддержкой замочка» для совершенно нетиповых баз. Но это делается несколько по-другому от первого варианта.

    Т.е, как разберетесь — можете смело называть себя студентом-суперспециалистом 🙂

    Reply
  25. kereo

    (25) Алекс

    Делать свои поставки…А смысл? Запрет редактирования? Наличие 2-х конфигураций поставщика?

    Если речь идет о возможности обновления с сайта 1С(или диска ИТС) и как мне кажется автор хотел сказать именно об этом, то это плохой вариант.

    Если речь идет о закрытии для редактирования конфигурации, так лучше это сделать через права.

    Если же просто повыпендриваться, так это не самый пи***тый лучший способ.

    Reply
  26. Yury1001

    Не так давно искал и не нашёл, спс.

    Reply
  27. CnupT

    Не считаю себя совсем уж новичком, но прочитал с интересом, спасибо

    Reply
  28. cmd_vasec

    (22) AlexO,

    Нет.

    Вы читали то, что написали в мой адрес.

    Почему вы решили, что: я студент; я нечего не хочу знать, а это должен?

    Запомните: все знать не возможно. Даже у специалиста можно найти, то чего он не знает.

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

    Reply
  29. alext88

    (24) AlexO, Ну тогда и надо было написать, не то, что потеряются ВСЕ данные которые хранятся в реквизитах. В описанном примере потеряются только данные из нетиповых реквизитов

    Reply
  30. AlexO

    (30) alext88,

    В описанном примере потеряются только данные из нетиповых реквизитов

    а что, этого не достаточно, чтобы застрелиться бухгалтеру?

    Reply
  31. AlexO

    (29) cmd_vasec,

    Новое для себя узнал

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

    Это уже не первая статья, где я указываю автору на катастрофические последствия действий «по статье».

    Хотя — 1С прекрасная среда, чтобы узнать вкус жизни и пройти жестокую школу «избиения бухгалтерами и директорами программистов 1С» 🙂

    Дает массу суровых уроков. В том числе — не суди программу по одежке и по агиткам производителей.

    Reply
  32. cmd_vasec

    (32) AlexO,

    То, что написано в статьях надо проверять на практике.

    А если вы «сломали базу», то это ваша вина, надо вначале попробовать на копии.

    Reply
  33. cmd_vasec

    (32) AlexO,

    Если вы все знаете, то вопрос по теме: как через командную строчку обновить ТОЛЬКО конфигурацию поставщика?

    Reply
  34. ndacoder

    (34) nda.bat

    может тебе расказать как изменить конфигурацию без включения возможности изменения ?

    Reply
  35. cmd_vasec

    (35) ndacoder,

    Что такое nda.bat? Если это бантник, то напишите код.

    Reply
  36. IntSergey

    Статья как статья, ничего нового. Гораздо важнее обработки на сайте, из-за которых тут и пишут подобные «статьи».

    Reply
  37. motorkuzbassa.it

    а где БОЛЬШИМИ БУКВАМИ, СДЕЛАЙТЕ КОПИЮ БД???

    Reply
  38. alcoholic

    спасибо полезная штука

    Reply
  39. commo

    собственно что написано в статье знал, но почерпнул информацию интересную из комментов, автору + за то что создал публикацию и + всем кто оставил интересные комментарии.

    Reply
  40. glek

    Информация в статье очень важная для разработчиков. Сам пользуюсь данной возможностью давно, До создания ЦФ-ки из конфигурации поставщика пока что не требовалось, но прием нужный.

    Reply
  41. khaoos

    Спасибо! Почти все знал, но кое-что почерпнул и освежил в памяти.

    Reply
  42. Angeros

    Ничего нового, но все равно + за систематизацию.

    Reply
  43. Angeros

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

    Reply
  44. kereo

    (45) Angeros, это в случае если хочешь потом обновляться без сравнения на автомате.

    Автоматическое обновление

    Если конфигурация находится в режиме полной поддержки, возможно выполнение автоматического обновления прикладного решения. Система автоматически выполняет поиск обновлений в специальном Интернет-ресурсе, определенном поставщиком данной конфигурации, и на диске ИТС. Пользователь может дополнительно указать каталоги, в которых также необходимо искать обновления (включая каталоги, размещенные в Интернете). Для выполнения обновления достаточно выбрать необходимое обновление из найденных в указанных ресурсах.

    источник

    Reply
  45. Angeros

    (46) логично, понятно

    Reply
  46. ipyu

    Спасибо, чётко и понятно.

    Reply
  47. krein
    Единственный способ поставить конфигурацию снова на поддержку — это загрузить (не в режиме сравнения и объединения, а именно пункт Загрузить конфигурацию из файла) типовой .cf. Вот для этого нам как раз и пригодится возможность сохранения конфигурации поставщика в файл .cf. Делаем сохранение, затем загрузку, и после обновления конфигурации базы данных, получаем типовую конфигурацию в первозданном виде, т.е. с замочком 🙂

    Вот этот текст, считаю, надо из статьи убрать,

    или заменить слова «на поддержку» на «на поддержку без возможности изменения»

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

    по ссылке ниже хорошая статья, где указано, как правильно обновить конфигурацию поставщика до нужной версии:

    http://infostart.ru/public/18562/,

    в свое время по ней пошагово обновлял коряво измененную и неправильно потом обновленную УПП,

    в первый раз и все получилось!

    Reply
  48. Konder.Djironimo

    thank you действительно не знал !!!

    Reply
  49. practik1c

    (50) krein,

    Вот этот текст, считаю, надо из статьи убрать,

    или заменить слова «на поддержку» на «на поддержку без возможности изменения»

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

    Раз вы это пишете, либо не до конца поняли о чем идет речь, либо невнимательно читали предыдущий абзац. Там есть такая фраза

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

    Думаю из этого понятно о какой поддержке идет речь, а ваша фраза

    возможна (и очень вероятна) потеря данных (добавленных реквизитов например) в этом случае

    выглядит в данном контексте совсем неуместно, т.к. в описываемой ситуации мы осознанно идем на этот шаг.

    Еще раз: в пункте 3 этой статьи не руководство к действию (иначе да, там бы присутствовала фраза ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ и более развернуто описан процесс перехода от нетиповой конфигурации к полностью типовой с вариантами сохранения добавленных данных), а частный случай использования конфигурации поставщика, в случае, когда мы точно знаем (заранее озаботились сохранением/переносом добавленных данных), что делаем.

    Причем в том же абзаце есть фразы

    Доработка была минимальной, но в дальнейшем это все же создавало неудобства при обновлении.

    и

    Но затем, спустя какое-то время, мы обнаруживаем, что данный функционал появился в типовой (и как часто бывает, реализован на порядок лучше, чем «кустарная» доработка)

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

    Reply
  50. AlexO

    (52)

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

    да у вас вообще кошмар какой-то.

    Пообтритесь побольше с 1с — и поймете, что это ваше «откатится назад» — нужно в 0,1%. В остальных — крутится, крутится и крутится. Вот от

    (23) Yashazz,

    И что конфигураций поставщиков бывает несколько, и что на основании конфигурации «А» можно сделать свою «Б» (доработанная типовая как своё тиражное), тогда работа ещё интереснее… И что иногда конфигурация находится на поддержке без возможности изменения, обновляется файлом от производителя, а пункта «Конфигурация поставщика» в меню сравнения нет как нет…

    примеры настоящей практики обновления в 1с. А у вас — так, лабораторные работы в институте под наблюдением преподавателя.

    Reply
  51. red80

    (5) hulio,

    Да-да, сначала обкачайтесь (полный дистрибутив только первой версии + все обновления), а потом заустанавливайте (установите дистрибутив и последовательно установите обновления ))))

    Не болтайте ерундой 🙂

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

    Reply
  52. practik1c

    (53) AlexO,

    Я у вас уже давно заметил завышенную самооценку, но кто дал вам право судить о моей практике?

    и какая же у вас практика? чтобы писать такое — видимо, очень богатая:

    Откуда вы знаете какая у меня практика? Сделали вывод на основании этой статьи? Тогда разуйте глаза и посмотрите в каком разделе она находится. Возможно тогда и отпала бы необходимость так рьяно брызгать слюной в стиле

    .. и потерять все данные, которые введены и хранились в реквизитах и таблицах изменения.

    Если не знаете, как поставить конфу обратно на поддержку — так и пишите. А не то, что вы сами напридумывали.

    А еще лучше — пишите в начале статьи: «я еще студент, но вот решил написать статью о том, что сам не проверял, но предполагаю…»

    Только мне кажется, что у вас комплекс по поводу студентов? Сами то наверно сразу родились как вы любите выражаться тру-1сником?

    Впредь попросил бы вас воздерживаться от напутствующих комментариев в мой адрес в стиле

    Пообтритесь побольше с 1с

    Обтираться с 1с можно по-разному. Я например обтираюсь с 2004 года, причем добрую половину этого времени проработав ведущим программистом-внедренцем в крупнейшем франче, пройдя десятки внедрений. Долгое время работал и на фикси, в т.ч. в должности рук. отдела ИТ. А можно обтираться проводя большую часть рабочего времени на форумах, раздувая щеки и оскорбляя других участников, дабы поднять свою самооценку.

    И вообще, AlexO, складывается такое впечатление, что вы зациклены на 1с. Посмотрите вокруг, есть так много прекрасных вещей, на которые стоит тратить свое время, тем более в воскресенье вечером 🙂

    Reply
  53. AlexO

    (55)

    Я например обтираюсь с 2004 года, причем добрую половину этого времени проработав ведущим программистом-внедренцем в крупнейшем франче, пройдя десятки внедрений. Долгое время работал и на фикси, в т.ч. в должности рук. отдела ИТ.

    а и не сомневался — что деградация науки и знаний, профессий и умений — и в частности — программирования, идет полным ходом.

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

    А теперь — пожалуйста.

    И если вы за всю свою практику, как пишите — даже по обновлению пишите из справки, то — ваше дело.

    А я считаю, что указать маленькой и сокращающейся думающей аудитории на критические ошибки — крайне важно.

    Как и вам важно — после стольких лет ведущим программистом давать непроверенную статью элементарных действий 🙂

    А про «студентов» — так это не обучением в институте-ВУЗе определяется, а состоянием: беззалаберность, безответственность, пофигизм, агрессивность и нежелание учиться.

    Reply
  54. practik1c

    (56) AlexO,

    а и не сомневался — что деградация науки и знаний, профессий и умений — и в частности — программирования, идет полным ходом.

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

    Т.е. вы считаете, что те кто прочитают данную статью, в частности пункт 3 — настолько деградировавшие и тупые студенты, что тут же ринутся бездумно грузить типовой .cf в рабочую базу, непонятно зачем, но зато не сделав предварительно бэкап дабы не

    потерять все данные, которые введены и хранились в реквизитах и таблицах изменения.

    . За кого вы вообще держите здешнюю аудиторию?

    И если вы за всю свою практику, как пишите — даже по обновлению пишите из справки, то — ваше дело.

    Судя по количеству плюсов, эта информация многим оказалась полезна.

    А я считаю, что указать маленькой и сокращающейся думающей аудитории на критические ошибки — крайне важно.

    По-моему вы свой мегапрофессионализм не в то русло направляете. Еще раз, посмотрите на рубрику, в которой находится эта статья. Без обид, но не стоит в каждой бочке быть затычкой 🙂

    Reply
  55. Dethmond

    Спасибо, как раз то, что нужно

    Reply
  56. AlexO

    уберите (59) спам

    Reply
  57. FedorovEvg

    Вся информация в статье присутствует в типовых книжках и обязана к прочтению в первоисточнике. Причем даже в учебниках 1С (Радченко Практическое пособие) рассказано о нескольких конфигурациях поставщика (и даже есть схемы). Выше уже приводилась классическая статья, об обновлении конфигураций, думаю ее надо брать за основу новичкам. Прочитал дискуссию с пользователей с AlexO, не понимаю, почему многие кинулись объяснять человеку, что он во всем не прав? Я понимаю, что опытный программист, знает все, что указано в данной статье на уровень выше. Многие думается мне читали библию 1с, там выделена целая глава где разобранные и разжеваны все случаи обновления. Если новичкам нет времени, то тогда берете классическую статью и обновляете. Зачем оправдывать программистов не читающих мануалы ?? AlexO+100500

    Reply
  58. AlexO

    (57)

    Т.е. вы считаете, что те кто прочитают данную статью, в частности пункт 3

    Пункт 3:

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

    Единственный способ поставить конфигурацию снова на поддержку — это загрузить (не в режиме сравнения и объединения, а именно пункт Загрузить конфигурацию из файла) типовой .cf.»

    Ну давайте, объясните пункт 3, и как при этом не потерять данные в тех самых «доработках»?

    Причем даже в учебниках 1С

    в учебниках от 1С СПЕЦИАЛЬНО не рассказывают про технологии манипуляции с обновлением баз поставщика — могут быть глюки, например — в результате на выходе база поставщика одной версии, а основная база — другой версии.

    Там много интересных подводных камней, но в статье об этом — ни слова, но зато есть прямой совет, как запороть существующую базу.

    Reply
  59. Trof@

    «Просто многие единственный раз открывают данную форму только лишь для включения возможности изменения и больше никогда к ней не возвращаются.» 100%

    Reply
  60. practik1c

    (62) AlexO,

    Возникает резонное желание отказаться от внесенных доработок

    Ну давайте, объясните пункт 3, и как при этом не потерять данные в тех самых «доработках»?

    Мдя…тяжелый случай…

    А теперь для тех, кто в танке

    Еще раз: в пункте 3 этой статьи не руководство к действию (иначе да, там бы присутствовала фраза ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ и более развернуто описан процесс перехода от нетиповой конфигурации к полностью типовой с вариантами сохранения добавленных данных), а частный случай использования конфигурации поставщика, в случае, когда мы точно знаем (заранее озаботились сохранением/переносом добавленных данных), что делаем.
    Reply
  61. hulio

    (54) red80,

    Часа через 4 имеем последний релиз

    Я что-то не пойму — это сарказм или вы действительно предлагаете идти именно этим путем? Если сарказм, то не надо направлять его в мою сторону — я как раз против скачивания полного дистрибутива и последовательной установки обновлений. Если же вы на полном серьезе предлагаете такой подход, то мне вас искренне жаль ))) Зачем что-то откуда-то скачивать, если все необходимое уже есть в базе? Да и вообще, ваш метод вряд ли сработает. Вы уверены, что в ранних релизах конфигураций имеется возможность автообновления с сайта? А если такая возможность и есть в самом первом релизе, то процедуру автообновления придется запускать не менее 2-х раз: сначала ставить 8.1 (или даже 8.0), устанавливать все обновления, вышедшие под эту платформу, затем конвертировать базу в 8.2 и ставить обновления под новую платформу. Вы точно уверены, что это оптимальный вариант? )))

    Reply
  62. alexk-is

    (50) Прикольно. Значит, всё-таки читают…

    Reply
  63. red80

    (65) hulio,

    Если же вы на полном серьезе предлагаете такой подход, то мне вас искренне жаль ))) Зачем что-то откуда-то скачивать, если все необходимое уже есть в базе? Да и вообще, ваш метод вряд ли сработает. Вы уверены, что в ранних релизах конфигураций имеется возможность автообновления с сайта? А если такая возможность и есть в самом первом релизе, то процедуру автообновления придется запускать не менее 2-х раз: сначала ставить 8.1 (или даже 8.0), устанавливать все обновления, вышедшие под эту платформу, затем конвертировать базу в 8.2 и ставить обновления под новую платформу. Вы точно уверены, что это оптимальный вариант? )))

    Такое ощущение что ты бредишь, прочитал про три конфигурации в базе и почувствовал себя мегагуру. Зачем ставить 8.1 и 8.0? При чем тут вообще 8.1 и 8.0? Если надо обновить Бухгалтерию с 1.6 на 3.0 то это вопрос не этой публикации. А если все есть в базе то никакого вопроса вообще не возникает. Я написал как легко и просто прыгнуть через несколько релизов в не испорченной конфигурации или получить последний релиз отсутствующей (или есть способ где-то скачать последнюю полную установку?) Метод работает. И в ранних версиях он есть. Если ты за всякой фигней лезешь в конфигурацию убивая свое время, вместо того чтобы делегировать задачу машине, то мне тебя жаль.

    Reply
  64. warrior1985

    Спасибо. Действительно по написанное не знал этом. Пригодится.

    Reply
  65. loginfo

    Для меня полезно.

    Reply
  66. Alexey55

    Спасибо автору! терь буду знать)

    Reply
  67. AlexO

    (67) red80,

    Я написал как легко и просто прыгнуть через несколько релизов

    чтобы «легко и просто» прыгнуть через несколько релизов — нужно на 100% убедиться, что в перепрыгиваемых релизах не было замены уже существующих реквизитов и переноса данных из них.

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

    Reply
  68. red80

    (71) AlexO, facepalm

    А почитать о чем речь идет?

    Reply
  69. AlexO

    (72) red80,

    вы хотите сказать, что можно в любом случае прыгать как хочешь через релизы?

    Reply
  70. AlexO

    (64)

    Возникает резонное желание отказаться от внесенных доработок

    что у вас за желание — не знаю. Но если там — в тех самых доработках, от которых у вас постоянно возникает желание отказаться 🙂 , — хранятся данные — значит, эти данные кому-то и для чего-то были нужны. И их либо надо оставлять, либо — переносить.

    А если вы советуете «ломайте все, возвращайте к типовой — и берите, в случае чего, всю ответственнность за потерянные данные на себя», то так и напишите.

    А не прикрывайтесь фразами «а частный случай использования конфигурации поставщика, в случае, когда мы точно знаем (заранее озаботились сохранением/переносом добавленных данных), что делаем».

    Где у вас в п3 «частный случай» и «только после переноса/сохранения данных»? вы сами-то читали свою статью?

    Reply
  71. AlexO

    (5) hulio,

    practik1c, вы бы еще написали про то, как важно устанавливать обновления через меню «Конфигурация —> Поддержка —> Обновить конфигурацию», а не просто через «Сравнить/объединить» 🙂

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

    А про слом базы я уже с ним спорю который день — он никак не хочет понимать свои же недоработки (точнее, непростительные непроработки — раз в ход пошло «я начальник и ведущий со стажем»).

    Reply
  72. red80

    (74) AlexO,

    В не измененной или

    не испорченной конфигурации

    .

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

    Reply
  73. AlexO

    (76) red80,

    Глазами пользователя — это один затяжной прыжок через несколько конфигураций.

    если имеете в виду, что обновления все-таки ставятся одно за другим, а не сразу последнее — то да, согласен, так и надо.

    НО с инет-обновлением, по-моему, тоже не все гладко, и как всегда — сделано через ж у 1С.

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

    Reply
  74. vvr908

    В моей публикации http://infostart.ru/public/116882/ про обновление типовых конфигураций 8.2 и комментариях к ней тоже затрагивалась эта тема, правда применительно к обновлениям… Обсуждали довольно жарко — похоже, что эта тема и здесь нашла своих поклонников )))

    Reply
  75. ideal_ko

    Спасибо.

    Только собрался звонить «поставщику» о чистой конфигурации.

    Reply
  76. sergio199

    (21) AlexO,

    Не только при установке обновления, а ещё и при выборе команды Конфигурация — Загрузить конфигурацию из файла.

    Reply
  77. hulio

    (67) red80,

    Такое ощущение что ты бредишь, прочитал про три конфигурации в базе и почувствовал себя мегагуру. Зачем ставить 8.1 и 8.0? При чем тут вообще 8.1 и 8.0? Если надо обновить Бухгалтерию с 1.6 на 3.0 то это вопрос не этой публикации. А если все есть в базе то никакого вопроса вообще не возникает. Я написал как легко и просто прыгнуть через несколько релизов в не испорченной конфигурации или получить последний релиз отсутствующей (или есть способ где-то скачать последнюю полную установку?) Метод работает. И в ранних версиях он есть. Если ты за всякой фигней лезешь в конфигурацию убивая свое время, вместо того чтобы делегировать задачу машине, то мне тебя жаль.

    Даааа. У меня уже не ощущение, а 100%-ая уверенность, что бредишь здесь ты. Объясняю: последний доступный полный дистрибутив (равно как и часть обновлений) может быть выпущен для платформы 8.0 или 8.1. Последние обновления будут уже под платформу 8.2. При таком раскладе автоматическая установка обновлений у тебя прервется как минимум 1 раз. Чтобы ее возобновить, необходимо будет сконвертировать твою базу под 8.2 и запустить процесс установки обновлений заново.

    Но это все лирика. Полным бредом я считаю вот этот эпос:

    Скачиваем последний доступный полный дистрибутив, ставим, открываем в режиме Предприятие, запускаем обновление с сайта и переключаемся на другую задачу или идем пить чай. Часа через 4 имеем последний релиз

    Зачем это все, когда можно просто ничего не скачивая, ничего дополнительно не устанавливая, ничего не обновляя и ничего не ожидая, в общем, без всякого геморроя получить cf-ник типовой конфигурации, просто выгрузив его из имеющейся базы???

    Reply
  78. hulio

    (67) red80, да, и еще — ваш подход может оказаться совершенно бесполезным, например, в такой ситуации:

    имеется доработанная конфигурация, находящаяся на поддержке, но не последнего релиза (например, бухгалтерия 2.0.35)

    ваша задача: узнать, что именно было изменено (это понадобится, чтобы, например, обновить конфигурацию до последнего релиза (2.0.37), не затронув изменения в конфигурации заказчика)

    Мои действия:

    Выгрузить cf-ник из конфигурации поставщика —> сравнить конфигурацию заказчика с полученным cf-ником —> Profit!

    Твои действия:

    скачать последний доступный полный дистрибутив (2.0.12) —> развернуть базу из этого дистрибутива и запустить автоматическую установку обновлений —> пить чай «часа 4» (если не больше: все таки это не шутка — последовательно накатить 25 обновлений …) —> получить cf-ник релиза 2.0.37, который нельзя сравнивать с конфигурацией заказчика —> перейти к моему алгоритму, чтобы получить profit 😀

    В общем, наверное, мне надо вам сказать спасибо — насмешили )))

    Reply
  79. red80

    (82) hulio,

    Мда, чукча не читатель, чукча писатель.

    Reply
  80. hulio

    (83) red80, не надо так сильно самобичеваться 😀

    Reply
  81. practik1c

    (85) red80, (86) hulio, Просьба не переходить на личности, уважайте себя и других участников.

    Reply
  82. red80

    (86) hulio,

    Кроме оскорблений ничего внятно написать не можешь …

    Пишу специально для тебя предельно разжевано.

    Еще и еще раз, сконцентрируйся:

    Я написал как легко и просто прыгнуть через несколько релизов в не испорченной конфигурации или получить последний релиз отсутствующей

    Ну нету у меня требуемой конфигурации, неоткуда взять конфигурацию поставщика. В 1С я зайти не могу, живу далеко за МКАДом, в землях по названием Россия (проходил в школе?), могу только сделать выгрузку базы клиента или скачать с сайта. На сайте есть еще более древний релиз и куча обновлений.

    Все понимают, один ты с этой выгрузкой конфигурации поставщика носишься как с фантиками.

    Reply
  83. FedorovEvg

    Прочитал статью, прочитал комменты.

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

    Ссылка http://infostart.ru/public/141359/

    Reply
  84. hulio

    (88) red80, разжевываю специально для тебя:

    В (0) автор пишет:

    Итак мы понимаем, чтобы разобраться нам нужна типовая конфигурация текущего релиза (допустим 1.1.23.1). Но где ее взять?

    В ответ на это AlX0id в (3) пишет:

    Если конфа легальная — users.v8.1c.ru и хоть обкачайтесь

    В (5) я отвечаю, как бы намекая, что ничего ниоткуда скачивать не надо:

    Автор статьи все верно написал: в информационной базе присутствует как минимум 3 конфигурации:

    1. Текущая конфигурация (собственно, это та конфигурация, которую мы правим)

    2. Конфигурация базы данных

    3. Конфигурация поставщика

    А потом спустя несколько десятков постов в (54) ты вдруг заявил:

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

    Фактически, порекомендовал сделать то же самое, что предлагалось в (3), никаких дополнительных аргументов в пользу своей точки зрения не приводя. Все последующие твои посты уже малосвязны и оскорбительны для других участников форума (для меня в частности). Так и не предоставив никаких доводов, ты только и делаешь, что кричишь «Я написал как легко и просто прыгнуть через несколько релизов в не испорченной конфигурации или получить последний релиз отсутствующей!». А как это вообще относится к изначальному спору? Тем более, что речь изначально шла об уже испорченной конфигурации.

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

    Reply
  85. practik1c
    Reply
  86. zigomodo

    Спасибо за статью,теперь будем знать.

    Reply
  87. icich

    Не всегда внедренцы интересуются работой в конфигураторе. Объем знаний ограничен функцией обновления. Даже при обновлении измененной не используют отбор по дважды измененным.А поставить обратно на поддержку-сложный вопрос.

    Спасибо за подробные объяснения.

    Reply
  88. mdzen

    Весьма познавательно. Спасибо за труд.

    Reply
  89. Flashback1979SE

    Пользительная статья для новисов… Сам узнал об этом в первые месяцы работы во франче.

    Reply
  90. FedorovEvg

    (91) Отвечаю немного запоздало.

    Авторы, вы пишете для новичков, так будьте добры писать им самые простые истины. А если пишите для профи, так и указывайте, пишу дескать для профи, новичкам не заходить.

    Вы согласны, что даже у ненужных доработок (которые стали ненужными после выхода очередного релиза) необходимо перенести данные в типовой функционал? Я думаю что, переносить нужно, а не затирать накопленные данные. В целом согласен с вами, уровень 1С падает, что в принципе не удивительно, встречается сплошь и рядом. Читать толстые книжки ни у кого уже нет желания, да же если за это платят много денег, максимум можно осилить статейку. Нет желания и потребности организовать правильный рабочий процесс, печально.

    Reply
  91. Kaniman

    Спасибо! весьма познавательно. Иногда некому объяснить простые вещи, а предыдущий автор (96), правильно пишет, что читать толстые книги стало некогда, темпы растут.

    Reply
  92. maxsoft83

    В информационной базе присутствует 3 конфигурации:

    1. Текущая конфигурация (собственно, это та конфигурация, которую мы правим)

    2. Конфигурация базы данных

    3. Конфигурация поставщика

    Вот только почему-то не учат правильно пользоваться данными конфами. А самое главное чудо франчи не выполняют стандарты по которым все должно работать. Просто недавно был на курсах по расширенному функционалу 8.2, преподаватель нам рассказал за чем же так много было задуманно конфигураций. Как оказалось никто из кончных пользователей/программистов, окромя франчей не должен работать с конфигурацией поставщика в девственно чистом виде (тобиш от 1С). Когда франч продает конфу он должен выпустить свою поставку которая персонализированна под покупателя, там названия конфы и много мелочей. И потом поставлять обновления от себя а не от 1С. Вот как-то так. Для меня данная инфа была скажем так неожиданной. Но преподователь говорит, таков был высший первоначальный замысел.

    Reply
  93. Sergoninfostarru

    Метод хорош только в случае изменения модуля объекта, модуля формы, в общем, программного кода. Если изменить формат числа в сторону увеличения разрядности или количества цифр после запятой — обновление «порубает» уже внесенные данные. То же самое будет, если увеличено количество ссылок на объекты в сложные ссылках. Например, если увеличили количество типов значений в свойствах объектов, то возвращение к типовой оставит только стандартные значения, а дописанные — сотрет, причем безвозвратно. Будьте осторожными с дописками : без анализа дописанного, делать возвращение к конфигурации поставщика не следует !!!

    Reply
  94. kiv45

    Было интересно почитать статью, а особенно комментарии.

    Reply
  95. AlexO

    (52)

    когда нужно было откатится на полностью типовую конфигурацию

    Вы табуретку когда-нибудь делали? Есть сотня способов сделать её неправильно — разной высоты ножки, несовпадение деталей, отклонение от перпендикуляра… И только один — правильно.

    Вот у вас тоже самое.

    Вы продвигаете тысячу вариантов способа все сломать, — потому что, видите ли, вам интересно ломать из cmd, а не просто так, — и не хотите увидеть единственный способо сделать табуретку правильно.

    Reply
  96. AlexO

    (89) FedorovEvg, о, битва статей… 🙂

    (91)

    Спасибо за столь ценные замечания

    Вы бы комментарии внимательней читали.

    (97) Kaniman,

    а предыдущий автор (96), правильно пишет

    м-да, вот про «толстые книжки» вы осилили абзац…

    (98) maxsoft83,

    Вот только почему-то не учат правильно пользоваться данными конфами.

    Ими, кроме программисткой, никак не пользуются. Максимум — сверяют друг с другом.

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

    Ваш преподаватель — такой же, как и автор статьи. У него концепции той же Axapta (несколько слоев для каждого типа работы — обнвления, изменений, правок и т.д.) преломились об топорную работу 1С с разделением конфигураций. И он придумал, что «Когда франч продает конфу он должен выпустить свою поставку которая персонализированна под покупателя, там названия конфы и много мелочей. И потом поставлять обновления от себя, а не от 1С.»

    Как конфа-разработка от франча может быть персонализирована под покупателя? «УТ для ларька Ашота»?

    Это система франчей была создана, чтобы они стандартизировано вносили измненеия в типовые у клиентов. И разделение конф тут совершенно ни при чем, как и высказанный высший смысл. Весь смысл — программист играется в своей песочнице, пользователи — в своей, потом объединяют. А поставщик — как рабитр, если чего там не срослось, а «эталон-исходник» где то нужно посмотреть.

    Reply
  97. AganinEvgeniy

    (73) AlexO, У Вас похоже и правда проблемы с ЧСВ … он избыточен. Вы бы написали КАК НАДО, а не просто хаяли, что афтар студент и вообще ничего не умеет. Я не одной конкретной корректировки с Вашей стороны не увидел, кроме поливания грязью. Это называется троллинг, а не здравый комментарий )))) т.е. ВСЕ ваши комментарии, сплошной МУСОР без единой здравой мысли.

    Reply

Leave a Comment

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