Тендеры на корпоративные проекты

Если у вас планируется проект, и вы хотите получить лучшее предложение, оставьте заявку. Мы проведем экспертизу требований, подберем оптимальное решение и команду проекта.

Оставить заявку

Внимание! Текущий статус - «архив». Проект - не будет показано в списке проекты. Комментарий: «Всем спасибо. Выбрано готовое решение.»
В список проектов
Название: Оптимизация функции рассылки документов
Город: Москва
Предполагаемый бюджет: 5 000 руб.
Категория: Email рассылки
Конфигурация: 1С:Бухгалтерия 3.0
Платформа: Платформа 1С v8.x (все механизмы)
Сроки: От 1 ч. до 7 дн.
Бюджет: От 4 000 руб. до 9 900 руб.
Статус: Поиск исполнителя

1. Оценка проекта
и выбор
исполнителя
Претенденты
отправляют оценку стоимости и сроков выполнения проекта. Заказчик ведет переговоры и выбирает одного исполнителя.
2. Создание
этапов проекта со
стоимостью и сроками
Исполнитель
создает этап проекта,
в котором указаны стоимость, срок выполнения работ и список задач, которые необходимо
выполнить.
3. Депонирование
оплаты
Заказчик
перечисляет денежные средства на депонент. После получения депонента, исполнитель приступает к выполнению
работ.
4. Выполнение
работ и
сдача-приемка работ
заказчику
Исполнитель
выполняет работы по каждому этапу проекта. После сдачи-приемки этапа заказчику, исполнитель получает оплату
с депонента.
5. Рейтинг и отзывы
об исполнителе
и заказчике
Заказчик
оставляет отзыв об исполнителе. Исполнитель
оставляет отзыв о заказчике.

О проекте

1. нужно через стандартные функции обеспечить рассылку документов контрагенту. (Счета и Акты)
2. настроить правильное формирование печатных форм. сейчас почему то не появляется факсимиле.

Функция СформироватьИОтправитьПечатныеДокументы(    
        МассивДокументов,  
        АдресПочты,  
        Тема,
        Отправлять,
        ЧерезВебСервис,
        Знач ФорматФайла = "PDF"
    )
    
    Если МассивДокументов.Количество() = 0 Тогда
        Возврат "Нет подходящих документов для печати";
    КонецЕсли;
    
    ДопСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок", "Время отправки на email");
                
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |    ""СчетНаОплатуПокупателю"" Как ТипДокумента,
    |    ""СчетЗаказ"" Как ФормаДокумента,
    |    СчетНаОплату.Ссылка КАК Ссылка,
    |    СчетНаОплату.Номер КАК Номер,
    |    СчетНаОплату.Контрагент КАК Контрагент,
    |    СчетНаОплату.Организация КАК Организация
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    |        ПО СчетНаОплату.Ссылка = ДополнительныеСведения.Объект
    |            И (ДополнительныеСведения.Свойство = &ДопСвойство)
    |ГДЕ
    |    СчетНаОплату.Ссылка В(&МассивДокументов)
    |    И (НЕ &ПроверятьОтправку
    |            ИЛИ ДополнительныеСведения.Значение ЕСТЬ NULL)
    |
    |ОБЪЕДИНИТЬ
    |
    |ВЫБРАТЬ
    |    ""РеализацияТоваровУслуг"" Как ТипДокумента,
    |    ""Акт"" Как ФормаДокумента,
    |    Акт.Ссылка КАК Ссылка,
    |    Акт.Номер КАК Номер,
    |    Акт.Контрагент КАК Контрагент,
    |    Акт.Организация КАК Организация
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК Акт
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    |        ПО Акт.Ссылка = ДополнительныеСведения.Объект
    |            И (ДополнительныеСведения.Свойство = &ДопСвойство)
    |ГДЕ
    |    Акт.Ссылка В (&МассивДокументов)
    |    И (НЕ &ПроверятьОтправку
    |            ИЛИ ДополнительныеСведения.Значение ЕСТЬ NULL)"
    );
    
    Запрос.УстановитьПараметр("ПроверятьОтправку", Отправлять И ЧерезВебСервис);
    Запрос.УстановитьПараметр("ДопСвойство", ДопСвойство);
    Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
    
    ДанныеДокументов = Запрос.Выполнить().Выгрузить();
    
    Если ДанныеДокументов.Количество() = 0 Тогда
        Возврат "Все документы уже отправлены через веб-сервис";
    КонецЕсли;
    //Формируем тему письма
    Если ПустаяСтрока(Тема) Тогда
        Тема = "Документы для " + ДанныеДокументов[0].Контрагент.Наименование + " от " + ДанныеДокументов[0].Организация.Наименование;
    КонецЕсли;
    //Формируем тело письма
    Тело = "Добрый день!
           | Данная рассылка является автоматической. Во вложении Счета на оплату и Акты оказания услуг.
           | Оригиналы документов будут отправлены почтой России или через систему электронного документооборота.";
    //Формируем список адресатов
    Если Отправлять Тогда
        Если ПустаяСтрока(АдресПочты) Тогда      
            Адреса = ОтправкаПочтовыхСообщений.АдресаЭлектроннойПочты(ДанныеДокументов[0].Контрагент);
            Кому = "";
            Для каждого Эл Из Адреса Цикл
                Кому = Кому + ";" + Эл.Адрес;
            КонецЦикла;
            Кому = Сред(Кому, 2);
        Иначе
            Кому = АдресПочты;
        КонецЕсли;    
        Если ПустаяСтрока(Кому) Тогда
            Возврат "У контрагента не указан адрес электронной почты";
        КонецЕсли;
    КонецЕсли;
    
    Вложения = Новый Соответствие;
    Для каждого ДанныеДокумента Из ДанныеДокументов Цикл
        
        КомандыПечати = УправлениеПечатью.КомандыПечатиОбъекта(Метаданные.Документы[ДанныеДокумента.ТипДокумента]).Найти(ДанныеДокумента.ФормаДокумента, "Идентификатор");              
        Если КомандыПечати = Неопределено Тогда
            Возврат "Команды печати не найдены";
        КонецЕсли;         

        МассивОбъектов = Новый Массив;
        МассивОбъектов.Добавить(ДанныеДокумента.Ссылка);
                    
        Попытка
            Результат = УправлениеПечатью.СформироватьПечатныеФормы(КомандыПечати.МенеджерПечати, ДанныеДокумента.ФормаДокумента, МассивОбъектов, Новый Структура());
        Исключение
            Возврат ОписаниеОшибки();
        КонецПопытки;
        
        ИмяФайла = ДанныеДокумента.ФормаДокумента + "_" + ДанныеДокумента.Номер + "." + НРег(ФорматФайла);
        ПолноеИмяФайла = КаталогВременныхФайлов() + ИмяФайла;
        
        Для каждого Стр Из Результат.КоллекцияПечатныхФорм Цикл
            Стр.ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента[ФорматФайла]);
            Прервать;
        КонецЦикла;
        
        Вложения.Вставить(ИмяФайла, Новый ДвоичныеДанные(ПолноеИмяФайла));
        
    КонецЦикла;
    Для каждого Вложение Из Вложения Цикл
        УдалитьФайлы(КаталогВременныхФайлов() + Вложение.Ключ);
    КонецЦикла;
    
    ПараметрыПисьма = Новый Структура;            
    ПараметрыПисьма.Вставить("Кому", Кому);
    ПараметрыПисьма.Вставить("Копии", "");
    ПараметрыПисьма.Вставить("Тема", Тема);
    ПараметрыПисьма.Вставить("Тело", Тело);
    ПараметрыПисьма.Вставить("Вложения", Вложения);
    
    Попытка
        РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись(), ПараметрыПисьма);
        Для каждого ДанныеДокумента Из ДанныеДокументов Цикл
            Если Отправлять И ЧерезВебСервис Тогда
                ЗаписьОтправки = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
                ЗаписьОтправки.Объект = ДанныеДокумента.Ссылка;
                ЗаписьОтправки.Свойство = ДопСвойство;
                ЗаписьОтправки.Значение = ТекущаяДата();
                ЗаписьОтправки.Записать();
            КонецЕсли;    
        КонецЦикла;    
    Исключение
        Возврат ОписаниеОшибки();
    КонецПопытки;
    Возврат "";    
    
КонецФункции