Быстрая отладка экранных форм документов и справочников

Публикация № 943065

Программирование - Практика программирования

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

 Молочников Олег Spb. 2018.

Быстрая отладка и разработка экранных форм документов и справочников.

 

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

История вопроса: Столкнулся с тем, что мой коллега на разработку элементарной экранной формы документа со связанными таблицами потратил почти день. Стал разбираться. Оказывается, после каждой правки документа он сохраняет конфигурацию, применяет изменения к базе, запускает в режиме отладчика и ищет новые грабли. Конфигурация ERP, сама по себе сохраняется не мало. На каждую итерацию уходит по десять минут ожидания.

А теперь простой фокус, который позволит ускорить разработку:

Если у нас есть документ или справочник, для которого нужно отладить печатную форму, то

Из ветки метаданных конфигуратора “документы” или “справочники” копируем наш объект в ветку “обработки”. Не сохраняя конфигурации, сохраняем как внешнюю обработку.

Иначе просто создаем внешнюю обработку.

Открываем в конфигураторе,  добавляем служебные реквизиты, чтоб не было ошибок при отладке. Для документа это "Ссылка", "Номер", "Дата".  Для справочника "Код","Ссылка", "Родитель", "Владелец".


  Спокойно отлаживаем наши формы и вносим изменения в исходный объект.

 Если это новый документ, то вначале загружаем в конфигурацию обработку, потом копируем ее в ветку дерева "документы".

 Если это измененная версия старого, то есть два варианта: 1. Скопировать в документы с новым названием и удалить старый документ. 2. Вручную перенести изменения.

Удачи!

 P.S.: Надеюсь, вам понравится эта и другие мои статьи и разработки на //buh.igor-1c.ru/profile/48714/.

 

Очень жду ваших комментариев  и пожеланий.

 Молочников Олег Spb. 2018.

19

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. the1 338 18.12.18 09:10 Сейчас в теме
Хорошо, да не очень-то)

Надо проще.

1. Создаем внешнюю обработку
2. Копируем в нее форму документа, справочника, чего угодно
3. Назначаем ее основной

Профит!
2. milkers 2250 18.12.18 09:25 Сейчас в теме
(1) Зачем что-то создавать, когда то же самое делается в два клика? Выделить документ,Ctl-c, Выделить дерево обработок,ctrl-V, сохранить как внешнюю. Самое главное сохраняется связь элементов формы с метаданными. В вашем случае она будет потеряна, на форме будет хаос.
8. AlX0id 18.12.18 11:11 Сейчас в теме
(2)
А как же создание реквизитов Ссылка, Номер, Дата, Проведен, ПометкаУдаления и тп?
А что более интересно - при чуть более сложном документе это все уже просто не работает.. Попробуйте сделать указанную процедуру с документом реализации из ЕРП:
Ошибка инициализации модуля: ВнешняяОбработка.РеализацияТоваровУслуг.МодульОбъекта
по причине:
{ВнешняяОбработка.РеализацияТоваровУслуг.МодульОбъекта(649,7)}: Переменная не определена (ОбменДанными)
Если <<?>>ОбменДанными.Загрузка Тогда
{ВнешняяОбработка.РеализацияТоваровУслуг.МодульОбъекта(1221,7)}: Переменная не определена (ОбменДанными)
Если <<?>>ОбменДанными.Загрузка Тогда
{ВнешняяОбработка.РеализацияТоваровУслуг.МодульОбъекта(661,2)}: Переменная не определена (ДополнительныеСвойства)
<<?>>ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
{ВнешняяОбработка.РеализацияТоваровУслуг.МодульОбъекта(662,2)}: Переменная не определена (ДополнительныеСвойства)
<<?>>ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);

Очистить модуль объекта? Так его функции могут использоваться из формы..
Кроме того, в форме могут использоваться методы расширения типа Прочитать(), Записать()..
fancy; CyberCerber; the1; +3 Ответить
10. milkers 2250 18.12.18 11:40 Сейчас в теме
(8) В таком случае, можно закомментарить текст сбойных модулей. Для отладки этого должно хватить.
9. the1 338 18.12.18 11:20 Сейчас в теме
(2) Ты бы хоть проверил для проформы. Никакая связь не теряется, более того, не надо создавать стандартные реквизиты (Код, Наименование и т.д.). Плюс сохраняется связь с модулем объекта исходного документа/справочника (чуть ниже описаны ошибки из-за твоего метода)

И обратное копирование доработанной формы тоже происходит гораздо более безболезненно, чем описано в публикации - просто Ктрл+Ц/Ктрл+В
12. AlX0id 18.12.18 12:21 Сейчас в теме
(9)
Кстати, так тоже не очень работает для типовых..
Накидал свою обработку для открытия форм - типа, копируешь форму в обработку, а в ней своя форма со списком форм - выбираешь и она открывается.. А фигушки - выдает какие-то проблемы с идентификаторами метаданных..

В этом плане наверное лучше всего работает вариант с расширениями - делаешь расширение для формы, в ней отлаживаешь изменения, а потом переносишь изменения в основную форму.
13. the1 338 18.12.18 14:34 Сейчас в теме
(12) Есть такой нюанс. Это не ошибка, просто в БСП для внешних обработок нужно указывать въявную тип источника формы

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
	ПараметрыРазмещения.КоманднаяПанель = Элементы.КоманднаяПанельФормы;
	ПараметрыРазмещения.Источники = Новый ОписаниеТипов("СправочникСписок.ФизическиеЛица");      // Вот в этом месте указать тип объекта
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры
Показать
14. AlX0id 18.12.18 15:56 Сейчас в теме
(13)
у меня оно вот тут начинает свое падение:
	
// Обработчик механизма "ВерсионированиеОбъектов"
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
15. the1 338 18.12.18 16:21 Сейчас в теме
(14) Тут еще проще, закомментируйте эту строку, да и все (если она не влияет на логику отладки)
16. AlX0id 18.12.18 16:41 Сейчас в теме
(15)
А смысл? хотелось замутить обработку, которая бы открыла любую перенесенную в не форму объекта.. А так - скопируй, проанализируй, исправь, удали.. Большая часть профита теряется.. Быстрее все же сделать расширение..
17. the1 338 18.12.18 17:15 Сейчас в теме
(16) Хз, если на скорую руку что-то проверить в работе формы - так очень удобно. Не сталкивался с сильными сложностями? Что за конфа-то хоть?
18. AlX0id 18.12.18 18:29 Сейчас в теме
(17)
Ерп в основном.
Для Ут и Унф в принципе тоже пробовал - больших проблем вроде нет. единственное что неудобно затягивать объекты в расширение, если есть необходимость.
Ну и изменения переносить придется не в один клик, разумеется.. Но это для любой схемы проблема, мне кажется.
11. milkers 2250 18.12.18 11:41 Сейчас в теме
(2) Обязательно проверю. Если ваш метод лучше, буду пользоваться им.
the1; ASMIR.ru; +2 Ответить
19. hobi 532 04.02.19 16:16 Сейчас в теме
(2) модуля менеджера нет во внешних обработках, а большинство документов содержит код в модуле менеджера. Поэтому только Ctrl-C / Ctrl-V не обойдешься.
3. lukashov_as 12 18.12.18 09:27 Сейчас в теме
а че так можно было?!:O Спасибо!
4. user705698_bursev 18.12.18 10:36 Сейчас в теме
Если это измененная версия старого, то есть два варианта: 1. Скопировать в документы с новым названием и удалить старый документ. 2. Вручную перенести изменения.

Я бы все же перенес вручную. т.к. при замене документа у него изменится идентификатор
CyberCerber; +1 Ответить
5. milkers 2250 18.12.18 10:39 Сейчас в теме
(4) Если это тестовая база и это документ, который создан тобой недавно, то без разницы.
6. user705698_bursev 18.12.18 10:44 Сейчас в теме
(5) Вот это "если" и имеет значительную разницу) Было на практике, что заменил так уже существующий документ, в тестовой базе разумеется. Все ссылки на него сразу тютюкнулись, потом пришлось восстанавливать.
CyberCerber; +1 Ответить
7. milkers 2250 18.12.18 10:51 Сейчас в теме
(6) Согласен, нужно быть осторожнее в этом моменте. Правда можно еще поиграться с режимами объединения конфигураций при переносе документа в боевую.
Оставьте свое сообщение