Иногда внешняя обработка при работе вылетает из 1С с ошибкой. Ещё реже встречается ситуация, что после такого вылета эту обработку невозможно открыть даже конфигуратором. Данная обработка содержит код, который будет копировать файл обработки при её открытии.
Часто программисты не имеют копий таких создаваемых обработок, а просто постепенно дописывают туда код и снова тестируют. Это может привести к ситуации, что всю обработку нужно будет переписывать заново.
Данная обработка позволяет делать резервную копию файла обработки при её открытии и содержит 2 кода:
- Первый вставляется в саму тестируемую обработку — представляет из себя короткое обращение к процедуре общего модуля.
- Второй (закомментированный) вставляется в общий модуль 1С и содержит команду для копирования файла обработки.
Тем самым, вставив один раз второй код в общий модуль, мы можем из любой внешней обработки обратиться к нему, для резервного копирования.
Никогда не слышал, чтобы обработка портилась от открытия в базе, даже, если база вылетает, приведите пример, может обсуждение на форуме, где проблема стоит остро, что разработчик все потерял, когда обработка сломалась.
(1) karpik666, бывает такое.
В конфигураторе, когда когда пишешь модуль внешней обработки, вдруг свет отключили, и всё обработка не открывается нигде. Неоднократно такое было, однажды пришлось заново обработку писать, потому что копии не было.
А в какой папке сохраняется копия обработки? В той где была сама обработка?
(2) NatalyaVP, вы недостаточно точно прочли суть данной обработки.
то есть не вовремя написания данной обработки, а когда мы ее написали, и просто хотим открыть, вот я и не припомню таких случаев, когда обработка ломалась именно на этом этапе.
Обработка была написана после нескольких жалоб программиста на синий экран при тестировании и невозможности открытия обработки после перезагрузки. Сначала мы обновляли ему железо, но проблема иногда вновь возникала. В связи с этим и была написана обработка. Копирование идет во временную папку, но никто не мешает её Вам сменить.
Небольшое уточнение для karpik666. Обработка может испортится не при её открытии, а при её работе. Т.е. запустили в своей обработке например проведение документов и в середине процесса получили синий экран…
(4) karpik666, во время написания, время от времени, обработка запускается.
По идее очень даже неплохо, если при каждом запуске будет бекап.
Можно будет даже откатиться до N-1 версии.
Переходите на Git.
8.3.8 вышла в релиз, теперь обработки можно хранить в гите не в виде двоичных файлов, а в виде исходных кодов.
Для dmt.
Я поначалу так и сделал, но потом передумал и обработка сохраняется под именем самой обработки. Если к имени файла бэкапа добавлять дата/время, то получится помоечка из кучи таких бэкапов. Каждому своё, но моя идея в гарантии не потерять обработку при сбое.
А в чем именно суть обработки и зачем еще и общий модуль?
Задача копирования обработки при каждом открытии решается одной строчкой в модуле объекта.
(10) ekaruk,
Конечно, можно и так решить.
Но написать «ОбщийМодуль.К(ЭтаФорма);» Короче
Но плодиться эти обработки не будут, а будет сохранена только последняя
Но путь для таких копий будет всегда один.
Объявил всем прогерам чтоб в модуле открытия всегда писали такую строку и всё.
(11) А завтра ты запустишь свою обработку в базе без этого общего модуля и она нафиг вылетит с ошибкой.
Смысл внешних обработок именно в том, что они разрабатываются без привязки к конкретной конфигурации. Или с минимальной привязкой.
Делать обработку внешней и без необходимости привязывать ее к своему личному общему модуля как-то нелогично.
(11) за предложение курочить конфу путём вставки каких-то ненужных общих модулей, когда можно обойтись лаконичной внешкой, точно надо влепить минус. Да и за процедуры из одной буквы.
Клёва! Какая то мизерная обработка и такое обсуждение! 🙂
Мальчишки и девчёнки, да я просто хотел помочь своим прогерам. И подсказать другим, что можно сделать в такой ситуации.
Ну не нравится она Вам, ну и пропустите мимо глаз.
Откуда у Вас тока времени хватает, такую мелочь обсуждать. 🙂