gifts2017

Универсальный подбор и обработка объектов, Управляемые формы, 8.2 - 8.3 FIX

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

Универсальный отбор и обработка объектов для управляемого приложения.

Исходный материал автора Василий Демидов (Душелов)

2012-03-12

Поправил баги на которые напоролся:

1) Не сохранялся редактируемый объект и настройки отбора

2) Не работал отбор по значению ("Объект")

3) Искажались настройки отбора при нажатии на кнопку "Найти ссылки"

Добавил:

1) Возможность использовать обработку в механизми "Дополнительных печатных форм и обработок"

В планах:

- сделать нормальную форму выбора объекта метаданных 

- Автоматический вызов окна выбора реквизита отбора при добавлении строки отбора.

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

Наименование Файл Версия Размер
Универсальные подбор и обработка объектов 979
.epf 83,26Kb
12.03.12
979
.epf 83,26Kb Скачать

См. также

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

Комментарии

2. Alex Steiner (OrsoBear) 14.03.12 10:03
Да, Была эта новость на главной.
Я тоже был расстроен этим событием.
Толковые разработки парень делал.
Лично не был знаком.

По этому отчету те же ошибки нашел, поправил,
но дальше не знал, как выложить.

Под своим именем вроде как нехорошо.

А добавить к другому профилю прав нет.

Спасибо за отчет, гляну.
3. Dimon (klel) 14.03.12 22:03
Обработка вполне ничего можно на досуге посмотреть
4. Андрей Pugachev (panam) 20.03.12 11:54
Спасибо, давно ждал под управляемые формы. С ошибкой в отборе по объекту пользоваться было невозможно.
5. Sergey Ivanov (sergb1979) 21.03.12 12:03
Главный плюч универсальность. Спасибо
6. Елена (elena_77) 23.03.12 13:44
Спасибо за обработку. Нужна была управляемая форма. Обязятельно скачаю попробовать.
7. Ann Korableva (Moll) 23.03.12 15:15
Большое спасибо за доработку данной обработки, очень полезная вещь, особенно когда уже привых на обычных приложених юзать подобное, не приходится каждый раз изобретать велосипед x]
За исправление и настройку отбора ещё большее спасибо.
А так же ждём выполнения данного пункта:
- сделать нормальную форму выбора объекта метаданных.
8. Andrey Dyak (electronik) 26.03.12 17:16
Большое спасибо за доработку данной обработки, очень полезная вещь,
9. Anya Yakushina (Little-ann) 28.03.12 10:02
Долго искала рабочую под управляемый формы.
10. USER--1C USER--1C (USER--1C) 31.03.12 19:06
необходимо многие используемые обработки адаптировать под управляемое приложение. Уже актуально, а в УП иногда невозможно запустить обычные обработки, не влезая в конфигуратор.
11. Серж Иванов (adminfo2002) 03.04.12 21:35
12. Серж Иванов (adminfo2002) 04.04.12 13:19
В целом удобная обработка, только что использовал...
При открытии на третий раз выскочила ошибка типа "неверный тип данных..." и форма не открылась...
Видимо в ней якой-то глюк с сохранением настроек... Лечится закрытием БД и открытием снова.
14. Andrey Dyak (electronik) 12.04.12 13:32
Будем тестировать. Если по описанию то класная, прокатаю на рабочей конфигурации отпишусь
16. Владимир Каракозов (karakozov) 27.04.12 11:00
Неплохое развитие популярного механизма.Инструмент который нужен каждый день.Посмотрим.Нужно тестировать перед тем как он попадет в папку инструментов под рукой.
17. rsb rsb (fibrsb) 02.07.12 11:27
>В целом удобная обработка, только что использовал...
>При открытии на третий раз выскочила ошибка типа "неверный тип данных..." и форма не открылась...
>Видимо в ней якой-то глюк с сохранением настроек... Лечится закрытием БД и открытием снова.

Тоже такое было, а вообще очень нужная обработка. Странно что 1с не оставила ее в конфигурациях.
18. Наталья Алексеева (NTLy) 21.03.13 06:29
Спасибо огромное!
Обработка работает в БП редакции 3.0
19. Александр Губанов (gubanoff) 09.07.13 12:48
У себя поправил следующее:
  • сортировку объектов по их представлению в поле выбора объектов (то есть вначале идут все справочники по алфавиту, затем все документы по алфавиту и т.п., так удобнее искать и выглядит приятней);
  • проверку на "Предопределенный" при выполнении действий с объектами (чтобы не вылетало, если у справочника есть какие-то предопределенные элементы.
20. Денис Сафронов (gamaliaka) 28.07.13 20:27
Попробовал использовать в 1С:Документооборот 1.3, столкнулся с ошибками:
1. При перетаскивании из доступные обработки в выбранные - несоответствие типов (параметр номер "1")
2. При сохранении настройки - Поле объекта недоступно для записи (Родитель) - но настройку сохраняет
3. Нашел несколько документов, отметил галками, нажимаю установка реквизитов - корреспондент - выбрал нужного - нажал выполнить - "Обработка ... завершена! Обработано объектов: 15." Захожу в документы - корреспонденты не заполнены/не изменены.

Подскажите пожалуйста, как це лечить?
21. Юрий Вячеславович (3762515) 06.09.13 17:26
А можно и мне такую? Кому не сложно, пришлите пожалуйста на мыло: 3762515(цобака)маил ру
22. Николай Николай (lisma9) 28.12.13 15:52
Не работает в Бухгалтерии 3.0.28.7
leonidt84; scape; Tangram; Dimyla; fvr2000; amateos; @Sonya; +7 Ответить
23. Юрий Вячеславович (3762515) 19.02.14 17:11
24. dimazzz84 (dimazzz84) 13.03.14 09:17
25. Максим Горбачев (Tangram) 27.03.14 23:05
УНФ: на 8.2 работало ОК, перешел на платформу 8.3, 1.4.8.3, перестала работать.
26. Максим Горбачев (Tangram) 27.03.14 23:18
Внес исправления, заработало:
Форма ПодборИОбработка, поле ПолеОбъектПоиска, КнопкаВыпадающегоСписка = Да
Модуль формы ПодБорИОбработка:

в 2х функциях меняем ЭтотОбъект на ВотЭтотОбъект
&НаСервере
Функция ПолучитьПолноеИмяФормы(ИмяНужнойФормы)
	ВотЭтотОбъект = РеквизитФормыВЗначение("Объект");
	
	МассивСтрок = ВотЭтотОбъект.РазложитьСтрокуВМассивПодстрок(ЭтаФорма.ИмяФормы, ".");
	МассивСтрок[МассивСтрок.Количество() - 1] = ИмяНужнойФормы;
	
	Возврат ВотЭтотОбъект.ПолучитьСтрокуИзМассиваПодстрок(МассивСтрок, ".");
КонецФункции

&НаСервере
Процедура НайтиСсылкиПоОтбору()
	
	ВотЭтотОбъект = РеквизитФормыВЗначение("Объект");
	
	Запрос = Новый Запрос;
		
	Если РежимПоиска = 1 Тогда
		Запрос.Текст = ТекстПроизвольногоЗапроса;
		Для Каждого СтрокаПараметров Из ПараметрыЗапроса Цикл
			Если СтрокаПараметров.ЭтоВыражение Тогда
				Запрос.УстановитьПараметр(СтрокаПараметров.ИмяПараметра, Вычислить(СтрокаПараметров.ЗначениеПараметра));
			Иначе
				Запрос.УстановитьПараметр(СтрокаПараметров.ИмяПараметра, СтрокаПараметров.ЗначениеПараметра);
			КонецЕсли;
		КонецЦикла;
	Иначе
		Запрос.Текст = ТекстЗапроса;
		УсловиеПоискаПоСтроке = СформироватьУсловиеПоискаПоСтроке();
		СписокУсловий = УсловиеПоискаПоСтроке;
	
		Если ОтборДанных <> Неопределено Тогда
			Для Каждого ЭлементОтбора Из ОтборДанных.Отбор.Элементы Цикл
				Если НЕ ЭлементОтбора.Использование Тогда
					Продолжить;
				КонецЕсли;
				
				Индекс = ОтборДанных.Отбор.Элементы.Индекс(ЭлементОтбора);
				ИмяПараметра = СтрЗаменить(Строка(ЭлементОтбора.ЛевоеЗначение) + Индекс, ".", "");
				
				СписокУсловий = СписокУсловий + ?(СписокУсловий = "", "", "
				|	И ") + ВотЭтотОбъект.ПолучитьВидСравнения(ЭлементОтбора.ЛевоеЗначение, ЭлементОтбора.ВидСравнения, ИмяПараметра);
				
				Если ТипЗнч(ЭлементОтбора.ПравоеЗначение) = Тип("СтандартнаяДатаНачала") Тогда
					Запрос.УстановитьПараметр(ИмяПараметра, ЭлементОтбора.ПравоеЗначение.Дата);
				Иначе
					Запрос.УстановитьПараметр(ИмяПараметра, ЭлементОтбора.ПравоеЗначение);
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		
		Если СписокУсловий <> "" Тогда
			Запрос.Текст = Запрос.Текст + "
			|ГДЕ 
			|	" + СписокУсловий;
		КонецЕсли;
	КонецЕсли;
	
	Попытка
		ТЗ = Запрос.Выполнить().Выгрузить();
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	МассивРеквизитов = Новый Массив;
	МассивРеквизитов.Добавить("Объект");
	МассивРеквизитов.Добавить("Картинка");
	МассивРеквизитов.Добавить("Выбрать");
	
	СоздатьКолонки(ТЗ, МассивРеквизитов);
	
КонецПроцедуры
...Показать Скрыть


Возможно проявятся еще какие-то косяки,
мне надо было снять пометку удаления с ВариантыОтчетов, после исправления сработало.
27. Myst (Myst_) 16.09.14 10:40
По событию "найти ссылки"
Ошибка
Поле объекта не доступно для записи ЭтотОбъект.
Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.34.11) (http://v8.1c.ru/buhv8/)

Платформа 1С:Предприятие 8.3 (8.3.5.1119)
28. Денис Аграновский (de0nis) 08.12.14 02:39
(27) Myst_, это из-за включенной совместимости с 8.2 в бух 3.0. Сделай замену во всем модуле ЭтотОбъект на Объект1, на пример, и все заработает.
29. Денис Аграновский (de0nis) 08.12.14 02:42
Но у меня тоже пара вопросов при работе в бух 3.0:
1. При подборе документов по реквизитам, нет упорядочивания, при этом документы могут упорядочены не по дате. При перенумерации они перенумеровываются в том же порядке как были выбраны, т.е. в хронологии создания, а не в хронологи по дате (как хотелось бы). Это ошибка или я что-то не нашел??
пока сделал костыль в процедуре НайтиСсылкиПоОтбору() добавил после добавления условий код:
Если Найти(Запрос.Текст, "Документ.") > 0 Тогда
	Запрос.Текст = Запрос.Текст + "
	|
       	|УПОРЯДОЧИТЬ ПО
       	|	_Таблица.Дата
	|	";		
КонецЕсли;
...Показать Скрыть

2. Для документов не очень удобно сделан отбор по дате, нельзя выбрать дату сразу, только через Объект. Нельзя выбрать вид сравнения даты в периоде, хотя для даты это самый актуальный.
А так огромное спасибо за обработку.
30. Юрий Щербаков (ufo58) 03.01.15 11:55
Скачал. Запустил в 3-ке. Внес корректировки для совместимости.
Задача проста - перекодировка справочника Номенклатура.
.... Не работает ...
А жаль
31. Любовь Степанова (m-sla) 26.02.15 13:11
Добрый день! А отбор только у меня не работает? Конфигурация розница 2.1 сначала была ошибка что не может открыть модально РезультатОтбора = ОткрытьФормуМодально(ФормаОтбора); заменила на РезультатОтбора = ОткрытьФорму(ФормаОтбора); . Форма открывается но при нажатии на кнопку применить ничего не происходит
32. 3BEPb777 Семь (3BEPb777) 08.04.15 16:41
При попытке сохранить настройки Установки реквизитов вылетает ошибка:
{Форма.УстановкаРеквизитов.Форма(94)}: Поле объекта недоступно для записи (Родитель)
			ЭтаФорма.ВладелецФормы.Элементы.ДоступныеОбработки.Родитель = НоваяСтрока.ПолучитьИдентификатор();
.
33. Сергей Галюк (dj_serega) 13.05.15 10:08
(30) ufo58, Возможно решение.
]//СтрДоступных = ДоступныеОбработки.НайтиПоИдентификатору(СтрВыбранных);
СтрДоступных = ДоступныеОбработки.НайтиПоИдентификатору(СтрВыбранных.ПолучитьИдентификатор());
[/1C-CODE]
(31) m-sla, в методе "ОткрытьФорму()" есть новые параметры (они последние). Поковыряйте там.
34. Игорь Гринин (igor.grinin) 21.12.15 08:52
35. Игорь Гринин (igor.grinin) 21.12.15 08:52
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа