Документация Sync1C - содержание
Дополнительные возможности / Рассылка оповещений
В каталог настроек Sync1C можно добавить файл с именем НастройкиОповещений.xml.
Если этот файл присутствует, то Sync1C будет посылать оповещения о важных событиях, в соответствии с настройками в этом файле.
Структура файла такая:
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиОповещений>
<События>
<Событие Имя="ИмяСобытия1">
<Транспорт> Email-админу </Транспорт>
(другие настройки для этого события)
</Событие>
<Событие Имя="ИмяСобытия2">
<Транспорт> Email-менеджеру </Транспорт>
<Транспорт> ЗаписатьВФайл </Транспорт>
(другие настройки для этого события)
</Событие>
</События>
<Транспорты>
<Транспорт Тип="ИнтернетПочтовыйПрофиль" Имя="Email-админу">
(настройки для этого транспорта)
</Транспорт>
<Транспорт Тип="ИнтернетПочтовыйПрофиль" Имя="Email-менеджеру">
(настройки для этого транспорта)
</Транспорт>
<Транспорт Тип="ЗаписьВФайлы" Имя="ЗаписатьВФайл">
(настройки для этого транспорта)
</Транспорт>
</Транспорты>
</НастройкиОповещений>
Т.е. в этом файле описываются настройки событий, о которых надо оповещать, и настройки транспортов, которые будут доставлять оповещения.
В настройках событий указываются нужные транспорты. Например: отправить сообщение по электронной почте, записать сообщение в файл... Неплохо бы ещё добавить возможность отправлять СМС, писать в телеграм, и т.д. - но пока этого нет. Возможно, сделаю позже. Одному событию может быть назначено сразу несколько транспортов. В примере файла (выше) вы могли заметить, что оповещение о событии "ИмяСобытия2" посылается по электронной почте менеджеру, и заодно записывается в файл. На какой конкретно адрес электронной почты, и куда именно в файл - это уже указывается в настройках транспортов.
Для проверки оповещений можно спровоцировать событие "Ошибка" - например, если в настройках убрать виды цен.
Настройки событий
Настройка события выглядит следующим образом:
<Событие Имя="ИмяСобытия1">
<Транспорт> ИмяТранспорта1 </Транспорт>
<Транспорт> ИмяТранспорта2 </Транспорт>
<ТемаСообщения> Произошло событие1 в {{Время}} </ТемаСообщения>
<ТекстСообщения>
При работе с сайтом {{Сайт}} случилось то-то и то-то. {EOL/}
Когда это было: {{Дата}} {{Время}}
</ТекстСообщения>
</Событие>
<Событие Имя="ИмяСобытия1"> Имя события - это одно из предопределённых значений: Ошибка, АвтовыполнениеОтработало, и т.д. Все они описаны далее.
<Транспорт> - это имя одного из транспортов в этом же файле. Эти имена вы придумываете сами. Когда случается событие - программа ищет транспорты с указанными именами,
если находит - отправляет оповещение этими транспортами. Если транспорт не найден - на данный момент это ошибкой не считается. Если транспортов с нужным именем несколько -
на данный момент это тоже не считается ошибкой, оповещение будет отправлено каждым таким транспортом. Термин "на данный момент" означает, что сейчас программа действует так,
но я не уверен, что это правильное поведение, и могу его изменить в будущем, поэтому не советую на него полагаться. Лучше не указывать несуществующих транспортов,
и давать им всем уникальные имена.
<ТемаСообщения> - это текстовый шаблон для краткого описания события. Транспорт электронной почты будет использовать его в качестве темы письма.
Транспорт СМС, когда появится - будет отправлять только эту тему, игнорируя подробное описание.
<ТекстСообщения> - это текстовый шаблон для подробного описания события. Транспорт электронной почты будет использовать его для текста письма.
Поскольку этот шаблон может быть длинным - для него предусмотрена дополнительная обработка в программе. Предполагается, что шаблон занимает несколько строк (в примере выше - 2 строки).
Программа в каждой строке убирает пробельные символы спереди и сзади, и сцепляет всё в единый текст, добавляя по одному пробелу между строками. Символы концов строк тоже удаляются,
поэтому в шаблон надо добавлять {EOL/} (End Of Line) в нужных местах.
В шаблонах можно использовать свойства событий, в таком виде: {{ИмяСвойства}}. У всех событий есть одни и те же общие свойства.
Кроме них, у каждого события есть собственные свойства, специфичные для данного события.
Общие свойства для всех событий
{{Сайт}}- адрес обрабатываемого сайта{{Дата}}- текущая дата, дд.мм.гггг{{Время}}- текущее время, чч:мм:сс
Событие АвтовыполнениеОтработало
Событие АвтовыполнениеОтработало возникает, если автовыполнение было запущено по расписанию, и выполнило свою работу.
Свойства этого события:
{{ПервоначальноеКоличествоНовых}}- сколько было строк в таблице Новые в начале автовыполнения{{ПервоначальноеКоличествоИзменившихся}}- сколько было строк в таблице Изменились в начале автовыполнения{{ПервоначальноеКоличествоЛишних}}- сколько было строк в таблице Лишние в начале автовыполнения{{ПервоначальноеКоличествоЗаказов}}- сколько было строк в таблице Заказы в начале автовыполнения
{{ОбработаноНовых}}- сколько строк в таблице Новые обработано (добавлено на сайт){{ОбработаноИзменившихся}}- сколько строк в таблице Изменились обработано (цена и/или количество на сайте обновились){{ОбработаноЗаказов}}- сколько строк в таблице Заказы обработано (создано заказов в 1С)
{{ОсталосьНовых}}- сколько строк осталось в таблице Новые после автовыполнения{{ОсталосьИзменившихся}}- сколько строк осталось в таблице Изменились после автовыполнения{{ОсталосьЛишних}}- сколько строк осталось в таблице Лишние после автовыполнения{{ОсталосьЗаказов}}- сколько строк осталось в таблице Заказы после автовыполнения
{{ЛимитОбщихИтераций}}- значение настройки: сколько раз подряд можно повторять процедуру обработки заказов, изменившихся, и новых, если они не закончились{{ЛимитИтерацийЗаказов}}- значение настройки: сколько раз подряд можно повторять обработку заказов (внутри общей итерации), если они не закончились
{{НомерОбщейИтерации}}- номер итерации, оставшийся в конце автовыполнения{{НомерИтерацииЗаказов}}- номер итерации заказов, оставшийся в конце автовыполнения{{КоличествоОбработокЗаказов}}- сколько раз выполнялась обработка заказов
Событие АвтопроверкаНашлаПроблемы
Событие АвтопроверкаНашлаПроблемы возникает, если автопроверка проверила сайт и обнаружила проблемы.
Свойства этого события:
{{Проблемы}}- текст проблем, которые обнаружила автопроверка (массив строк)
Событие Ошибка
Событие Ошибка возникает, если при работе модуля происходит ошибка в программе.
Свойства этого события:
{{ТекстОшибки}}- текст сообщения об ошибке
Настройки транспортов
Транспорт ИнтернетПочтовыйПрофиль
Этот транспорт предназначен для отправки писем по электронной почте. Своё имя он получил по названию используемого объекта 1С. Настройки транспорта выглядят так:
<Транспорт Тип="ИнтернетПочтовыйПрофиль" Имя="EMail-Yandex">
<ИнтернетПочтовыйПрофиль>
(настройки объекта 1С ИнтернетПочтовыйПрофиль)
</ИнтернетПочтовыйПрофиль>
<EmailПолучателя> admin@example.ru </EmailПолучателя>
<EmailПолучателя> manager@example.ru </EmailПолучателя>
<EmailОтправителя> sync1c@example.ru </EmailОтправителя>
</Транспорт>
Как видите, этому транспорту можно указать сразу несколько получателей. Описание настроек объекта 1С ИнтернетПочтовыйПрофиль можно получить таким образом:
- запустите 1С в режиме Конфигуратор
- в главном меню выберите Справка / Синтакс-помошник
- переключитесь на вкладку Индекс
- задайте ИнтернетПочтовыйПрофиль
Пример настроек для сервиса Яндекс Почта:
<ИнтернетПочтовыйПрофиль> <POP3ПередSMTP> </POP3ПередSMTP> <АдресСервераIMAP> imap.yandex.ru </АдресСервераIMAP> <АдресСервераPOP3> </АдресСервераPOP3> <АдресСервераSMTP> smtp.yandex.ru </АдресСервераSMTP> <АутентификацияПоТокену> </АутентификацияПоТокену> <ИспользоватьSSLIMAP> Истина </ИспользоватьSSLIMAP> <ИспользоватьSSLPOP3> </ИспользоватьSSLPOP3> <ИспользоватьSSLSMTP> Истина </ИспользоватьSSLSMTP> <Пароль> </Пароль> <ПарольIMAP> пароль_приложения_яндекс_почты </ПарольIMAP> <ПарольSMTP> пароль_приложения_яндекс_почты </ПарольSMTP> <Пользователь> </Пользователь> <ПользовательIMAP> пользователь_яндекс_почты </ПользовательIMAP> <ПользовательSMTP> пользователь_яндекс_почты </ПользовательSMTP> <ПортIMAP> 993 </ПортIMAP> <ПортPOP3> </ПортPOP3> <ПортSMTP> 465 </ПортSMTP> <Таймаут> </Таймаут> <ТокенДоступа> </ТокенДоступа> <ТолькоЗащищеннаяАутентификацияIMAP> </ТолькоЗащищеннаяАутентификацияIMAP> <ТолькоЗащищеннаяАутентификацияPOP3> </ТолькоЗащищеннаяАутентификацияPOP3> <ТолькоЗащищеннаяАутентификацияSMTP> </ТолькоЗащищеннаяАутентификацияSMTP> </ИнтернетПочтовыйПрофиль>
Справка Яндекса по настройке доступа к почте (создание пароля приложения, и необходимые параметры - почтовый сервер, порт и т.д.): https://yandex.ru/support/mail/mail-clients/others.html
Кстати, для mail.ru у меня тоже получалось настроить отправку писем, для GMail - нет. Это не значит, что это невозможно - может быть мне просто не хватило терпения или внимательности.
Транспорт ЗаписьВФайлы
Этот транспорт записывает сообщение в файл. Каталог для таких файлов указывается в настройках транспорта. Также указывается максимальное количество файлов в этом каталоге - если их станет больше, то старые будут удалены.
Настройки транспорта выглядят так:
<Каталог> Оповещения </Каталог> <МаксимумФайловВКаталоге> 200 </МаксимумФайловВКаталоге> <СколькоОставлятьФайловПослеОчистки> 100 </СколькоОставлятьФайловПослеОчистки>
<Каталог> - Можно указать абсолютный и относительный путь. Если путь относительный, то он вычисляется от каталога с настройками Sync1C.
В данном примере это будет подкаталог Оповещения в каталоге с настройками.
<МаксимумФайловВКаталоге> - Если после записи файла их количество превышает данное сначение, то будет выполнена очистка каталога, т.е. старые файлы будут удалены.
<СколькоОставлятьФайловПослеОчистки> - как понятно из названия, указывает, сколько файлов надо оставить в каталоге после очистки.
Имя файла формируется таким образом:
ммдд ччмм тема-сообщения[ + суффикс].txt
ммдд ччмм - месяц, день, часы, минуты на момент формирования имени файла. Например, для 12.10.2022 10:42:05 это будет 1012 1042.
Благодаря этому префиксу, файлы легко отсортировать по порядку возникновения событий, префикс получается вполне понятный, и не сильно длинный,
поскольку не включает год и секунды, которые, в сущности, здесь и не нужны.
тема-сообщения - тема сообщения (сформированная по шаблону <ТемаСообщения> настроек события), из которой удалены недопустимые для имен файлов символы: <>:* и т.д.
[ + суффикс] - дополнительный номер по порядку, если такое имя файла уже существует. Квадратные скобки указывают, что суффикс необязателен - если имя файла получилось уникальным,
то он не добавляется. Но если в течение одной минуты произойдёт 2 одинаковых события - то имя второго файла будет заканчиваться на " + 1.txt".
Образец файла НастройкиОповещений.xml
<?xml version="1.0" encoding="UTF-8"?>
<НастройкиОповещений>
<События>
<Событие Имя="АвтовыполнениеОтработало">
<Транспорт> ПодкаталогОповещений </Транспорт>
<ТемаСообщения> Sync1C - {{Сайт}} обновлено зин {{ОбработаноЗаказов}} {{ОбработаноИзменившихся}} {{ОбработаноНовых}}, з {{КоличествоОбработокЗаказов}} о {{НомерОбщейИтерации}}/{{ЛимитОбщихИтераций}} </ТемаСообщения>
<ТекстСообщения>
{{Дата}} {{Время}} {{Сайт}} АвтовыполнениеОтработало {EOL/}
{EOL/}
Первоначальное количество заказов: {{ПервоначальноеКоличествоЗаказов}} {EOL/}
Первоначальное количество изменившихся: {{ПервоначальноеКоличествоИзменившихся}} {EOL/}
Первоначальное количество новых: {{ПервоначальноеКоличествоНовых}} {EOL/}
Первоначальное количество лишних: {{ПервоначальноеКоличествоЛишних}} {EOL/}
{EOL/}
ЗИН (заказов, изменившихся, новых): {EOL/}
Обработано заказов: {{ОбработаноЗаказов}} {EOL/}
Обработано изменившихся: {{ОбработаноИзменившихся}} {EOL/}
Обработано новых: {{ОбработаноНовых}} {EOL/}
{EOL/}
Количество выполнений обработки заказов: {{КоличествоОбработокЗаказов}} {EOL/}
Финальный номер общей итерации: {{НомерОбщейИтерации}} из {{ЛимитОбщихИтераций}} {EOL/}
{EOL/}
Осталось заказов: {{ОсталосьЗаказов}} {EOL/}
Осталось изменившихся: {{ОсталосьИзменившихся}} {EOL/}
Осталось новых: {{ОсталосьНовых}} {EOL/}
Осталось лишних: {{ОсталосьЛишних}} {EOL/}
</ТекстСообщения>
</Событие>
<Событие Имя="Ошибка">
<Транспорт> email-admin-supervisor </Транспорт>
<Транспорт> ПодкаталогОповещений </Транспорт>
<ТемаСообщения> Sync1C - {{Сайт}} ошибка обновления сайта </ТемаСообщения>
<ТекстСообщения> {{Дата}} {{Время}} при выполнении регламентного обновления сайта {{Сайт}} произошла ошибка:{EOL/}{{ТекстОшибки}} </ТекстСообщения>
</Событие>
</События>
<Транспорты>
<Транспорт Тип="ЗаписьВФайлы" Имя="ПодкаталогОповещений">
<Каталог> Оповещения </Каталог>
<МаксимумФайловВКаталоге> 20 </МаксимумФайловВКаталоге>
<СколькоОставлятьФайловПослеОчистки> 15 </СколькоОставлятьФайловПослеОчистки>
</Транспорт>
<Транспорт Тип="ИнтернетПочтовыйПрофиль" Имя="email-admin-supervisor">
<ИнтернетПочтовыйПрофиль>
<POP3ПередSMTP> </POP3ПередSMTP>
<АдресСервераIMAP> imap.yandex.ru </АдресСервераIMAP>
<АдресСервераPOP3> </АдресСервераPOP3>
<АдресСервераSMTP> smtp.yandex.ru </АдресСервераSMTP>
<АутентификацияПоТокену> </АутентификацияПоТокену>
<ИспользоватьSSLIMAP> Истина </ИспользоватьSSLIMAP>
<ИспользоватьSSLPOP3> </ИспользоватьSSLPOP3>
<ИспользоватьSSLSMTP> Истина </ИспользоватьSSLSMTP>
<Пароль> </Пароль>
<ПарольIMAP> xxxx </ПарольIMAP>
<ПарольSMTP> xxxx </ПарольSMTP>
<Пользователь> </Пользователь>
<ПользовательIMAP> user1 </ПользовательIMAP>
<ПользовательSMTP> user1 </ПользовательSMTP>
<ПортIMAP> 993 </ПортIMAP>
<ПортPOP3> </ПортPOP3>
<ПортSMTP> 465 </ПортSMTP>
<Таймаут> </Таймаут>
<ТокенДоступа> </ТокенДоступа>
<ТолькоЗащищеннаяАутентификацияIMAP> </ТолькоЗащищеннаяАутентификацияIMAP>
<ТолькоЗащищеннаяАутентификацияPOP3> </ТолькоЗащищеннаяАутентификацияPOP3>
<ТолькоЗащищеннаяАутентификацияSMTP> </ТолькоЗащищеннаяАутентификацияSMTP>
</ИнтернетПочтовыйПрофиль>
<EmailОтправителя> user1@yandex.ru </EmailОтправителя>
<EmailПолучателя> admin@mysite.ru </EmailПолучателя>
<EmailПолучателя> supervisor@mysite.ru </EmailПолучателя>
</Транспорт>
</Транспорты>
</НастройкиОповещений>
Далее: Дополнительные возможности / Автозапуск и автовыполнение
Обратно: Дополнительные возможности / Переключение между сайтами
Документация Sync1C - содержание
