Документ "Счет на Оплату" на нем есть кнопка "Отправить на почту" присвоена процедура Отправить()
Есть СписокЗначений - СЗ для вывода адреса почты.
Флажок "Отправить по Почте" - присвоена проц Видно()
Проблема в том что документ отправляется по почте но приходит только печатный бланк в формате dbf без данных, где они пропадают не могу
понять, не судите строго.. с 7.7 почти не дружу...
Код...
Процедура ИтоговаяСтрочкаМыло(Док)
СпрТов = СоздатьОбъект("Справочник.Номенклатура");
СуммаМинус = 0;
СуммаБезМинус = 0;
НДСМинус = 0;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
Если СпрТов.НайтиПоКоду("11",0) = 1 тогда // Вознаграждение
Если Док.Товар=СпрТов.ТекущийЭлемент() тогда
СуммаМинус = СуммаМинус + Док.СуммаСНДС;
СуммаБезМинус = СуммаБезМинус + Док.СуммаБезНДС;
НДСМинус = НДСМинус + Док.НДС;
Иначе
Если СпрТов.НайтиПоКоду("2991",0) = 1 тогда // Вознаграждение МВЛ
Если Док.Товар=СпрТов.ТекущийЭлемент() тогда
СуммаМинус = СуммаМинус + Док.СуммаСНДС;
СуммаБезМинус = СуммаБезМинус + Док.СуммаБезНДС;
НДСМинус = НДСМинус + Док.НДС;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если СпрТов.НайтиПоКоду("2991",0) = 1 тогда // Вознаграждение МВЛ
Если Док.Товар=СпрТов.ТекущийЭлемент() тогда
СуммаМинус = СуммаМинус + Док.СуммаСНДС;
СуммаБезМинус = СуммаБезМинус + Док.СуммаБезНДС;
НДСМинус = НДСМинус + Док.НДС;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Док.Билеты = 1 тогда
Если Найти(СокрЛП(Док.Описание),"Вознаграждение") > 0 тогда
СуммаМинус = СуммаМинус + Док.СуммаСНДС;
СуммаБезМинус = СуммаБезМинус + Док.СуммаБезНДС;
НДСМинус = НДСМинус + Док.НДС;
КонецЕсли;
КонецЕсли;
Если (Док.Товар = Константа.Скидка) ИЛИ (Найти(СокрЛП(Док.Товар.Наименование),"Скидка") > 0) тогда
СуммаМинус = СуммаМинус + Док.СуммаСНДС;
СуммаБезМинус = СуммаБезМинус + Док.СуммаБезНДС;
НДСМинус = НДСМинус + Док.НДС;
КонецЕсли;
КонецЦикла;
ИтогВсего = ?(Док.ЦеныВклНДС=1,(Док.Итог("СуммаСНДС")-СуммаМинус-СуммаМинус),(Док.Итог("СуммаБезНДС")-СуммаБезМинус-СуммаБезМинус));
НДСВсего = ?(Док.Итог("НДС")=0,"",?((Док.Итог( "НДС")-НДСМинус-НДСМинус)>0,(Док.Итог( "НДС")-НДСМинус-НДСМинус),""));
БезНДС = Док.Итог("СуммаБезНДС")-СуммаБезМинус-СуммаБезМинус;
ИтСНДС = Док.Итог("СуммаСНДС")-СуммаМинус-СуммаМинус;
Если Приз = 1 тогда
ИтогВсего=ИтСНДС;
Иначе
ИтогВсего = БезНДС;
КонецЕсли;
КОплате = ИтСНДС;
//СтрокаКВозврату = "К оплате: ";
//СтрокаКВозврату = СтрокаКВозврату + СокрЛП(Формат(?(ЦеныВклНДС=1,(Итог("СуммаСНДС")-СуммаМинус-СуммаМинус),(Итог("СуммаБезНДС")-СуммаБезМинус-СуммаБезМинус)),"Ч19.2-,"));
//СтрокаКВозврату = СтрокаКВозврату + ", в т.ч. НДС: "+СокрЛП(Формат(?(Итог("НДС")=0,"",?((Итог( "НДС")-НДСМинус-НДСМинус)>0,(Итог( "НДС")-НДСМинус-НДСМинус),"")),"Ч19.2-,"));
//СтрокаКВозврату = СтрокаКВозврату + ", без НДС: "+СокрЛП(Формат((Итог("СуммаБезНДС")-СуммаБезМинус-СуммаБезМинус),"Ч19.2-,"));
КонецПроцедуры
Процедура ОбработкаСЗ()
// лепим список адресов и отмечаем
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Адрес");
ТЗ.НоваяКолонка("Имя");
ТЗ.НоваяКолонка("Отправка");
СпрАдр=СоздатьОбъект("Справочник.ЭлектроАдреса");
СпрАдр.ИспользоватьВладельца(Заказчик);
СпрАдр.ВыбратьЭлементы();
КолАдр = 0;
Пока СпрАдр.ПолучитьЭлемент()=1 Цикл
КолАдр = КолАдр+1;
//ПолучательМыло = СпрАдр.Наименование;
ТЗ.НоваяСтрока();
ТЗ.Адрес = СпрАдр.Наименование;
ТЗ.Имя = СпрАдр.Имя;
ТЗ.Отправка = СпрАдр.Отправка;
КонецЦикла;
СЗ.УдалитьВсе();
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Пр = 59 - СтрДлина(ТЗ.Адрес);
СтрЗн = ТЗ.Адрес;
Пока Пр>0 Цикл
СтрЗн = СтрЗн+" ";
Пр = Пр-1;
КонецЦикла;
СЗ.ДобавитьЗначение(СтрЗн+" "+ТЗ.Имя);
СЗ.Пометка(ТЗ.НомерСтроки,?(ТЗ.Отправка>0,1,0));
КонецЦикла;
// слепили
КонецПроцедуры
//************
Процедура НаМыло()
перем ИмяФ;
СпрАдр=СоздатьОбъект("Справочник.ЭлектроАдреса");
СпрАдр.ИспользоватьВладельца(Заказчик);
СпрАдр.ВыбратьЭлементы();
КолАдр = 0;
Пока СпрАдр.ПолучитьЭлемент()=1 Цикл
КолАдр = КолАдр+1;
СпрАдр.Отправка = СЗ.Пометка(КолАдр);
СпрАдр.Записать();
КонецЦикла;
ПолучательМыло="";
//посмотрим есть ли записи в справочнике адресов
СпрАдр=СоздатьОбъект("Справочник.ЭлектроАдреса");
СпрАдр.ИспользоватьВладельца(Заказчик);
СпрАдр.ВыбратьЭлементы();
КолАдр = 0;
Пока СпрАдр.ПолучитьЭлемент()=1 Цикл
КолАдр = КолАдр+1;
ПолучательМыло = СпрАдр.Наименование;
КонецЦикла;
Если КолАдр=0 тогда
//ПолучательМыло = СокрЛП(Докум.Заказчик.Мыло);
//Иначе
Если ВвестиСтроку(ПолучательМыло,"Не указан e-mail. Введите его или заполните справочник.",255)=0 тогда
СтатусВозврата(0); Возврат;
КонецЕсли;
КонецЕсли;
Если ПустаяСтрока(ПолучательМыло)=1 тогда
СтатусВозврата(0); Возврат;
КонецЕсли;
// дергаем скрипт
Если ЗагрузитьВнешнююКомпоненту("V7Plus.dll") = 0 Тогда
Предупреждение("Неудачная попытка загрузить V7.dll");
СтатусВозврата(0);
Возврат;
КонецЕсли;
линк = "";
HTTPСоединение = СоздатьОбъект("AddIn.V7HttpReader");
Если ПустаяСтрока(ПолучательМыло)=0 тогда
Если КолАдр=0 тогда
Если Найти(ПолучательМыло,"@")<>0 тогда
HTTPСоединение.Получить("http://192.168.0.253/crm/bots/buh/sendorder.php?email="+ПолучательМыло+"&d="+ДатаДок+"&baza=0",линк,2);
Сообщить("Счет № отправлен на e-mail: "+ПолучательМыло);
Иначе
//HTTPСоединение.Получить("http://192.168.0.253/crm/bots/buh/sendorder.php?n="+НомСчет+"&f="+ПолучательМыло+"&baza=0",линк,2);
//Сообщить("Счет №"+НомСчет+" отправлен на факс: "+ПолучательМыло);
КонецЕсли;
Иначе
СпрАдр.ВыбратьЭлементы();
Пока СпрАдр.ПолучитьЭлемент()=1 Цикл
ПолучательМыло = СпрАдр.Наименование;
Если ПустоеЗначение(ПолучательМыло)=1 тогда продолжить; КонецЕсли;
Если СпрАдр.Отправка>0 тогда
Если Найти(ПолучательМыло,"@")<>0 тогда
HTTPСоединение.Получить("http://192.168.0.253/crm/bots/buh/sendorder.php?email="+ПолучательМыло+"&d="+ДатаДок+"&baza=0",линк,2);
Сообщить("Счет № отправлен на e-mail: "+ПолучательМыло);
Иначе
//HTTPСоединение.Получить("http://192.168.0.253/crm/bots/buh/sendorder.php?n="+НомСчет+"&f="+ПолучательМыло+"&baza=0",линк,2);
//Сообщить("Счет №"+НомСчет+" отправлен на факс: "+ПолучательМыло);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
//Иначе
// HTTPСоединение.Получить("http://192.168.0.253/crm/bots/buh/sendorder.php?n="+НомСчет,линк,2);
КонецЕсли;
КонецПроцедуры
Процедура Отправка()
СпрАдр=СоздатьОбъект("Справочник.ЭлектроАдреса");
СпрАдр.ИспользоватьВладельца(Заказчик);
СпрАдр.ВыбратьЭлементы();
КолАдр = 0;
Пока СпрАдр.ПолучитьЭлемент()=1 Цикл
КолАдр = КолАдр+1;
СпрАдр.Отправка = СЗ.Пометка(КолАдр);
СпрАдр.Записать();
КонецЦикла;
НаМыло();
// ЗапуститьПриложение("mailto:sergey81tor@yandex.ru?subject=");
КонецПроцедуры
! | Ознакомьтесь с правилами! Выделяйте код! |