gifts2017

Создание резервной копии обработки при её открытии

Опубликовал Илья Мосейкин (ilyam23) в раздел Программирование - Инструментарий

Иногда внешняя обработка при работе вылетает из 1С с ошибкой. Ещё реже встречается ситуация, что после такого вылета эту обработку невозможно открыть даже конфигуратором. Данная обработка содержит код, который будет копировать файл обработки при её открытии.

Часто программисты не имеют копий таких создаваемых обработок, а просто постепенно дописывают туда код и снова тестируют. Это может привести к ситуации, что всю обработку нужно будет переписывать заново.

Данная обработка позволяет делать резервную копию файла обработки при её открытии и содержит 2 кода:

  • Первый вставляется в саму тестируемую обработку - представляет из себя короткое обращение к процедуре общего модуля.
  • Второй (закомментированный) вставляется в общий модуль 1С и содержит команду для копирования файла обработки.

Тем самым, вставив один раз второй код в общий модуль, мы можем из любой внешней обработки обратиться к нему, для резервного копирования.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Резервное Копирование Обработки
.epf 6,05Kb
21.04.16
1
.epf 1.0 6,05Kb 1 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Андрей Карпов (karpik666) 21.04.16 19:09
Никогда не слышал, чтобы обработка портилась от открытия в базе, даже, если база вылетает, приведите пример, может обсуждение на форуме, где проблема стоит остро, что разработчик все потерял, когда обработка сломалась.
2. Наталья * (NatalyaVP) 21.04.16 19:27
(1) karpik666, бывает такое.
В конфигураторе, когда когда пишешь модуль внешней обработки, вдруг свет отключили, и всё обработка не открывается нигде. Неоднократно такое было, однажды пришлось заново обработку писать, потому что копии не было.
3. Наталья * (NatalyaVP) 21.04.16 19:28
А в какой папке сохраняется копия обработки? В той где была сама обработка?
4. Андрей Карпов (karpik666) 21.04.16 19:37
(2) NatalyaVP, вы недостаточно точно прочли суть данной обработки.
Данная обработка позволяет делать резервную копию файла обработки при её открытии

то есть не вовремя написания данной обработки, а когда мы ее написали, и просто хотим открыть, вот я и не припомню таких случаев, когда обработка ломалась именно на этом этапе.
5. Илья Мосейкин (ilyam23) 22.04.16 08:45
Обработка была написана после нескольких жалоб программиста на синий экран при тестировании и невозможности открытия обработки после перезагрузки. Сначала мы обновляли ему железо, но проблема иногда вновь возникала. В связи с этим и была написана обработка. Копирование идет во временную папку, но никто не мешает её Вам сменить.
6. Илья Мосейкин (ilyam23) 22.04.16 09:17
Небольшое уточнение для karpik666. Обработка может испортится не при её открытии, а при её работе. Т.е. запустили в своей обработке например проведение документов и в середине процесса получили синий экран...
7. Галахад (dmt) 22.04.16 09:36
(4) karpik666, во время написания, время от времени, обработка запускается.
По идее очень даже неплохо, если при каждом запуске будет бекап.
Можно будет даже откатиться до N-1 версии.
8. Юрий Былинкин (ardn) 22.04.16 11:15
Переходите на Git.
8.3.8 вышла в релиз, теперь обработки можно хранить в гите не в виде двоичных файлов, а в виде исходных кодов.
9. Илья Мосейкин (ilyam23) 22.04.16 14:37
Для dmt.
Я поначалу так и сделал, но потом передумал и обработка сохраняется под именем самой обработки. Если к имени файла бэкапа добавлять дата/время, то получится помоечка из кучи таких бэкапов. Каждому своё, но моя идея в гарантии не потерять обработку при сбое.
10. Евгения Карук (ekaruk) 23.04.16 11:27
А в чем именно суть обработки и зачем еще и общий модуль?
Задача копирования обработки при каждом открытии решается одной строчкой в модуле объекта.
КопироватьФайл(ЭтотОбъект.ИспользуемоеИмяФайла,"c:\temp\МояОбработка"+Формат(ТекущаяДата(),"ДФ=yyyyMMddhhmm")+".epf");
11. Илья Мосейкин (ilyam23) 25.04.16 09:50
(10) ekaruk,
Конечно, можно и так решить.
Но написать "ОбщийМодуль.К(ЭтаФорма);" Короче
Но плодиться эти обработки не будут, а будет сохранена только последняя
Но путь для таких копий будет всегда один.
Объявил всем прогерам чтоб в модуле открытия всегда писали такую строку и всё.
12. Евгения Карук (ekaruk) 25.04.16 13:09
(11) ilyam23, А завтра ты запустишь свою обработку в базе без этого общего модуля и она нафиг вылетит с ошибкой.
Смысл внешних обработок именно в том, что они разрабатываются без привязки к конкретной конфигурации. Или с минимальной привязкой.
Делать обработку внешней и без необходимости привязывать ее к своему личному общему модуля как-то нелогично.
13. Яков Коган (Yashazz) 25.04.16 15:24
(11) ilyam23, за предложение курочить конфу путём вставки каких-то ненужных общих модулей, когда можно обойтись лаконичной внешкой, точно надо влепить минус. Да и за процедуры из одной буквы.
14. Илья Мосейкин (ilyam23) 25.04.16 17:04
Клёва! Какая то мизерная обработка и такое обсуждение! :)
Мальчишки и девчёнки, да я просто хотел помочь своим прогерам. И подсказать другим, что можно сделать в такой ситуации.
Ну не нравится она Вам, ну и пропустите мимо глаз.
Откуда у Вас тока времени хватает, такую мелочь обсуждать. :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа