Обновление базы 1с 7.7. с помощью движка 1с 8.х

28.04.12

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

Если Вас угораздило в стандартную типовую конфу внести правки, причем в самый большой модуль, а именно глобальный. Если к тому же Вы внесли изменение в какую-то стандартную функцию, в которой 1с сама регулярно чего-то меняет, то любое обновление начинает доставать.

Используя возможности движка платформы 1с 8.х можно существенно сэкономить себе время и нервы.

 Лень - двигатель прогресса

(С) не знаю чей Frown 

В последнее время стали очень часто выходить новые релизы ЗиК 7.7. С учетом того, что в глобальном модуле сделаны изменения, от которых невозможно отказаться, обновление превращается в идиотскую проблему на несколько часов - как объединить новый релиз со своими правками.

В общем задача стояла рутинная, в последнее время довольно регулярная, но от этого не менее противная, а может даже и более - обновиться на новый релиз.

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

Материалы, которые были давно изучены и применялись на практике

Технология обновления нетиповых конфигураций, оно же Технология обновления нетиповых конфигураций 7.7

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

Грешным делом подумал: "А не написать ли свой объединятель модулей?"... и даже в течение 10 - 15 минут в голове зрели алгоритмы. Потом в голову пришла смелая мысль, которая спасла от дурацкой работы с неизвестным финалом: а ведь 1с 8.х при объединении конфигураций позволяет определять правила объединения модулей на уровне процедур и функций... Так зачем же изобретать велосипед???

Попробовал и результат мне понравился. То, на что у меня ранее уходило по несколько часов удалось сделать за 15 минут.

Итак, что надо иметь, так это платформу 1с 8.х (у меня под руками оказалась 8.2).

Создал 2 пустые базу. Я их создал в варианте обычного приложения (для 8.0 и 8.1 это единственно возможный вариант).

Взял содержимое глобального модуля текущего ЗиКа и скопировал в модуль обычного приложения одной базы, а глобальный модуль нового релиза в такой же модуль обычного приложения другой базы. Сохранил конфигурацию 1-ой базы в файл и во второй базе вызвал "Конфигурация -> Сравнить, объединить с конфигурацией из файла..."

Чтобы 8-ка не ругалась на непривычный синтаксис, можно в настройках отключить автоматическую проверку синтаксиса. 

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

Таким образом можно объединять не только глобальный модуль, но и модуль любого другого объекта, изменения в котором Вам дороги. Тексты можно загружать в любые объекты модулей 8-ки, например наделать общих модулей. Если Вы работаете с двумя базами как я, то учтите, что модули должны называться одинаково. Или же вторую базу можно делать из первой. 

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

Еще рекомендую выполнять сравнение и объединение в непривычном порядке - в качестве основы использовать новый релиз, а на него натягивать свою измененную конфу. Логика такого совета в том, что 1с 8.х при объединении модулей, если в исходной конфигурации каких-то процедур и функций нет, новые процедуры и функции могут быть добавлены в конец. В основном это, конечно, касается конфигураций с поддержкой, но были преценденты и для самописных. Для 8-ки порядок следования функций и процедур в модуле неважен, а вот для 7.7 очень небезразличен. Поэтому я на текст нового релиза, содержащего новые процедуры и функции натягивал старый релиз с исправлениями. (Каюсь, на картинке показано наоборот, потому что картинку делал опосля процесса).

См. также

Адаптированная обработка Помощник перехода на 1C:Бухгалтерию 8. Синхронизация

Обновление 1С Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Абонемент ($m)

В очередном релизе БУ ред.4.5 (7.70.564) приведена обработка ПомощникПереходаНа1CБухгалтерию8Синхронизация. Использование ее в поставляемом виде для нас оказалось невозможным - из-за значительного объема документооборота происходит аварийное завершение работы по причине "Не достаточно памяти".

1 стартмани

18.10.2013    14897    30    lock73    4    

2

Символьные ссылки - Быстрый и удобный способ обновления регламентированной отчетности для программы 1с Бухгалтерия 7.7

Обновление 1С Бухгалтерский учет 7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Символьные ссылки - Быстрый и удобный способ обновления регламентированной отчетности для программы 1с Бухгалтерия 7.7 Данный способ обновления подходит тем, у кого есть несколько бухгалтерских баз с одинаковой системой налогообложения.

23.03.2012    19282    Bambor    21    

21

Обновление баз

Обновление 1С Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Программа для автоматического обновления конфигураций Updater

1 стартмани

07.12.2011    13935    25    Myst_    19    

9

Пошаговая инструкция обновления типовой конфигурации на платформе 7.7.

Обновление 1С Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Пошаговая инструкция обновления типовой конфигурации на платформе 7.7.

1 стартмани

06.11.2011    10904    39    valux_pux_12345    10    

0

Как обновлять не типовую конфигурацию 7.7

Обновление 1С Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

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

28.10.2011    32863    Nicholas    36    

43

Налоговый кодекс 2011. Украина. Обновление до схем релиза 287. Часть 2. План счетов

Обновление 1С Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Украина Бухгалтерский учет Абонемент ($m)

Обновить план счетов согласно релизу 287 не так просто. Есть конфигурации, где по разным причинам используется несколько другой, отличный от типового. До 1 апреля 2011 года это работало. А сейчас нужно адаптировать рабочий вариант. Если разработчик 1С ведет несколько информационных баз, проблемы множатся. Аналитику информационной базы можно легко потерять...

1 стартмани

22.06.2011    24246    142    kompas-dm    5    

16

Налоговый кодекс 2011 Украина. Обновление до схем релиза 287. Часть 1.

Обновление 1С Бухгалтерский учет 7.7 Конфигурации 1cv7 Украина Налоговый учет Абонемент ($m)

Вышел долгожданный релиз 287. Бухгалтерский и налоговый учет "в одном флаконе". Специалисты 1С, конечно, были готовы к поворотам конфигурации. Но такого виража .... Кто находится на чистом 285, 286 релизах без доработок, может воспользоваться рекомендациями разработчиков по обновлению конфигурации. Если были доработки - вносить изменения придется вдумчиво, разбираясь с каждым объектом (справочник, документ, субконто и т.д.). В любом случае базы нужно разъединять - до 1.04.2011 и с 1.04.2011.

1 стартмани

20.06.2011    19879    177    kompas-dm    3    

24
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Il 30 28.04.12 03:48 Сейчас в теме
Интересная задумка - надо попробовать.
А то реально сидеть и тупо состыковывать времени тратиться очень много! Спасибо за идею!
2. Арчибальд 2706 28.04.12 07:47 Сейчас в теме
Я знаю, что круче Валерыча. Медные яйца.
9. Valerich 1633 29.04.12 04:27 Сейчас в теме
(2) :) а почему именно медные?
3. Famza 84 28.04.12 08:21 Сейчас в теме
...натягивал старый релиз...
- улыбнуло.
(0) Как вариант, может попробовать конвертнуть свою базу и типовую-обновление в 8ку и там уже сравнить? Вдруг поможет
4. cmd_vasec 34 28.04.12 11:05 Сейчас в теме
5. ediks 335 28.04.12 13:05 Сейчас в теме
Весьма оригинальная идея. Вот если бы годика на 2 пораньше :D. Но все равно +
6. TrinitronOTV 14 28.04.12 17:18 Сейчас в теме
я тоже плюсану за идею, да и не только за неё
7. CheBurator 3119 29.04.12 00:38 Сейчас в теме
а декомпильнуть конфигу семерошную и сравнивать kdiff-ом..?
19. svsrus 178 16.05.12 10:07 Сейчас в теме
(7) Абсолютно согласен. Обычно где стоит 7-ка, 8-ки нет. И зачем выдумывать что-то новое, когда есть давно опробованное старое? kdiff или WinMerge. Мне второй больше по душе.
zqzq; item; +2 Ответить
8. Программулькин 301 29.04.12 04:11 Сейчас в теме
оригинальная идея, а главное - всё просто!
10. khaoos 239 02.05.12 06:30 Сейчас в теме
Хм, с семеркой дело не имею, за исключением очень редких случаев, но какой геморрой при обновлении успел почувствовать, спасибо за идею. Плюсую однозначно ).
11. akb001 02.05.12 06:46 Сейчас в теме
Интересная идея, надо взять на вооружение!
12. Михаська 12 02.05.12 10:03 Сейчас в теме
Как говорится: все гениальное - просто :)
Спасибо за идею, возьму на заметку.
13. Niberu 5 02.05.12 11:00 Сейчас в теме
Надо попробовать, похоже полезная фишка будет.
А то так люблю доооооолго пролистывать и вглядываться в различия и изменения в коде в родной "компарер" 77, запоминать-выписывать номера строк где-что и т.д. до жути ))
14. jack_kkm 35 03.05.12 06:57 Сейчас в теме
Спасибо, может пригодиться.
15. dumal 03.05.12 14:21 Сейчас в теме
Идея отличная, жаль только, что очень редко бывает так, что под рукой одновременно оказывается и 7.7 и 8. Клиентам это зачастую не нужно (экономия, зараза), а варианты, когда на предприятии ведется параллельно учет, скажем, ЗиК в 7.7, а бухии в 8.2 - редки, и прямо скажем, недолговечны. Все интеграторы стремятся как можно быстрее перетащить клиентов на более свежие платформы. Так что, как временное решение - очень неплохо. Жаль только, что за десять лет работы с 7.7 научился решать проблемы обновления настолько оперативно, что просто не хочется тратить время на создание новых конфигураций. Все равно быстрее по-старинке выйдет...
27. mdie 86 17.06.12 19:03 Сейчас в теме
(15)(19) Учитывая что можно воспользоваться портабельной (ссылки есть в googl'е, ну или делаем сами по мануалам там же) сборкой платформы 8.2 и повсюду таскать ее на флэшке с собой, то отпадает проблема с наличием нужной платформы :-)
16. Psylocibine 03.05.12 21:12 Сейчас в теме
Оригинальное решение!
К моему счастью, нечасто нынче приходится иметь дело с семеркой, но все же возьму на заметку:)
17. kozorez 8 06.05.12 12:20 Сейчас в теме
Спасибо за идею, очень пригодилась! вместо дня обновился за 20 мин.
18. curys 11.05.12 09:02 Сейчас в теме
спасибо за информацию, хорошее решение
20. alyuev 202 16.05.12 11:09 Сейчас в теме
Я тоже WinMerge предпочитаю.
21. soba 28.05.12 01:08 Сейчас в теме
Надо же до такого додуматься! Превосходная идея, реально экономящая время. Видимо автор много часов провел в правках измененных конфигураций. Однозначный +. Буру на вооружение
22. kmar 28.05.12 04:25 Сейчас в теме
Похвала автору, идея замечательная, облегчил работу не опытному администратору.
23. unichkin 1559 28.05.12 14:41 Сейчас в теме
Подскажите пожалуйста, вот я создал две конфы, одна - ее нужно обновить, другую сохранил в вфайл, и загружаю в первую. Нажимаю правой кнопкой на модуль -> показать различие в модулях... - выходит окно "сравнение модулей", но при этом нельзя отметить те процедуры, которые я не хочу загружать, галки все уже стоят, и не изменяются. Куда надо нажать, чтобы модно было выбрать?
24. unichkin 1559 28.05.12 14:59 Сейчас в теме
+Все, разобрался) Надо было на лупу нажать. Очень хорошая придумка, помогло))
25. alex_sv 03.06.12 08:20 Сейчас в теме
Спасибо. Очень разумный подход.
26. phstranger 07.06.12 12:15 Сейчас в теме
Классная идея. Голь на выдумки хитра )))
28. VladimirElohov 129 20.06.12 21:58 Сейчас в теме
Небольшая вариация на тему. Можно сравнивать модули обработок.
Одна встроенная, вторая внешняя. Тогда тоже можно обойтись одной базой.
29. mikeA 1 26.10.12 21:00 Сейчас в теме
При всём уважении к автору, давно существуют KDiff3, AraxisMerge, WinMerge, DiffMerge.
Можно выдернуть код модуля и сравнивать ими.
Причём сравнивать три версии сразу - старую, новую и изменённую старую, объединять и при объединении тут же править код, если надо.
Попроцедурно они конечно не могут, но обычно код процедур лежит в одном и том же месте модуля, так что их возможностей хватает.
30. search 179 30.07.13 00:06 Сейчас в теме
Вещь полезная для получения позитивного опыта взаимодействия с 1с)))
Оставьте свое сообщение