8.х Отправка счет-фактур на электронные ящики

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем smilebest, 20 авг 2009.

  1. TopicStarter Overlay
    smilebest
    Offline

    smilebest

    Регистрация:
    20 авг 2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    ситуация такая.
    База Бухгалтерия для Казахстана, редакция 1.5, Платформа: 1С:Предприятие 8.1 (8.1.13.41)
    Надо сделать чтобы выставленные счёт фактуры клиентам (которые сидят на абонентской плате), раз в месяц отправлялись им на почту.
    как это реализовать? в 1с в коде плохо разбираюсь никогда не пробовал заниматься подобным. поэтому если можно по подробней куда копать? гуглил искал готовую найти не смог. всем заранее спасибо.
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Вызовите спеца и пусть сделает. Будет и проще и дешевле.
  3. TopicStarter Overlay
    smilebest
    Offline

    smilebest

    Регистрация:
    20 авг 2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    спеца вызывать не хочется потому что хотелось бы написать самому есть опыт в php html css delphi. и есть желание изучить 1с так что если кто знает то посоветуйте с чего начать :)
  4. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    1. Надо определиться где вы будете хранить e-mail. Просто такой контактной инфы в бухгалтерии кажется нет. Как вариант использовать доп. информацию
    2. Вы хотите что-то типа кнопки в печатной форме конкретного документа или обработку, которая за период формирует пачку писем.
    3. А нафига клиентам СФ в электронном варианте??? К чему они их будут прикладывать???

    Далее... Вам надо сохранить печатную форму в Excel. Соответственно надо получить этот чудо документ. Соответственно надо или исправить конфу, сделав процедуру печати экспортной или написать свою процедуру печати.
    Эта процедура должна вам вернуть табличный документ, который вы сможете сохранить.

    Далее вам нужен офисовский аутлук, который поддерживает OLE соединение или ищите в сети примеры просто команд системы. Для офиса код:
    Код:
    	
    // включаем Outlook
    Попытка
    OutLook = Новый COMОбъект("Outlook.Application");
    Исключение
    Сообщить("Неудалось создать объект OutLook.", СтатусСообщения.Внимание);
    Возврат;
    КонецПопытки; 
    //
    // вот тут сами решаете откуда достать адрес
    Адрес = ОпределитьАдресПолучателя(Шапка.Получатель);
    Если Адрес = "" Тогда
    Сообщить("У данного контрагента отсутствует e-mail адрес", СтатусСообщения.Информация);
    КонецЕсли; 
    
    // создаем письмо
    Письмо = OutLook.CreateItem("0");
    Письмо.Subject = СформироватьЗаголовокДокумента(Шапка, "Счет на оплату");
    //Письмо.Body = 
    Письмо.To = Адрес;
    // вкладываем чудо файл, который вы предварительно сохранили
    Письмо.Attachments().Add(ПутьДляСохраненияФайла,1,1,СформироватьЗаголовокДокумента(Шапка, "Счет на оплату"));
    // открываем письмо или сразу отправляем его. Это кто как хочет
    Письмо.Display();
    
    
  5. TopicStarter Overlay
    smilebest
    Offline

    smilebest

    Регистрация:
    20 авг 2009
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    спс!
    1) емаил будет хранится в свойствах контрагента (вкладка контакты) там есть поле E-Mail
    2) обработка которая отправляет месячные счет на оплату или счёт фактуру (чтобы клиент был вкурсе сколько ему надо оплатить денег) КАЖДОМУ клиенту. тоесть каждая счёт фактура идёт на отдельный адрес.
    3) см выше.
    тоесть надо автоматизировать уведомление задолжностей клиентов по E-mail я думаю что это многим пригодится. кто заинтересован прошу помочь. и кстате в бух-ии нет вообще модуля по управлению почты.
  6. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Считаю, что использовать Outlook напряжно.. Ибо он не совсем адекватно ведет себя, когда получает запрос от 1С на подключение. Проще намного использовать ИнтернетПочта. А отправлять тоже несложно. Из модуля печати сф получить ТабДок. Его сохранить на жестком в опред. папке и подцепить вложением в ИнтернетПочтовомуСообщению. Вот и все. У меня таким образом вся рассылка по организации настроена, и никаких проблем.
  7. wiranata
    Offline

    wiranata Опытный в 1С

    Регистрация:
    21 янв 2009
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    До кучи еще анализатор правильности адреса.

    Код:
    //анализатор-правщик строки с адресом
    Функция ОбработатьСтрокуEmail(Строка,Контрагент=Неопределено)
    
    ПечИнформация="";
    ОбработаннаяСтрока = Строка;
    ДобавлятьВСписок=Истина;
    Пока НЕ(ПустаяСтрока(ОбработаннаяСтрока)) ИЛИ НЕ(ОбработаннаяСтрока=" ") Цикл
    ДобавлятьВСписок=Истина;
    Если Найти(ОбработаннаяСтрока, "@") = 0 Тогда
    Прервать;
    КонецЕсли;
    СтрокаБезПробелов = СокрЛП(ОбработаннаяСтрока);
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, "[", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, "]", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, "(", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, ")", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, "<", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, ">", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, "/", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, ",", " ");
    СтрокаБезПробелов = СтрЗаменить(СтрокаБезПробелов, ";", " ");				
    СтрокаБезПробелов = СокрЛП(СтрокаБезПробелов);
    ПервыйПробел = Найти(СтрокаБезПробелов, " ");
    Если ПервыйПробел = 0 Тогда
    Если Найти(СтрокаБезПробелов, "@")>0 Тогда
    Если СтрЧислоВхождений(СокрЛП(СтрокаБезПробелов), "@")>1 ИЛИ
    Найти(СтрокаБезПробелов, "@")=0 Тогда
    Если Контрагент<>Неопределено тогда
    Предупреждение ("Адрес контрагента "+Контрагент+" "+СокрЛП(СтрокаБезПробелов)+" имеет неправильную структуру");
    КонецЕсли;
    ДобавлятьВСписок=Ложь;
    КонецЕсли;
    Если ДобавлятьВСписок Тогда
    ПечИнформация=ПечИнформация + СокрЛП(СтрокаБезПробелов) + " ";
    Прервать;
    КонецЕсли;
    Прервать;
    КонецЕсли;
    Иначе
    ПроверяемаяСтрока = Сред(СтрокаБезПробелов, 1, ПервыйПробел-1);
    Если Найти(ПроверяемаяСтрока, "@")>0 Тогда
    Если СтрЧислоВхождений(СокрЛП(ПроверяемаяСтрока), "@")>1 ИЛИ
    Найти(ПроверяемаяСтрока, "@")=0 Тогда
    Если Контрагент<>Неопределено тогда
    Предупреждение ("Адрес контрагента "+Контрагент+" "+СокрЛП(ПроверяемаяСтрока)+" имеет неправильную структуру");
    КонецЕсли;	
    ДобавлятьВСписок=Ложь;
    КонецЕсли;
    Если ДобавлятьВСписок Тогда
    ПечИнформация=ПечИнформация + СокрЛП(ПроверяемаяСтрока) + ";";
    КонецЕсли;
    КонецЕсли;
    ОбработаннаяСтрока = Сред(ОбработаннаяСтрока, ПервыйПробел+1);
    КонецЕсли;
    КонецЦикла;
    Возврат ПечИнформация;
    
    КонецФункции
    
    

Поделиться этой страницей