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




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

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

2012-03-12

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

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

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

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

Добавил:

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

В планах:

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

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

33 Comments

  1. OrsoBear

    Да, Была эта новость на главной.

    Я тоже был расстроен этим событием.

    Толковые разработки парень делал.

    Лично не был знаком.

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

    но дальше не знал, как выложить.

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

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

    Спасибо за отчет, гляну.

    Reply
  2. klel

    Обработка вполне ничего можно на досуге посмотреть

    Reply
  3. panam

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

    Reply
  4. sergb1979

    Главный плюч универсальность. Спасибо

    Reply
  5. elena_77

    Спасибо за обработку. Нужна была управляемая форма. Обязятельно скачаю попробовать.

    Reply
  6. Moll

    Большое спасибо за доработку данной обработки, очень полезная вещь, особенно когда уже привых на обычных приложених юзать подобное, не приходится каждый раз изобретать велосипед x]

    За исправление и настройку отбора ещё большее спасибо.

    А так же ждём выполнения данного пункта:

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

    Reply
  7. electronik

    Большое спасибо за доработку данной обработки, очень полезная вещь,

    Reply
  8. Little-ann

    Долго искала рабочую под управляемый формы.

    Reply
  9. USER--1C

    необходимо многие используемые обработки адаптировать под управляемое приложение. Уже актуально, а в УП иногда невозможно запустить обычные обработки, не влезая в конфигуратор.

    Reply
  10. free-lancer-2018

    Спасибо, пригодится.

    Reply
  11. free-lancer-2018

    В целом удобная обработка, только что использовал…

    При открытии на третий раз выскочила ошибка типа «неверный тип данных…» и форма не открылась…

    Видимо в ней якой-то глюк с сохранением настроек… Лечится закрытием БД и открытием снова.

    Reply
  12. electronik

    Будем тестировать. Если по описанию то класная, прокатаю на рабочей конфигурации отпишусь

    Reply
  13. karakozov

    Неплохое развитие популярного механизма.Инструмент который нужен каждый день.Посмотрим.Нужно тестировать перед тем как он попадет в папку инструментов под рукой.

    Reply
  14. fibrsb

    >В целом удобная обработка, только что использовал…

    >При открытии на третий раз выскочила ошибка типа «неверный тип данных…» и форма не открылась…

    >Видимо в ней якой-то глюк с сохранением настроек… Лечится закрытием БД и открытием снова.

    Тоже такое было, а вообще очень нужная обработка. Странно что 1с не оставила ее в конфигурациях.

    Reply
  15. NTLy

    Спасибо огромное!

    Обработка работает в БП редакции 3.0

    Reply
  16. gubanoff

    У себя поправил следующее:

    • сортировку объектов по их представлению в поле выбора объектов (то есть вначале идут все справочники по алфавиту, затем все документы по алфавиту и т.п., так удобнее искать и выглядит приятней);
    • проверку на «Предопределенный» при выполнении действий с объектами (чтобы не вылетало, если у справочника есть какие-то предопределенные элементы.
    Reply
  17. gamaliaka

    Попробовал использовать в 1С:Документооборот 1.3, столкнулся с ошибками:

    1. При перетаскивании из доступные обработки в выбранные — несоответствие типов (параметр номер «1»)

    2. При сохранении настройки — Поле объекта недоступно для записи (Родитель) — но настройку сохраняет

    3. Нашел несколько документов, отметил галками, нажимаю установка реквизитов — корреспондент — выбрал нужного — нажал выполнить — «Обработка … завершена! Обработано объектов: 15.» Захожу в документы — корреспонденты не заполнены/не изменены.

    Подскажите пожалуйста, как це лечить?

    Reply
  18. 3762515

    А можно и мне такую? Кому не сложно, пришлите пожалуйста на мыло: 3762515(цобака)маил ру

    Reply
  19. lisma9

    Не работает в Бухгалтерии 3.0.28.7

    Reply
  20. 3762515

    Круто, спасибо!

    Reply
  21. dimazzz84

    Спасибо!

    Reply
  22. Tangram

    УНФ: на 8.2 работало ОК, перешел на платформу 8.3, 1.4.8.3, перестала работать.

    Reply
  23. Tangram

    Внес исправления, заработало:

    Форма ПодборИОбработка, поле ПолеОбъектПоиска, КнопкаВыпадающегоСписка = Да

    Модуль формы ПодБорИОбработка:

    в 2х функциях меняем ЭтотОбъект на ВотЭтотОбъект

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

    Показать

    Возможно проявятся еще какие-то косяки,

    мне надо было снять пометку удаления с ВариантыОтчетов, после исправления сработало.

    Reply
  24. Myst_

    По событию «найти ссылки»

    Ошибка

    Поле объекта не доступно для записи ЭтотОбъект.

    Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.34.11) (http://v8.1c.ru/buhv8/)

    Платформа 1С:Предприятие 8.3 (8.3.5.1119)

    Reply
  25. de0nis

    (27) Myst_, это из-за включенной совместимости с 8.2 в бух 3.0. Сделай замену во всем модуле ЭтотОбъект на Объект1, на пример, и все заработает.

    Reply
  26. de0nis

    Но у меня тоже пара вопросов при работе в бух 3.0:

    1. При подборе документов по реквизитам, нет упорядочивания, при этом документы могут упорядочены не по дате. При перенумерации они перенумеровываются в том же порядке как были выбраны, т.е. в хронологии создания, а не в хронологи по дате (как хотелось бы). Это ошибка или я что-то не нашел??

    пока сделал костыль в процедуре НайтиСсылкиПоОтбору() добавил после добавления условий код:

    Если Найти(Запрос.Текст, «Документ.») > 0 Тогда
    Запрос.Текст = Запрос.Текст + »
    |
    |УПОРЯДОЧИТЬ ПО
    | _Таблица.Дата
    | «;
    КонецЕсли;
    

    Показать

    2. Для документов не очень удобно сделан отбор по дате, нельзя выбрать дату сразу, только через Объект. Нельзя выбрать вид сравнения даты в периоде, хотя для даты это самый актуальный.

    А так огромное спасибо за обработку.

    Reply
  27. ufo58

    Скачал. Запустил в 3-ке. Внес корректировки для совместимости.

    Задача проста — перекодировка справочника Номенклатура.

    …. Не работает …

    А жаль

    Reply
  28. m-sla

    Добрый день! А отбор только у меня не работает? Конфигурация розница 2.1 сначала была ошибка что не может открыть модально РезультатОтбора = ОткрытьФормуМодально(ФормаОтбора); заменила на РезультатОтбора = ОткрытьФорму(ФормаОтбора); . Форма открывается но при нажатии на кнопку применить ничего не происходит

    Reply
  29. zvERP1c

    При попытке сохранить настройки Установки реквизитов вылетает ошибка:

    {Форма.УстановкаРеквизитов.Форма(94)}: Поле объекта недоступно для записи (Родитель)
    ЭтаФорма.ВладелецФормы.Элементы.ДоступныеОбработки.Родитель = НоваяСтрока.ПолучитьИдентификатор();

    .

    Reply
  30. dj_serega

    (30) ufo58, Возможно решение.

    ]//СтрДоступных = ДоступныеОбработки.НайтиПоИдентификатору(СтрВыбранных);

    СтрДоступных = ДоступныеОбработки.НайтиПоИдентификатору(СтрВыбранных.ПолучитьИдентификатор());

    [/1C-CODE]

    (31) m-sla, в методе «ОткрытьФорму()» есть новые параметры (они последние). Поковыряйте там.

    Reply
  31. igor.grinin

    Не работает в УНФ 1.6

    Reply
  32. igor.grinin

    не работает в УНФ 1.6

    Reply
  33. user622533_y.yukaeva

    Не работает отбор «Объект поиска».

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *