![]() |
|
Получать данные из ТЗ по итогам | ☑ | ||
---|---|---|---|---|
0
Vladislava-smile
09.09.15
✎
04:24
|
Есть такая таблица:
Док ДоговорКонтрагента Менеджер Начальник 1 1 Иванов Кириллов 2 2 Петров Филатов 3 3 Сидоров Кириллов 4 4 Капустин Филатов Нужно сделать рассылку на почту начальника какие документы по договорам контрагентов были отправлены одним письмом. Я предполагаю что так можно сделать только через обход по группировкам в запросе, загрузив в него врем. ТЗ, в методах ТЗ не нашла подобного ничего ... Правильно я понимаю? |
|||
1
Смотрящий
09.09.15
✎
04:39
|
(0) Сортироваться по колонке Начальник, и циклом собирать документы
|
|||
2
Vladislava-smile
09.09.15
✎
06:40
|
(1) - Спасибо, сделала уже так:
Запрос=Новый Запрос; Запрос.Текст=("ВЫБРАТЬ РАЗРЕШЕННЫЕ | ВнешняяТаблица.Ссылка КАК Ссылка, | ВнешняяТаблица.Контрагент КАК Контрагент, | ВнешняяТаблица.ДоговорКонтрагента КАК ДоговорКонтрагента, | ВнешняяТаблица.Остаток КАК Остаток, | ВнешняяТаблица.ЭлАдресДоговораКонтрагента КАК ЭлАдресДоговораКонтрагента, | ВнешняяТаблица.Менеджер КАК Менеджер, | ВнешняяТаблица.ЭлАдресМенеджера КАК ЭлАдресМенеджера, | ВнешняяТаблица.Начальник КАК Начальник, | ВнешняяТаблица.ТелефонКонтрагента КАК ТелефонКонтрагента |ПОМЕСТИТЬ ВнешняяТаблица |ИЗ | &ВнешняяТаблица КАК ВнешняяТаблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВнешняяТаблица.Ссылка, | ВнешняяТаблица.Контрагент, | ВнешняяТаблица.ДоговорКонтрагента, | ВнешняяТаблица.Остаток, | ВнешняяТаблица.ЭлАдресДоговораКонтрагента, | ВнешняяТаблица.Менеджер, | ВнешняяТаблица.ЭлАдресМенеджера, | ВнешняяТаблица.Начальник КАК Начальник, | ВнешняяТаблица.ТелефонКонтрагента |ИЗ | ВнешняяТаблица КАК ВнешняяТаблица |ИТОГИ ПО | Начальник"); Запрос.УстановитьПараметр("ВнешняяТаблица", ТЗ); ВыборкаНачальник=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНачальник.Следующий() цикл Если ЗначениеЗаполнено(ВыборкаНачальник.Начальник) тогда ТекНачальник=ВыборкаНачальник.Начальник; ПочтаНачальника=""; НайтиКонтактПочта(ТекНачальник, ПочтаНачальника); ТекстПисьма=""; ТекстПисьма = "<h3>Акты сверки по организации "+Организация+" отправлены контрагентам:</h3>"; ТекстПисьма = ТекстПисьма + "<table border='1px'><th>Контрагент</th><th>Договор контрагента</th><th>Телефон контрагента</th><th>Менеджер</th><th>Эл. адрес менеджера</th>"; ВыборкаДетали=ВыборкаНачальник.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл Если ЗначениеЗаполнено(ВыборкаДетали.ЭлАдресДоговораКонтрагента) тогда ТекстПисьма = ТекстПисьма + "<tr>"; ТекстПисьма = ТекстПисьма + "<td>" + ВыборкаДетали.Контрагент + "</td>"; ТекстПисьма = ТекстПисьма + "<td>" + ВыборкаДетали.ДоговорКонтрагента + "</td>"; ТекстПисьма = ТекстПисьма + "<td>" + ВыборкаДетали.ТелефонКонтрагента + "</td>"; ТекстПисьма = ТекстПисьма + "<td>" + ВыборкаДетали.Менеджер + "</td>"; ТекстПисьма = ТекстПисьма + "<td>" + ВыборкаДетали.ЭлАдресМенеджера + "</td>"; ТекстПисьма = ТекстПисьма + "</tr>"; КонецЕсли; КонецЦикла; // ОТПРАВКА ПИСЬМА НАЧАЛЬНИКУ ОтправкаАктов = Справочники.ОбъектыРассылки.НайтиПоКоду("000000007"); Отправитель = ОтправкаАктов.УчетнаяЗаписьОтправителя; Получатели = Новый СписокЗначений; Для каждого Получатель из ОтправкаАктов.УчетныеЗаписиПочты Цикл Получатели.Добавить(Получатель.ПочтаПолучателя); КонецЦикла; Почта = Неопределено; ПочтаПодключена = Ложь; Если ЗначениеЗаполнено(Отправитель) Тогда Почта = Новый ИнтернетПочта(); Попытка Почта.Подключиться(УправлениеЭлектроннойПочтой.ПолучитьИнтернетПочтовыйПрофиль(Отправитель)); ПочтаПодключена = Истина; Исключение КонецПопытки; КонецЕсли; Если ПочтаПодключена Тогда Если ЗначениеЗаполнено(Получатель) Тогда ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение; ПочтовоеСообщение.Тема = "Отправленные акты сверки " + Формат(ТекущаяДата(),"ДЛФ=ДД"); ПочтовоеСообщение.Отправитель.Адрес = Отправитель; ПочтовоеСообщение.Получатели.Добавить(); ПочтовоеСообщение.Получатели.Добавить(Получатели); ПочтовоеСообщение.Отправитель.ОтображаемоеИмя=Отправитель.ПолноеНаименование(); ПочтовоеСообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.HTML); Попытка Почта.Послать(ПочтовоеСообщение); Сообщить("Письмо начальнику отдела продаж "+ТекНачальник+" отправлено."); Исключение КонецПопытки; КонецЕсли; КонецЕсли; // --------------------------------------------------------------------------- КонецЕсли; КонецЦикла; |
|||
3
echo77
09.09.15
✎
07:06
|
Среди методов ТЗ нет, но можно по-другому выпрлнить обход по группировкам. Получить таблицу-список уникальных значений "группировки", сделать цикл по значениям этого списка, методом найтистроки() выбирать из таблицы значения относящиеся к "группировке", обрабатывать их в цикле при необходимости выносить в отдельную таблицу методом найтистроки().
Если таблица огромная добавить в нее индекс |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |