J
J
Jlokys2021-05-11 12:39:31
1C-Enterprise
Jlokys, 2021-05-11 12:39:31

How to split code between form module and object module?

Good afternoon, there is a code, it needs to be divided between the form module and the object module, can you explain what is the difference and how to do it, I tried everything, but the code does not work in the object module

&НаКлиенте
Процедура Отправить(Кнопка)
  
  Если НЕ ПроверитьЗаполнение() Тогда 
    Возврат
  КонецЕсли;
  ОтправкаТаблицы();
  
КонецПроцедуры

&НаСервере
Процедура ОтправкаТаблицы()
  ПрофильПодключения = Новый ИнтернетПочтовыйПрофиль;
  
  ПрофильПодключения.АдресСервераSMTP ="smtp.yandex.ru";
  
  ПрофильПодключения.ИспользоватьSSLSMTP=Истина;
  
  ПрофильПодключения.ПортSMTP = 465;
  
  ПрофильПодключения.ПользовательSMTP = "[email protected]";
  ПрофильПодключения.ПарольSMTP ="Pochta1c";
  
  Почта = Новый ИнтернетПочта;

  Попытка
    Почта.Подключиться(ПрофильПодключения);
  Исключение
    Сообщить("Не удалось подключиться к серверу smtp.yandex.ru");
    Сообщить(ОписаниеОшибки());
  КонецПопытки;
  
  Письмо = Новый ИнтернетПочтовоеСообщение;
  Текст = Письмо.Тексты.Добавить();
  Текст.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
  
  Текст.Текст = "
  |<html>
  |<body>
  |Здравствуйте, Иван Иванович!
  |<br><br>
  |Список заказов с суммой от "+ сумма + ". за период с " + Период + ":"
  "
  |<br><br>
  |<style>
  |th {
  |font-weight: normal;
  |}
  |table {
  |margin-left: 4%;
  |width: 50%;
  |border-collapse: collapse;
  |}
  |td, th {
  |padding: 4px;
  |border: 1px solid black;
  |}
  |</style>
  |<table>
  |<thead>
  |<th> №    </th><th>Дата</th><th>Клиент</th><th>Сумма</th><th>Менеджер</th>
  |</thead>                                                           
  |<tbody>";
  ////////////////////////////////////
  //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
  // Данный фрагмент построен конструктором.
  // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
  
  Запрос = Новый Запрос;
  Запрос.Текст = 
    "ВЫБРАТЬ
    |	ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
    |	ЗаказКлиента.Менеджер.Наименование КАК МенеджерНаименование,
    |	ЗаказКлиента.Номер КАК Номер,
    |	ЗаказКлиента.Контрагент.Наименование КАК КонтрагентНаименование,
    |	ЗаказКлиента.Дата КАК Дата
    |ИЗ
    |	Документ.ЗаказКлиента КАК ЗаказКлиента
    |ГДЕ
    |	ЗаказКлиента.СуммаДокумента >= &СуммаДокумента";
  
  Запрос.УстановитьПараметр("СуммаДокумента", Сумма);
  
  РезультатЗапроса = Запрос.Выполнить();
  
  ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
  
  СуммаДокументов = 0;
  Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    
        стрТаб = СтрШаблон("<tr><td>%1</td><td>%2</td><td>%3</td><td>%4 руб. </td><td>%5</td></tr>",
        ВыборкаДетальныеЗаписи.Номер, ФОРМАТ(ВыборкаДетальныеЗаписи.Дата, "ДФ=dd.MM.yyyy"),ВыборкаДетальныеЗаписи.КонтрагентНаименование ,ВыборкаДетальныеЗаписи.СуммаДокумента, ВыборкаДетальныеЗаписи.МенеджерНаименование);
        Текст.Текст = Текст.Текст + стрТаб;
    
    СуммаДокументов = СуммаДокументов + ВыборкаДетальныеЗаписи.СуммаДокумента;	                                   
    КонецЦикла;
  
  //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА	
  


  Текст.Текст = Текст.Текст + "
  |</tbody>
  |</table>
  |<br><br>
  |Всего заказов " + ВыборкаДетальныеЗаписи.Количество() + " на сумму " + СуммаДокументов + " (" + ЧислоПрописью (СуммаДокументов, "(Л = ru_RU; НД = Ложь", "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 0") +") руб.
  |</body>
  |</html>";
  
  //////////////////////////////////////
  
  Письмо.Тема = " 
  |«Крупные заказы за период с " + Период +
  "";
  Письмо.Отправитель = "[email protected]";
  
  Письмо.ИмяОтправителя = "Бубнов Александр Сергеевич";
  
  Письмо.Получатели.Добавить("[email protected]");
  
  Письмо.СлепыеКопии.Добавить("[email protected]");
  Попытка
    Почта.Послать(Письмо);
    Сообщить("Письмо успешно отправлено");
  Исключение
    Сообщить("Не удалось отправить письмо ");
    Сообщить(ОписаниеОшибки());
  КонецПопытки;
  Почта.Отключиться();
КонецПроцедуры

Answer the question

In order to leave comments, you need to log in

1 answer(s)
K
Konstantin, 2021-05-11
@Jlokys

like this?

В модуле формы
&НаКлиенте
Процедура НачатьОтладку(Команда)
    НачатьОтладкуНаСервере();
    
КонецПроцедуры

&НаСервере
Процедура НачатьОтладкуНаСервере()
    Этаобработка = РеквизитФормыВЗначение("Объект");
    Этаобработка.СведенияОВнешОбр();
КонецПроцедуры

Модуль объекта
Процедура СведенияОВнешОбр() Экспорт
    Сообщить("Код");
КонецПроцедуры

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question