Добрый день, дорогие друзья, недавно делал рассылку по формированию ошибок в обмене и честно, в интернете этом вашем столько информации, везде все делают по-разному, и пришлось играть в строителя и собирать всю информацию по крупицам из различных источников, поэтому я захотел все это объединить для того, чтобы у вас была одна маленькая инструкция по написанию регламентных рассылок в 1С с помощью БСП, без воды и строго по делу.
Все создание до элементарного простое, если мы хотим выводить таблицу, нам потребуется воспользоваться услугами HTML, для этого тело нашего сообщения мы поделим на три части
НачалоТаблицы = "
|<html>
|<body>
|Список номенклатуры
|<br><br>
|<table border=1 cellspacing=0 bordercolor='black'>
|<thead>
|<th bgcolor=""#eadbaf"">Номенклатура</th><th bgcolor=""#eadbaf"">Артикул</th>
|</thead>
|<tbody>";
ЗначениеТаблицы = "";
КонецТаблицы = "
|</tbody>
|</table>
|</body>
|</html>";
Внутри переменной "НачалоТаблицы" мы указываем шапку перед таблицей и создаём колонки с названиями, в которые и будем запихивать все необходимые данные.
После чего получим все необходимые данные из запроса и с помощью цикла заполним значение нашей таблицы
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товары молочка");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ВидНоменклатуры = &ВидНоменклатуры";
Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтрокаТаблицы = "<tr align=center>" + Символы.ПС + "<td nowrap=""1"">" +
ВыборкаДетальныеЗаписи.Наименование + "</td><td>" + ВыборкаДетальныеЗаписи.Артикул + "</th>";
ЗначениеТаблицы = ЗначениеТаблицы + Символы.ПС + СтрокаТаблицы;
КонецЦикла;
Делаем проверку на заполнение, после чего самое вкусное, буквально в пару строк мы указываем адресатов, шапку нейма смс, тело и обязательно указываем тип нашего тела, иначе мы просто отправим HTML код в письме
Если ЗначениеЗаполнено(ЗначениеТаблицы) Тогда
Таблица = НачалоТаблицы + ЗначениеТаблицы + КонецТаблицы;
ИмяБазы = НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref");
УчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
ПараметрыРассылки = Новый Структура;
ПараметрыРассылки.Вставить("Кому","ВАШАПОЧТА");
ПараметрыРассылки.Вставить("Тема","Список номенклатуры" + ИмяБазы);
ПараметрыРассылки.Вставить("Тело", Таблица);
ПараметрыРассылки.Вставить("ТипТекста", ТипТекстаПочтовогоСообщения.HTML);
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыРассылки);
КонецЕсли;
По итогу в самой 1С, мы видим ее вот так

После чего мы добавляем номенклатуру в дополнительные отчеты и обработки, добавляем необходимое расписание для рассылки
А на почту к нам приходит вот такое сообщение:


Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.17.227
Вступайте в нашу телеграмм-группу Инфостарт