Улучшенная обработка УОПО ("Универсальная обработка подбора объектов") для 1С:Предприятие 7.7

26.11.11

Разработка - Работа с интерфейсом

Исправлена работа в модальном режиме обработки УОПО, распространяемой фирмой 1С на дисках ИТС. СДЕЛАНА ФУНКЦИЯ ПЕЧАТИ (УНИВЕРСАЛЬНЫЙ РАСПЕЧАТНИК СПИСКОВ ОБЪЕКТОВ). Расширен список типов объектов, которые могут отбираться в таблицу выбора. Добавлен новый режим подбора. Предусмотрена установка своего заголовка формы обработки вместо стандартного. Также в диалог добавлена надпись с количеством отобранных в обработке объектов.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПодборUChoice.rar
.rar 46,43Kb
177
177 Скачать (1 SM) Купить за 1 850 руб.

 

Описание практической проблемы:

У функции ОткрытьПодбор(,,,), активно используемой в обработке УОПО для выбора значений объектов,  замечено два недостатка:

1.       С ее помощью нельзя открыть для подбора внешнюю обработку. Приходится открывать форму внешней обработки модально. Если установлена ВК FormEx.dll, можно также имитировать режим подбора в немодальном режиме, вызывая с помощью объекта «Сервис» процедуру  ОбработкаПодбора(,,,) в контексте формы, открывшей обработку. Но это требует дополнительных действий при написании кода и уменьшает универсальность обработки.

2.       Если использовать функцию ОткрытьПодбор(,,,) для выбора значений в форме открытой модально, то форма подбора открывается немодально «под» вызвавшей его модальной формой(рис.1) и оказывается заблокированной для выбора.

С учетом сказанного стандартная УОПО оказывается неудобна при открытии в модальном режиме для редактирования списков.  Кнопки подбора объектов фактически не работают. Остается только кнопка «Отобрать объекты» без установленных фильтров (фильтры тоже заполняются с помощью функции ОткрытьПодбор(,,,)).

Однако на практике модальный режим может потребоваться, если для редактирования списка нужно открыть УОПО, хранящуюся во внешнем файле. Также модальный режим может быть удобен, если сразу после изменения списка, где-нибудь в форме требуется обновить его текстовое представление.

 

Описание исправлений и улучшения в предлагаемой версии УОПО:

1)       Для исправления работы обработки в модальном режиме, сначала проверяется режим открытия формы. Если форма открыта немодально - для выбора объектов по-старому используется функция ОткрытьПодбор(,,,). Если форма открыта в модальном режиме, то для этой цели используется другая функция - ВвестиЗначение(,,,), которая гарантированно открывает модальный диалог выбора.

2)       Расширен список типов значений, полноценно поддерживаемых при заполнении таблицы выбора объектов. Теперь кроме справочников, документов, операций и счетов можно использовать следующие типы 1С:

a.      Перечисления;

b.      Календари (системное перечисление);

c.       Виды расчетов (системное перечисление);

d.      Виды субконто (системное перечисление);

e.      Планы бухг. счетов (системное перечисление);

 

3)     Для тех объектов, которые нельзя открыть функцией ОткрытьФорму(,,) (Перечисления, ВидыРасчетов, Календари и т.п.), предусмотрено при клике в таблице отобранных объектов открытие списка выбора в диалоге с активизацией в нем текущего объекта (Рис.5). Стандартная обработка в этом случае просто ничего не делае, так как функция ОткрытьФорму(,,) игнорирует такие объекты без ошибок времени исполненияCool.

 

4)      Реализована функция печати списка объектов с выводом колонок показываемых реквизитов (Рис.2). Можно распечатать как все строки в списке, так и только отмеченные.  Таким образом обработку можно использовать как универсальный распечатник простых списков объектов (без группировки и агрегирования).

 

5.      Добавлен новый режим подбора, когда обработка не заполняет объектами из таблицы выбора список, переданный через параметр формы, а возвращает  копию самой таблицы выбора без колонок с пиктограммами. Для этого в параметре формы нужно установить значение с идентификатором «ПодборUChoice» не равным нулю (см. примеры ниже).

 

Значение параметра «ПодборUChoice» > 0 используется для подбора в немодальном режиме. Таблица выбора возвращается методом Форма.ВыполнитьВыбор(Значение) как выбранное в подборе значение  (пример 2).

 

Значение параметра «ПодборUChoice» < 0 используется для подбора в модальном режиме. Таблица выбора возвращается через параметр формы в значении с идентификатором «гТабВыборка» (примеры 1 и 2).

 

6.       Предусмотрена установка своего заголовка формы обработки вместо стандартного. Для этого нужно передать требуемый заголовок через параметр формы в значении с идентификатором «Заголовок» (см. примеры ниже). Кроме этого в форму добавлена надпись, выводящая количество выбранных в обработке объектов (Рис.2 и рис.3).

 

Требования:

Особенно никаких требований не нужно, разве что наличие действующей подписки ИТС.

Желательно иметь загруженную компоненту FormEx.dll (dorex.ru). Тогда при открытии можно выбирать тип и вид объекта в красивом диалоге в виде дерева (Рис.4).

Компоненту можно скачать с сайта разработчиков  http://www.dorex.pro/ , взять в файле поставки обработки "Изменение времени документа" в каталоге ..\FormEx1CPP\.

 

Примеры использования:

 

1)      Изменение списка объектов во внешней обработке УОПО, открытой модально:

 

ИмяОбработкиВнеш =КаталогИБ()+"ExtForms\ ПодборUChoice.ert";

Параметр =тзПараметров. Параметр;

Тип =тзПараметров. Тип;

Вид =тзПараметров. Вид;

сзПараметр = тзПараметров.Значение;

Если ТипЗначенияСтр(сзПараметр)<>"СписокЗначений" Тогда

          сзПараметр = СоздатьОбъект("СписокЗначений");

          тзПараметров.Значение= сзПараметр;

КонецЕсли;

Парам = СоздатьОбъект("СписокЗначений");

Парам.Установить("ИмяВызвавшейФормы","");  

Парам.Установить("Тип",Тип); 

Парам.Установить("Вид",Вид);

Парам.Установить("БезГрупп",0);

Парам.Установить("Объекты",сзПараметр);

Парам.Установить("Заголовок","Редактирование списка параметра '#"+СокрЛП(Параметр)+"':");

 

ОткрытьФормуМодально("Обработка",Парам, ИмяОбработкиВнеш);

 

ЗначениеПредс=СписокЗначений_в_Строку(сзПараметр,,20);

тзПараметров.ЗначениеПредс=ЗначениеПредс;

 

2)      Подбор таблицы со ссылками на  объекты в УОПО:

 

// Перем Тип;     // переменные модуля формы, куда перед подбором объектов

// Перем  Вид;   // записываются их тип и вид при выборе в диалоге

 

ИмяОбработкиВстр = " ПодборUChoice";

ИмяОбработкиВнеш =КаталогИБ()+"ExtForms\ ПодборUChoice.ert";

ЕстьРедакторСписков=0;

Если Метаданные.Обработка("ПодборUChoice").Выбран()=1 Тогда

          ЕстьРедакторСписков=1;  // подбор таблицы объектов в немодальном режиме

Иначе Если ФС.СуществуетФайл(ИмяОбработкиВнеш)=1 Тогда

          ЕстьРедакторСписков=2;  // подбор таблицы объектов в модальном режиме

КонецЕсли;

Если ЕстьРедакторСписков=0 Тогда

          Возврат;

КонецЕсли;

Парам =СоздатьОбъект("СписокЗначений");

Парам.Установить("Тип", Тип);

Парам.Установить("Вид", Вид);

Парам.Установить("Заголовок","Выбор объектов для очистки:");

Если ЕстьРедакторСписков=1 Тогда

          // подбор таблицы объектов в немодальном режиме

          Парам.Установить("ПодборUChoice",+1);

          ОткрытьПодбор ("Обработка. "+ ИмяОбработкиВстр, Парам);

ИначеЕсли ЕстьРедакторСписков=2 Тогда

          // подбор таблицы объектов в модальном режиме

            Парам.Установить("ПодборUChoice",-1);

          ОткрытьФормуМодально("Обработка#", Парам, ИмяОбработкиВнеш);

          СтатусОК=-1;

          Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда

                   СтатусОК=Цел(Парам.Получить("СтатусОК"));

          КонецЕсли;

          Если СтатусОК<=0 Тогда

                    Возврат;

          КонецЕсли;

          Значение = Парам.Получить("гТабВыборка");

          ОбработкаПодбора(Значение,Неопределено);

КонецЕсли;

 

Благодарности:

Выражаю огромную благодарность всем разработчикам фирмы 1С за их нелегкий труд.

 

См. также

Подбор и обработка объектов Программист Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Работа с выделенными (множественное выделение) строками в 7.7, как в восьмерке - перенос в другую группу, установка/снятие пометки удаления, групповая установка реквизитов.

1 стартмани

10.01.2023    3827    5    M_W_W    20    

11

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v7.7 Абонемент ($m)

Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.

1 стартмани

30.03.2022    5057    2    igor7777    4    

6

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Публикация имеет цель обратить внимание на возможность улучшения интерфейса.

15.12.2021    4931    74    Cерый    13    

7

Работа с интерфейсом Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Представлены два диалога для выбора интервала дат по календарю в составе демонстрационных конфигураций 1С8.3 и 1С7.7

1 стартмани

24.01.2017    26072    20    romasna    7    

9

Работа с интерфейсом Разработка внешних компонент Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Несмотря на то, что кое-какие функции Drag&Drop были заложены авторами 1cpp, моё дополнение позволяет сделать этот функционал законченным. Дело в том, что средствами 1cpp можно было таскать файлы ТОЛЬКО в 1С, а из 1С - невозможно. Теперь Вы можете сделать работу с файлами на порядок удобнее и эффективнее.

1 стартмани

19.09.2016    21026    16    DasIsFantastich    4    

8

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Очень часто, в процессе работы с 1С, у пользователя может возникнуть желание получить какую-либо информацию по данным, которыми он оперирует в данный момент. Например, забивая документ отгрузки, хочется посмотреть взаиморасчеты с контрагентом, или находясь в справочнике номенклатуры посмотреть движения по ней и т.д. В типовых конфигурациях с такими хотелками не очень то развернешься. К примеру про взаиморасчеты с контрагентом, это надо ползти в меню "Отчеты"->"Специализированные"->"Акт сверки", затем в самом отчете, как минимум, необходимо опять выбрать нужного контрагента и только после этого заветная "циферка" порадует глаз пользователя. Некоторые моменты всё же реализованы, например в типовой "Бухгалтерии", в формах списка справочника "Номенклатура", есть в привязанных печатных формах отчеты: "Оборотно-сальдовая ведомость" и "Анализ субконто", но в них также приходится что-либо выбирать/менять перед формированием. Или довольно удобная штука - механизм внешних печатных форм, но не для всех объектов он реализован (к примеру документ "Поступление ТМЦ" обделен такой возможностью). Добавить подобные вещи конечно можно, но для этого придется править конфигурацию и при обновлении учитывать все эти правки...

1 стартмани

21.08.2014    15864    7    SvSoft    4    

8

Подбор и обработка объектов Платформа 1С v7.7 Абонемент ($m)

Обработка позволяет переносить табличную часть из одного документа в другой. Или же из нескольких документов в один.

1 стартмани

02.09.2013    28512    59    Tavalik    4    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. TrinitronOTV 16 11.11.11 07:47 Сейчас в теме
спасибо за труд, хорошая обработка
2. Арчибальд 2709 11.11.11 12:07 Сейчас в теме
Ну, что ж. Весьма внятно. И наверное, полезно.
3. MYRZILKA123 2 14.11.11 11:59 Сейчас в теме
4. Demedra 16.11.11 11:58 Сейчас в теме
5. yuraos 1004 16.11.11 18:58 Сейчас в теме
Доброго всем времени суток!!!
Огромное спасибо за высокую оценку моих скромных стараний!
Нежданно-негаданно оказался "центре внимания".

Всем заинтересованным сообщаю, что выложена последняя версия обработки.
По ходу дела добавил кое каких бантиков, например:
1) выбор типа и вида объектов в красивом удобном диалоге в виде дерева:
Шоткат №4 в статье (требуется formex.dll)
2) заголовок при печати о типе объектов в списке
и т.п. ...
и убрал кое-какие баги,например:
1 если в переданном редактирования ссписке списке оказались пустые значения
(такая ситуация возможна, если список предварительно был сохранен функцией ЗначениеВФайл(,,)
в одной конфигурации и восстановлен функией ЗначениеИзФайла(,,) в другой не идентичной)
то 1С-ка в зависимости от типа объекта может вам собщить что-то вроде:
err Если Эл.ЭтоГруппа() = 1 Тогда
{C:\!DVLP-77\BASES\ПОДБОРUCHOICE.ERT(236)}: Значение не представляет агрегатный объект (ЭтоГруппа)

После чего ей (1С-ке) станет дурно ... и она решит не открывать обработку ;))).
2) при клике в списке выбранных объектов, если у них не предусмотрено формы (перечисление и т.п.), ничего не происходило.
теперь заполняется список меню объектов соответствущего типа и выставляется на показ в диалоге с установкой текущей строки в списке меню на текущем объекте (Скриншот №5 в статье).
6. Лена_Лена 17.11.11 12:00 Сейчас в теме
7. yuraos 1004 19.11.11 00:29 Сейчас в теме
Загружена очередная версия обработки:
1) поправил некоторые несуразности при редактировании фильтров по значениям реквизитов
для видов сравнений "в интервале", "больше равно", "меньше равно".
2) в предыдущих версиях могли "слететь" пиктограммы в таблицах диалога.
поэтому таблицам назначенны новые картинки. поправленны значения пиктограм.
назначенны свои пиктограммы для бухгалтерских счетов.
8. TREYDER 22.11.11 07:15 Сейчас в теме
Большое спасибо! Наконец то печать есть.
9. vkr 22.11.11 07:35 Сейчас в теме
(0) За печать - отдельное СПАСИБО !!!
З.Ы. А пишется, все-таки, шоРткат (от англ. "shortcut"), но - скриншОт (от англ. "screenshot")
Samigor; yuraos; +2 Ответить
10. yuraos 1004 22.11.11 21:01 Сейчас в теме
vkr пишет:

(0) За печать - отдельное СПАСИБО !!!
З.Ы. А пишется, все-таки, шо Р ткат (от англ. "sho r tcut"), но - скриншОт (от англ. "screenshot")

Спасибо за замечание. Щас поправим!!! ;))) на "скриншот"
11. yuraos 1004 26.11.11 18:47 Сейчас в теме
Доброго времени суток!
Перезагружен файл поставки.
Устранен незначительный баг:

Если у объекта есть атрибуты с идентификаторами,
совпадающими с именами служебных колонок "Пометка", "Статус" и "Объект",
то при изменении видимости дополнительных колонок
в таблице выбранных объектов возможны ошибки времени исполнения.

Проблема решена исключением этих реквизитов из списка дополнительных колонок.
12. CheBurator 2684 03.12.11 05:41 Сейчас в теме
Интересно, сделал автор возможность фильтрации объектов не только по значениям реквизита но и непосредственно по выбору самих объектов - весьма удобно в большом количестве случаев...
13. yuraos 1004 06.12.11 17:50 Сейчас в теме
CheBurator пишет:

Интересно, сделал автор возможность фильтрации объектов не только по значениям реквизита но и непосредственно по выбору самих объектов - весьма удобно в большом количестве случаев...

Дык...вроде специально не делал
;))))))))))
наверное исходная УОПО так умеет.
14. KrakoZyabl 77 08.12.11 13:27 Сейчас в теме
Ух ты, ого, большой труд и как следствие отличный результат!!!!!! Спасибо ++++.
15. nvhost 29.11.14 11:29 Сейчас в теме
Может Ребят я чего то не понимаю но где выбор списка действий с найденными объектами?выбрал я объекты, договора котрагентов, хочу всем поставить глубину кредита 7 дней и немогу с помощью этой обработки!ПРишлось искать на диске ИТС стандартную и пользовать!Что не так делаю?
16. yuraos 1004 30.11.14 10:14 Сейчас в теме
(15) nvhost,
Дело в том, что сама по себе обработка УОПО никаких действий над объектами не выполняет.

Она просто формирует список (таблицу) ссылок на объекты,
которую затем может вернуть в качестве значения подбора
или передать этот список объектов для дальнейшей действий обработке-плагину.
17. yuraos 1004 30.11.14 10:26 Сейчас в теме
(16)
Список обработок-плагинов "Выполняемое действие" в форме
заполняется по содержимому файла UCPlugIn.txt.

Если обработка УОПО внешняя - этот файл ищется в каталоге с файлом обработки.
Если обработка УОПА встроенная - этот файл ищется в стандартном каталоге внешних обработок: КаталогИБ() + "ExtForms\"

В том же каталоге должны лежать файлы самих обработок-плагинов.
18. yuraos 1004 30.11.14 10:31 Сейчас в теме
(17)
На диске ИТС для УОПО имеются следующие стандартные обработки-плагины:
******
Универсальные
"UCSetAtt.ert" , "Установка реквизитов"
"UCDelete.ert" , "Пометить на удаление"

Для справочников
"UCRefRen.ert" , "Перенумерация кодов", "Справочник"

Для документов
"UCDocRen.ert" , "Изменение номеров документов", "Документ"

Дополнительно
"UCExampl.ert" , "Пример написания новой обработки"
*****
PS
Если лень искать их на диске ИТС,
то можете взять их из архива во вложении к этому посту/
;)))))
Прикрепленные файлы:
UChoiceTest.rar
19. yuraos 1004 30.11.14 10:32 Сейчас в теме
(18)
в этом же архиве и сам файл UCPlugIn.txt, который также имеется на диске ИТС
Оставьте свое сообщение