Загрузка из файла для отборов отчета

06.08.09

Разработка - Универсальные функции

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

Файлы

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

Наименование Скачано Купить файл
-
.1249550508 9,13Kb
56 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Замучали пользователи тем, что частенько им необходимо в отборе использовать большущий список данных (например, список контрагентов). Такой список может быть очень большим и забивать его очень долго. Сохранение настроек не всегда подходит, т.к. данные могут менятся. Поэтому после небольших размышлений пришла в голову идея написать данную обработку.

Т.к. в большинстве случаев (у нас) используются отчеты на базе "Универсального отчета", то данная возможность по умолчанию используется именно в нем, чтобы можно ее было использовать в любом таком отчете. Но, заглядывая вперед, было предусмотрено, что это может потребоваться не только в отчетах на базе "Универсального отчета". Поэтому это можно прикрутить к любому отчету (при желании).  Smile

Как работает данная штука:

В форму передается построитель отчета. При открытии проверяется, какие поля есть в отборе. Проверяются уже добавленные, а не все возможные. Если поле в отборе не указано, то оно и не отработается. Проверка заключается в следующем: можно использовать ссылки на элементы справочника, а также другие значения (кроме ссылок на документы).  Например, можно использовать ссылку на элементы справочника номенклатуры, можно использовать реквизит "Наименование" и т.п. В случае, если поле отбора является ссылкой на элемент справочника, то поиск значений ведется по коду. Во всех остальных случая в список добавляется значение из файла.

Для заполнения необходимо указать:

  • какое поле отбора будет заполняться
  • какой вид поля будет использоваться (в случае составных типов полей в поле отбора)
  • при помощи какого приложения будет происходить загрузка (можно грузить из mxl или из xls)
  • имя файла, из которого будет вестить загрузка
  • начальную строку, с которой будет происходить чтение данных
  • номер колонки, из которой будут браться данные

Для предварительного просмотра списка можно использовать кнопку "Загрузить из файла (предварительный просмотр результата)"

Для загрузки списка в поле отбора необходимо нажать кнопку "Занести значения"

Для встраивания в конфигурацию необходимо:

  • открыть прилагаемую обработку
  • скопировать форму "ФормаЗагрузкиИзФайлаДляОтбораВОтчетах" в общие формы (чтобы можно было использовать не только в "Универсальном отчете")

Чтобы можно было использовать данную возможность в "Универсальном отчете" (и в отчетах, построенных на его базе), нужно:

  • открыть форму "ФормаНастройка" универсального отчета
  • в процедуре "ПриОткрытии" в конце вставить следующий код:
//Для панели 1
НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Вставить(0,"НовыйРазделитель", ТипКнопкиКоманднойПанели.Разделитель);
       
НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Вставить(0,"ДействиеЗагрузитьИзФайла", ТипКнопкиКоманднойПанели.Действие, "Загрузка значений", Новый Действие("ОсновныеДействияФормыДействиеЗагрузитьИзФайла"));
НоваяКнопка.Отображение = ОтображениеКнопкиКоманднойПанели.Авто;
НоваяКнопка.Картинка = БиблиотекаКартинок.ДополнительныеПоляОтчета;
НоваяКнопка.Подсказка = "Загрузка значений из файла для отбора в отчетах";
НоваяКнопка.Пояснение = "Загрузка значений из файла для отбора в отчетах";
     
//Для панели 2
НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы1.Кнопки.Вставить(0,"НовыйРазделитель", ТипКнопкиКоманднойПанели.Разделитель);
      
НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы1.Кнопки.Вставить(0,"ДействиеЗагрузитьИзФайла", ТипКнопкиКоманднойПанели.Действие, "Загрузка значений", Новый Действие("ОсновныеДействияФормыДействиеЗагрузитьИзФайла"));
НоваяКнопка.Отображение = ОтображениеКнопкиКоманднойПанели.Авто;
НоваяКнопка.Картинка = БиблиотекаКартинок.ДополнительныеПоляОтчета;
НоваяКнопка.Подсказка = "Загрузка значений из файла для отбора в отчетах";
НоваяКнопка.Пояснение = "Загрузка значений из файла для отбора в отчетах";
       
//Для панели 3
НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы2.Кнопки.Вставить(0,"НовыйРазделитель", ТипКнопкиКоманднойПанели.Разделитель);
       
НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы2.Кнопки.Вставить(0,"ДействиеЗагрузитьИзФайла", ТипКнопкиКоманднойПанели.Действие, "Загрузка значений", Новый Действие("ОсновныеДействияФормыДействиеЗагрузитьИзФайла"));
НоваяКнопка.Отображение = ОтображениеКнопкиКоманднойПанели.Авто;
НоваяКнопка.Картинка = БиблиотекаКартинок.ДополнительныеПоляОтчета;
НоваяКнопка.Подсказка = "Загрузка значений из файла для отбора в отчетах";
НоваяКнопка.Пояснение = "Загрузка значений из файла для отбора в отчетах";

- добавить процедуру "ОсновныеДействияФормыДействиеЗагрузитьИзФайла"

Процедура ОсновныеДействияФормыДействиеЗагрузитьИзФайла(Кнопка)
   
    ФормаЗагрузки = ПолучитьОбщуюФорму("ФормаЗагрузкиИзФайлаДляОтбораВОтчетах");
    ФормаЗагрузки.ПостроительОтчета = ЭтотОбъект.ПостроительОтчета;
    ФормаЗагрузки.ОткрытьМодально();
   
КонецПроцедуры

Код открыт, так что можете допилить под себя  Smile

За код сильно не пинайте. Все делалось в ходе экспериментов. Embarassed

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    5472    Abysswalker    11    

47

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    10105    DeerCven    15    

64

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    61367    dimanich70    86    

176

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    8424    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    77124    atdonya    31    

74

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    10641    ke.92@mail.ru    18    

68
Для отправки сообщения требуется регистрация/авторизация