IE 2017

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

Программирование - Инструментарий

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

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

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

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

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

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

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

См. также

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

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