gifts2017

Загрузка массива значений любого одного типа из табличного документа.

Опубликовал Эстер Коган (e.kogan) в раздел Программирование - Практика программирования

Наконец-то добрались руки довести до ума вот эту разработку: http://infostart.ru/public/19392/
Теперь всё интегрировано в ОДНУ форму - можно сделать общей, можно встраивать по месту.

Суть разработки состоит в довольно простом вопросе, часто задаваемом от пользователей: "у меня есть список объектов, хочу посмотреть отчёт только по ним, а в списке сотни строк". Список формировали неизвестно чем - кто в Excel изгаляется над обороткой - номенклатуру интересную выбирает и продавцов её посмотреть хочет, кто в хитром СКДшном отчёте контрагентов собрал, а контактных данных там же не нашёл... но стыковочные реквизиты есть, и что-то ещё по ним понять можно. А вот вбивать руками в отбор какого-то отчёта или обработки всю эту кучу пользователь почему-то категорически не хочет. Ну мы люди добрые, организуем ему возможность полениться? Wink


Форма может работать как в качестве общей, так и в качестве дополнительной к любому объекту.
Вызов формы для работы со списком сводится к двум командам (будет ли форма общей - вам решать).

1. ПолучитьОбщуюФорму("ФормаРедактированияЗагрузкиСписка").ОбработатьУстановкуОтбора(ЭтаФорма,Элемент,СтандартнаяОбработка);

Эту команду следует вызывать в случаях, когда нужно обработать поле отбора и аналогичные ему, в событии "НачалоВыбора" таких элементов.
Обработка сама опознает, нужна ли в данном случае работа со списком.
Пример для отбора СКД (БыстрыйОтбор - интерфейсный элемент, связанный с отбором СКД).

	 Процедура ПриОткрытии()
    Для каждого КолонкаОтбора из ЭлементыФормы.БыстрыйОтбор.Колонки Цикл
        Если Найти(КолонкаОтбора.Имя,"Значение")<>0 и Найти(КолонкаОтбора.Имя,"Дата")=0 Тогда
            КолонкаОтбора.ЭлементУправления.УстановитьДействие("НачалоВыбора",Новый Действие("БыстрыйОтборЗначениеНачалоВыбора"));
        КонецЕсли;
        //[Прочие обработчики]
    КонецЦикла;
КонецПроцедуры

Процедура БыстрыйОтборЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка)
    ПолучитьОбщуюФорму("ФормаРедактированияЗагрузкиСписка").ОбработатьУстановкуОтбора(ЭтаФорма,Элемент,СтандартнаяОбработка);
КонецПроцедуры

2. ИсходныйСписок = ПолучитьОбщуюФорму("ФормаРедактированияЗагрузкиСписка").ЗагрузитьМассивЗначений(ТипЗначенияЭлементов,ИсходныйСписок);

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


Помимо прочего, умеет обычный подбор значений и ещё разворачивает подобранные группы при необходимости. Очищает список одним щелчком, при имеющихся элементах и загрузке из таблицы - спрашивает, дописывать или заполнить заново, для обработки многотипных списков достаточно просто вызвать несколько раз, выбирая разные типы.Cool
Конечно, можно использовать не только в отчётах - это работа с любыми списками, см. вторую процедуру.
 
Наши пользователи ею уже избалованы - будьте осторожны, если у вас типовые конфигурации! Во внешних отчётах привыкли  пользоваться - так уже спрашивают, а почему, мол, оборотку так не делаете? А расчётную ведомость? Laughing
 
З.Ы. Подробности интеграции описаны в текстовом макете ПравилаРаботы.
 
17.12.10 13:25 - подправила привязки. 
29.12.10 - исправила ошибку при отказе от загрузки из таблицы (не возвращалось на страницу списка, копипастер фигов...)  и простановку кнопки по умолчанию.
20.12.11 - теперь форму можно просто копировать, вообще ничего не изменяя (тестовая процедурка вынесена в модуль обработки).
 
03.10.12 - закинула под 8.2, ускоренную и вообще вылизанную почти до блеска (плюс по ГУИДам поиск для админов). 

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

Наименование Файл Версия Размер Кол. Скачив.
Файл с ускоренным чтением из таблицы, возможностью загрузки по ГУИД для 8.2
.epf 32,74Kb
03.10.12
35
.epf 32,74Kb 35 Скачать
ЗагрузкаМассиваИзТаблицы.epf
.epf 31,57Kb
03.10.12
98
.epf 31,57Kb 98 Скачать

См. также

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

Комментарии

1. Яков Коган (Yashazz) 21.12.10 17:37
Давно и с удовольствием пользуюсь, потому не считаю накруткой свой плюс. Действительно, оказалась на редкость удобная вещица.
2. Кирилл Раковский (RakovskiyK) 14.12.12 01:29
прошу прощения, за возможную недалекость, но вопрос - можно ли с помощью данной обработки загружать справочники?
3. Эстер Коган (e.kogan) 18.12.12 14:48
(2) RakovskiyK, с помощью данной обработки можно прочитать в список значений существующие в системе элементы, если эти элементы совпадают по указанным реквизитам с тем, что во вставленной табличке.

Загрузка из Excel - другая вещь.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа