Передача Макета на Тонкий Клиент

1. dimalf 23.05.24 14:36 Сейчас в теме
Добрый день!

БЛ 3.0. Создал новую печатную форму Счета, но при работе с рабочей станции её Макет не находится. Выдаётся ошибка: Макет "" не найден.

Может кто подсказать, как передать Макет на Тонкий Клиент?
По теме из базы знаний
Найденные решения
24. dimalf 07.06.24 08:07 Сейчас в теме
Оказалось, что при переносе в рабочую базу надо не "сравнить и объединить конфигурации", а "загрузить конфигурацию из файла"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 23.05.24 14:43 Сейчас в теме
(1)получить функцией с дерективой &НаСервере
Либо вы что-то принципиально неправильно делаете.
3. dimalf 23.05.24 15:00 Сейчас в теме
(2) я получаю Макет из общего модуля из расширения
5. nomad_irk 76 23.05.24 15:06 Сейчас в теме
(3)понятнее не стало, но скорее всего вы что-то принципиально неправильно делаете.
4. Vinzor 102 23.05.24 15:04 Сейчас в теме
Для чего получать макет на "Клиент" ?
На "Клиенте" вызывайте серверный метод формирования "табличного документа", в нем уже зовите "макет"
Назад на Клиент возвращайте заполненный табличный документ и выводите его для печати "УправлениеПечатьюКлиент.ПечатьДокументов()"
Kulakov_P; +1 Ответить
6. dimalf 23.05.24 15:06 Сейчас в теме
(4) Пользователи работают не на Сервере, а на своих рабочих местах. Поэтому приходится так корячиться.

Если не сложно, можно пример кода?
7. spacecraft 23.05.24 15:11 Сейчас в теме
(6)
Пользователи работают не на Сервере, а на своих рабочих местах

Номинант на фраза десятилетия.
Raskad; puzo50; orakool; user1880116; GeraltSnow; +5 Ответить
8. Vinzor 102 23.05.24 15:12 Сейчас в теме
9. dimalf 26.05.24 09:01 Сейчас в теме
Всем спасибо, но это всё не то. Пользователи заходят в базу не через удалённый стол, а со своего рабочего места. И со своего места "не видят" макет печатной формы.
Из Общего модуля ПечатьТорговыхДокументов получаю макет

Для Каждого СведенияОДокументе Из СведенияСчетаНаОплату Цикл
.....
Макет = СведенияОДокументе.Документ.ПолучитьОбъект().ПолучитьМакет("Расш1_СчетДоговор");
....
КонецЦикла;

Общий модуль тоже в Расширении и обращение к нему через &Вместо
10. Torin 782 26.05.24 09:26 Сейчас в теме
(9) изврат какой то.. почему не создать ВПФ ? или БСП Создание макетов печатных форм
11. starjevschik 26.05.24 11:33 Сейчас в теме
Пользователям не нужен макет. Им нужна готовая печатная форма, то есть ТабличныйДокумент. От макета им пользы никакой, чтобы заполнить его, все равно придется на сервер идти.
Kulakov_P; orakool; o.kovalev; +3 Ответить
12. dimalf 26.05.24 18:58 Сейчас в теме
(11) а Вы можете подсказать решение проблемы? Или только через удалённый стол проблема решается?
13. starjevschik 26.05.24 19:48 Сейчас в теме
(12) причем тут стол? любую печатную форму бери и делай так же. Передается название макета, возвращается заполненный табличный документ, который можно показать пользователю. Если конфигурация с БСП, то там все стандартно делается, коряво, конечно, но это в 1с все так.
14. dimalf 26.05.24 21:27 Сейчас в теме
(13) можно поподробнее? Пример кода?
15. user1880116 26.05.24 21:34 Сейчас в теме
(14)
можно поподробнее
Вы бы, Дмитрий Михайлович, перед тем как код просить, рассказали бы вменяемо, что не работает. Все эти пассажи про рабочий стол, как минимум, странные.
Kulakov_P; Vinzor; +2 Ответить
16. dimalf 26.05.24 21:45 Сейчас в теме
(15) я не администрирую ни сеть, ни 1С. Поэтому говорю со слов человека, с которым контактирую. Компания разбросана по стране. Как мне сказали, что-то там мешает админу настроить пользователям удалённый рабочий стол (УРС) и подключение к базе происходит с того места, где сидит пользователь. Если вызвать печать, работая с УРС или зайдя на сервер, вопросов нет, но если эту же печатную форму попытается вызвать пользователь из другого города, возникает сообщение
Макет "" не существует. операция прервана.
17. user1880116 26.05.24 21:55 Сейчас в теме
(16)
я не администрирую ни сеть, ни 1С

То есть вы во всех вот этих "я получаю Макет из общего модуля из расширения", "Из Общего модуля ПечатьТорговыхДокументов получаю макет" ничего не понимаете...

Пригласите, пожалуйста, сюда человека, который сможет показать код полностью и рассказать о конфигурации. Ну, или не лезьте в это вообще.
18. dimalf 26.05.24 22:07 Сейчас в теме
(17) я понимаю. Но в установки и заморочки системного администратора мне лезть не разрешают.
19. user1880116 26.05.24 22:14 Сейчас в теме
(18) Пока понятно, что там есть ошибка в коде или данных, которая приводит к разному поведению на разных машинах. При выполнении пользовательской и серверной части на одной физической машине все работает. При работе на разных - падает.

Что конкретно там натворил этот человек, надо разбираться предметно, а не устраивать здесь испорченный телефон.
21. dimalf 27.05.24 10:20 Сейчас в теме
(19) Вот коды. Это модуль менеджера Счета в расширении

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


И ОбщийМодуль ПечатьТорговыхДокументов. Тоже в раширении

Функция ПечататьСчетДоговора(СведенияСчетаНаОплату, ОбъектыПечати, ПараметрыПечати) Экспорт
 
.
.
.
		Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.СчетНаОплатуПокупателю.Расш1_СчетДоговор");
.
.
.

	Возврат ТабличныйДокумент;

КонецФункции
Показать

И Макет не считывается.
20. starjevschik 26.05.24 22:41 Сейчас в теме
22. Vinzor 102 27.05.24 11:51 Сейчас в теме
Вот пост № 1 без поста № 21 просто был ни о чем.
Сделайте внешнюю печатную форму, добавьте команду замены ею "типовой" формы, и будет счастье.
Полный код формирования табличного документа, вероятнее всего, найдёте в "менеджере" документа, его забирайте (во внешнюю печатную) и сколько надо переделывайте под ваш макет
23. puzo50 27.05.24 12:00 Сейчас в теме
нашёл такой код:
ЧастиПути = СтрРазделить(ПутьКМакету, ".", Истина);
...
	Если ЧастиПути.Количество() <> 2 И ЧастиПути.Количество() <> 3 Тогда
		ВызватьИсключение ТекстОшибки;
	КонецЕсли;


у вас три. так что, вероятно, писать надо
документ.счетнаоплату.МАКЕТЫ.счетдоговор
24. dimalf 07.06.24 08:07 Сейчас в теме
Оказалось, что при переносе в рабочую базу надо не "сравнить и объединить конфигурации", а "загрузить конфигурацию из файла"
27. nomad_irk 76 07.06.24 09:23 Сейчас в теме
(24)я немного в аху. полном изумлении посижу, никто не против? :)
25. novohatko 07.06.24 09:00 Сейчас в теме
26. dimalf 07.06.24 09:16 Сейчас в теме
(25) с сарказмом это или нет, но лично я реально не подозревал, что такой ход сработает. Сделал его просто наобум. При этом совершенно непонятно, когда это нужно делать, когда нет? Всегда делаешь какие-то движения и вдруг однажды оно не срабатывает. Почему? Никто не знает. Или есть знающие люди, которые объяснят, почему в одном случае "сравнить и объединить конфигурации" не вызывает никаких проблем, а в другом нужно обязательно "загрузить конфигурацию из файла"?
Оставьте свое сообщение

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