Что делаю не так?

1. DENSKR 15 23.04.18 20:52 Сейчас в теме
На основании заказа покупателя создаю расходную накладную и пытаюсь ее распечатать
Пишу код:
&НаКлиенте
Процедура создатьРасходнуюНакладную(Команда,ПараметрыКоманды)

ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_РасходнаяНакладная";	
	Док1=СоздатьРасходнуюНакладнуюНаСервере();
	Если Док1 тогда
			Режим = РежимДиалогаВопрос.ДаНет;
                        Ответ = Вопрос("Напечатать документ Расходная накладная?",Режим,0);
                        Если Ответ = КодВозвратаДиалога.Да Тогда
                    
					УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.РасходнаяНакладная", "Накладная",ПараметрыКоманды,ТабличныйДокумент,"ПАРАМЕТРЫ_ПЕЧАТИ_РасходнаяНакладная_Накладная"); 
						
					КонецЕсли;

		Записать();
	Конецесли;
	
	
КонецПроцедуры
Показать
В конце концов ошибка в модуле менеджера документа "РасходнаяНакладная: {Документ.РасходнаяНакладная.МодульМенеджера(3420)}: Итератор для значения не определен
Для Каждого ТекущийДокумент Из МассивОбъектов Цикл
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
20. DENSKR 15 30.04.18 20:50 Сейчас в теме +1 $m
ЗАДАЧА РЕШЕНА, ТЕМА ЗАКРЫТА!
Может кому пригодится запрос получения ссылки на созданный на основании док "Расходная накладная" :
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
	                      |	Док.Ссылка
	                      |ИЗ
	                      |	Документ.РасходнаяНакладная КАК Док
	                      |ГДЕ
	                      |	Док.ЗаказПокупателя = &ЗаказСсылка
	                      |	И НЕ Док.ПометкаУдаления
	                      |	И НЕ Док.ЗаказПокупателя.ПометкаУдаления");
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. Boneman 298 24.04.18 10:10 Сейчас в теме
(1)
// Формирует и выводит на экран печатные формы.
// 
// Параметры:
//  ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов;
//  ИменаМакетов       - Строка - идентификаторы печатных форм;
//  МассивОбъектов     - Ссылка, Массив - объекты печати;
//  ВладелецФормы      - УправляемаяФорма - форма, из которой выполняется печать;
//  ПараметрыПечати    - Структура - произвольные параметры для передачи в менеджер печати.
//
Процедура ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ВладелецФормы, ПараметрыПечати = Неопределено) Экспорт
Показать

Возникает вопрос, что у тебя в параметрах команды ?
и почему ссылка на твой вновь созданный документ, нигде не фигурирует ?
18. RustamZz 25.04.18 09:13 Сейчас в теме
(1) 3 параметром в УправлениеПечатьюКлиент.ВыполнитьКомандуПечати должен быть передан массив ссылок на документы, которые нужно распечатать, вместо ПараметрыКоманды
2. Slypower 2 23.04.18 21:04 Сейчас в теме
Записать(); на клиенте? А в каком месте хоть ругается?
3. Slypower 2 23.04.18 21:05 Сейчас в теме
И что вы записываете вообще?
4. DarkUser 23.04.18 21:13 Сейчас в теме
Модальные вызовы на УФ плохой тон. Так же проверяйте что у вас в переменной Док1, лучше передавать в неё не булевый тип а ссылку на созданный документ.
5. catena 110 24.04.18 05:35 Сейчас в теме
Вопросов масса.
- Точный текст ошибки (обычно ссылается на строчку кода)
- Что возвращает функция СоздатьРасходнуюНакладнуюНаСервере?
- Что печатаем?
- Что записываем?
- Где вообще исполняется вся эта прелесть?
6. Alexei_Siva 182 24.04.18 08:45 Сейчас в теме
Итераторов тут никаких не видно, значит ошибка не в этом участке кода что вы скидываете.
7. herfis 499 24.04.18 09:56 Сейчас в теме
1. Запускаешь отладчик.
2. Включаешь остановку по ошибке.
3. Смотришь стек вызовов.
9. tt33 24.04.18 10:17 Сейчас в теме
А там что?
 СоздатьРасходнуюНакладнуюНаСервере(); 
10. Boneman 298 24.04.18 10:21 Сейчас в теме
(9) судя по всему процедура создает накладную и возвращает истину либо ложь. Т.е. ссылки на документ нет вообще нигде.


Вопрос к топикстартеру.
Что она (процедура) вообще должна делать, Карл ? :))
11. catena 110 24.04.18 11:00 Сейчас в теме
(10)
возвращает истину либо ложь
Да вот не факт, мы все еще не знаем, где именно падает с ошибкой.
17. DENSKR 15 24.04.18 18:55 Сейчас в теме
(10)Создается Р/Н и заполняется по заказу. Далее эту Р/Н необходимо распечатать.
12. DENSKR 15 24.04.18 14:26 Сейчас в теме
Полный код:
&НаСервере
Функция СоздатьРасходнуюНакладнуюНаСервере()
	
	ЭтотДокумент = РеквизитФормыВЗначение("Объект");
	ЭтотДокумент.Записать(РежимЗаписиДокумента.Проведение);
	ЗначениеВРеквизитФормы(ЭтотДокумент, "Объект");
	Док1=Документы.РасходнаяНакладная.СоздатьДокумент();
	Док1.Заполнить(Объект.ссылка);
	Док1.дата=Текущаядата();
	Док1.Ответственный=Объект.Ответственный;
	Док1.Подразделение=Объект.СтруктурнаяЕдиницаПродажи;
	Док1.Автор=Объект.Автор;
	Док1.Комментарий=Объект.Комментарий;
	
	Если Док1.Запасы.Количество()=0 тогда
				Сообщить("Вы уже создали расходную накладную!!!");
		Возврат Ложь;
	КонецЕсли;
	
	
	    Если Док1.Запасы.Количество()>0 Тогда
		Док1.Записать(Режимзаписидокумента.Проведение);
		Сообщить("Создан документ "+док1);
		Если док1.Проведен тогда
			Объект.СостояниеЗаказа=справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен9");
			Возврат Истина;
		КонецЕсли;
	Иначе 
		Сообщить("Вы уже создали расходную накладную!!!");
		Возврат Ложь;

	КонецЕсли;

	// Вставить содержимое обработчика.
КонецФункции

&НаКлиенте
Процедура создатьРасходнуюНакладную(Команда,ПараметрыКоманды)

ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_РасходнаяНакладная";	
	Док1=СоздатьРасходнуюНакладнуюНаСервере();
	Если Док1 тогда
			Режим = РежимДиалогаВопрос.ДаНет;
                        Ответ = Вопрос("Напечатать документ Расходная накладная?",Режим,0);
                        Если Ответ = КодВозвратаДиалога.Да Тогда
                    
					УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.РасходнаяНакладная", "Накладная",ПараметрыКоманды,ТабличныйДокумент,"ПАРАМЕТРЫ_ПЕЧАТИ_РасходнаяНакладная_Накладная"); 
						
					КонецЕсли;

		Записать();
	Конецесли;
	
	
КонецПроцедуры
Показать
13. kudlach 12 24.04.18 14:58 Сейчас в теме
На клиенте создаешь табличный документ (пустой), вызываешь процедуру создания накладной, заполняешь в ней по текущему документу (Можно было просто использовать Объект.Ссылка, Обратная передача в реквизит не нужна ЗначениеВРеквизитФормы(ЭтотДокумент, "Объект"); )

На управление печати передаешь все еще пустой табличный документ, ПараметрыКоманды на входе в клиентскую процедуру непонятные
15. DENSKR 15 24.04.18 16:40 Сейчас в теме
(13)Как на основании изложенного кода тогда правильно скомпоновать?
14. kudlach 12 24.04.18 14:59 Сейчас в теме
В управляемых формах с Вопросами так не работают. Только если включено разрешение работы с толстым клиентом.
16. Shaldryn 24.04.18 16:47 Сейчас в теме
а почему вы не запилите это в создать на основании? а в расходной дописать заполнение по ЗК, а после проверять если создан по ЗК спрашивать о распечатке и использовать команду уже из документа расходной накладной печать?
не разбирался, можно ли так, просто мысль
19. DENSKR 15 29.04.18 19:39 Сейчас в теме
Собственно решения никто не сможет дать?
20. DENSKR 15 30.04.18 20:50 Сейчас в теме +1 $m
ЗАДАЧА РЕШЕНА, ТЕМА ЗАКРЫТА!
Может кому пригодится запрос получения ссылки на созданный на основании док "Расходная накладная" :
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
	                      |	Док.Ссылка
	                      |ИЗ
	                      |	Документ.РасходнаяНакладная КАК Док
	                      |ГДЕ
	                      |	Док.ЗаказПокупателя = &ЗаказСсылка
	                      |	И НЕ Док.ПометкаУдаления
	                      |	И НЕ Док.ЗаказПокупателя.ПометкаУдаления");
Оставьте свое сообщение

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