Документация 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 - содержание