gifts2017

Обработка для отладки обработок заполнения табличных частей документов

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

Удобный инструмент для отладки ОЗТЧ документов

Обработка предназначена для отладки обработок заполнения табличных частей

Тип обрабатываемых документов приводится к типу реквизита "Объект" тестируемой обработки.
В реквизите "Объект" Вашей обработки выбирайте тип, включающий тип 
 ДокументСсылка.ВашДокумент (для удобства выбора)

Точку останова можно ставить в открытой в конфигураторе отлаживаемой обработке заполнения ТЧ.

Форму обработки отладки соответственно переоткрывать не нужно. Внесли изменения в Вашу обработку заполнения ТЧ, сохранили - нажали кнопку "Заполнить табличную часть" -  произойдет заполнение в соответствии с принятыми Вами изменениями.


При установленном флаге "Открывать документ после заполнения" соответственно открывается заполненный документ

Используется стандартный механизм сохранения и восстановления реквизитов формы, есть справка и ссылка на источник.

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

Наименование Файл Версия Размер Кол. Скачив.
Тестирование ОЗТЧ
.epf 72,47Kb
04.12.09
788
.epf 72,47Kb 788 Скачать

См. также

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

Комментарии

1. Алексей Коробов (WiseSnake) 04.12.09 17:42
Скриншоты? Описание?
Чем лучше например http://www.infostart.ru/public/15601/?
В связи с новыми правилами лично я даже качать не буду в таком состоянии...
2. Алексей Коробов (WiseSnake) 04.12.09 17:43
Скриншот появился...
А посмотреть потом заполненную ТЧ как?
3. Андрей Григорьев (Borisych) 04.12.09 23:36
:cry: Извините, коллеги, в процессе выкладывания обработки был лишен интернета на значительное время.
Дополнил описание и обновил файл
(1) в связи с новыми правилами и некоторыми постами, вносящими неясность к употреблению той обработки, например, зачем её подключать к документу? лично я бы не стал ей пользоваться и скачивать.
Считаю что выложенная выше вещь - удобная, полезная, универсальная и сделана качественно, ничего лишнего
4. Андрей Григорьев (Borisych) 04.12.09 23:37
(2) либо открыть документ, воспользовавшись кнопкой выбора, либо он сам откроется при установке соответствующего флажка
5. Poppy (poppy) 06.12.09 01:12
Не удалось протестировать эти обработки:
http://www.infostart.ru/public/20302/
http://www.infostart.ru/public/18828/

{Форма.Форма(16)}: Поле объекта не обнаружено (Объект)
Обр.Объект = ЭлементыФормы.ВыбДок.Значение.ПолучитьОбъект();
6. Poppy (poppy) 06.12.09 01:31
(3) по (1)
Ту обработку нужно подключать для того, чтобы запускать из открытого документа. При этом, документ может быть не записан, как до, так и после выполнения тестируемой обработки.
Действия тестируемой обработки можно отменить.
7. Андрей Григорьев (Borisych) 07.12.09 09:13
(5) Обработка расчитана на наличие реквизита "Объект" в обработке заполнения табличной части (если тип этого реквизита ограничен типами ссылок на документы к которым подключается обработка заполнения ТЧ, а не установлен в "Любая ссылка", тогда в поле выбора "Документ для заполнения табличной части" будем выбирать из ограниченного множества. Это удобно)
8. Андрей Григорьев (Borisych) 07.12.09 09:36
(1) скачал обработку - хорошая
9. Артур Аюханов (artbear) 07.12.09 10:46
(7) 1. Эта информация должна быть в описании
2. было бы удобно, если бы наличие/отсутствие реквизита "Объект" проверялось автоматом и в случае отсутствия выдавалось вменямое сообщение об этом.

Вопрос: документ всегда сохраняется?
ИМХО в (6) значительно удобнее, можно легко отказаться от неверных исправлений.
10. Эстер Коган (e.kogan) 07.12.09 11:08
(7) Следовательно, она не является подспорьем для тестирования ОЗТЧ, написанных по стандартной технологии.
11. Андрей Григорьев (Borisych) 07.12.09 11:14
(9)-(10) Лично я всегда создаю реквизит "Объект", привык к такому порядку, что ж теперь делать?
(9) А сообщение, что реквизита нет, выводится в строке сообщений
12. Артур Аюханов (artbear) 07.12.09 16:10
1. Где про Объект написано в описании?
2. Что по сохранению документа ?
3. (10) перечеркивает универсальность, тем более, что и в описании об ограничении по Объект ничего не написано.

13. Андрей Григорьев (Borisych) 08.12.09 08:57
(12).2 документ записывается после заполнения
14. Алексей Коробов (WiseSnake) 08.12.09 18:41
(13) Не было меня давно. Вставлю свои 5 копеек.
Записывать объект(документ) оооочень часто не удобно... Например, когда сидишь у клиента и надо быстро протестировать на рабочей базе.
Лично я поступаю просто:
1. Пользуюсь обработкой poppy (если не лень подключать)
2. У меня все внешние обработки с формами: из формы обработки я просто открываю сформированный документ не сохраняя его...
15. Андрей Григорьев (Borisych) 09.12.09 13:31
16. Артур Аюханов (artbear) 09.12.09 17:48
В общем, неудобно и неуниверсально :(
Не в обиду автору поставлю минус - у poppy намного лучше :(
17. Андрей Григорьев (Borisych) 09.12.09 17:53
Ничего страшного, я не обидчивый ;)
Мне во всяком случае удобен такой подход - если форма подключается к паре видов документов, то выбирать только из них.
Кесарю кесарево
18. A_kryl К (A_kryl) 27.01.11 12:16
Я тоже не создаю реквизит объект в обработке заполнения, так поправить - это два слова в сабже убрать. Немного доработал напильником и все ок.
19. Эмин Зейналов (Smile1984arm) 16.09.11 14:06
Огромное вам спасибо, очень полезная вещь!!!
20. Андрей Григорьев (Borisych) 18.09.11 01:58
Вот ещё полезности -
1. - много отчетов одном - нужно просто создать несколько схем компоновки данных - и в меню сверху можно выбирать любую - отчет по этой схеме формируется сразу после выбора.
2. - форма для авторегистрации внешней печатной формы - необходимо указать типы документов, к которым подключается ВПФ, и в модуле прописать функцию "Печать()".

3. для формирования кода заполнения макета ПФ - создается макет со всеми параметрами/шаблонами,
указываешь имя макета в модуле, и вуаля - костяк заполнения процедуры Печать() уже готов, осталось подставить запрос с выборкой.

Макет = ПолучитьМакет("ИМЯ_МАКЕТА");
ТекстЗаполненияПараметровМакета = 
"
|ТабДок = Новый ТабличныйДокумент;
|ТабДок.АвтоМасштаб			= Истина;
|ТабДок.Защита				= Истина;
|ТабДок.ОтображатьСетку		= Ложь;
|ТабДок.ОриентацияСтраницы	= ОриентацияСтраницы.Портрет;
|ТабДок.ИмяПараметровПечати = ""ПАРАМЕТРЫ_ПЕЧАТИ_"" + ЭтотОбъект.Имя;
|
|ИмяМакета = ""ИМЯ_МАКЕТА"";
|Макет = ПолучитьМакет(ИмяМакета);
|";


Для каждого Обл Из Макет.Области Цикл
	ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + Символы.ПС + 
										СтрЗаменить(  "// Область ""ОбластьМакета""
										|ОбластьОбластьМакета = Макет.ПолучитьОбласть(""ОбластьМакета"");
										|ОбластьОбластьМакета.Параметры.Заполнить(ДанныеЗаполнения);",
										"ОбластьМакета", 
										Обл.Имя) + Символы.ПС;
	ОблМ = Макет.ПолучитьОбласть(Обл.Имя);
	Для сч_строк = 1 По ОблМ.ВысотаТаблицы Цикл
		Для сч_столбцов = 1 По ОблМ.ШиринаТаблицы Цикл
			Яч = ОблМ.Область("R"+ Формат(сч_строк,"ЧГ=0") + "C" + Формат(сч_столбцов,"ЧГ=0"));
			Если Яч.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
				ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + 
				"Область" + Обл.Имя + ".Параметры." + Яч.Параметр + " = ДанныеЗаполнения." + Яч.Параметр + ";" + Символы.ПС;
			КонецЕсли;
			Если Яч.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
				МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Яч.Текст, "[");
				Для каждого ЭлМассива Из МассивСтрок Цикл
					Если Найти(ЭлМассива,"]") > 0 Тогда
						ИмяП = СокрЛП(СтрЗаменить(ЭлМассива,"]",""));
						ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + 
						"Область" + Обл.Имя + ".Параметры." + ИмяП + " = ДанныеЗаполнения." + ИмяП + ";" + Символы.ПС;
					КонецЕсли;
				КонецЦикла;
				
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета  + 
										СтрЗаменить("ТабДок.Вывести(ОбластьОбластьМакета);", "ОбластьМакета", Обл.Имя) + Символы.ПС;
КонецЦикла;
Сообщить("", СтатусСообщения.БезСтатуса);
Сообщить(ТекстЗаполненияПараметровМакета, СтатусСообщения.БезСтатуса);
...Показать Скрыть
Прикрепленные файлы:
УниверсальныйОтчетСКД.erf
ШаблонВПФ.epf
21. Андрей Григорьев (Borisych) 18.09.11 01:58
22. Артур Аюханов (artbear) 19.09.11 14:01
(20) Это ты про что пишешь?
дай схему использования, что запускаем, как генерим, как юзаем.
23. Андрей Григорьев (Borisych) 19.09.11 23:35
(22) Завтра-послезавтра сниму видео с демонстрацией
24. Дима Гиб (DimDimych) 22.09.11 10:28
Очень удобная обработка для отладки работает в любых конфигурациях спасибо автору
25. Андрей Григорьев (Borisych) 22.09.11 10:57
(24) Спасибо, пункт (23) откладывается на выходные...
26. люба люба (lyubashonka) 25.09.11 17:53
Спасибо огромное за обработку - очень помогла!!!
27. Андрей Григорьев (Borisych) 25.09.11 22:40
28. Алексей Протасов (Riper) 03.11.11 05:51
Очень удобная обработка для отладки спасибо автору - очень помогла!!!
29. Андрей Григорьев (Borisych) 04.11.11 01:19
(22) artbear, кстати, вот видео снял - как ВПФ сделать : http://infostart.ru/public/66570/ - четвертый файл, также он лежит тут: http://files.mail.ru/BDNTCN
30. nnurik (nnurik) 08.11.11 14:21
Спасибо автору. Использую при отладке, оч. хорошее средство.
31. Дмитрий Сосенков (oiter) 12.11.11 12:48
Спасибо автору! Очень часто раньше приходилось использовать формы в тестировании.
32. Андрей Григорьев (Borisych) 13.11.11 01:12
(31) oiter, посмотрите и другие мои публикации - шаблон ВПФ тоже полезная вещь и дерево метаданных конфигурации
unoDosTres; +1 Ответить
33. uno dos (unoDosTres) 22.05.13 15:48
забавно видеть как минусовали данную обработку, совсем даже зря, отличный инструмент для отладки, правда интерфейс напоминает обработку poppy но это все мелочи
34. Александр Зорин (Manticor) 05.11.13 15:18
Друзья, есть ли подобная вещь для управляемых форм под тонкий клиент? очень нужно
35. Андрей Григорьев (Borisych) 05.11.13 16:06
(34) Manticor, у меня пока нет, скачал с ИС отладку ВПФ под БСП
36. Александр Зорин (Manticor) 06.11.13 09:40
(35) Borisych, просто без подобной обработки такго рода встает вся отладка на тонком(((
37. Андрей Григорьев (Borisych) 06.11.13 11:59
(36) Manticor, приспичит самому тестить ОЗТЧ - сделаю, а пока и так зашиваюсь
38. борян петров (TODD22) 24.12.13 09:21
{Форма.Форма.Форма(19)}: Метод объекта не обнаружен (Записать)
Обр.Объект.Записать();
Вот такая ошибка при попытке заполнить ТЧ. :(
39. Андрей Григорьев (Borisych) 25.12.13 10:35
(38) TODD22, посмотри в отладчике - что в Обр.Объект находится? наверняка Неопределено или что-то ещё не ссылочного типа
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа