Печатная форма

1. 1cgodme 16.11.23 15:56 Сейчас в теме
Я новичок , только только начинаю вкатываться. Решил взять маленькую задачку по Печатной форме.
Что хотел сделать, прикрутил вторую кнопку, но видимо косячно, в связи с чем и вылезла ошибка (см.скриншот) Подскажите пожалуйста решение данной проблемы, или хотя бы в какую сторону копать (p.s отладка не работает, тк выключена на сервере)
Код моей процедуры в расширении :
	
	//СчетчикДокументов = 0;

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

		     // конец кода 
		ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходныйОрдерНаТовары_РасходныйОрдерНаТов­ары";
		ТабДок.АвтоМасштаб = Истина;
		ТабДок.ПолеСверху = 0;
		ТабДок.ПолеСлева = 0;
		ТабДок.ПолеСнизу = 0;
		ТабДок.ПолеСправа = 0;
		ТабДок.РазмерКолонтитулаСверху = 0;
		ТабДок.РазмерКолонтитулаСнизу = 0;
		ТабДок.СохранятьСвойстваОтображения = Истина;

		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"РасходныйОрдерИЗаданиеНаОтбор",
			НСтр("ru = 'Расходный ордер и задание на отбор'"),
			ТабДок);
	
	КонецЕсли;

	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РасходныйОрдерИЗаданиеНаОтборСокрВариант") Тогда
		
		ПервыйДокумент = Истина;
		ТабДок = Новый ТабличныйДокумент; 		
		Для Каждого ОбъектПечати Из МассивОбъектов Цикл
			
			МасОбъектов = Новый Массив;
			МасОбъектов.Добавить(ОбъектПечати);
			
			ТабДок1 = ПечатьРасходногоОрдераНаТоварыСокрВариант(МасОбъектов, ОбъектыПечати);
	//		ТабДок2 = Обработки.ПечатьЗаданияНаОтбор.СформироватьЗаданиеНаОтборРазмещениеТовараСокрВариант(МасОбъектов, ОбъектыПечати, ПараметрыПечати);
	//
	//		ДобавитьТабличныйДокумент(ТабДок1, ТабДок2);  		
			ТабДок1.ТолькоПросмотр = Истина; 		
			
			Если ПервыйДокумент Тогда
				ТабДок.Вывести(ТабДок1);
				ПервыйДокумент = Ложь;
			Иначе
				ДобавитьТабличныйДокумент(ТабДок, ТабДок1,);//, СчетчикДокументов);  
			//	СчетчикДокументов = СчетчикДокументов + 1;
			КонецЕсли;
			
		КонецЦикла; 
		
		//мой код
			Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Маркетплейсы") Тогда
		
		ПервыйДокумент = Истина;
		ТабДок = Новый ТабличныйДокумент; 		
		Для Каждого ОбъектПечати Из МассивОбъектов Цикл
			
			МасОбъектов = Новый Массив;
			МасОбъектов.Добавить(ОбъектПечати);
			
			ТабДок1 = ПечатьРасходногоОрдераНаТоварыСокрВариант(МасОбъектов, ОбъектыПечати);
	//		ТабДок2 = Обработки.ПечатьЗаданияНаОтбор.СформироватьЗаданиеНаОтборРазмещениеТовараСокрВариант(МасОбъектов, ОбъектыПечати, ПараметрыПечати);
	//
	//		ДобавитьТабличныйДокумент(ТабДок1, ТабДок2);  		
			ТабДок1.ТолькоПросмотр = Истина; 		
			
			Если ПервыйДокумент Тогда
				ТабДок.Вывести(ТабДок1);
				ПервыйДокумент = Ложь;
			Иначе
				ДобавитьТабличныйДокумент(ТабДок, ТабДок1, СчетчикДокументов);  
				СчетчикДокументов = СчетчикДокументов + 1;
			КонецЕсли;
			
		КонецЦикла;
			 //конец моего кода 
		ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходныйОрдерНаТовары_РасходныйОрдерНаТов­ары";
		ТабДок.АвтоМасштаб = Истина;
		ТабДок.ПолеСверху = 0;
		ТабДок.ПолеСлева = 0;
		ТабДок.ПолеСнизу = 0;
		ТабДок.ПолеСправа = 0;
		ТабДок.РазмерКолонтитулаСверху = 0;
		ТабДок.РазмерКолонтитулаСнизу = 0;
		ТабДок.СохранятьСвойстваОтображения = Истина;
	
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"РасходныйОрдерИЗаданиеНаОтборСокрВариант",
			НСтр("ru = 'Расходный ордер и задание на отбор (Сокр. вариант)'"),
			ТабДок);
	
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. anton13m 2 17.11.23 08:56 Сейчас в теме
(5)
Должно быть как-то так, а не просто вставить ваш код куда-то посередине существующего:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РасходныйОрдерИЗаданиеНаОтбор") Тогда
////////// код для РасходныйОрдерИЗаданиеНаОтбор
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	 КоллекцияПечатныхФорм,
	 "РасходныйОрдерИЗаданиеНаОтбор",
	 НСтр("ru = 'Расходный ордер и задание на отбор'"),
	 ТабДок);
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РасходныйОрдерИЗаданиеНаОтборСокрВариант") Тогда
////////// Код для РасходныйОрдерИЗаданиеНаОтборСокрВариант
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	 КоллекцияПечатныхФорм,
	 "РасходныйОрдерИЗаданиеНаОтборСокрВариант",
	 НСтр("ru = 'Расходный ордер и задание на отбор (Сокр. вариант)'"),
	 ТабДок);
КонецЕсли;
 //мой код 
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Маркетплейсы") Тогда
// Здесь новый код для Маркетплейсы
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	 КоллекцияПечатныхФорм,
	 "Маркетплейсы",
	 НСтр("ru = 'Маркетплейсы'"),
	 ТабДок);
КонецЕсли;
// конец кода 
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. glek 120 16.11.23 16:41 Сейчас в теме
(1) Без отладки браться за разработку нельзя - это основной инструмент разработчика.
3. 1cgodme 16.11.23 16:50 Сейчас в теме
(2)Да я понимаю :( Но есть решение какое-либо без отладчика если ?
4. soft_wind 16.11.23 17:46 Сейчас в теме
если нет отладчика (или не доступен)
можно использовать Отладочную печать!
опять только для тех кто понимает что это такое)

у вас на снимке написано: Обратитесь к администратору!

Обращались?
5. 1cgodme 17.11.23 08:39 Сейчас в теме
(4) да , он не в курсе в чем дело) причем эта проблема была только в одной печатной форме, я добавил пару строк кода, и теперь она в обоих сидит)
6. anton13m 2 17.11.23 08:56 Сейчас в теме
(5)
Должно быть как-то так, а не просто вставить ваш код куда-то посередине существующего:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РасходныйОрдерИЗаданиеНаОтбор") Тогда
////////// код для РасходныйОрдерИЗаданиеНаОтбор
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	 КоллекцияПечатныхФорм,
	 "РасходныйОрдерИЗаданиеНаОтбор",
	 НСтр("ru = 'Расходный ордер и задание на отбор'"),
	 ТабДок);
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РасходныйОрдерИЗаданиеНаОтборСокрВариант") Тогда
////////// Код для РасходныйОрдерИЗаданиеНаОтборСокрВариант
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	 КоллекцияПечатныхФорм,
	 "РасходныйОрдерИЗаданиеНаОтборСокрВариант",
	 НСтр("ru = 'Расходный ордер и задание на отбор (Сокр. вариант)'"),
	 ТабДок);
КонецЕсли;
 //мой код 
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Маркетплейсы") Тогда
// Здесь новый код для Маркетплейсы
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	 КоллекцияПечатныхФорм,
	 "Маркетплейсы",
	 НСтр("ru = 'Маркетплейсы'"),
	 ТабДок);
КонецЕсли;
// конец кода 
Показать
7. soft_wind 17.11.23 10:07 Сейчас в теме
(5)
да , он не в курсе в чем дело)

значит администратор - ненастоящий!!!
куда копать?

как это не банально, в сторону изучения программирования!
что бы что-то программировать - это, сначала, надо научиться делать!

(и рассмотреть пример (6) если разберетесь, то все у вас заработает.
8. 1cgodme 17.11.23 11:13 Сейчас в теме
(7) спасибо, попробую посмотреть
Оставьте свое сообщение

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