1с отчет в теле письма

Обновлено: 07.07.2024

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

Получить такие сведения можно при помощи отчетов, существующих в «1С:Управление торговлей 11» . Но далеко не всегда у руководителей есть время и желание вручную формировать отчеты непосредственно в системе – намного удобнее получать уже готовые отчеты на электронную почту, не открывая 1С.

В статье рассмотрим возможности прикладного решения «Управление торговлей, ред.11» по автоматической рассылке отчетов.

Применимость

Статья написана для редакции УТ 11.1. Если вы используете эту редакцию, отлично — прочтите статью и внедряйте рассмотренный функционал.

Если Вы работаете со старшими версиями УТ 11, то данный функционал является актуальным. В актуальных версиях для доступа к рассмотренному функционалу используйте команду Рассылки отчетов в разделе Печатные формы, отчеты и обработки подсистемы Администрирование.

Наиболее заметным отличием УТ 11.3/11.4 от редакции 11.1 является интерфейс Такси. Поэтому, чтобы освоить материал статьи — воспроизведите представленный пример на своей базе УТ 11. Таким образом Вы закрепите материал практикой :)

Рассылки отчетов

Виды рассылок

При создании новой рассылки необходимо указать ее вид (поле «Отправлять»).

Возможно выбрать один из трех вариантов:

  • Только мне (личная рассылка автора) – отчеты получит только пользователь, создавший данную рассылку. Указать список получателей нельзя, внести изменения в рассылку может только пользователь, ее создавший, или администратор системы.
  • Свой отчет для каждого пользователя – каждый пользователь получает свой личный отчет.
  • Отчеты указанным пользователям – каждый пользователь получит тот же самый отчет.

Рассылаемые отчеты

На закладке «Отчеты» при помощи кнопки «Включить в рассылку» необходимо выбрать конкретные варианты отчетов, которые необходимо разослать.

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

Периодичность отправки отчетов

Периодичность формирования и отправки отчетов задается на закладке «Расписание». Здесь можно указать конкретный день и время автоматической рассылки.

Доставка писем

  • Если выбран вид рассылки «Только мне» (личная рассылка автора), то письмо будет отправлено по единственному адресу, указанному в поле «Почтовый адрес».
  • Если выбран вид рассылки «Свой отчет для каждого пользователя», то письмо будет отправлено всем адресатам, указанным в отдельном списке.
  • При выбранном виде рассылки «Отчеты указанным пользователям», кроме отправки отчета по электронной почте становится доступной возможность сохранить отчет в папку, в сетевой каталог или на FTP-ресурс (галочка «Публиковать»).

Редактирование темы и тела письма выполняется по аналогии с использованием почтового клиента. При редактировании письма в формате HTML возможно применение элементов визуального оформления текста (цвет, размер шрифта, нумерованный список и т.д.).

В тексте допустимо использование параметров – определенных слов, заключенных в квадратные скобки. При отправке письма параметры будут преобразованы в соответствующие значения. Например, параметр «ДатаВыполнения» будет заменен на конкретную дату отправки отчета.

Формат отчета

Можно выбрать формат файла, в котором будет сохранен сформированный отчет. Это выполняется на закладке «Дополнительно».

По умолчанию используется формат HTML. Другой формат можно выбрать из приведенного ниже списка:

Для экономии места сформированные отчеты можно упаковать в ZIP-архив. Параметры архива можно также указать на закладке «Дополнительно».

Результат рассылки отчетов

В соответствии с указанными настройками письмо с рассылкой выглядит следующим образом.

Права доступа к рассылкам отчетов

Для работы с функционалом рассылок отчетов у пользователя информационной базы необходимо установить роль «Добавление изменение рассылок отчетов». Эта роль дает возможность изменять и добавлять рассылки, за исключением личных рассылок других пользователей.

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

Заключение

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

Механизм автоматической рассылки отчетов уже давно есть во всех типовых решения «1С:Предприятие» в управляемом приложении (БП 3.0, УТ 11, ЗУП 3.0 и другие), но что делать, если у Вас «старая» конфигурация? Данное решение позволяет организовать автоматическую рассылку отчетов по электронной почте из любой конфигурации «1С:Предприятие» в обычном приложении. Решение полностью автономно, не требует элементов конфигурации из типовых решений, а при их наличии будет интегрироваться с ними, и может работать с «Универсальными» отчетами, отчетами на СКД, а также с отчетами, логика которых написана разработчиком (об этом ниже).

Отличительной особенностью данного решения является:

  • Динамическое изменение периодических параметров отчета. Вы единожды настраиваете, за какой период (день, неделя, месяц, год и т.д.) необходимо получать отчет, и больше нет необходимости заходить в настройки отчета и изменять период, чтобы в следующий раз отчет «пришел» за нужный период. Да, существуют «условные» периоды (этот месяц, прошлый год и т.д.), которые решают эту проблему, но к сожалению такую периодичность редко встретишь в отчетах в обычном приложении.
  • Для каждого отчета настраивается индивидуальное расписание рассылки.
  • Настройка заголовка отчета на СКД. Вы можете использовать значение параметров и отборов для настройки текста заголовка отчета. Также можно настроить заголовки выводимых полей.

Интеграция

Для интеграции решения с Вашей информационной базой зайдите в «Конфигуратор», откройте конфигурацию.

Открытие конфигурации

Конфигурация на поддержке

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

Выполните сравнение и объединение с конфигурацией из файла.

Пользователям, которые будут создавать настройки рассылок отчетов, необходимо установить роль «Рассылка отчетов».

Настройка рассылки

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

Открытие настроек рассылки

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

Настройки рассылки

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

Выбор типа добавляемого отчета

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

Список отчетов

В «шапке» формы настройки рассылки отчета Вы можете указать наименование, удобное для Вас (по умолчанию это синоним отчета), вид отчета (определяется программой автоматически, но Вы можете его изменить, от этого параметра зависит логика работы рассылки, если указан вид «Произвольный», то в модуле объекта отчета необходимо реализовать процедуру « СформироватьОтчет(<ТабличныйДокумент>, <НастройкиОтчета>) », в первый параметр передается табличный документ, в который необходимо вывести результат отчета, во второй параметр выбранные настройки отчета с уже измененными периодическими параметрами), а также установить признак того, что текущая настройка активна (без этого признака автоматическая рассылка не будет работать).

Шапка настроек рассылки

Настройка периодических параметров

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

Контекстное меню периодических параметров

  • Начало/Конец – начало или конец сдвигаемого периода (например: начало месяца, конец года).
  • Сдвиг – направление сдвига периода (Предыдущий, Текущий, Следующий, Сдвиг на N периодов).
  • Периодичность – периодичность сдвига периода (День, Неделя, Декада, Месяц, Квартал, Полугодие, Год).
  • Количество сдвигов – это поле доступно для редактирование при условии, что «Сдвиг» установлен в значение «Сдвиг на N периодов». Вы можете указать произвольное количество сдвигов периода, как в плюс, так и в минус.
  • Результат – здесь Вы всегда можете увидеть результат сдвига относительно текущего времени.

Периодические параметры

При необходимости рассылки отчета по определенной настройке Вы можете указать ее в табличной части «Настройки отчета». При изменении этой настройки отчета в дальнейшем изменения также будут применены к рассылаемому отчету.

Выбор настройки отчета

Настройте расписание рассылки отчета нажатием на гиперссылку «Настроить расписание».

Настройка заголовков отчета

Если вид рассылаемого отчета «СКД», Вам будет доступна вкладка «Дополнительно», на которой Вы можете настроить заголовок отчета.

Помимо текста в заголовке отчета возможно использование исполняемого кода, для этого используйте квадратные скобки « [] », аналогично шаблонам в табличном документе.

Доступно обращение к параметрам и отборам настройки отчета.

Для обращения к параметрам используйте переменную "Параметры".

Пример: « Продажи с [Параметры.НачалоПериода] по [Параметры.КонецПериода] », будут подставлены значения соответствующих параметров.

Для обращения к отборам используется переменная "Отбор". В качестве имени отбора может использоваться как его "Левое значение", так и "Представление", если указано (актуально для не однословных отборов или для отборов через точку). Для отборов доступны следующие реквизиты: "Использование", "ВидСравнения", "Значение".

Пример: « Продажи[?(Отбор.Орг.Использование, " по организации: " + Отбор.Орг.Значение, "")] », если используется отбор по организации, то в заголовок отчета будет выведено значение отбора.

Используйте перенос строки для разбивки длинного заголовка на несколько строк.

Настройка заголовка отчета

Настройка получателей

На вкладке «Получатели» Вы можете указать как пользователя из одноименного справочника (при его наличии в Вашей конфигурации), если у пользователя указан e-mail в контактной информации, он будет использоваться по умолчанию для рассылки, так и e-mail, на который необходимо отправлять отчет, так-же можно указать каталог для сохранения файла отчета или скомбинировать оба варианта. Выбрать тип файла для отправки (XLSX, XLS, PDF, DOCX, HTML, ODS). И указать признак необходимости архивировать файл перед отправкой (в данном случае получатель получит zip архив с файлов отчета выбранного типа).


Обо всех ошибках в работе рассылки отчетов программа будет сообщать в журнал регистрации (имя события – «ОшибкаРассылкиОтчетов»).

Отправка отчета

Пример реализации рассылки

Для начала создадим и сохраним настройку отчета (назовем ее «Продажи по крупным клиентам»), в которой установим отбор по группе контрагентов.

Создаем новую настройку рассылки отчета, в списке отчетов выбираем наш отчет по продажам. Вид отчета определен верно - это отчет на СКД, установим наименование настройки «Ежедневные продажи по крупным клиентам», установим признак «Активная».

Пример шапка отчета

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

Пример периодические параметры

В списке настроек отчета выберем созданную нами настройку «Продажи по крупным клиентам».

Пример выбор настройки отчета

Для удобства настроим заголовок отчета, в котором будет выводиться информация о периоде формирования отчета. Для этого на вкладке «Дополнительно» напишем « Продажи за [Формат(Параметры.ПериодФормированияОтчета.ДатаНачала, "ДФ='d MMMM yyyy'")], по крупным клиентам ».

Пример настройка заголовка

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

Пример настройка получателей

Пример результат рассылки

В демонстрационной базе отсутствует информация по продажам за 8 марта 2016 года, но сама рассылка отработала, полностью выполнив условия задачи.

Примечание

Данное решение легко интегрируется с любой конфигурацией, работающей в обычном приложении, как в типовые решения "1С:Предприятие", так и в "самописные" конфигурации.

Возможна доработка существующего функционала под Ваши требования. Все доработки оговариваются отдельно.

После интеграции с Вашей информационной базой Вы можете самостоятельно осуществлять доработку решения, код программы открыт.

При обнаружении ошибок в работе программы они будут устранены, а Вам выслано бесплатное обновление.

Все интересующие вопросы Вы можете задать в комментарии.

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

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

1. И самое основное для создания рассылки необходимо создать фоновое задание и процедуру формирования рассылки. Для этого я создал общий модуль "ПочтовыеРассылки" и установил в свойствах что он является "Серверным" и свойствах "Вызов сервера=Истина" + "Привилегированный=Истина".
Далее в него добавил 2 процедуры:

//Пропишем параметры соединения
//ip адрес или имя SMTP сервера
Профиль . АдресСервераSMTP = "*********" ;

//Порт SMTP сервера
Профиль . ПортSMTP = "***" ;

//Имя пользователя почтового ящика
Профиль . Пользователь = "***********" ;

//Пароль доступа к почтовому ящику
Профиль . Пароль = "******************" ;

//При необходимости добавляем аутентификацию
Профиль . АутентификацияSMTP = СпособSMTPАутентификации . БезАутентификации ;
//Профиль.ПарольSMTP = Профиль.Пароль;
//Профиль.ПользовательSMTP = Профиль.Пользователь;
// Создаем объект для работы с почтой
Почта = Новый ИнтернетПочта ;

//Выполняем подключение, согласно указанный параметров
Попытка
Почта . Подключиться ( Профиль );
Исключение
//При подключении возникла ошибка, сообщим
Сообщить ( "Ошибка при подключении к серверу" + ОписаниеОшибки ());
Возврат ;
КонецПопытки ;

УстановитьПривилегированныйРежим ( Истина );
СхемаКомпоновкиДанных = СтруктураФормирования . СхемаКомпоновкиДанных ;
//Настройки=СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Если СтруктураНастроек=Неопределено тогда
// КомпоновщикНастроекКомпоновкиДанных = СтруктураФормирования.КомпоновщикНастроекКомпоновкиДанных;
//Иначе
// КомпоновщикНастроекКомпоновкиДанных = СтруктураНастроек.КомпоновщикНастроекКомпоновкиДанных;
//КонецЕсли;

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

ТемпФайл = ПолучитьИмяВременногоФайла ( Строка ( СтруктураФормирования . СтруктураФайла . ТипФайлаТабличногоДокумента ));

//ТабДок.Записать(ТемпФайл,ТипФайлаТабличногоДокумента.HTML4);
ТабДок . Записать ( ТемпФайл , СтруктураФормирования . СтруктураФайла . ТипФайлаТабличногоДокумента );
Если СтруктураФормирования . СтруктураФайла . Файлом тогда
СтруктураФормирования . СтрктуруПисьма . Вставить ( "Вложения" , ТемпФайл );
Иначе
Текст = Новый ЧтениеТекста ( ТемпФайл );
СтруктураФормирования . СтруктураПисьма . Вставить ( "Тело" , Текст . Прочитать ());
Текст = Неопределено ;
КонецЕсли ;


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

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

Представьте или вспомните как это обычно бывает:

  • Приходит письмо
  • Мы видим факт прихода письма, его тему, но конкретики нет
  • Открываем письмо
  • Открываем вложение
  • Вдумчиво читаем
  • Реагируем

Классно было бы сократить это до операций:

  • Пришло письмо
  • В шторке телефона или в окне оповещений Windows видим содержимое письма
  • Реагируем

Но мы же программисты, можем помочь сами себе и облегчить себе же жизнь!

Давайте сделаем какое то ключевое слово, если мы его напишем в шаблоне письма, программа поймет, что ей нужно вставить содержимое отчетов в текстовую часть е-мейла. Пусть это будет

напишем так в стиле имеющихся ключевых слов шаблона рассылки отчета.

Слава расширениям, мы можем выполнить свой код с директивой

И ничего не сломаем.

Нам нужно обратиться к ПараметрыДоставки.ШаблонТекста, понять, что нужно вставить содержимое файлов в текстовую часть письма. Дальше прочитать Вложения, перевести их в текст, вставить этот текст вместо ключевого слова шаблона. Звучит очень просто, давайте уже напишем код.

Обычно письмо о проблеме выглядит так:


Ясно, понятно. Только у нас куча этих обработок, одновременно запущенных, под разные версии, разные порты. Как понять, какая именно зависла? Открываю письмо, открываю вложение, читаю.

Нет, сделаем проще! Смотрите как классно:


Из стандартного оповещения Windows я вижу не только то, что пришло письмо о проблеме, но и конкретную проблему. Я даже не открою это письмо, потому что уже знаю его содержимое, я просто сразу отреагирую - зависла обработка, запущенная на порту 1242. Чиню.

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

Читайте также: