При переходе на клиент-сервер перестали формироваться внешние печатные формы.

1. MADINAABAZA 51 24.02.21 08:42 Сейчас в теме
При переходе на клиент-сервер перестали формироваться внешние печатные формы. Выдает ошибку "Значение не является значением объектного типа (Наименование)". Тип макета Табличный документ.
Функция СведенияОВнешнейОбработке() Экспорт 
	// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные 
	ПараметрыРегистрации = Новый Структура; 
	
	// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать. 
	// Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов 
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); 
	
	ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки()); 
	
	// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок 
	ПараметрыРегистрации.Вставить("Наименование", "ОписьЛичногоДела"); 
	
	// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим) 
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); 
	
	// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке 
	ПараметрыРегистрации.Вставить("Версия", "1.0"); 
	ПараметрыРегистрации.Вставить("Информация", "ОписьЛичногоДела"); 
	
	// Создадим таблицу команд (подробнее смотрим ниже) 
	ТаблицаКоманд = ПолучитьТаблицуКоманд(); 
	
	ДобавитьКоманду(ТаблицаКоманд, 
		"ОписьЛичногоДела", 
		"ОписьЛичногоДела", 
		"ВызовСерверногоМетода", //Использование. Варианты: "ОткрытиеФормы", "ВызовКлиентскогоМетода", "ВызовСерверногоМетода" 
		Ложь,//Показывать оповещение. Варианты Истина, Ложь 
		"ПечатьMXL");//Модификатор 
	
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); 

	Возврат ПараметрыРегистрации; 
	
КонецФункции
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ixijixi 1801 24.02.21 09:04 Сейчас в теме
(1)
Выдает ошибку
В какой момент выдает?
3. MADINAABAZA 51 24.02.21 09:09 Сейчас в теме
Выдает в момент формирование печатной формы.
4. andy_zhav 197 24.02.21 09:26 Сейчас в теме
(1) Никак не должно быть связано формирование печатных форм с режимом работы 1с. Если форма регистрируется нормально, а формируется криво - нужно смотреть функцию формирования табличного документа
5. MADINAABAZA 51 24.02.21 09:43 Сейчас в теме
Функция ПолучитьТабличныйДокументСоглашение(Макет, МассивОбъектов, ОбъектыПечати, ВыводитьТорговыеТочки = Истина)
	
	ДокументРезультат = Новый ТабличныйДокумент;
	НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;
	
	ДокументРезультат.КлючПараметровПечати = "ПараметрыПечати_ОписьЛичногоДела";
	МассивДанныхЗаполнения = ПолучитьДанныеДляПечатиСоглашение(МассивОбъектов);	
	
	ВывестиДанныСоглашениеВТабличныйДокумент(Макет, ДокументРезультат, МассивДанныхЗаполнения, ОбъектыПечати);
	
	Возврат ДокументРезультат;
	
КонецФункции
Показать
6. andy_zhav 197 24.02.21 09:49 Сейчас в теме
(5) Я бы еще попросил бы листинг процедуры ВывестиДанныСоглашениеВТабличныйДокумент. Вангую что ошибка возникает там. Ну и еще полный текст ошибки для полного счастья. Тогда точно злодея найдем
8. MADINAABAZA 51 24.02.21 09:55 Сейчас в теме
(6)
Процедура ВывестиДанныСоглашениеВТабличныйДокумент(Макет, ТабличныйДокумент, МассивДанныхЗаполнения, ОбъектыПечати)
	
	Если Макет <> Неопределено Тогда
		
		ПервыйДокумент = Истина;
		Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл
			Если Не ПервыйДокумент Тогда
				ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			Иначе
				ПервыйДокумент = Ложь;
			КонецЕсли;
			
			НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
			
			Макет.Параметры.Заполнить(ПараметрыМакета);
			ТабличныйДокумент.Вывести(Макет);
			
			УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ПараметрыМакета.Ссылка);	
			
		КонецЦикла;
		
		ТабличныйДокумент.АвтоМасштаб 			= Истина;
		ТабличныйДокумент.ДвусторонняяПечать 	= ТипДвустороннейПечати.ПереворотВлево;
		
	КонецЕсли;
	
КонецПроцедуры
Показать
12. andy_zhav 197 24.02.21 11:38 Сейчас в теме
Ну и еще полный текст ошибки

Явно не видно обращения к наименованию. Надо еще текст ошибки полный. Обновление конфигурации делали перед или после перехода на клиент-сервер?
13. MADINAABAZA 51 24.02.21 12:16 Сейчас в теме
(12)Обновление конфигурации не делали после перехода.
7. andy_zhav 197 24.02.21 09:50 Сейчас в теме
Хотя может и в ПолучитьДанныеДляПечатиСоглашение возникать ошибка
9. MADINAABAZA 51 24.02.21 09:56 Сейчас в теме
(7)
Функция ПолучитьДанныеДляПечатиСоглашение(МассивОбъектов)
	
	МассивСотрудников 	= Новый Массив;
	МассивФизическихЛиц = Новый Массив;
	
	Если ТипЗнч(МассивОбъектов[0]) = Тип("ДокументСсылка.ПриемНаРаботу") Тогда
		Для каждого ПриемНаРаботу Из МассивОбъектов Цикл
			МассивСотрудников.Добавить(ПриемНаРаботу.Сотрудник);
			МассивФизическихЛиц.Добавить(ПриемНаРаботу.Сотрудник.ФизическоеЛицо);
		КонецЦикла; 
	ИначеЕсли ТипЗнч(МассивОбъектов[0]) = Тип("СправочникСсылка.Сотрудники") Тогда
		Для каждого Сотрудник Из МассивОбъектов Цикл
			МассивСотрудников.Добавить(Сотрудник);
			МассивФизическихЛиц.Добавить(Сотрудник.ФизическоеЛицо);
		КонецЦикла;	
	КонецЕсли; 
	
	
	МассивПараметров = Новый Массив;
	
	РеквизитыОрганизаций = Новый Соответствие;
	ДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Ложь, МассивСотрудников, "Должность,ФИОПолные,ИНН,Пол,ДатаПриема,ДатаУвольнения, Организация", ТекущаяДатаСеанса());
	
	ДанныеФизическихЛиц = КадровыйУчет.КадровыеДанныеФизическихЛиц(Ложь, МассивФизическихЛиц, "ДокументПредставление,СтраховойНомерПФР, АдресПоПропискеПредставление", ТекущаяДатаСеанса());
	
	Для каждого Сотрудник Из МассивСотрудников Цикл
	
		ПараметрыСотрудника = ПараметрыДанныеСотрудника();
		
		ПараметрыСотрудника.Ссылка = Сотрудник;
		
		ДанныеСотрудника 	= ДанныеСотрудников.Найти(Сотрудник, "Сотрудник");
		ЗаполнитьЗначенияСвойств(ПараметрыСотрудника, ДанныеСотрудника);
		
		ДанныеФизЛица		= ДанныеФизическихЛиц.Найти(Сотрудник.ФизическоеЛицо, "ФизическоеЛицо");
		ЗаполнитьЗначенияСвойств(ПараметрыСотрудника, ДанныеФизЛица);
		
		Если НЕ ЗначениеЗаполнено(ДанныеСотрудника.Организация) Тогда
		
			Сообщение = Новый СообщениеПользователю;
			СообщениеТекст = НСтр("ru='У сотрудника %Замена% не удалось определить организацию'");
			СообщениеТекст = СтрЗаменить(СообщениеТекст, "%Замена%", Сотрудник);
			Сообщение.Текст = СообщениеТекст;
			Сообщение.Сообщить();	
			Продолжить;
		
		КонецЕсли; 
		
		РеквизитыОрганизации 	= ПолучитьРеквизитыОрганизации(РеквизитыОрганизаций, ДанныеСотрудника.Организация, ТекущаяДатаСеанса());
		ЗаполнитьЗначенияСвойств(ПараметрыСотрудника, РеквизитыОрганизации);
		
		МассивПараметров.Добавить(ПараметрыСотрудника);
		
	КонецЦикла;
	
	Возврат МассивПараметров;
	
КонецФункции
Показать
10. ixijixi 1801 24.02.21 10:48 Сейчас в теме
(9) Ну, тут только отладчик в зубы
11. MADINAABAZA 51 24.02.21 11:02 Сейчас в теме
(10)А у вас клиент-серверная версия? Можно файлик Вам показать?
14. ixijixi 1801 24.02.21 12:45 Сейчас в теме
15. Ul_developer 25.02.21 11:05 Сейчас в теме
А можно еще процедурку ПолучитьРеквизитыОрганизации увидеть?
16. Ul_developer 25.02.21 11:06 Сейчас в теме
Есть ощущение что ДанныеСотрудника.Организация = Неопределено
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот