Рассылка отчетов на БСП. Расширение периодических параметров

19.09.13

Разработка - БСП (Библиотека стандартных подсистем)

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

Файлы

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

Наименование Скачано Купить файл
Пример отчета для рассылки БСП
.erf 8,38Kb
16 2 500 руб. Купить

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

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

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

Случай из практики. Есть УТ 11 (используется БСП) и некий внешний отчет, который показывает информацию за определенный период. Необходимо рассылать его каждую пятницу с периодом формирования 1 неделя, т.е. с пятницы прошлой недели до четверга текущей недели.

Создаем рассылку. В качестве параметра КонецПериода выбираем Начало вчерашнего дня - получаем четверг текущей недели.

рис.1

А вот для того, чтобы "попасть" в прошлую пятницу, вариантов стандартного периода недостаточно.

рис.2

Чтобы восполнить этот недостаток я решил использовать следующий способ:

1. Создаю 2 дополнительных строковых параметра, в которые буду записывать выражение для вычисления периодов.

рис.3

2. В процедуре модуля объекта ПриКомпоновкеРезультата описываю вывод отчета программно, где задаю значения периодам их соответствующими выражениями на встроенном языке.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

    Попытка
        МакетКомпоновки.ЗначенияПараметров.НачалоПериода.Значение = Вычислить(МакетКомпоновки.ЗначенияПараметров.ВыражениеНачалоПериода.Значение);
        МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение = Вычислить(МакетКомпоновки.ЗначенияПараметров.ВыражениеКонецПериода.Значение);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры

Теперь, при создании рассылки, в значения параметров записывю соответсвующие выражения для получения нужной даты.

рис.4

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

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

3254 руб.

21.11.2024    11831    45    24    

51

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

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

06.02.2026    2265    manul1c    5    

18

Рефакторинг и качество кода БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Использование Библиотеки стандартных подсистем позволяет разработчикам 1С значительно ускорить процесс создания решений за счет готового универсального кода, поддерживаемого и обновляемого официальным вендором. В статье рассказывается про роль и применение «Библиотеки стандартных подсистем» (БСП), примеры интеграции и подключения подсистем.

23.09.2025    9660    AlexeyPROSTO_1C    1    

18

БСП (Библиотека стандартных подсистем) Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    5176    _seerco2002    0    

34

Нейросети БСП (Библиотека стандартных подсистем) Инструментарий разработчика Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Telegram-бот для разработчиков 1С, работающих с БСП. Если не знаете нужный под задачу метод или не помните название, то опишите боту задачу и получите список подходящих экспортных методов из общих модулей БСП.

02.09.2025    6621    krasnov322    22    

42

Анализ учета БСП (Библиотека стандартных подсистем) 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Расширение для конфигураций на базе БСП 3.х. Позволяет создавать новые отчеты путем соединения или объединения других отчетов.

22.05.2025    5195    213    seperblunt    9    

28
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AlX0id 19.09.13 00:06 Сейчас в теме
Мощно. Так прямо и захотелось вбить в параметр "0; Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл Объ = Выборка.ПолучитьОбъект(); Объ.Удалить(); КонецЦикла" :)
2. valafan 121 19.09.13 07:31 Сейчас в теме
(1) AlX0id, само собой это для служебного пользования )) хотя можно и фильтры поставить
3. AlX0id 19.09.13 08:59 Сейчас в теме
(2)
Да не надо фильтров - достаточно использовать Вычислить в вашем случае )
4. valafan 121 19.09.13 09:52 Сейчас в теме
(3) AlX0id, спасибо, поправлю
5. randa 88 26.09.13 19:52 Сейчас в теме
У Вас из УТ11 или БСП работает регламентное задание по рассылке отчетов? Тобишь в автоматическом режиме отправляется?
6. valafan 121 27.09.13 08:01 Сейчас в теме
(5) randa, да, в клиент-серверной базе
7. randa 88 27.09.13 08:58 Сейчас в теме
(6) Спасибо, разобрался! На форуме нашел, оказывается для регламентного задания "РассылкиОтчетов" на общий реквизит "ОбластьДанных" стояла авторегистрация, это было причиной.
Для отправки сообщения требуется регистрация/авторизация