Open DenisZuyev opened 4 years ago
//+ #211 Зуев Д.С 04.06.2020
пСтараяУчетнаяЗапись = Объект.УчетнаяЗапись;
пНоваяУчетнаяЗапись = узОбщийМодульСервер.ПолучитьЛичнуюУчетнуюЗапись();
Если пСтараяУчетнаяЗапись <> пНоваяУчетнаяЗапись Тогда
Объект.УчетнаяЗапись = пНоваяУчетнаяЗапись;
ИзменитьПодпись(пСтараяУчетнаяЗапись, пНоваяУчетнаяЗапись);
ЭлементСписка = Элементы.ОтправительПредставление.СписокВыбора.НайтиПоЗначению(пНоваяУчетнаяЗапись);
Если ЭлементСписка <> Неопределено Тогда
Объект.ОтправительПредставление = ЭлементСписка.Представление;
КонецЕсли;
Конецесли;
//- #211 Зуев Д.С 04.06.2020
//+ #211 Зуев Д.С 04.06.2020 Функция ПолучитьЛичнуюУчетнуюЗапись() Экспорт
Перем пУчетнаяЗапись;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| УчетныеЗаписиЭлектроннойПочты.Ссылка КАК Ссылка
|ИЗ
| Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты
|ГДЕ
| УчетныеЗаписиЭлектроннойПочты.ВладелецУчетнойЗаписи = &Пользователь";
Запрос.УстановитьПараметр("Пользователь", ПользователиКлиентСервер.ТекущийПользователь());
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
пУчетнаяЗапись = Результат.Ссылка;
КонецЕсли;
Возврат пУчетнаяЗапись;
КонецФункции
Есть же типовой метод, лучше использовать его.
РаботаСПочтовымиСообщениями.ДоступныеУчетныеЗаписи()
Ну и нет смысла слать сюда куски кода. Подготовьте Pull request.
Типовой метод который вернет таблицу значений... знаете толк в извращениях.
Не понял, в чем проблема?
в лишних манипуляциях, проверках.
@DenisZuyev Добрый день. Можете сделать доработку как описано в задаче и прислать изменения? #215
Не согласен с представленной реализацией функции получения личной учетной записи.
Во-первых, никаких лишних манипуляций и проверок я не предлагал. Напротив, код функции станет заметно лаконичнее:
Функция ПолучитьЛичнуюУчетнуюЗапись() Экспорт
УчетныеЗаписи = РаботаСПочтовымиСообщениями.ДоступныеУчетныеЗаписи(Истина, Ложь);
Возврат ?(ЗначениеЗаполнено(УчетныеЗаписи), УчетныеЗаписи[0].Ссылка, Неопределено);
КонецФункции
Считаю типовые проверки совсем не лишними. Как проверку на заполненность учетки, таки и на установку флага "Для отправки". Плюс включение сюда системной учетной записи также не лишнее, если учетка всего одна для всех.
Во-вторых, разработка собственной реализации вместо типовой добавляет в конфигурацию потенциальную уязвимость при дальнейших обновлениях БСП. Сегодня владелец учетки реквизит, завтра - колонка табличной части. Типовой программный интерфейс поправит сам вендор, а свои велосипеды мы будем править, когда выпадет ошибка пользователю.
@d-hurricane если не сложно сделай CF, у меня с этим проблема, я живу на продакшн конфе XD
@DenisZuyev Ок, но чуть позже. Может к концу недели. Открой обратно задачу, а то я могу забыть совсем про нее.
@d-hurricane теперь что-то делается не так. При отправке письма пишет "Выбранная учетная запись не доступна для отправки писем"
Надо так
УчетныеЗаписи = РаботаСПочтовымиСообщениями.ДоступныеУчетныеЗаписи(Истина, ,Ложь);
А проверка на заполнено там ни о чем, там всегда возвращается таблица. Её по количеству надо проверить.
Возможно, я действительно пропустил запятую. На вскидку не помню параметры функции. Что же касается проверки заполнения, то она корректна. Функция "ЗначениеЗаполнено" вернет "Ложь", если в указанной таблице значений нет строк.
Добрый день!
Я использую УЗ как почтовый клиент, это ещё с ITIL пришло. Но вот этот код всё портит, он не логичен для общения с сотрудниками внутри компании. Переделаем?
//+ #286 Иванов А.Б. 2017-12-17 Если Объект.Ссылка.Пустая() Тогда пСтараяУчетнаяЗапись = Объект.УчетнаяЗапись; пНоваяУчетнаяЗапись = узОбщийМодульСервер.ПолучитьУчетнуюЗаписьДляОтправкиУведомленийДляКонтрагентов(); Если пСтараяУчетнаяЗапись <> пНоваяУчетнаяЗапись Тогда Объект.УчетнаяЗапись = пНоваяУчетнаяЗапись; ИзменитьПодпись(пСтараяУчетнаяЗапись, пНоваяУчетнаяЗапись); ЭлементСписка = Элементы.ОтправительПредставление.СписокВыбора.НайтиПоЗначению(пНоваяУчетнаяЗапись); Если ЭлементСписка <> Неопределено Тогда Объект.ОтправительПредставление = ЭлементСписка.Представление; КонецЕсли;
Конецесли;