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

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С:Управление нашей фирмой 3.0 Бесплатно (free)

После обновления УНФ до 3.0.10.178 у ряда клиентов исчезла часть функционала: отчёт "Движение товаров", кнопка "Глаз" в Расходной накладной, часть документов складских перемещений. Для решения проблемы надо установить константы, чьё название подпадает под шаблон "Использовать подсистему NNN (Константы)" и соответствует "пропавшему" функционалу по смыслу.

16.01.2025    431    dime2    0    

3

Обновление 1С Программист Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бухгалтерский учет Налоговый учет Управленческий учет ИП, ПБОЮЛ, КФХ НДС УСН Абонемент ($m)

Обновление, доработка для 1С: Управление торговлей 10.3 (УТ 10.3) организаций на упрощенной системе с 2025 года для использования ставок НДС 5 и 7 % в документах и печатных формах документов. Начиная с релиза 10.3.40.

4 стартмани

10.01.2025    1871    41    zhuravlev_as    37    

6

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

В статье рассматривается использование WinMerge для сравнения, объединения и обновления конфигураций 1С. Отдельно рассматривается методика трехстороннего сравнения при обновлении конфигурации

21.10.2024    3346    mixaeel    18    

17

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

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

1 стартмани

26.09.2024    671    7    milkers    2    

7

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

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

24.09.2024    1297    gull22    2    

9

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

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

17.09.2024    4698    vatkir    15    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13. anig99 2852 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 1143 02.04.12 15:49 Сейчас в теме
про ярлыки - не понял их назначения.
где почитать подробнее? :)
32. anig99 2852 02.04.12 16:02 Сейчас в теме
(31) цитату к которой вопрос можно?
33. adhocprog 1143 02.04.12 16:52 Сейчас в теме
(32) "4. Замена вызовов типовых процедур и функций в самописном коде (в т.ч. и во внешних обработках) на вызов процедур из собственного модуля. Эти процедуры по сути «ярлык» для вызова типовых. Преимущество в том, что нужно проверить только их, а не искать множество вызовов в куче самописного кода."
т.е. в принципе не понял зачем это надо?
34. anig99 2852 03.04.12 08:34 Сейчас в теме
(33) предположим Вы регулярно в доработках и внешних обработках используете типовые функции и процедуры (например, ПолучитьНомерНаПечать). Во время обновления 1с поменяли местоположение функции (разбили модуль на несколько других модулей), поменяли её название или формат возвращаемых данных. Вам при обновлении нужно отследить такое изменение, а значит пересматривать весь свой код в конфигурации и внешних обработках и проверять работоспособность кода. Если же Вы заранее переназначили вызов через свою функцию-оболочку, то проверить нужно будет только её одну. Т.е. в типовом коде будет ПолучитьНомерНаПечать, а в Вашем коде будет нашПолучитьНомерНаПечать, где внутри будет тот же самый вызов типового ПолучитьНомерНаПечать.
35. adhocprog 1143 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 Сейчас в теме
Спасибо, полезная статья про облегчение обновления нетиповой конфигурации
Оставьте свое сообщение