Моя ошибка при рассылке писем

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

	//Если внутренним, внешним не рассылаем...
	ОбработанныеПолучателиПисемВнутренние = ОбработатьСтрокуПочтовыхАдресов(ПолучателиПисемВнутренние);
	Если ТолькоВнутреннимПолучателям Тогда
		ПолучателиСтрокой = ОбработанныеПолучателиПисемВнутренние;
	Иначе
		ПолучателиСтрокой = ОбработатьСтрокуПочтовыхАдресов(ПолучателиПисем);
	КонецЕсли;

Но она все равно уходила рабочим клиентам из ПолучателиПисем. Хорошо хоть, ушла правильно, только получатели получили по два письма.

Долго смотрел на код и не мог понять, в чем проблема. Пока случайно не нашел ошибку чуть дальше по коду:

МассивПолучателей = ПолучитьПолучателейИзСтроки(ПолучателиСтрокой);

Функция ПолучитьПолучателейИзСтроки(Знач ПолучателиСтрокой) Экспорт
	ПолучателиСтрокой = ОбработатьСтрокуПочтовыхАдресов(ПолучателиПисем);
	МассивПолучателей = СтрРазделить(ПолучателиСтрокой, ",", ложь);
	Результат = Новый Массив();
	Для Каждого ТекПолучатель Из МассивПолучателей Цикл
		ТекПолучатель = СокрЛП(ТекПолучатель);
		Если ТекПолучатель = "" Тогда
			Продолжить;
		КонецЕсли;
		Результат.Добавить(ТекПолучатель);
	КонецЦикла;
	Возврат Результат;
КонецФункции

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

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *