Проблема метаданных в РеализацияТоваровУслуг.

Версия для печатиPDF-версия
Ранее, в http://novichok1c.ru/vopros/kak-zastavit-obshchiy-modul-upravlenieelektronnoypochtoy-vstavlyat-elektronnyy-adres краем, данный вопрос затрагивался.
 
 
Имеется Общая форма ПечатьДокументов.
В ней есть кнопка ОтправитьПоEmail.
При отправлении, автоматически вставляется электронный адрес контрагента.
Вот только при выведении на печать документов из Заказа Покупателя, все отлично работает, а если из РеализацияТоваровУслуг – нет!
Так же возникла необходимость, докрутить, дабы при отправлении письма создавалось событие, контрагента при этом выбирается автоматически.
И те же Грабли…(
Из ЗаказПокупателя – все работает, а РеализацияТоваровУслуг – нет.
Т.к. не знаю, что может иметь решающее значение, вставляю весь код модуля:
 

/////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
Перем Объект Экспорт;						// Объект, который печатается
Перем ОбъектПредставление Экспорт;			// Представление объекта. Используется для формирования заголовка, имен сохраняемых файлов и т.п. Если не задано, то будет построено по "Объект"
Перем ДополнительноКПредставлению Экспорт;	// Строка, которая будет выведена дополнительно в конец заголовка формы
Перем Принтеры;								// Список установленных в системе принтеров
Перем ИмяТекПринтера;						// Имя принтера (как оно установлено в системе) на который будет осуществляться вывод


////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

Функция ПолучитьПредставление(Объект)
	Если Объект = Неопределено Тогда
		Возврат "";
		
	КонецЕсли;

	
	// Определим тип переданного нам объекта (для всех "объектов" получим ссылки на них)
	Попытка
		ТипЗнчОбъекта = ТипЗнч(Объект.Ссылка);
	Исключение
		ТипЗнчОбъекта = ТипЗнч(Объект);
	КонецПопытки;
	
	// Определим представление в зависмоти от типа переданного нам объекта
	Представление = "";
	Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнчОбъекта) Тогда
		Представление = дкПолучитьПредставление(Объект);
	ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнчОбъекта) Тогда
		Представление = Объект.Метаданные().Синоним;
	КонецЕсли;
	
	Возврат Представление;
КонецФункции

// Приводит произвольную строку к идентификатору, который затем можно использовать как ключ структуры
// Преобразование выполняется разрушающим способом (обратное преобразование невозможно)
Функция обСтрокуКID(Стр) Экспорт
	Ст=обСтрокаПоМаске(Стр,"_0123456789
	                       |ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
	                       |АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя");
	Возврат ?(Найти("0123456789",Лев(Ст,1))>0,"_"+Ст,Ст);
КонецФункции // обСтрокуКID()

// Функция возвращает строку символов, полученную из исходной <Стр> GOAN
// заменой всех символов, не входящих в <Маска> на символ <Симв>
Функция обСтрокаПоМаске(Стр,Маска="",Симв="") Экспорт
	Ст=""; Если ПустаяСтрока(Маска) Тогда Возврат Ст; КонецЕсли;
	Для Сч=1 По СтрДлина(Стр) Цикл
		Сим=Сред(Стр,Сч,1);
		Если Найти(Маска,Сим)>0 Тогда Ст=Ст+Сим; Иначе Ст=Ст+Симв; КонецЕсли; 
	КонецЦикла;
	Возврат Ст;
КонецФункции // обСтрокаПоМаске

// Возвращает представление для документа
// Параметры
// ЭтотОбъект - <ДокументСсылка> или <ДокументОбъект>
// АльтернативноеНазвание - Строка, используется, если хотим заменить синоним документа 
// Возвращаемое значение:
// Строка - Строка представления документа
Функция дкПолучитьПредставление(ЭтотОбъект, АльтернативноеНазвание = "") Экспорт
	Попытка
		ТекстПредставления=?(ПустаяСтрока(АльтернативноеНазвание), ЭтотОбъект.Метаданные().Синоним, АльтернативноеНазвание)+" № "+СокрЛП(ЭтотОбъект.Номер)+" от "+Формат(ЭтотОбъект.Дата,"ДФ=dd.MM.yyyy");
	Исключение 
		ТекстПредставления="Неправильный тип объекта!";
	КонецПопытки;
	Возврат ТекстПредставления;
КонецФункции // ПолучитьПредставление()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ДЕЙСТВИЯ КОМАНДНЫХ ПАНЕЛЕЙ ФОРМЫ


// Процедура отправляет отчет по электронной почте в виде табличного документа mxl

Процедура ДействияФормыОтправитьПоEmail(Кнопка)
    РасширениеФайла = "";
    ТипПересылаемогоФайла = Неопределено;
    Если Кнопка.Имя = "ОтправитьКакMXL" Тогда
        ТипПересылаемогоФайла = ТипФайлаТабличногоДокумента.MXL;
        РасширениеФайла = ".mxl";
    ИначеЕсли Кнопка.Имя = "ОтправитьКакHTML" Тогда
        ТипПересылаемогоФайла = ТипФайлаТабличногоДокумента.HTML;
        РасширениеФайла = ".html";
    ИначеЕсли Кнопка.Имя = "ОтправитьКакXLS" Тогда
        ТипПересылаемогоФайла = ТипФайлаТабличногоДокумента.XLS97;
        РасширениеФайла = ".xls";
    ИначеЕсли Кнопка.Имя = "ОтправитьКакPDF" Тогда
        ТипПересылаемогоФайла = ТипФайлаТабличногоДокумента.PDF;
        РасширениеФайла = ".pdf";
    Иначе
        Возврат;
    КонецЕсли; 
    

    НаименованиеПечатнойФормы = СтрЗаменить(ОбъектПредставление,".","_");
    // сохраним ПФ во временный каталог
    ИмяФайлаСообщения = КаталогВременныхФайлов() + НаименованиеПечатнойФормы + РасширениеФайла;
    Если ТипЗнч(ТипПересылаемогоФайла) = Тип("ТипФайлаТабличногоДокумента") Тогда
        ЭлементыФормы.ТабличныйДокумент.Записать(ИмяФайлаСообщения, ТипПересылаемогоФайла);
    КонецЕсли;
    
    // Flexy  Вован
    Адрес = "";
    ЭтотДокумент = ЗначениеЗаполнено(Объект) И Метаданные.Документы.Содержит(Объект.Метаданные());     
    Если ЭтотДокумент И ОбщегоНазначения.ЕстьРеквизитДокумента("Контрагент", Объект.Метаданные()) Тогда
        Адрес = УправлениеЭлектроннойПочтой.ОпределитьАдресПолучателя(Объект.Контрагент);
	Иначе 
     // Тут проблема.
	Адрес = "Заполняется вручную";	
    КонецЕсли;
		
	        //--
	
	    // Flexy  Вован
    Копии = "";
    ЭтотДокумент = ЗначениеЗаполнено(Объект) И Метаданные.Документы.Содержит(Объект.Метаданные());     
    Если ЭтотДокумент И ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", Объект.Метаданные()) Тогда
        Копии = УправлениеЭлектроннойПочтой.ОпределитьАдресПолучателя(Объект.Организация);
	Иначе 
     // Тут проблема.
	Копии = "sale1@anytos.ru";	
    КонецЕсли;
    //--
	
    Если НЕ Константы.ИспользованиеВстроенногоПочтовогоКлиента.Получить() Тогда
        СтруктураПараметров = Новый Структура();
        СтруктураПараметров.Вставить("Тема", НаименованиеПечатнойФормы);
        
        // Flexy  Вован
        СтруктураПараметров.Вставить("Адрес", Адрес);
        //--
        
        УправлениеЭлектроннойПочтой.ОткрытьПисьмоПочтовогоКлиентаОперационнойСистемы(СтруктураПараметров);
    Иначе
        СтруктураНовогоПисьма = Новый Структура();
        СтруктураНовогоПисьма.Вставить("Тема",НаименованиеПечатнойФормы);
        
        // Flexy  Вован
        спПолучатели = Новый СписокЗначений;
        спПолучатели.Добавить(Адрес, ""); 
        СтруктураНовогоПисьма.Вставить("Кому", спПолучатели);
		
		// Вован
		спКопии = Новый СписокЗначений;	
		спКопии.Добавить(Копии, "Обязательная Копия обратно!!!");
        СтруктураНовогоПисьма.Вставить("Копии", спКопии);
		
        //--   
        
        СтруктураПисьма = УправлениеЭлектроннойПочтой.НаписатьПисьмо(глЗначениеПеременной("глТекущийПользователь"), СтруктураНовогоПисьма,,,,,,);
        Если СтруктураПисьма = Неопределено Тогда
            Возврат
        КонецЕсли;
        ВложенияПисьмаТЗ = СтруктураПисьма.Форма.ВложенияПисьмаТЗ.Добавить();
        Файл = Новый Файл(ИмяФайлаСообщения);
        ВложенияПисьмаТЗ.ИмяФайла = Файл.Имя;
        ВложенияПисьмаТЗ.Наименование = ОбъектПредставление;
        Попытка
            ВложенияПисьмаТЗ.Данные = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайлаСообщения), Новый СжатиеДанных);
        Исключение
            ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
        КонецПопытки;
        УдалитьФайлы(ИмяФайлаСообщения);
	КонецЕсли; 
	
	
	НовоеСобытие = Документы.Событие.СоздатьДокумент();
	НовоеСобытиеФорма = НовоеСобытие.ПолучитьФорму("ФормаДокумента");
	НовоеСобытиеФорма.Открыть();
	

	    Контрагент = "";
	ЭтотДокумент = ЗначениеЗаполнено(Объект) И Метаданные.Документы.Содержит(Объект.Метаданные());
	Если ЭтотДокумент И ОбщегоНазначения.ЕстьРеквизитДокумента("Контрагент", Объект.Метаданные()) Тогда
	Контрагент = Объект.Контрагент;

	Иначе 

		//Тут Проблема	
	КонецЕсли;
	

	НовоеСобытиеФорма.Контрагент = Контрагент;
	
	НовоеСобытиеФорма.ВидСобытия = Перечисления.ВидыСобытий.ЭлектронноеПисьмо;
	
	НовоеСобытиеФорма.ОписаниеСобытия = "Выслан " + НаименованиеПечатнойФормы + " на " + Адрес;
	НовоеСобытиеФорма.СодержаниеСобытия = "Выслан " + НаименованиеПечатнойФормы + " на " + Адрес;
	
КонецПроцедуры    //    ДействияФормыОтправитьПоEmail()



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

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

Процедура ДействияФормыСохранитьКакXLS(Кнопка)
	
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	Диалог.Заголовок		= "Сохранение документа Excel";
	Диалог.Фильтр			= "Документ Excel (*.xls)|*.xls";
	Диалог.Расширение		= "xls";
	Диалог.ПолноеИмяФайла	= СтрЗаменить(ОбъектПредставление,".","_");
	Диалог.Каталог = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ОсновнойКаталогФайлов");	
	Если Диалог.Выбрать() Тогда
		Если НЕ ПустаяСтрока(Диалог.ПолноеИмяФайла) Тогда
			ЭлементыФормы.ТабличныйДокумент.Записать(Диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS97);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

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

// Процедура печатает табличный документ на выбраном принтере
Процедура ОсновныеДействияФормыПечать(Кнопка)
	ЭлементыФормы.ТабличныйДокумент.ИмяПринтера = ИмяТекПринтера;
	ЭкземпляровНаСтранице=0;//обПраво("КоличествоСтраницНаЛисте",глПрава);
	Если ЭкземпляровНаСтранице<>0 И ЭкземпляровНаСтранице<>1 И ЭкземпляровНаСтранице<>2 Тогда
		ЭкземпляровНаСтранице=0;
	КонецЕсли; 
	ЭлементыФормы.ТабличныйДокумент.ЭкземпляровНаСтранице=ЭкземпляровНаСтранице;
	ЭлементыФормы.ТабличныйДокумент.Напечатать(НЕ ПустаяСтрока(ИмяТекПринтера));
	ЧислоКопий = ЭлементыФормы.ТабличныйДокумент.КоличествоЭкземпляров;
КонецПроцедуры

// Получает список принтеров установленных в системе и предлагает пользователю
// выбрать принтер для печати
Процедура ОсновныеДействияФормыСписокПринтеров(Кнопка)
	// Посмотрим был ли ранее составлен список принтеров, которые установлены в системе, если нет, тогда попытаемся получить его
	Если ТипЗнч(Принтеры) <> Тип("СписокЗначений") Тогда
		Принтеры = Новый СписокЗначений;
		Состояние("Составляется список принтеров. Подождите.");
		Попытка
			Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
			Сервисы = Locator.ConnectServer(".");
			Объекты = Сервисы.InstancesOf("Win32_Printer");
			
			// Теперь переберем все принтеры системы
			Для каждого Принтер из Объекты Цикл
				ИмяПринтера = Принтер.Name;
				Пока Найти(ИмяПринтера,"\") > 0 Цикл
					ИмяПринтера = Сред(ИмяПринтера, Найти(ИмяПринтера,"\")+1);
				КонецЦикла;
				ИмяПринтера = СокрЛП(ИмяПринтера);
				
				Принтеры.Добавить(Принтер.Name,ИмяПринтера,(Принтер.Name=ИмяТекПринтера));
			КонецЦикла;
		Исключение
		КонецПопытки;
		Принтеры.Вставить(0,"ДиалогВыбораПринтера","Диалог выбора принтера",ПустаяСтрока(ИмяТекПринтера));
		Состояние();
	КонецЕсли; 
	
	// Предложим пользователю выбрать один из принтеров
	Результат = ВыбратьИзМеню(Принтеры,ЭлементыФормы.кнВспомогательная);
	Если Результат = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	// Установим пометку у "текушего" принтера в списке
	Принтеры.ЗаполнитьПометки(ЛОЖЬ);
	Результат.Пометка = ИСТИНА;
	
	// Обработаем результат выбора
	ИмяТекПринтера = ?(Результат.Значение = "ДиалогВыбораПринтера","",Результат.Значение);
	ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать.Текст = "Печать"+?(ПустаяСтрока(ИмяТекПринтера),""," на <"+Результат.Представление+">");
	
	// Передвинем вспомогательную кнопку
	СтараяШирина = ЭлементыФормы.кнВспомогательная.Ширина;
	ЭлементыФормы.кнВспомогательная.Заголовок	= "";
	ЭлементыФормы.кнВспомогательная.Ширина		= 10;
	ЭлементыФормы.кнВспомогательная.Лево = ЭлементыФормы.кнВспомогательная.Лево - 1; // необходимо чтобы установилать "автоширина" кнопки
	ЭлементыФормы.кнВспомогательная.Заголовок = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать.Текст;
	ЭлементыФормы.кнВспомогательная.Лево = ЭлементыФормы.кнВспомогательная.Лево + 1; // необходимо чтобы установилать "автоширина" кнопки
	ЭлементыФормы.кнВспомогательная.Лево = ЭлементыФормы.кнВспомогательная.Лево - (ЭлементыФормы.кнВспомогательная.Ширина - СтараяШирина);
	
	// Напечатаем
	ОсновныеДействияФормыПечать(Неопределено);
КонецПроцедуры

// Открывает окно "Предварительный просмотр"
Процедура ОсновныеДействияФормыПредварительныйПросмотр(Кнопка)
	ТекущийЭлемент	= ЭлементыФормы.ТабличныйДокумент;
	
	// Произведем эмуляцию нажатия клавишь. По ходу дела это единственный способ открыть окно просмотра печати
	WHSShell = Новый COMОбъект("WScript.Shell");
	WHSShell.SendKeys("%");
	WHSShell.SendKeys("~");
	WHSShell.SendKeys("{DOWN 10}");
	WHSShell.SendKeys("~");
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ, ВЫЗЫВАЕМЫЕ ИЗ ЭЛЕМЕНТОВ ФОРМЫ

Процедура ЧислоКопийПриИзменении(Элемент)
	ЭлементыФормы.ТабличныйДокумент.КоличествоЭкземпляров = ЧислоКопий;
КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

Процедура ПриОткрытии()
	// Сформеруем заголовок формы
	Если ПустаяСтрока(ОбъектПредставление) Тогда
		ОбъектПредставление = ПолучитьПредставление(Объект);
	КонецЕсли;
	Заголовок = "Печать <" + ОбъектПредставление + "> " + ДополнительноКПредставлению;
	
	// Восстановим ранее сохраненные настройки
	//ИмяСохраненияПараметров = "ПечатнаяФормаДокументов_" + обСтрокуКID(СтрЗаменить(ОбъектПредставление," ","_")) + "_" + обСтрокуКID(СтрЗаменить(ДополнительноКПредставлению," ","_"));
	//ЭлементыФормы.ТабличныйДокумент.ИмяПараметровПечати = ИмяСохраненияПараметров;
	ЧислоКопий = ЭлементыФормы.ТабличныйДокумент.КоличествоЭкземпляров;
	
	// "Вспомним" о том, на каком принтере в последний раз печатали
	ИмяТекПринтера = ЭлементыФормы.ТабличныйДокумент.ИмяПринтера;
	ПредставлениеТекПринтера = ИмяТекПринтера;
	Пока Найти(ПредставлениеТекПринтера,"\") > 0 Цикл
		ПредставлениеТекПринтера = Сред(ПредставлениеТекПринтера, Найти(ПредставлениеТекПринтера,"\")+1);
	КонецЦикла;
	ПредставлениеТекПринтера = СокрЛП(ПредставлениеТекПринтера);

	// Допишем имя текущего принтера к кнопке "Печать" и подготовим вспомогательную кнопку
	ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать.Текст = "Печать" + ?(ПустаяСтрока(ИмяТекПринтера),""," на <"+ПредставлениеТекПринтера+">");
	ЭлементыФормы.кнВспомогательная.Заголовок = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать.Текст;
	ЭлементыФормы.кнВспомогательная.Лево = ЭлементыФормы.кнВспомогательная.Лево - 1; // необходимо чтобы установилать "автоширина" кнопки
	ЭлементыФормы.кнВспомогательная.Лево = ЭлементыФормы.кнВспомогательная.Лево + 1 - (ЭлементыФормы.кнВспомогательная.Ширина - 46) + 1;
	
	// Если табличный документ в режиме "Только просмотр", то сделаем серыми несколько кнопок
	ДоступностьКнопок = НЕ ЭлементыФормы.ТабличныйДокумент.ТолькоПросмотр;
//	ЭлементыФормы.ДействияФормы.Кнопки.ОткрытьВExcel   .Доступность	= ДоступностьКнопок;
	ЭлементыФормы.ДействияФормы.Кнопки.СохранитьКакMXL .Доступность	= ДоступностьКнопок;
	ЭлементыФормы.ДействияФормы.Кнопки.СохранитьКакHTML.Доступность	= ДоступностьКнопок;
	Для каждого ТекКнопка Из ЭлементыФормы.ДействияФормы.Кнопки.ОтправитьПоEmail.Кнопки Цикл
		ТекКнопка.Доступность = ДоступностьКнопок;
	КонецЦикла;
КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////
// ИСПОЛНЯЕМАЯ ЧАСТЬ МОДУЛЯ
ОбъектПредставление			= Неопределено;
ДополнительноКПредставлению	= Неопределено;
Принтеры					= Неопределено;

 
Попробовал посмотреть, что будет выдавать, если прописать так:

     НовоеСобытиеФорма.СодержаниеСобытия = ЭтотДокумент;
На ЗаказПокупателя в поле содержание события пишет – Да, а в РеализацияТоваровУслуг пишет – Нет.
Проверил в "Управление торговлей и взаимоотношениями с клиентами (CRM)", редакция 1.11
Такая же беда.
При этом заметил, что во внешней печатной форме – все работает…
 
Как мне кажется, что в Модуле объекта РеализацияТоваровУслуг чего-то не хватает.
Помогите, пожалуйста решить данный ребус.
 

Ура! Ура! Ура!

Нашел.

В результате долгих копаний нашел!

Оказалось, что в модуле объекта РеализацияТоваровУслуг действительно дефект.

В Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

 

УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект));

Отсутствовала ссылка…

Исправил на:

УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), Ссылка);

 

                И все заработало!!!!

Ура! Ура! Ура!

Надеюсь что это была ошибка программеров УТ, что это ничего не поломает.

Буду тестить

Еслибудут глюки, неприменно поделюсь.

Всем спасибо!