Как облегчить обновление нетиповой конфигурации?

24.03.10

База данных - Обновление 1С

или как я обновил УПП с 1.2.5 до 1.2.28...
В результате:
1с 8.1 УПП 1.2.28 со всеми изменениями и рабочими внешними обработками
размер базы 100 гб за счет частичной свертки базы за 2 года (пока без удаления документов — база будет ещё меньше).

 

Было дано:
Сервер IBM на 2х четырехядерных XEON по 2Ггц, 16 Гб оперативной MS SQL 2000 1с 8.1 УПП 1.2.5 с изменениями в формах и модулях ключевых документов и справочников, несколько десятков внешних обработок и печатных форм — замена типовых. средний размер базы за время обновления 110-120 Гб содержание базы на начало обновления: производство, торговля(крупный и мелкий опт) и бухгалтерия с 2006 года; несколько тысяч контрагентов; от 10000 до 20000 торговых документов в месяц. перерыв в работе: с 19 часов субботы до 8 утра воскресенья. Ну и иногда 15-20 минут в день в районе обеда и 1 час где-то в промежуток между 23 и 4 часов ночи.

В результате: 1с 8.1 УПП 1.2.28 со всеми изменениями и рабочими внешними обработками размер базы 100 гб за счет частичной свертки базы за 2 года (пока без удаления документов — база будет ещё меньше).
После некоторых событий досталась мне одному УПП 1.2.5. Её конечно до этого периодически обновляли, но в тот момент последний доступный релиз был версии 1.2.19. Сначала я решил обновить сразу до последнего релиза. Но короткий анализ показал, что этого лучше не делать по нескольким причинам:
  1. При обновлении структуры конфигурации, а не только кода, требуется реструктуризация соответствующих метаданных. При больших объемах данных это занимает очень много времени.

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

  3. После обновления базы рекомендуется (а иногда необходимо) запускать пакет специальных обработок. Данный пакет обработок от релиза к релизу дополняется, но иногда полностью удаляется и пишется с нуля.

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

(подробнее читать тут  http://www.infostart.ru/public/18596/)

На первых 3 пункта по отдельности можно было забить (а до 4го ещё тогда не дошел), но все вместе их игнорировать сложно.

Опущу технологию обновления — в общих чертах она совпадала с:

http://www.infostart.ru/public/19310/

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

 

Резонные вопрос — а о чем тогда писать дальше? А вот есть плохо раскрытый пункт про работу руками...в том смысле, что перенос изменений в обновленные объекты. Я хотел написать про облегчение/уменьшение внесения как раз этих ручных операций. Далее пойдет описание событий, кому не интересно переходите к Заключению.

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

Долго ли коротко, последовательно начал переносить изменения. Просто копировать код не получилось. Обновились и модули, в которые вносились изменения, и вызываемые процедуры из общих модулей, и сама структура метаданных. Таким образом, сначала приходилось разбираться зачем сделали изменение, а потом уже частенько заново писать код. Но сложнее всего было с формами: заново вносить изменения в форму — нудная и долгая работа. И опять — это был не конец. Остались внешние печатные формы и обработки, которые использовали типовые функции и процедуры. В них точно также пришлось разбираться заново и искать вызов типовых процедур (менялись названия, модули размещения и кол-во параметров). Особо хочется поблагодарить разработчиков 1с за замену функции ЗначениеНеЗаполнено на ЗначениеЗаполнено... Но вот, наконец, было закончен перенос изменений и я выгрузил cf файл. Как раз к новогодним праздникам и поспел. Обновил конфигурацию на основной базе, объединил с cf файлом...и запустил обновление конфигурации БД... Через несколько часов выявилась и критичность 1 пункта — времени. Конфигуратор отвалился с радостным сообщение о нехватке памяти... Есть такая беда с фрагментированностью оперативной памяти (или как-то так, на старых платформах приводило к ошибке SDBL). Лечится перезагрузкой. В общем, перезагрузил и всё заново. Если бы не такие большие праздники — не успел бы. Хорошо хоть с пакетом обработок проблем не случилось (хотя чуть позже столкнулся с проблемой для Бухгалтерии — пакет обработок выдавал ошибку после длительного процесса). Обновление случилось на грани и заняло несколько сотен часов.

Повторять такое обновление мне хотелось — начал думать как облегчить следующее.

Для начала я решил уменьшить количество измененного кода в типовых модулях. Открываем конфигуратор — какая интересная ветка в конфигурации — «Подписки на события» http://v8.1c.ru/overview/Term_000000153.htm. Достаточно много изменений в конфигурации были сделаны для того, чтобы проверять и ограничивать изменение данных. Именно для таких изменений хорошо подходит подписки на события. Завел общий модуль для подписок и насоздавал оных для замены части измененного кода. Обычно изменения превращались в процедуры, которые:

устанавливает значение переменной Отказ, которая регулирует дальнейшую запись или проведение объекта;

устанавливает какое-то конкретное значение в объекте перед/при его записи

выводит некоторое сообщение

делает дополнительные движения

Но все изменения таким образом переделать не получилось. Остались изменения, связанные с работой форм, полностью самописные функции и процедуры и им подобные. Для того, чтобы облегчить перенос этих изменений при обновлений нужно было уменьшить их объем. Для этого создал общий модуль НашМодуль и загнал туда все самописные функции и процедуры, естественно с ключевым словом Экспорт, если необходимо. Но на этом останавливаться не стал — куски дописанного кода заменил вызовом функций и процедур, которые поместил опять-таки в НашМодуль. Далее последовали куски измененного кода — небольшие изменения я оставил на месте пометив в комментариях в том числе и причину изменений, а вот большие изменения перенес в НашМодуль вместе с последующим типовым кодом. В измененные типовые процедуры добавил вызовы этих процедуры и функций, а после них подходящие по смыслу переходы: Возврат, Прервать, Продолжить. Всё, конечно, изменить малой кровью не получилось, но при последующих обновлениях перенос измененного кода существенно облегчился. Теперь достаточно получить список измененных два раза (относительно основной конфигурации и относительно обновленной), переписать куда-нибудь (хоть в блокнот) список объектов с парой строк измененного кода и после обновления проверить работоспособность функции и процедур в модуле НашМодуль.

Следующее, что я сделал — это вдруг увидел замечательную обработку «Декомпиляция и анализ форм с генерацией кода формы» http://www.infostart.ru/public/22147/. С помощью этой обработки я перевел все изменения в формах в код, который запихнул в тот же самый НашМодуль, а их вызов в модули форм в процедуры ПриОткрытии или ПередОткрытием. И вуаля! Никаких изменений в формах — только код, обновлять который уже много легче.

И всё вроде бы было замечательно...Но осталось несколько десятков внешних обработок и печатных форм. Заново в них исправлять из-за смены модуля, где сидит нужная функция — то ещё удовольствие. Решение было логическим продолжением предыдущих — вызов типовых был перенесен в НашМодуль, а во внешних обработках используется обращение к НашемуМодулю. Таким образом, после обновления достаточно будет проверить НашМодуль и не лазить по всем обработкам.

Закончив все предварительные изменения в конфигурации, я перешел к следующему обновлению. Делал я его уже более классическим способом через файл обновления. Только теперь мне не пришлось сравнивать формы и заново переносить гигантские куски кода или переделать типовые процедуры в нескольких местах. Обычно изменения сводились к добавлению 1-5 строчек в начало или конец процедуры... Вместо предыдущих сотен часов - обновление заняло около 8 часов!!! Причем теперь время обновления не зависит от дотошного знания изменений в конфигурации, т. к. изменений этих в типовых объектах — минимум. Кроме того, не приходится каждый раз обновлять множество внешних обработок!

В дополнении хочу дать ссылку на ещё один способ, прекрасно дополняющий, всё что здесь написано: http://www.infostart.ru/public/16980/ .

 

Заключение

 

Итак, что нужно делать, чтобы облегчить обновление?

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

1. Комментировать все изменения в конфигурации. Найти отличия от типовой можно через Сравнение конфигураций в режиме Конфигурация поставщика — Конфигурация базы данных

2. Вынос изменений, связанных с записью и обновлением объектов в Подписки на события

3. Уменьшение объема измененного кода в типовых процедурах за счет выноса их в собственный общий модуль. При этом, в типовых должны оставаться только вызовы процедур и функций из этого общего модуля.

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

5. Использование обработки «Декомпиляция и анализ форм с генерацией кода формы» http://www.infostart.ru/public/22147/ для изменения форм объектов — не нужно сравнивать формы и переносить изменения в них, а только вызов процедуры.

 В результате скорость обновления нетиповой конфигурации возрастает в несколько раз (в моем случае с пары сотен часов, до 8)

 

 

Приложение 1. Примеры процедур и функций

 

Пример процедуры обработки подписки "Перед записью" справочника номенклатуры. Процедура запрещает любые изменения в группах справочника, чтобы кривые руки на мышках, например, не перетащили ОС в Продукцию...Исключение составляют пользователи с полными правами.

 

Процедура НЕТРОГАЕМГРУППЫ(Источник,Отказ) Экспорт

    Если
Источник.ОбменДанными.Загрузка ИЛИ ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда
        Возврат;
    КонецЕсли;

    Если
Источник.ЭтоГруппа Тогда
       
Отказ=Истина;
    КонецЕсли;
КонецПроцедуры


 

Пример, когда при записи реализации в её свойства записывается основной менеджер контрагента, если ещё не заполнено

 

 

Процедура УстановкаТорговогоПредставителяРеализацииПриЗаписи(Источник, Отказ) Экспорт //mav

   
Если Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    Если (НЕ
ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.нашБухгалтер)
            И НЕ
ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.ПолныеПрава))
            И
ПроверкаДатыНаЗапрет(Источник.Дата) Тогда

        Сообщить("Число дней превышено. Проводить нельзя.");
       
Отказ=Истина;
        Возврат;
    КонецЕсли;

   
Запрос=Новый Запрос();
   
Запрос.Текст="ВЫБРАТЬ
                 |  ЗначенияСвойствОбъектов.Значение
                 |ИЗ
                 |  РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                 |ГДЕ
                 |  ЗначенияСвойствОбъектов.Свойство.Код = ""00032      ""
                 |  И ЗначенияСвойствОбъектов.Объект = &Ссылка"
;
   
Запрос.УстановитьПараметр("Ссылка",Источник.Ссылка);
   
Результат=Запрос.Выполнить().Выбрать();

    Если
Результат.Следующий() Тогда
        Если
ЗначениеЗаполнено(Источник.Сделка) Тогда
           
Запрос.УстановитьПараметр("Ссылка",Источник.Сделка);
           
Результат1=Запрос.Выполнить().Выбрать();
            Если
Результат1.Следующий() Тогда
                Если
Результат1.Значение<>Результат.Значение Тогда
                   
Сообщить("Не совпадают менеджеры. Заказ-"+Результат1.Значение+", Реализация-"+Результат.Значение);
                КонецЕсли;
            Иначе
                Если
Результат.Значение<>Источник.Контрагент.ОсновнойМенеджерПокупателя Тогда
                   
Сообщить("Не совпадает Основной менеджер-"+Источник.Контрагент.ОсновнойМенеджерПокупателя+" и Реализация-"+Результат.Значение);
                КонецЕсли;
            КонецЕсли;
        Иначе
            Если
Результат.Значение<>Источник.Контрагент.ОсновнойМенеджерПокупателя Тогда
               
Сообщить("Не совпадает Основной менеджер-"+Источник.Контрагент.ОсновнойМенеджерПокупателя+" и Реализация-"+Результат.Значение);
            КонецЕсли;
        КонецЕсли;

    Иначе
       
Менеджер=Справочники.Пользователи.ПустаяСсылка();
        Если
ЗначениеЗаполнено(Источник.Сделка) Тогда
           
Запрос.УстановитьПараметр("Ссылка",Источник.Сделка);
           
Результат=Запрос.Выполнить().Выбрать();
            Если
Результат.Следующий() Тогда
               
Менеджер=Результат.Значение;
            Иначе
               
Менеджер=Источник.Контрагент.ОсновнойМенеджерПокупателя;
            КонецЕсли;
        Иначе
           
Менеджер=Источник.Контрагент.ОсновнойМенеджерПокупателя;
        КонецЕсли;

        Если
ЗначениеЗаполнено(Менеджер) Тогда
           
Рег=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
           
Рег.Активность=Истина;
           
Рег.Значение=Менеджер;
           
Рег.Объект=Источник.Ссылка;
           
Рег.Свойство=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00032      ");
           
Рег.Записать();
           
//Сообщить("В реализации установлен менеджер "+Менеджер);
       
КонецЕсли;
    КонецЕсли;

КонецПроцедуры


Пример использования декомпиляции форм для создания дополнительных элементов формы. В данном случае добавляется новая колонка в форму реализации. Реквизит "Дата выработки" был предварительно добавлен в реквизиты табличной части документа - это совершенно не мешает обновлению

 

Процедура mavСформироватьВнешнийВидЗаказПокупателя(ЭлементыФормы) Экспорт

   
//-------------------------------------
   
Колонка = ЭлементыФормы.Товары.Колонки.Вставить(19,"ДатаВыработки");
   
Колонка.УстановитьЭлементУправления( Тип("ПолеВвода") );
   
Колонка.Имя = "ДатаВыработки";
   
Колонка.Данные = "ДатаВыработки";
   
Колонка.Ширина = 15;
   
Колонка.ТекстШапки = "Дата выработки";
   
//.....................................
   
Колонка.ЭлементУправления.ВертикальноеПоложение = ВертикальноеПоложение.Верх;
   
Колонка.ЭлементУправления.КнопкаОчистки = ложь;
   
Колонка.ЭлементУправления.ОграничениеТипа = Новый ОписаниеТипов("",,,);
   
//Колонка.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Строка",,,);

КонецПроцедуры

 

Пример для пункта 4. Создание "ярлыков" на типовые модули:


Функция mavПолучитьКурсВалюты(Валюта, ДатаКурса) Экспорт

    Возврат(
МодульВалютногоУчета.ПолучитьКурсВалюты(Валюта, ДатаКурса));

КонецФункции



 

 

См. также

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    145713    642    358    

234

Обновление 1С Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    350    1    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    480    gull22    1    

7

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    3917    vatkir    14    

9

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Упрощенное обновление конфигураций 1С (предпочтительно самописных) с помощью батника и Яндекс Диска (по публичной ссылке)

1 стартмани

22.08.2024    431    0    user1694357    0    

3

Обновление 1С Системный администратор Россия Абонемент ($m)

На ИТС есть статья, в которой поверхностно описан процесс автоматического обновления тонких клиентов. В качестве примера, что логично, представлены методы конфигурации 1С. Но, в отличие от того же управления списками баз, для обновления не требуется хранить информацию, потому я решил переписать код на php, чтобы можно было отвязаться от 1С. Не работает для файловых баз, подключенных как File="ПутьКПапкеБазы"; (а жаль), для опубликованных файловых - работает.

1 стартмани

20.08.2024    478    MikeSh    10    

1

Обновление 1С Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

В случае, когда при обновлении конфигурации счет разделяется на несколько субсчетов, может возникать ошибка в видах субконто. Предлагается алгоритм, как это исправить.

05.08.2024    616    NikiforovVA    0    

1

Обновление 1С Программист Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Бесплатно (free)

По нашему опыту, есть 2 ситуации, когда хочется отдать обновление нетиповой 1С кому-то другому. А) Если конфигурация и её доработки отлично знакомы, но не хочется заниматься рутиной. Б) Когда обновление длительно откладывалось, накопился «снежный ком» изменений, а команда, которая их делала, давно и неоднократно менялась.

26.06.2024    1110    1c-izh    4    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Alraune 1504 21.03.10 23:00 Сейчас в теме
Спасибо. Очень нужная информация.
2. anig99 2851 22.03.10 08:16 Сейчас в теме
Сегодня ещё постараюсь добавить примеры кода
3. Шёпот теней 1782 22.03.10 09:29 Сейчас в теме
я конечно уже старый ... и мне не понять многого ... но когда я читаю такие статьи невольно закрадывается такое ощущение будто 1С это нанотехнология ...

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

это я относительно непонятной для меня усложнЁнности 1С и твоей статьи, как мне кажется поддерживающей эту усложнённость ...

... такое ощущение что "сложность" это цель ...

... вот ...
Ироида; kogon; +2 Ответить
4. anig99 2851 22.03.10 09:43 Сейчас в теме
(3) Насчет усложнения у 1с - соглашусь отчасти. Они, конечно, что сами усложняют, но что-то вынуждены усложнять для соответствия требованиям государства... Взять хотя бы тот же расчет среднего заработка - это же кошмар какой-то...
А насчет статьи... Те же самые философы тоже любят писать толстенькие и не очень книжки, где обмусоливают с разных сторон одну и ту же мысль. И делают они это иногда тоже вынуждено - чтобы понять одну казалось бы простую мысль, нужно полностью повторить все размышление предшествующие им. Так и в моей статье - к коротким 5ти пунктам я шел несколько месяцев. Можно сразу прочитать их и если не понятно что-то прочитать остальное.
larisab; Alraune; +2 Ответить
6. Поручик 4691 22.03.10 10:23 Сейчас в теме
(4)
Я бы ещё добавил применение Методики переопределения и вызова обработчиков событий формы в 1С 8 для внесения своих "дописок"
http://www.infostart.ru/public/16980/

Один из примеров использования здесь
http://infostart.ru/profile/18346/blog/867/
5. Ish_2 1110 22.03.10 10:00 Сейчас в теме
Нет главного пункта.
1. Постоянная, даже на грани фола борьба против изменений конфигурации.
Пользователь должен кровью и потом доказывать необходимость таких изменений .

Без этого пункта статья превращается в инструкции для мальчика по затыканию дырок (виноват , по обновлению конфигурации).
Vida; Ироида; charushkin; BalVlad; Арчибальд; +5 1 Ответить
7. Шёпот теней 1782 22.03.10 10:41 Сейчас в теме
отвлечЁнное:
согласен с (5) ....

что такое конфигурация - худо-бедно - методология обозначенная в методике и облечённая конкретными расчётами ...

... основные перемены это изменение расчётов ... большой роли они не оказывают ... хоть меняй и переписывай на дню по 10 раз ...

... другое дело - методика а ещё хуже изменение методологии ...
... если изменения касаются методики ... это доказательство через "пот"
... если изменения касаются методологии ... это доказательство через "кровь"

... к сожалению программисты ещё не вышли на уровень - когда с ними хоть что-то обсуждают ... они до сих пор на уровне мальчиков - программистов ...

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

... вот ...
8. Поручик 4691 22.03.10 10:58 Сейчас в теме
(7)
>>> к сожалению программисты ещё не вышли на уровень - когда с ними хоть что-то обсуждают ... они до сих пор на уровне мальчиков - программистов ...

Смотря где и с кем. Ещё как обсуждают, а шаг влево, вправо карается, как бы это помягче выразиться, непечатными словами неважно в чей адрес.
10. anig99 2851 22.03.10 12:02 Сейчас в теме
(5) абсолютно согласен...просто этот пункт у меня уже или 0 или вообще -1... Любое изменение, которое просят сделать, сначала пробиваю на предмет "кому надо,зачем, законно ли, как можно решить типовыми средствами"
Craig; murat_; Ish_2; +3 Ответить
9. Serj1C 483 22.03.10 11:41 Сейчас в теме
УПП. Один общий "НашМодуль". А как же параллельная работа с хранилищем нескольких разработчиков?
11. anig99 2851 22.03.10 12:08 Сейчас в теме
(9) НашМодуль - это частности. Я работаю с этой конфой абсолютно один. Это раз. Во вторых, когда появляется кто-нибудь ещё, то разработку он ведёт в тестовой конфе.
К проблемам размещения в одном модуле ещё могу добавить конфликт процедур внутри модуля, если они относятся в модулям с различными флажками "Клиент", "Сервер", "Привелигированный"...
12. 8c1.ru 154 22.03.10 15:44 Сейчас в теме
Если ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда
Возврат;
КонецЕсли;

можно так, или я что то упустил? :
Если РольДоступна("ПолныеПрава") Тогда
возврат;
КонецЕсли;

13. anig99 2851 22.03.10 16:08 Сейчас в теме
14. strange2007 144 24.03.10 10:10 Сейчас в теме
УПП внедряю несколько месяцев. Все другое. Бухи учёт с ног на голову перевернули. Задаю вопросы везде, на всех форумах. Результат - конфу обновляю не задумываясь и все работает.
4 пункт на заметку взял себе
15. Wolfis 7 24.03.10 10:28 Сейчас в теме
Раньше работал на торговле, сейчас на УПП Мясокомбинат, работаю меньше месяца, уже переправил кучу процедур.недавно гдето прочитал название УПП, программист называл ее не как иначе как "УППырышь". в чем-то согласен.Пункт 4 взял на заметку.
16. Арчибальд 2709 24.03.10 10:35 Сейчас в теме
(15) УППырь. В смысле, кровопийца 8-)
17. strange2007 144 24.03.10 11:49 Сейчас в теме
(15) ну и зря. Потом придет внедренец с опытом и будет всё возвращать на место
artmicro; +1 Ответить
18. mad_maksim 88 24.03.10 13:28 Сейчас в теме
Пункт 4 - интересное решение.
19. Wolfis 7 25.03.10 08:04 Сейчас в теме
не дурак и не когда себя таким не считал, внедрял не одну программу. Правил именно то что надо было править из дописок.
20. icwiner 01.04.10 18:09 Сейчас в теме
Вся информация и так интуитивно понятна, но п4 не использовал... Очень полезная поправочка. Большое спасибо :)
21. icwiner 01.04.10 18:18 Сейчас в теме
З.Ы. За ссылку на декомпилятор формы отдельнео спасибо
22. vint2008 12.10.11 12:46 Сейчас в теме
Полезная статья за ссылку отдельное спасибо :)
23. пользователь 17.11.11 11:19
Сообщение было скрыто модератором.
...
24. alexkl 22.11.11 15:19 Сейчас в теме
Программист в тот момент. когда соглашается на изменение основной конфигурации, не мальчик для битья, а наркодилер, сажающий на иглу дорогих удовольствий.
fzt; Robot; +2 Ответить
25. strange2007 144 23.11.11 05:02 Сейчас в теме
(24) ...и подписывающий себя на четвертование
26. BalVlad 22.01.12 18:59 Сейчас в теме
(24)(25) - Подписываюсь под Вашими словами.
27. Inerren 31.01.12 09:11 Сейчас в теме
Спасибо за статью. Править конфигурацию начали ещё до меня, а обновляться, чувствую, скоро придётся.
28. vovka-x13 4 31.01.12 09:34 Сейчас в теме
Поиском можно найти нужную информацию
29. vbvirus 31.01.12 09:51 Сейчас в теме
какие обработки, не придумали, чтобы обновить не типовую базу, всё равно приходится, брать бубен, побольше пива, и обновлять ручками. Иначе что то можно пропустить что выстрелит, через месяц или два. Последствия могут быть плачевными. Да и бухи всегда хотят не работать, в смысле работать так чтобы работало за них, им при этом ничего не делать.
30. metmetmet 82 07.02.12 11:03 Сейчас в теме
Спасибо автору, обязательно попробую при следующем обновлении глбально доработанных, да и еще не качественно и коряво. А то блин понапишут, по дорабатывают, а другим сопровождать и разбираться в коде-каракулях! Накипело...
31. adhocprog 1141 02.04.12 15:49 Сейчас в теме
про ярлыки - не понял их назначения.
где почитать подробнее? :)
32. anig99 2851 02.04.12 16:02 Сейчас в теме
(31) цитату к которой вопрос можно?
33. adhocprog 1141 02.04.12 16:52 Сейчас в теме
(32) "4. Замена вызовов типовых процедур и функций в самописном коде (в т.ч. и во внешних обработках) на вызов процедур из собственного модуля. Эти процедуры по сути «ярлык» для вызова типовых. Преимущество в том, что нужно проверить только их, а не искать множество вызовов в куче самописного кода."
т.е. в принципе не понял зачем это надо?
34. anig99 2851 03.04.12 08:34 Сейчас в теме
(33) предположим Вы регулярно в доработках и внешних обработках используете типовые функции и процедуры (например, ПолучитьНомерНаПечать). Во время обновления 1с поменяли местоположение функции (разбили модуль на несколько других модулей), поменяли её название или формат возвращаемых данных. Вам при обновлении нужно отследить такое изменение, а значит пересматривать весь свой код в конфигурации и внешних обработках и проверять работоспособность кода. Если же Вы заранее переназначили вызов через свою функцию-оболочку, то проверить нужно будет только её одну. Т.е. в типовом коде будет ПолучитьНомерНаПечать, а в Вашем коде будет нашПолучитьНомерНаПечать, где внутри будет тот же самый вызов типового ПолучитьНомерНаПечать.
35. adhocprog 1141 03.04.12 09:44 Сейчас в теме
36. mr.Kot 12.04.12 09:19 Сейчас в теме
Забыл "не" перед "хотелось":

Повторять такое обновление мне хотелось — начал думать как облегчить следующее.

Я даже поначалу удивилось, как же может такое обновление хотеться повторить.
37. Оля_ 26.07.12 23:06 Сейчас в теме
Спасибо, очень полезная статья, жаль что не нашла её раньше - пришлось учится на собственных ошибках (-:
38. Andryxa 03.04.13 11:17 Сейчас в теме
Спасибо, Александр! Очень интересно и познавательно.
39. DragonAgo 16 15.04.13 09:36 Сейчас в теме
Спасибо, интересно и можно взять себе на заметку
40. vis_tmp 32 08.02.17 12:39 Сейчас в теме
Спасибо, полезная статья про облегчение обновления нетиповой конфигурации
Оставьте свое сообщение