Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите разобраться с кодом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
sergeytor
Привет! Прошу помощи, с 7.7 не совсем в ладах..

Документ "Счет на Оплату" на нем есть кнопка "Отправить на почту" присвоена процедура Отправить()
Есть СписокЗначений - СЗ для вывода адреса почты.
Флажок "Отправить по Почте" - присвоена проц Видно()

Проблема в том что документ отправляется по почте но приходит только печатный бланк в формате 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=");
  
КонецПроцедуры



 ! 

Ознакомьтесь с правилами! Выделяйте код!
 
logist
Цитата(sergeytor @ 31.05.12, 19:54) необходимо зарегистрироваться для просмотра ссылки
печатный бланк в формате dbf

А как это - печатный бланк DBF?? 44000000.gif
sergeytor
ошибс,я бланк в pdf выходит
Ardi
Выкладывайте всю базу.
alex040269
тут скорее всего разбираться нужно с "http://192.168.0.253/crm/bots/buh/sendorder.php?email=", как он работает, что за пустой
линк
Вы ему передаете?
И зачем Вы выложили процедуру
ИтоговаяСтрочкаМыло
которая нигде не вызывается?
Ardi , как всегда прав, давайте ВСЕ!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.