<?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='\
рисунки потерялись
(1) +1 Где рисунки?…
И шрифт сделай покрупнее, пожалуйста!
Автору + хорошо изложенная методика обновления!
Но все равно процесс обновления не идеальный, мне так не хватает при обновлении возможность формирования окончательного кода в процессе обновлении, и редактирования экранных форм.
(3) Данная статья является продолжением/уточнениемhttp://www.infostart.ru/blogs/891/
(3) Кроме этого, я думаю все понимают, что «окончательный код» от версии к версии может координально меняться, всязи с изменением методик используемых/продвигаемых разработчиками фирмы 1С.
а мне очень не хватает возможности отделения обновления формы от ее модуля. Например, добавил я реквизит в документ (есть у него обработка событий или нет, неважно). А поставщик поменял реализацию нескольких методов в модуле этой формы, но не менял саму форму (что кстати тоже надо проверять — а шататный мехнизм показа различий туповат и неудобен). При объединении, форма и ее модуль выступают как единый недилимый объект. В чем-то конечно это и правильно (когда меняется привязка обработчиков и т.п к интерфейсным элементам), а в некоторых случаях без этого вполне можно было бы обойтись.
(1) (2) Рисунки не потерялись. Просто чтобы опубликовать статью потребовалось 4 часа. Никак не могу совладать с новым движком infostart.
(6) Эта задача была полностью решена и уже давно. По крайней мере для 7.7. Про GComp поищи материалец…
Смысл такой: все содержимое конфигурации вытаскивается в виде дерева из файлов и каталогов. Соответственно форма раскладывается на: файл с описанием визуальной формы, файл модуля формы, файл с описанием, файлы с таблицами (если есть)… Сравнить отдельные файлы и собрать из них конфигурацию непомерно легче, чем пользоваться конфигуратором. Кроме того, так можно изменить и цифровые идентификаторы объектов, вовсе недоступные штатными средствами.
Почему бы на 3-м этапе два действия:
используя файл *.cf типовой конфигурации поставщика, выполним обновление. Для этого выберем пункт меню «Конфигурация» à «Поддержка» à «Обновить конфигурацию», «Выбор файла обновления», «Готово» (Рисунок 9), «Выполнить»;
используя файл work_2.cf, переносим изменения. Для этого выберем пункт меню «Конфигурация» à «Сравнить, объединить с конфигурацией из файла…»;
не объединить в один?
используя файл work_2.cf выполним обновление. Для этого выберем пункт меню «Конфигурация» à «Поддержка» à «Обновить конфигурацию», «Выбор файла обновления», «Готово» (Рисунок 9), «Выполнить»;
(9) Все просто.
1. В этом случае новые объекты поставщика будут поставлены на поддержку;
2. Повторно сравнение объединение будет выполняться быстрее;
3. Объем хранимых конфигурационных файлов в базе данных будет меньше.
(10)
Просто ли?
п.1 В другом случае не будут поставлены?
п.2 О чем речь? При каких условиях, на каких этапах?
п.3 О как? Ты хотел сказать больше? Ты предлагаешь хранить в базе данных пользователя две конфигурации. В предложенном варианте — это одна конфигурация.
Лучше если в базе данных у пользователя будет включен режим запрета редактирования конфигурации. В этом случае и конфигураций будет меньше, и пользователь ничего не сможет изменить, и пункт меню Конфигурация» à «Сравнить, объединить с конфигурацией из файла…» работать не будет.
Конфигурация пользователя должна стоять на поддержке у твоей конфигурации, а твоя — у фирмы 1С.
(11) Я понимаю, что обновление через создание файлов поставки/обновления решает некоторые проблемы. Например, объем файла обновления, время обновления.
Я понимаю какой именно порядок выполнения обновления предлагается в 11 посте.
Я торжественно клянусь подумать над этим и в будущем отразить это в статье.
Если рассматривать предлагаемый в 11 посте вариант, то применительно к «твоей конфигурации».
п.1 Не имеет смысла, т.к. третий этап не нужен, а вместо этого выполняется создание файлов поставки
п.2 При выполнении этапа 1
п.3 Поправка. Предлагаю хранить 3 конфигурации: Конфигурация поставщика (старая), Основная конфигурация и Конфигурация базы данных.
Если рассматривать предлагаемый в 11 посте вариант, то применительно к «конфигурации пользователя» данная статья не имеет смысла. Т.к. на стороне пользователя процесс обновления аналогичен обновлению типовой конфигурации, а статья про нетиповые.
(12)
п.2 При выполнении этапа 1 при очередном обновлении? Почему бы не воспользоваться результатом этапа 2 предыдущего обновления? Если этот результат сохранить, то надобность в 1-м этапе отпадает?
(13)
2. Повторно сравнение объединение будет выполняться быстрее;
п.2 О чем речь? При каких условиях, на каких этапах?
п.2 При выполнении этапа 1
п.2 При выполнении этапа 1 при очередном обновлении? Почему бы не воспользоваться результатом этапа 2 предыдущего обновления? Если этот результат сохранить, то надобность в 1-м этапе отпадает?
Совершенно верно. При условии выполнения этапа 1. На этапе 2.
И при всех последующих обновлениях на этапе 2 минуя этап 1.
Собственно к этому все и велось — снизить трудоемкость подготовки обновлений.
По первому этапу: я обычно делаю проще. Если разработчик до меня допустил ошибку и версия конфигурации поставщика утратиал актуальность, ее можно актуализировать следующим образом:
— Запустить обновление до актуальной конфигурации поставщика в режиме «Поддержки»
— В появившемся списке измененных объектов СНЯТЬ ВСЕ ФЛАГИ
— Выполнить обновление
В этом случае будет полностью актуализирована конфигурация поставщика, а измененная конфигурация затронута не будет. И не надо ничего выгружать, сравнивать, объединять, переобновлять и т.п.
Или, может, я специфики не понял?
«Если обновление выполняется через несколько версий и нет файла *.cf, то придется воспользоваться несколькими файлами *.cfu и последовательно выполнить обновления. Это может значительно повысить трудоемкость обновления, т.к. анализ измененных объектов придется выполнить несколько раз. »
Проще, по-моему, получить актуальный релиз типовой конфигурации, используя ЦФУ, из нее — выгрузить нормальный ЦФ-ник и объединить все одним махом.
Про обработку удаленных объектов или переименованных объектов — все оч. грамотно написано.
И еще есть проблемы, кроме описаных в статье:
1. При сравнении текстов модулей стандартными возможностями иногда 1С себя ведет неадекватно (неправильно отмечает фрагменты текстов как измененные, добавленные, удпаленные). Обойти это можно следующим образом:
— Сохранить в текстовые файлы тексты обоих модулей методом копи-паст 🙂
— Воспользоваться стандартным функционалом 1С: «Файл — Сравнить файлы». Там все обычно, как ни странно, корректно! Также можно воспользоваться дополнительным ПО, таким, как Exam2dif.
2. В статье не рассмотрен, наверное, самый сложный момент поддержки измененных конфигураций: объединение измененных ролей! Но это, скорее, тема отдельной статьи…
ЗЫ. 100-150 часов — повеселило!!! ппц ребята капусту шинкуют :)))
В общем, за статью — плюс. Полезно!
(15) Совершенно верно. Это и предлагается сделать. Только с некоторыми уточнениями, которые могут вылиться на втором этапе в необходимость «выгружать, сравнивать, объединять, переобновлять и т.п.»
(16) Совершенно верно, но только в том случае, если у вас есть необходимый файл поставки для «старой конфигурации поставщика». Если такого файла нет и нет возможности его собрать, то эффект может быть противоположным. Т.к. придется разбирать/сравнивать все объекты которые были изменены.
(17) «ребята капусту шинкуют». Это наша конфигурация. Мы на ней работаем и затачиваем под себя. 100-150 часов это фактически выполненные работы — на себя, а не на клиента. Т.е. типа «бесплатно». Статья писалась непосредственно в процессе обновления с исправлением допущенных ранее «ошибок». Так что все здесь написаное это из жизни.
(18)->(16)
Файл поставки можно получить, выгрузив в файл конфигурацию поставщика. И, если Вы её обновили до актуального релиза (что является обязательным для возможности корректного сравнения), то получить необходимый файл поставки для «старой конфигурации поставщика» — дело нескольких кликов мышки.
(18) «Это наша конфигурация. Мы на ней работаем и затачиваем под себя. 100-150 часов это фактически выполненные работы — на себя, а не на клиента.»
За что вы себя так :)))
(19) Поддерживаю.
На самом деле статья — очень хорошая и полезная для неискушенных в этом деле пользователей. Спасибо!
Спасибо. Полезная статья!
Большое спасибо как автору, так и комментирующим.
Спасибо, почерпнул кое-что новое.
А насчет выявления изменений в ролях — тут может помочь вот эта обработка:http://infostart.ru/projects/3407/
Подробнее расписал второй этап…
Почитал. В общем неплохо, но есть неточности и недочеты.
(25) В чем именно?
У меня вопрос по первому этапу.
Не могу сообразить, почему приведение конфигурации поставщика в соответствие с релизом основной конфигурации нельзя сделать так:
1. Создаём информационную базу из дистрибутива с версией, такой же, как у нашей основной конфигурации.
2. Сравниваем, объединяем конфигурацию этой базы с конфигурацией из файла work.cf.
В результате, ведь, должны получить cf с правильным релизом конфигурации поставщика? Или я чего-то не понимаю? Такое ощущение, что здесь подводные камни есть, но не могу понять какие.
(27) В этом случае вы получите конфигурацию, дающюю идентичный результат, при сравнении с методом, описанным в первом этапе, если сравнение выполняется по именам. И совершенно различный результат при сравнении по внутренним идентификаторам. При этом в случае загрузки полученной вами конфигурации могут быть потеряны данные (удалены колонки / добавлены аналогичные, удалены регистры / добавлены аналогичные, и т.д.), что собственно и описано в первом этапе.
Разумеется это касается только конфигураций, где были изменения в структуре базы данных (Перечислений, ПлановОбмена и т.п. это тоже касается). Если изменения были в модулях или формах диалога, то описанный вами вариант вполне подойдет.
Спасибо за ответ! Полегчало)))
Ещё есть вопрос. Как быть в ситуации, если между релизом Конфигурации поставщика и и релизом Основной конфигурации существуют промежуточные релизы типовых конфигураций. Здесь необходимо обновлять конфигурацию поставщика последовательно, или можно обновить её сразу на последний релиз? Если пойти по первой ветке этого моего предположения, то не получится ли так, что основная конфигурация «обновится» до более старой версии, чем она есть сейчас? А если пойти по второй — обновить сразу на последний релиз типовой, то не возникнет ли каких-нибудь лишних несоответствий?
Этот последний вопрос у меня возникает из-за незнания вот чего: Конфигурация поставщика нужна только для обновления, или на её метаданные имеются «ссылки» из основной конфигурации? (если не «ссылки», то, видимо связь есть по внутренним идентификаторам?)
Проясните пожалуйста!
И, насколько независимо от информационной базы можно оперировать конфигурациями при решении вопроса «Здесь необходимо обновлять конфигурацию поставщика последовательно, или можно обновить её сразу на последний релиз?» из (29). Обновлять с открытием инф.базы в режиме 1С:Предприятие, когда да, а когда нет?
(29) (30) Очень правильный вопрос. Как показывает практика, то при обновлении УПП практически каждый релиз является обязательным. И после обновления необходимо выполнить запуск в режиме 1С:Предприятия. При этом если изучить модуль, отвечающий за переход от версии к версии, то может создастся впечатление, что можно обновиться с любого релиза на последний. На самом деле, к сожалению, это далеко не так.
Для определения цепочки обновлений самым надежным способом будет — следовать рекомендациям разработчика — фирмы 1С. Пример построения цепочек обновлений можно посмотреть в здесьhttp://www.infostart.ru/blogs/898/
Но в случаях когда структура метаданных не подвергается изменениям разработчиком, то обновления можно объединить.
По поводу конфигураций. В базе данных хранятся: Конфигурация базы данных и Конфигурации поставщиков (чаще всего одна), а также не сохраненные в конфигурации базы данных изменения.
При обновлении через поддержку конфигурация поставщика обновляется при записи. Даже если при этом конфигурация базы данных не обновлена, а только сохранены изменения основной конфигурации. Если после сохранения основной конфигурации вернуться к конфигурации базы данных, то конфигурация поставщика останется обновленной.
Еще раз повторюсь. В базе хранятся: Конфигурация поставщика, Конфигурация базы данных и изменения к конфигурации базы данных. Основная конфигурация получается из конфигурации базы данных и изменений к конфигурации базы данных (если они есть, т.е. в случае когда основная конфигурация отличается от конфигурации базы данных).
Имхо, этот способ лучше 😉
http://izhtc.ru/content/view/136/102/
(32) По моему тоже. Добавили роли, но… По прежнему нет макетов, интерфейсов, типов реквизитов. Во всяком случае в описании нет 🙂
Нетиповыми бывают не только УПП. При стоимости БП 10 т.р. приобрести еще автоматическое обновление за 400 т.р. 🙂
(32) Дорого! А судя по их калькулятору стоимости обновления не все так автоматизировано.
Особенно мне понравилось — Вы знаете стоимость последнего обновления?
Нет демо версии!
Но направление верное.
>> Особо пристальное внимание следует уделить шаблонам RLS по измененным ролям пользователей.
Для снижения трудоемкости работ при сравнении ролей можно воспользоваться отчетом «Информация по ролям»http://infostart.ru/projects/3739/
Если добавишь будут благодарен 😉
еббб Рисунки че то сбились.
Достаточно громоздкий вариант. При обновлении нетиповой конфигурации УПП мало того что очень медленно все эти телодвижения делать, еще и памяти не хватает даже для достаточно мощного компа — вылетает с ошибкой и не дает доделать обновление, пробовал на нескольких компах, видимо для УПП этот вариант обновления будет работать только на мощных станциях. Комп: AMD Athlon 64*2 Corel Processor 4400+, память 2046 RAM и другие аналогичные.
(37) Приведенный вариант ПК для программиста слабоват 🙂
…у меня RAM 4Gb + RAID 0
Добрый день! Вы сейчас на сайте.Помогите, плиз.Очень хотелось бы выделить изменения в конфе УПП 24.2, чтобы легче было перенести в 27-ую через механизм поставки, снимаю галочку «Создать файл поставки», какой файл мне нужно добавить в табличную часть?…
(39) Файл конфигурации поставщика 1.2.24.2
Создала файл cfu для 24-ой, а теперь???
на форуме, куда вы меня послали, я не могу ничего спросить 🙁
(41) Хм. Даже не знаю с чего начать…
Попробуйте действовать в порядке описанном в этой статье. Если этого будет не достаточно, то в начале статьи есть ссылка на инструкцию по 7.7. Там расписано несколько подробнее…
(42) Для того, чтобы писать, нужно нажать «Вступить в группу пользователей» 🙂
(42) для этого надо просто вступить в группу
http://infostart.ru/public/18562/enter/
Хотелось бы уточнить, если конфигурация снята польностью с поддержки, и конфигурация поставщика отсутствует технология такая же будет обновления.
(46) Да. Начиная с 1 этапа.
Дело в том, что методика описанная в данной статье лишь позволяет снизить издержки на последующие обновления конфигурации. Это совершенно не означает, что не существует других способов обновления конфигураций. Другие способы есть. Их много. В конце концов вы можете разработать свою методику. 🙂
Спасибо 🙂 Скажите а если, в конфигурации которая снята с поддержки, через меню «Конфигурация» → «Сравнить, объединить с конфигурацией из файла…» мы будем объединять с конфигурацией поставщика т.е. старой на базе которой была создана конфигурация наша и в настройках при объединение мы уберем галку разрешать удалять объекты основной конфигурации, так то же можно начать.
Спасибо :). Если в конфигурации, которая снята полностью с поддержки мы сделаем объединении через меню «Конфигурация» → «Сравнить, объединить с конфигурацией из файла…» с конфигурацией поставщика и при этом в настройках не будем ставить галочку разрешить удаление объектов основной конфигурации. Как это может повлиять на дальнейший процесс обновление конфигурации.
(48) Да
(49) Нет
Точнее так. Раз это влияет на результат, то соответственно в некоторой степени повлияет и на процес. Но я бы не стал на этом зацикливаться. Лучше двигаться дальше. Самое интересное ещё впереди.
(50) Здравствуйте! Если можно маленький вопросик: При обновлении через поддержку в плане вихов характеристик -> «Виды субконто хозрасчетные» снимаю галочку объединения в строке «Предопределенные» чтобы перенести в новую конфу свои предопределенные элементы. При попытке обновления выскакиевает окно как на рис. 7 только в заголовке что-то типа «Найдены ссылки на объекты не помеченные на участие в объединении» и в нижнем окне список доков, макетов, справочников.
Честно говоря не совсем понял в чем заключается ошибка, если объект при обновлении никуда не девается???? Как состав предопределенных объектов связан с сылками на объект ПВХ?? Спасибо.
(51) Кнопочка Продолжить доступна? Если доступна, то данное сообщение можно рассматривать как предупреждение. Т.е. дана информация к размышлению, а уже вы решаете двигаться дальше или изменить состав обновляемых данных.
Обновил содержание статьи
Опубликована последняя редакция статьи от 16.04.2010
Начал читать статью и сразу появились вопросы..
Зачем столько гемороя с 1м пунктом, если чтобы обновить конфу поставщика нужно всего лишь:
Если основная конфа полностью снята с поддержки — поставить на поддержку. Поставить на поддержку можно путем сравнения/объединения с типовым cf, и собственно сняв галку с конфигурации, т.е. по сути ничего кроме поставки на поддержку не происходит.
1. взять типовой cf
2. зайти в конфигурация-поддержка-обновление, выбрать типовой cf. Т.к. конфа поставщика отстает от основной конфы в типовом cf, то нам будет предложено обновление (обновление на типовой cf работает с любого релиза).
При обновлении, опять же, снимаем все галки и продолжаем обновление (фактически мы даем системе понять что не хотим ничего менять в основной конфе, при этом конфигурация поставщика обновляется автоматически), предварительно выбрав установку порядка объектов по новой конфигурации поставщика. Вуаля таким способом мы обновили только конфигурацию поставщика, без лишних затрат. Для полной красоты после обновления конфы поставщика можно зайти в поддержку, сравнить/объединить с конфой поставщика, опять же убрать все галки и установить порядок объектов по конфигурации поставщика.
З.Ы. автор пиши в личку, поделюсь опытом =)
З.Ы.Ы. зачем постоянно ставим «установить порядок объектов по конфигурации поставщика»? — чтобы последующие сравнения быстрее выполнялись, а в итоге не было лишнего мусора в виде измененного порядка объектов при обновлении.
(55) Я так и понял, что статья не была прочитана. В первом пункте конфигурация поставщика конечно же участвует, но цель первого пункта несколько другая.
Ключевой в данном случае является рабочая конфигурация, а не конфигурация поставщика.
Насчет опыта. Если переписка будет через личку, то об этом опыте никто не узнает. В данном случае важна не только статья, но и комментарии к ней, и форум. Жаль конечно, что он перестал работать.
Или это какой-то секретный опыт? Тогда конечно же в личку…
у тебя конфигурация поставщика 1.2.4.1 обновляешься ты на 1.2.6.2 — на тот релиз, который в основной конфигурации.
Не очень понятно. Ты хочешь убрать мусор который получился из-за накаток конфигурации вместо обновлений? Какая цель 1го пункта?
(57) Цель: убрать несоответствия, которые могут получиться, если конфигурация собиралась/обновлялась как попало. Например, объекты конфигурации добавлялись копированием, перетаскивались мышью, были набиты вручную. Есть еще вариант, что было проделано то, о чем я только что упоминал в копии, а обновление было свормировано как поставка и устанавливалось не через поддержку. Ну, и т.п.
КАК ускорить процесс обновления, если я обновляла конфу, а в это время эта же конфа дорабатывалась еще пару дней активно в старом релизе.Как мне выделить этот кусок, чтобы его просто объединить с тем что я делала ранее?…Может быть у кого-то была аналогичная ситуация?…)))
(59) Нужно сравнить исходную рабочую конфигурацию, которую вы обновляли, с новой рабочей конфигурацией. Исходную конфигурацию можно взять в архиве. Искренне надеюсь, что у вас есть архивные копииhttp://infostart.ru/public/19363/
По результатам сравнения необходимо будет выполнить обновление новой рабочей конфигурации. Обновлять желательно именно ее, тогда вашу новую обновленную конфигурацию можно будет просто загрузить в рабочую базу данных. При этом обновятся и рабочая конфигурация, и конфигурация поставщика.
Так как не указано с какого релиза на какой выполняется обновление, я предположил, что между релизами не было ключевыхhttp://infostart.ru/public/18596/
ммм, а если просто так натыкать галочками процедуры не подходит?:) если надо переносить код причем и со старой конфы и с новой ибо обновление затрагивает изменения в старом коде?
(61) Тут все просто. Нужно найти человека с золотыми руками и светлой головой. 🙂
В некоторых случаях перенос кода (процедур) не даст нужного результата, так как могут в значительной степени измениться учетные методики. Соответственно это потребует переработки кода. Технология не исключает творчества, а лишь позволяет снизить временные затраты на рутинных операциях и избежать наиболее типовых ошибок.
в том то и соль что роль этого человека в ближайшее время будет вверена лично мне и я пытаюсь набраться опыта в этом деле:)
(63) Может быть в чем-то поможет разобраться эта статья?http://www.infostart.ru/public/18551/
Спасибо за статью.
Все же остался вопрос по дальнейшем обновлению.
Допустим
1. Установили клиенту типовую конфигурацию (для примера релиз 1)
2. На копии внесли изменения (добавили реквизиты существующих объектов)
3. На копии «Конфигурация» — «Сохранить конфигурацию в файл…» — получаем релиз 1 с доработками.
4. У клиента на рабочей базе «Конфигурация» — «Сравнить, объединить с конфигурацией из файла…» и подсовываем файл из п.3
Далее сам вопрос.
Вышло обновление поставщика (релиз 2)
Как лучше обновиться?
А. (У Вас это этап 3)
1. Взять чистый релиз 2 и внести в него все наши изменения, затем Конфигурация» — «Сохранить конфигурацию в файл…» — получаем релиз 2 с доработками.
2. У клиента «Конфигурация» — «Поддержка» — «Обновить конфигурацию» — «Выбор файла обновления» и подсунуть типовой релиз поставщика 2
3. У клиента на рабочей базе «Конфигурация» — «Сравнить, объединить с конфигурацией из файла…» и подсовываем файл из п.1
Смущает, не потеряются ли изменения в рабочей базе на этапе 2 этого варианта? (добавленне реквизиты типовых объектов). Или нужно снимать все флаги при выполнении пункта 2???
Б.(а можно ли так?)
1. Взять копию базы клиента
2. дальше не знаю 🙁
Правильно ли я понимаю, что если пропустить п.2 в варианте А, то конфигурация поставщика не обновится?
И если можно, в двух словах, в чем плюсы и подводные камни обновления через создание файлов поставки? И в каких случаях они рекомендуются?
С уважением.
подписался
(66) Предпочитаю вариант Б. Это позволяет сохранить мелкие доработки, которые пользователь может внести самостоятельно. А также этот вариант позволяет проверить работу конфигурации после обновления на реальных данных.
А какие шаги нужно предпринять в варианте Б?
2.
3.
4.
…
С уважением.
(69) Собственно порядок действий описан в статьях и в комментариях к ним. Даже не знаю, что ещё можно добавить.
Как это все сложно …
«В приведенном примере объем работ по обновлению и переносу изменений типовой конфигурации составляет порядка 100-150 часов. »
За 150 часов я напишу новую базу , оттестирую и внедрю. 😀 😀
(71) собственнотут есть более короткий вариант… Но хотелось бы посмотреть на человека, который способен за 20 дней написать и оттестировать УПП.
(72)
А кто говорит про УПП ? И вообще про типовую конфу, способную занять сектор рынка ? Если серьезно ( в отличие от моего предыдущего сообщения), такие вещи не делают быстро и в одиночку. Но вот толково автоматизировать учет одной конкретной (непроизводственной!) фирмы за 150 часов вполне реально. Согласитесь, это несопоставимо с тратами 150 часов всего лишь на одно обновление.
(73) ну да. 150 часов — это ОЧЕНЬ много.
(74) «в моем случае с пары сотен часов, до 8». Пара сотен часов — это не много?
(73) В статье ведь указано, что ранее при обновлении были допущены ошибки. Как результат — резкое увеличение трудоёмкости обновления. Кроме этого описанный в статье переход через большое количество релизов сопровождался исправлением ошибок, допущенных при предыдущих обновлениях, а также переписыванием некоторых измененных механизмов, связанных с обменом данными, правами пользователей и т.д. Последнее же обновление с подготовкой, тестированием и установкой с 1.2.38.1 на 1.2.39.1 заняло 3 часа. 3 часа — это много?
ПВы правы лучше отправить на поедение хомякам
(73)
Завод с сезонным производством. РАУЗ. 170 часов.
Но если уже есть извращенная конфигурация, кто ж тебе даст внедрять другую 😮
Щас буду тестировать вашу методику, я так понял формы все равно придется править вручную?
(78) В большинстве случаев, да, вручную.
Спасибо. Пригодилось.
За статью спасибо, пригодилась
Все грамотно описано, плюсанул.
Статья очень понравилась, все грамотно расписано.
К автору несколько замечаний:
1.
Обновление через cfu не может быть быстрее, так как сначала платформа на основании конфигурации поставщика и файла обновления создает cf
2. при выборочном обновлении модулей опасно расставлять галки, так как может сбиться порядок процедур и функций
это может быть критично, если в модуле есть директивы препроцессора
3. при обновлении обычных форм, если нужно обновить только саму форму, но оставить модуль формы неизменным, нужно быть осторожным, так как в этом случае мало предсказуемые казусы (сама форма обновляется частично). Возможно, они имеют место быть и при частичном обновлении модуля формы, но я сталкивался с таким только если снять флаги со всех процедур и функций
Статья понравилась. Помогла в разрешении нескольких вопросов по началу. Да и комментарии по статье вызвали интерес. Распечатала, подложила себе в папку. Может еще кому-нибудь начинающему пригодится.
Я видимо очень начинающий.. ибо перечитываю сатью уже 5-й раз… и постоянно путаюсь… что в какой конфигурации делать.. какая из них первая.. какая вторая… как-то сумбурно написано… в некоторые детали автор погружается как для полных даунов.. в плоть до кнопочки на картинке… а там где надо понять что в какой конфигурации делается… автор пробежался вскользь…
Я конечно понимаю что лучше один раз сделать руками самому чем языком балаболить… и возможно станет все понятно…
но на данном этапе — я запутался.. что к чему приводим, какую конфигурацию обновлять.. и как…
P.S.
Не сочтите за наглость и бахвальство, на самом деле, это пока самая полная и подробная статья по обновлению что я нашел… но и она тяжела в понимании и все потому что автор иногда пропускает важные детали где они нужны… и описывает там где и так все понятно.
(85) Изначально статья писалась для сотрудников нашей компании, у которых есть довольно большой работы с 1С. В последствии статья несколько раз переписывалась с учетом вновь открывшихся проблем. Какой именно момент не понятен?
Статья понравилась. Попробую на этой неделе обновить конфигурацию.Посмотрим, что получится.
Спасибо. Пригодилось.
Очень пригодилось.
Дельная подробная статья. Спасибо автору
Геморная статья.. Много лишнего. Где то не совсем правильная методика… Сам обновляю разновсяческие конфигурации разной сложности без проблем и всякого лишнего подобно тому что тут написано.
Спасибо. Нужная статья.
да и мне помогло!спасибо
Статья несколько загромождена ненужными манипуляциями. ИМХО
(91) woozee, Согласен, на днях обновлял свою первую нетиповую, прочитал несколько статей, в том числе и эту. Неподготовленного человека она пугает и запутывает. Методика не прозрачна, потом сравнение по «дважды измененным» при переходе через несколько версий не совсем точное. У меня, во всяком случае, некоторые объекты не попали в отобранные. В общем проще надо быть, конечно.
Я видимо очень начинающий.. ибо перечитываю сатью уже 5-й раз… и постоянно путаюсь… что в какой конфигурации делать.. какая из них первая.. какая вторая… как-то сумбурно написано… в некоторые детали автор погружается как для полных даунов.. в плоть до кнопочки на картинке… а там где надо понять что в какой конфигурации делается… автор пробежался вскользь…
Я конечно понимаю что лучше один раз сделать руками самому чем языком балаболить… и возможно станет все понятно…
но на данном этапе — я запутался.. что к чему приводим, какую конфигурацию обновлять.. и как…
P.S.
Не сочтите за наглость и бахвальство, на самом деле, это пока самая полная и подробная статья по обновлению что я нашел… но и она тяжела в понимании и все потому что автор иногда пропускает важные детали где они нужны… и описывает там где и так все понятно.
Показать
Тут тоже подписываюсь. Очень сложно и перегружено. А описывать понятное — подробно, а темные моменты — обходить — вполне в духе 1С:)
Но в любом случае спасибо за труд! Какие-то моменты могут оказаться полезными!
Полезная информация
Спасибо. Пригодилось.
Спасибо за развернутую статью она избавляет от многих ошибок, особенно начинающих программистов. Для начинающих программистов она не заменит опыта, а указывает путь по которому следует развиваться.
(86)
[quote=alexk-is]Какой именно момент не понятен? [/quote]
Вот конкретный непонятный фрагмент:
[quote=alexk-is]Итак, по результатам первого этапа готовим две одинаковые базы. Первая (основная) — наш будущий результат. Вторая (вспомогательная) — для выполнения сравнений, открытия конфигураций и других подготовительных действий.
Используя имеющийся файл новой конфигурации, выполним обновление. Для этого выберем пункт меню «Конфигурация» → «Поддержка» → «Обновить конфигурацию», «Выбор файла обновления», «Готово» (Рисунок 10).[/quote]
Алексей, в какой базе мы выполним обновление? В какой из двух? В основной или во вспомогательной?
А ведь нужно всего лишь немного видоизменить фразу:
«Открываем вспомогательную базу и, используя имеющийся файл новой конфигурации, выполним обновление.»
(146) Понял. Исправил.