@Jlokys

Как разделить код между модулем формы и модулем объекта?

Добрый день есть код , его необходимо разделить между модулем формы и модулем объекта можете объяснить в чем разница и как это сделать, я пробовал по всякому, но в модуле объекта код не работает
&НаКлиенте
Процедура Отправить(Кнопка)
	
	Если НЕ ПроверитьЗаполнение() Тогда 
		Возврат
	КонецЕсли;
	ОтправкаТаблицы();
	
КонецПроцедуры

&НаСервере
Процедура ОтправкаТаблицы()
	ПрофильПодключения = Новый ИнтернетПочтовыйПрофиль;
	
	ПрофильПодключения.АдресСервераSMTP ="smtp.yandex.ru";
	
	ПрофильПодключения.ИспользоватьSSLSMTP=Истина;
	
	ПрофильПодключения.ПортSMTP = 465;
	
	ПрофильПодключения.ПользовательSMTP = "pocht41c@yandex.ru";
	ПрофильПодключения.Пароль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>";
	
	//////////////////////////////////////
	
	Письмо.Тема = " 
	|«Крупные заказы за период с " + Период +
	"";
	Письмо.Отправитель = "pocht41c@yandex.ru";
	
	Письмо.ИмяОтправителя = "Бубнов Александр Сергеевич";
	
	Письмо.Получатели.Добавить("pocht41c@yandex.ru");
	
	Письмо.СлепыеКопии.Добавить("pocht41c@yandex.ru");
	Попытка
		Почта.Послать(Письмо);
		Сообщить("Письмо успешно отправлено");
	Исключение
		Сообщить("Не удалось отправить письмо ");
		Сообщить(ОписаниеОшибки());
	КонецПопытки;
	Почта.Отключиться();
КонецПроцедуры
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
fosihas
@fosihas
Автоматизации учета на 1С.
такое?
В модуле формы
&НаКлиенте
Процедура НачатьОтладку(Команда)
    НачатьОтладкуНаСервере();
    
КонецПроцедуры

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

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

Войдите, чтобы написать ответ

Похожие вопросы