С появлением конфигураций разработанных на базе управляемых форм, широкое распространение получили такие понятия как расширения и исправления.
Сейчас как раз речь пойдет об установке исправлений.
Пару месяцев назад попробовали провести настройку интеграции 1С КА 2.5. с сервисом фирмы 1С "Бизнес-сеть"
И в ходе настройки выползли ряд ошибок, которые мешали мне завершить настройку.
В итоге часть торговых предложений публиковались, вторая часть выгружалась с ошибками.
Баг заключался в том, что не было возможности со стороны пользователи хоть как-то проанализировать причину ошибки, которая мешает опубликовать торговое предложение в каталоге 1С "Бизнес-сеть"
Не долго думая, решил написать на почту поддержки данного решения bn@1c.ru. письмо с описанием данной ошибки.
Долго мне пытались объяснить что я делаю что-то не так.
Просили прислать ошибку из журнала регистрации
Выполнение операции: Торговые предложения. Проверить записи торговых предложений.
Неверный первый параметр Ссылка в функции ОбщегоНазначения.ЗначенияРеквизитовОбъекта:
Предопределенное значение "3e53ab00-b33a-11e3-8d60-001dd8b71c5a" не существует.
{ОбщийМодуль.ОбщегоНазначения.Модуль(157)}:ВызватьИсключение ТекстОшибки;
{ОбщийМодуль.ТорговыеПредложенияПереопределяемый.Модуль(2428)}:ДанныеРеквизита = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДополнительныйРеквизит, "НаборСвойств, Заголовок");
{ОбщийМодуль.ТорговыеПредложенияСлужебный.Модуль(11288)}:ТорговыеПредложенияПереопределяемый.ОпределитьВладельцевНезаполненныхРеквизитов(ЧастиРеквизита[0],
{ОбщийМодуль.ТорговыеПредложенияСлужебный.Модуль(10945)}:ОпределитьВладельцевНезаполненныхРеквизитов(ПолноеИмяРеквизита,
{ОбщийМодуль.ТорговыеПредложенияСлужебный.Модуль(10590)}:ИнформацияОбОшибках = ПолучитьИнформациюОбОшибках(
{(1)}:ТорговыеПредложенияСлужебный.ПроверитьЗаписиТорговыеПредложенияТорговойПлощадки(Параметры[0])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5962)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1692)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1671)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
В итоге мы с ними договорились, что я удаленно покажу саму ошибку. В итоге специалист со стороны фирмы 1С поблагодарил, меня за то, что нашел баг и пообещал в ближайшее время выпустить тот самый патч (пакет исправлений)
И вот на прошлой неделе прислали сообщение, что патч готов можно скачивать и ставить.
В моем случае выпустили патч для библиотеки "1С:Библиотека электронных документов, редакция 1.9,"
В письме написали куда зайти и какой именно патч скачать.
После скачивания патча,
Я пробую его поставить как обычно на копию базы, чтобы проверить насколько это патч корректно встанет в нашу конфигурацию. Процесс установки ниже в изображениях.
После того как патч установится, платформа попросит перезагрузить конфигурацию.
После перезагрузки конфигурации идем НСИ и Администрирование \ Обслуживание \ Установленные исправления (патчи)
И видим в списке установленный нами патч, наличие пиктограммы в виде зеленого кружка с флажком по центру, говорит о том, что исправление встало корректно.
Предварительно я распаковал скачанный архив и посмотрел само расширение, которое мне прислала, там всё безобидно, была замена пару процедур имеющих отношение к модулям этого сервиса
После чего можно идти и смотреть что там действительно исправили.
т.к. копия базы у меня не подключена, к сервису "Бизнес-сеть", то ставлю это исправление (патч) в боевое базе.
Плюсы патчей очевидны, если в них нет каких-то серьезных изменений, таких как добавление новых объектов, серьезная переписка кода , то такие патчи можно устанавливать так сказать "налету", даже не требуется монопольный доступ в базу. Возможно эти исправления и попадут в следующих релизах обновлений конфигурации, но это нужно ждать. А тут можно "оперативно" "залатать" какой-то баг баг в базе.
Где есть возможности, там всегда есть и риски.
Нужно четко понимать, откуда и для чего берёте и ставите тот самый патч, а то вместо исправления ошибки, можно получить гораздо больше проблем, чем были до установки патча.
Осторожность, внимательно, плюс наличие копий залог успеха.
Нужно не забывать о том, что у вас стоят эти патчи и что они могут начать конфликтовать с кодом, другими расширениями, которые придут в конфигурацию при очередном обновлении. В крайнем случае может потребоваться ручное удаление патча.
Для примера, моего патча, можно четко быть уверенным, что удаление такого патча, ни к чему критическому для базы это не приведет, т.к. в этом патче работа идет в основном с кодом имеющий отношение конкретно к сервису бизнес-сеть.
Кстати да , установка патча в моём случае, привела к тому, что пользователь теперь может получить информацию о причине ошибки, которая мешала провести анализ и исправить её.
Тем не менее, сторону поддержки сервиса "Бизнес-сеть", пошла очередная портянка вопросов и рекомендаций :)