gifts2017

Что делать, если 1С перенесла процедуры из одного модуля в другой?

Опубликовал B2B (B2B) в раздел Обработки - Универсальные обработки

Иногда наступает такой момент, что 1С переносит часть процедур из одного модуля в другой, а для конфигурации написана сотня внешних отчетов и обработок. Что делать? Открывать каждую и делать замены? Это же сколько времени нужно! О своем методе ускорения этого процесса я попытаюсь рассказать.

Оказывается 1С позаботилась о подобных случаях: "Глобальная замена" может производить замену не только в конфигурации, но и во внешних обработках, лежащих в папке на диске. Осталось написать обработку, которая выгрузит все разом из справочника внешних обработок, а после замен поможет загрузить обратно.

Я предлагаю свою обработку, которая поможет произвести выгрузку и обратную загрузку внешних отчетов и обработок. Ограничения:

1. Обработка рассчитана на то, что файл внешней обработки хранится не в табличной части элемента, а в шапке. 

Внешняя обработка

2. Обработка рассчитана на то, что в справочнике внешних обработок нет элементов с одинаковым полем "Наименование".

 

А теперь по шагам.

1. Запускаем обработку врежиме 1С:Предприятие и выгружаем все внешние отчеты и обработки в папку:

Обработка выгрузки

Получим что-то типа:

Проводник 

2. Составляем таблицу замен:

Страя функция  Новая функция 
 ОбщегоНазначения.ПолучитьОписаниеТиповДаты  ОбщегоНазначенияЗК.ПолучитьОписаниеТиповДаты
 ОбщегоНазначения.СформироватьСуммуПрописью  ОбщегоНазначенияЗК.СформироватьСуммуПрописью
 ОбщегоНазначения.ГоловнаяОрганизация  ОбщегоНазначенияЗК.ГоловнаяОрганизация
 ОбщегоНазначения.ПолучитьРабочуюДату  ОбщегоНазначенияЗК.ПолучитьРабочуюДату
 ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок  ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок
 ОбщегоНазначения.ФамилияИнициалыФизЛица  ОбщегоНазначенияЗК.ФамилияИнициалыФизЛица
 ОбщегоНазначения.ВывестиИнформациюОбОшибке  ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке
 ОбщегоНазначения.ФорматСумм  ОбщегоНазначенияЗК.ФорматСумм
 ОбщегоНазначения.ПустоеЗначениеТипа  ОбщегоНазначенияЗК.ПустоеЗначениеТипа
 ОбщегоНазначения.ПредставлениеРаботника   ОбщегоНазначенияЗК.ПредставлениеРаботника 
 ОбщегоНазначения.СообщитьОбОшибке   ОбщегоНазначенияЗК.СообщитьОбОшибке  

3. В Конфигураторе идем в меню "Правка" - "Глобальная замена..." и заполняем поля диалога следующим образом:

Замена Замена

Путь к выгруженным обработкам указываем на вкладке "Файлы":

Замена

4. Выполняем замены по таблице во втором пункте.

5. Закрываем все окна через меню "Окна" - "Закрыть все". На каждое предложение о сохранении изменений отвечаем утвердительно.

6. Снова используем обработку для загрузки файлов в базу.

7. PROFIT!!!

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

Наименование Файл Версия Размер
ВнешниеОбработки_ВыгрузитьЗагрузить.epf 96
.epf 7,11Kb
12.04.13
96
.epf 7,11Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Андрей Мухин (Muhin555) 12.04.13 15:59
Есть такой "прикол" у 1С, сам вручную менял "ОщегоНазначения" на "ОщегоНазначенияЗК" :D
2. Jacob Jones (birk) 12.04.13 16:20
Надо было раньше постить ) Правил все вручную
3. B2B (B2B) 12.04.13 17:16
(2) Ничего, и на нашей улице будет праздник :-)
4. Gr0ck (gr0ck) 12.04.13 17:29
Да, отлично, только поздно, уже обновил ЗУП)
На будущее пригодиться
5. Светлана Петрова (Nad_ya) 12.04.13 19:40
Да, столкнулась тоже с таким "приколом" от 1С! обработка очень полезная, пригодится!
6. Жека Moscow (SpartakM) 12.04.13 20:56
(0)точно, особенно с ЗУП такие приколы))
7. Иван Чагаев (BoneD) 12.04.13 22:39
Обновлялся поздно в этот раз, так что успел воспользоваться "загрузочной" частью обработки. Т.к. количество внешних отчётов/обработок/печатных форм уже за 200 зашкаливает, время сэкономил, одна идея чего стоила. Спасибо, Василий!
8. B2B (B2B) 12.04.13 23:07
9. Александр Капустин (kapustinag) 13.04.13 14:07
Только все-таки зря обработка полагается на уникальность имен. Лучше бы использовала Код элемента справочника внешних обработок или GUID. Потому что справочник иерархический, да и отображается по умолчанию в виде отдельных списков обработок / отчетов / печформ и т.д.
То есть в обычной жизни неуникальность наименования в глаза не бросается, и придется каждый раз перед использованием этой обработки уникальность проверять/исправлять. Если много информационных баз на поддержке, и если фирма 1С продолжит по-стахановски выдавать на-гора релизы чаще, чем раз в неделю (что она с обновлениями УПП продемонстрировала в этом месяце) - довольно хлопотное дело получится.
10. B2B (B2B) 13.04.13 20:19
(9) Я рассчитывал на то, что файлы будут иметь вменяемые имена, а не ничего незначащий GUID
11. andrewks 13.04.13 23:02
(10) B2B, GUID - элемента справочника, а не имя файла
12. al petrov (petrov_al) 14.04.13 12:42
спасибо за информацию не знал о такой возможности, хотя работаю не первый год.
13. Владимир Безфамильный (Vovan1975) 14.04.13 17:37
круто.
А что делать когда в коде есть обращения как к старому переименованному общему модулю так и к новому?
14. anry mc (AnryMc) 14.04.13 19:41
(12) petrov_al,

А кто вообще вдумчиво прочитал всё, то что 1С называет - технической документацией?
15. andrewks 14.04.13 19:44
(14) AnryMc, на 1С ещё и документация есть? ;-)
16. anry mc (AnryMc) 15.04.13 06:33
(15) andrewks,
то что 1С называет - технической документацией
17. Алексей 1 (AlX0id) 15.04.13 09:46
1С позаботилась.. а еще лучше бы она позаботилась и сразу бы прислала таблицу сопоставления чо куда унесла, блин..
18. Regina Kucherova (AuroraNorilsk) 15.04.13 10:36
Складывается ощущение, что они даже не пользуются в конфигураторе проверкой модулей и проверкой конфигурации...
19. Kom-off (Kom-off) 15.04.13 10:50
На ИТС была обработка по автоматической конвертации внешних обработок при переходе с платформы 8.1 на 8.2, которая автоматически выгружала внешние обработки, конвертировала и загружала. Мне кажется, проще ее допилить, поскольку там все проблемы с уникальностью наименований разрешены тем, что именами файлов являются ГУИД-ы внешних обработок. Это первое.
А второе, так меня смущает пункт 2 этой статьи - "Составляем список замен". Это самая трудоемкая часть описанного процесса. Т.е. мало того, что процедуры и функции перенесены, так еще надо знать какие процедуры и функции общих модулей используются во внешних обработках (если их с десяток, то не проблема, а если более сотни?). А если к этому еще прибавить, что процедуры и функции общих модулей меняют список своих параметров критическим для использования способом (такое редко, но случается, обычно в типовых конфигурациях список параметров лишь добавляется с присвоением параметрам начальных значений), то получается, что данная статья как бы не доделана.
aegoncharov; vlad.frost; dr.zl0; hulio; +4 Ответить 1
20. Петров-Водкин (Петров-Водкин) 15.04.13 13:21
(19) Kom-off, присоединяюсь к вопросу.
При обновлении релиза ЗУП 62.1 я насчитал 17 процедур, которые вызываются в моих доработках (в конфигурации и во внешних) и были перенесены. Может еще я что-то пропустил и их больше на самом деле, просто ошибок пока не выходило.
Больше всего интересует, как автоматизировать пункт "Составляем список замен".
21. Kom-off (Kom-off) 15.04.13 13:46
(20) Я использую (плюс автору этой разработки) вот это: http://infostart.ru/public/77909/. Эта разработка позволяет выявить все изменения во всех процедурах и функциях общих модулей.
22. Антонина Петрова (ejka) 15.04.13 14:11
Эх, жаль что уже все вручную перелопатила, но на будущее пригодится, особенно если будет список сопоставления автоматический. Спасибо. :)
23. Павел (Odin-s) 15.04.13 16:01
Спасибо автору.. Наверное, год держал в голове идею этой обработки, но всё никак руки не доходили :)
24. Александр Гаёв (Redhatych) 15.04.13 16:45
спасибо за обработку!
а комментарии просто повеселили )))))
ну, а чтобы каждый раз не вставать на те же грабли, то проще сделать как описано здесь:
Но осталось несколько десятков внешних обработок и печатных форм. Заново в них исправлять из-за смены модуля, где сидит нужная функция — то ещё удовольствие. Решение было логическим продолжением предыдущих — вызов типовых был перенесен в НашМодуль, а во внешних обработках используется обращение к НашемуМодулю. Таким образом, после обновления достаточно будет проверить НашМодуль и не лазить по всем обработкам


сам давно собирался это сделать, но "пугала" процедура "перелопачивания" своих обработок и отчётов...
МимохожийОднако; Sure; +2 Ответить
25. B2B (B2B) 16.04.13 00:01
(11) Мне в файловой системе хотелось оставить вменяемые имена, а не GUID'ы.

(9) (11) С уникальностью имен не все так страшно: имена должны быть уникальными в пределах Отчетов (складываются в отдельную папку), отдельно в пределах Обработок (тоже в отдельной папке), а с обработками табличных частей и с печатными формами все еще проще: для каждого документа, к которому они привязаны, создается отдельная папка, куда и складируются обработки. В статье есть скриншот с Проводника, где видна структура папок.
26. Евгений (wirg) 17.04.13 15:19
прикольные ребята в 1с работают
27. Сергей (СержТ) 24.04.13 21:29
СПАСИБО! Только сел (с содроганием) делать замены во внешних и тут подкатила ваша инфа. 15 мин и все готово.
28. John Smith (PiccaHut001) 30.04.13 16:48
(27) СержТ, защёл в туалет, передёрнул 15 мин и все готово
29. Сергей Викторович (Loader_1C) 01.05.13 01:36
Спасибо! Актуально, особенно, после 62(52) обновлений релизов ЗУП (ЗиК БУ).
30. Алексей (АлексейН) 12.07.13 08:48
Спасибо! Актуально, особенно, после 62(52) обновлений релизов ЗУП (ЗиК БУ).

Неужели так много??? Плодотворно работают ребята,отрабатывают свой хлеб.
прикольные ребята в 1с работают

Что верно то верно.
Перенос процедур делается для того чтоб нам интересней жилось,
а также для того чтобы лишний раз звали програмистов которые обновляют
конфигурации, соответственно исправления за отдельное вознаграждение.
И я думаю скорее всего, там что-то типа таблицы что от куда и куда
перенесено (имеется ввиду процедуры).
31. B2B (B2B) 12.07.13 11:30
(30) Нет, они расчищают место под БСП
32. aleksei (alekseies) 30.07.13 13:42
полезная обработка, иногда приходится использовать .......................
33. gudun_ku (gudun_ku) 22.07.14 01:20
За такую разработку (я имею в виду конфигурации 1с с изменениями имен переменных и переносами из модуля в модуль) надо дать люлей, больше ничего не напрашивается... а ребята крутые же вроде, их заставляют читать аджайл девелопмент и паттерны проектирования... что они из этого извлекли , наверное, как заставить рядового фикси страдать...
34. Sabfir Sabfir (Sabfir) 20.08.14 11:31
Спасибо за обработку.
А вот это интересное предложение:
Но осталось несколько десятков внешних обработок и печатных форм. Заново в них исправлять из-за смены модуля, где сидит нужная функция — то ещё удовольствие. Решение было логическим продолжением предыдущих — вызов типовых был перенесен в НашМодуль, а во внешних обработках используется обращение к НашемуМодулю. Таким образом, после обновления достаточно будет проверить НашМодуль и не лазить по всем обработкам