Обновление базы 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 очень небезразличен. Поэтому я на текст нового релиза, содержащего новые процедуры и функции натягивал старый релиз с исправлениями. (Каюсь, на картинке показано наоборот, потому что картинку делал опосля процесса).

См. также

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

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

1 стартмани

18.10.2013    15021    30    lock73    4    

2

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

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

23.03.2012    19531    Bambor    21    

21

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

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

1 стартмани

07.12.2011    14078    25    Myst_    19    

9

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

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

28.10.2011    33223    Nicholas    36    

43

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

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

1 стартмани

22.06.2011    24365    142    kompas-dm    5    

16

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

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

1 стартмани

20.06.2011    19947    177    kompas-dm    3    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Il 30 28.04.12 03:48 Сейчас в теме
Интересная задумка - надо попробовать.
А то реально сидеть и тупо состыковывать времени тратиться очень много! Спасибо за идею!
2. Арчибальд 2709 28.04.12 07:47 Сейчас в теме
Я знаю, что круче Валерыча. Медные яйца.
9. Valerich 1636 29.04.12 04:27 Сейчас в теме
(2) :) а почему именно медные?
3. Famza 85 28.04.12 08:21 Сейчас в теме
...натягивал старый релиз...
- улыбнуло.
(0) Как вариант, может попробовать конвертнуть свою базу и типовую-обновление в 8ку и там уже сравнить? Вдруг поможет
4. cmd_vasec 34 28.04.12 11:05 Сейчас в теме
5. ediks 337 28.04.12 13:05 Сейчас в теме
Весьма оригинальная идея. Вот если бы годика на 2 пораньше :D. Но все равно +
6. TrinitronOTV 15 28.04.12 17:18 Сейчас в теме
я тоже плюсану за идею, да и не только за неё
7. CheBurator 2696 29.04.12 00:38 Сейчас в теме
а декомпильнуть конфигу семерошную и сравнивать kdiff-ом..?
19. svsrus 179 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 204 16.05.12 11:09 Сейчас в теме
Я тоже WinMerge предпочитаю.
21. soba 28.05.12 01:08 Сейчас в теме
Надо же до такого додуматься! Превосходная идея, реально экономящая время. Видимо автор много часов провел в правках измененных конфигураций. Однозначный +. Буру на вооружение
22. kmar 28.05.12 04:25 Сейчас в теме
Похвала автору, идея замечательная, облегчил работу не опытному администратору.
23. unichkin 1576 28.05.12 14:41 Сейчас в теме
Подскажите пожалуйста, вот я создал две конфы, одна - ее нужно обновить, другую сохранил в вфайл, и загружаю в первую. Нажимаю правой кнопкой на модуль -> показать различие в модулях... - выходит окно "сравнение модулей", но при этом нельзя отметить те процедуры, которые я не хочу загружать, галки все уже стоят, и не изменяются. Куда надо нажать, чтобы модно было выбрать?
24. unichkin 1576 28.05.12 14:59 Сейчас в теме
+Все, разобрался) Надо было на лупу нажать. Очень хорошая придумка, помогло))
25. alex_sv 03.06.12 08:20 Сейчас в теме
Спасибо. Очень разумный подход.
26. phstranger 07.06.12 12:15 Сейчас в теме
Классная идея. Голь на выдумки хитра )))
28. VladimirElohov 136 20.06.12 21:58 Сейчас в теме
Небольшая вариация на тему. Можно сравнивать модули обработок.
Одна встроенная, вторая внешняя. Тогда тоже можно обойтись одной базой.
29. mikeA 1 26.10.12 21:00 Сейчас в теме
При всём уважении к автору, давно существуют KDiff3, AraxisMerge, WinMerge, DiffMerge.
Можно выдернуть код модуля и сравнивать ими.
Причём сравнивать три версии сразу - старую, новую и изменённую старую, объединять и при объединении тут же править код, если надо.
Попроцедурно они конечно не могут, но обычно код процедур лежит в одном и том же месте модуля, так что их возможностей хватает.
30. search 186 30.07.13 00:06 Сейчас в теме
Вещь полезная для получения позитивного опыта взаимодействия с 1с)))
Оставьте свое сообщение