Имя: Пароль:
1C
 
Добавление печатной формы в меню печать
,
0 NIGHTHUNTER
 
23.08.22
05:37
Есть два документа. на примере одного, нужно вывести в меню печать печатную форму.
Вывести нужно в документ Заявка на командировку. Включил ему возможность изменения.
В модуле менеджера, на примере документа по примеру которого следует делать, взял код, -


    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
    КомандаПечати.МенеджерПечати = "Отчет.ПечатнаяФормаТ9";
    КомандаПечати.Идентификатор = "ПФ_MXL_Т9";
    КомандаПечати.Представление = НСтр("ru = 'Приказ о направлении в командировку (Т-9)';
                                        |en = 'Business trip order (T-9)'");
    КомандаПечати.Порядок = 10;
    КомандаПечати.ФункциональныеОпции = "ИспользоватьОплатуКомандировок,НеИспользоватьРасчетЗарплатыРасширенная";



Поместил в процедуру ДобавитьКомандыпечати.

Но идет ошибка, -  


В настройку формирования Т-9 (10, 10а) внесены критичные изменения. Печатная форма не будет сформирована. {(3939, 3)}: Синтаксическая ошибка "КАК"
<<?>>КАК ДолжностьПоШтатномуРасписанию,
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1468)}:    ОтчетОбъект.СкомпоноватьРезультат(Новый ТабличныйДокумент);
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1341)}:        МакетКомпоновки = ДобавитьМакетКомпоновкиДанныхОтчета(Отчет, МетаданныеОтчета.Имя, КлючВарианта, ОтчетОбъект);
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(81)}:                    МакетКомпоновкиДанных = МакетКомпоновкиДанныхОтчета(ОбъектОтчета, КлючВарианта);
{Отчет.ПечатнаяФормаТ9.МодульМенеджера(43)}:    ЗарплатаКадрыОтчеты.ВывестиВКоллекциюПечатнуюФорму("Отчет.ПечатнаяФормаТ9",
{ОбщийМодуль.УправлениеПечатью.Модуль(2067)}:                    МенеджерПечати.Печать(ОбъектыСоответствующиеПечатнойФорме, ПараметрыПечати, ВременнаяКоллекцияДляОднойПечатнойФормы,
{ОбщаяФорма.ПечатьДокументов.Форма(552)}:        ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(Параметры.ИмяМенеджераПечати, ИменаМакетов,
{ОбщаяФорма.ПечатьДокументов.Форма(52)}:        КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюКлиент.Модуль(35)}:    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
{ОбщийМодуль.УправлениеПечатьюБЗККлиент.Модуль(45)}:    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
{(1)}:УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати(ОписаниеКоманды)
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(110)}:        Результат = Вычислить(Обработчик);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(20)}:    ВыполнитьПодключаемуюКомандуПечатиЗавершение(Истина, ПараметрыВыполнения);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(270)}:            ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(35)}:    ПродолжитьВыполнениеКоманды(ПараметрыВыполнения);
{CleverenceButtonsExtension ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(125)}:        ПродолжитьВызов(Форма, Команда, Источник);
{CleverenceButtonsExtension ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(12)}:    CleverenceОбработатьВыполнениеКоманды(Форма, Команда, Источник);
{Документ.ЗаявкаНаКомандировку.Форма.ФормаДокумента.Форма(456)}:    ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);

по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
В настройку формирования Т-9 (10, 10а) внесены критичные изменения. Печатная форма не будет сформирована. {(3939, 3)}: Синтаксическая ошибка "КАК"
<<?>>КАК ДолжностьПоШтатномуРасписанию,


Выявил на какой процедуре. Но там ничего нет, ни текста запроса, ничего. Только типовые вызовы процедур , функций. Компоновщиков.

Думаю сейчас как с этим разобраться. В документе на примере которого делаю так же.
1 NIGHTHUNTER
 
23.08.22
05:41
Сама ошибка, вылетает в исключение на этой строке

    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки, МакетОформления,
        ТипГенератора, ПроверятьДоступностьПолей, ПараметрыФункциональныхОпций);
2 Мимохожий Однако
 
23.08.22
06:28
Посмотри процедуры в строке
Отчет.ПечатнаяФормаТ9.МодульМенеджера(43)}:
убедись, что этот отчёт работает
3 NIGHTHUNTER
 
23.08.22
07:12
(2) До нее не доходит.

http://joxi.ru/p27pgLvCLX19OA

Там масса, разных перевызовов, компоновщиков и прочего, подобного.

Я думаю делать внешнюю печатную форму. а с этим что не так не понятно.
4 Salimbek
 
23.08.22
07:24
(1) А в Схеме компоновки данных у вас не "кривой" запрос?
5 NIGHTHUNTER
 
23.08.22
07:25
(4) А где и как это найти? Я что то не встретил ничего, что бы можно было проверить, или отладить.
Вылетает на исключении и все.
6 NIGHTHUNTER
 
23.08.22
07:27
(4) Как можно найти этот проблемный момент? Где? Там начинает переходить в общие модули, и там крутится, пока не произойдет ошибка.

http://joxi.ru/eAO854GCvz5bpr
7 Salimbek
 
23.08.22
07:27
(5) Вы пишете, что "Сама ошибка, вылетает в исключение на этой строке". Значит можно поставить точку останова на "этой строке" и посмотреть, что параметре Схема.
Или, ваша Схема лежит в КомандаПечати.МенеджерПечати = "Отчет.ПечатнаяФормаТ9"; <-- тут
8 NIGHTHUNTER
 
23.08.22
07:28
(4) Вроде , как на печать идет вот этот макет ПФ_MXL_Т9
9 NIGHTHUNTER
 
23.08.22
07:32
Идет сюда, -

ОтчетОбъект.СкомпоноватьРезультат(Новый ТабличныйДокумент);

потом сюда

РезультатКомпоновки = ЗарплатаКадрыОтчеты.РезультатКомпоновкиМакетаПечатнойФормы(ЭтотОбъект, ДанныеРасшифровки);

и вот на этой строке, вылетает в исключение

МакетКомпоновки = МакетКомпоновкиДанныхДляКоллекцииЗначений(ОбъектОтчета.СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);


Что там посомтреть?
10 NIGHTHUNTER
 
23.08.22
07:32
(9+)

Функция МакетКомпоновкиДанныхДляКоллекцииЗначений(Схема, Настройки, ДанныеРасшифровки = Неопределено, МакетОформления = Неопределено,
    ПроверятьДоступностьПолей = Истина, ПараметрыФункциональныхОпций = Неопределено) Экспорт
    
    Возврат МакетКомпоновкиДанных(Схема, Настройки, ДанныеРасшифровки, МакетОформления,
        ПроверятьДоступностьПолей, ПараметрыФункциональныхОпций, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
КонецФункции
11 NIGHTHUNTER
 
23.08.22
07:33
(10+)

Функция МакетКомпоновкиДанных(Схема, Настройки, ДанныеРасшифровки = Неопределено, МакетОформления = Неопределено,
    ПроверятьДоступностьПолей = Истина, ПараметрыФункциональныхОпций = Неопределено, ТипГенератора = Неопределено) Экспорт
    
    Если ТипГенератора = Неопределено Тогда
        ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанных");
    КонецЕсли;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки, МакетОформления,
        ТипГенератора, ПроверятьДоступностьПолей, ПараметрыФункциональныхОпций);
    
    УточнитьОтборыЗапросовНаборовДанныхМакетаКомпоновкиДанных(МакетКомпоновкиДанных.НаборыДанных);
    
    Возврат МакетКомпоновкиДанных;
    
КонецФункции
12 NIGHTHUNTER
 
23.08.22
07:34
На этой строке в исключение вылетает

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки, МакетОформления,
        ТипГенератора, ПроверятьДоступностьПолей, ПараметрыФункциональныхОпций);
13 Salimbek
 
23.08.22
07:34
(9) Открываете вот тот Макет "ПФ_MXL_Т9" из (6) и смотрите там Схему Компоновки Данных. Есть ли там Запрос? Какой? Есть ли там "КАК ДолжностьПоШтатномуРасписанию"?
14 NIGHTHUNTER
 
23.08.22
07:35
(13) Там нету схемы, это просто макет

http://joxi.ru/VrwGpQNuoMPYZr
15 DEVIce
 
23.08.22
07:36
(9) Че смотреть, че смотреть. Схему компоновки смотреть, блядь! СКД у тебя поставляет данные для печати и видимо запрос в этом СКД обращается к полу, которого нет в твоем документе.
16 DEVIce
 
23.08.22
07:37
После веток таких авторов (у нас их тут трое), я понимаю что слишком мало прошу за свою работу.
17 Salimbek
 
23.08.22
07:37
(15) Логично, она, возможно, в (6) строчкой выше ;-)
18 NIGHTHUNTER
 
23.08.22
07:40
http://joxi.ru/82QJW7EH8k5zVA

видимо проще сделать печатную форму самому

где что выявлять и как не понятно, перегружено все везде
19 NIGHTHUNTER
 
23.08.22
07:43
Что то не так, в этом запросе да?

http://joxi.ru/4AkXZOaHjgw7zr
20 Salimbek
 
23.08.22
07:44
(18) Может в поле Макеты или Источники видно, откуда взялась эта Схема, но скорее всего она выделена синеньким в (6)
21 NIGHTHUNTER
 
23.08.22
07:45
(17) В той компоновке я не нашел этого проблемного поля, на которое идет ошибка
22 Salimbek
 
23.08.22
07:51
(21) А в полях вот этой переменной Схема ничего не подсказывает о том, где она лежит?
Ну и возможно - она лежит в вашем Документе "Заявка на командировку".
Но если это предположение тоже ошибочно, то надо посмотреть Стек вызовов до этой точки останова - и посмотреть по процедурам, где и чем заполняется эта Схема.
23 NIGHTHUNTER
 
23.08.22
08:01
(22) В документе, заявка на командировку нет макетов .
24 NIGHTHUNTER
 
23.08.22
08:11
(22) Вообще схема передается как

        МакетКомпоновки = МакетКомпоновкиДанныхДляКоллекцииЗначений(ОбъектОтчета.СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);


То есть она у отчета самого. Я ее открывал, там ошибки нет.
25 Salimbek
 
23.08.22
09:26
(24) Ну дальше значит копать. Например настроить тех. журнал. Или вообще, написать свою тестовую обработку, которая должна получить

РезультатКомпоновки = ЗарплатаКадрыОтчеты.РезультатКомпоновкиМакетаПечатнойФормы(ЭтотОбъект, ДанныеРасшифровки);

В нее передать нужные данные и смотреть, где и что отваливается.
26 СеменовСемен
 
23.08.22
09:47
ну кривой же запрос в компановке. Нужно отладчиком дойти до того места где этот запрос создается
27 NIGHTHUNTER
 
23.08.22
10:08
Я делал по примеру документа Командировка. Но там тоже не работает. Сказали от того что в тестовой базе не включен кадровый учет.
Как это влияет я не знаю.
28 NIGHTHUNTER
 
23.08.22
10:09
(26) Я открывал компановку, если кривой. то там же и были бы ошибки, но их там не было.
По этому что искать не понял. Я сделал внешнюю печатную форму.
29 СеменовСемен
 
23.08.22
10:09
в зупе текст компановки формируется програмно обычно
30 NIGHTHUNTER
 
23.08.22
10:10
(29) Понятно. Вот я и решил, что там запутаться сильно можно. Что не нужно совершенно.
Если макет с 1 секцией формируется по документу.
31 NIGHTHUNTER
 
23.08.22
10:32
(27+) В рабочей базе такие же ошибки. Глючит типовой функционал наверное. Или что это не знаю.
32 NIGHTHUNTER
 
23.08.22
11:07
не понятно все же как это исправить можно было бы

http://joxi.ru/l2Zz3VECl1q0g2
33 NIGHTHUNTER
 
23.08.22
11:21
Перед ошибкой когда, уже дальше не продолжается, на строке, -

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки, МакетОформления,
        ТипГенератора, ПроверятьДоступностьПолей, ПараметрыФункциональныхОпций);


Можно открыть вот такой дикий запрос. не знаю на сколько он страниц. Но очень много. И там все как в кашу свалено. В нем ли ошибка?

http://joxi.ru/Grq8VexCzWZy9A

http://joxi.ru/DmBK7EquqD7xg2
34 DrZombi
 
гуру
23.08.22
11:30
(0) Единственное, что вы хотите от отчета "ПечатнаяФормаТ9"?
Вы же его присобачили к документу "Заявка на командировку"

Там прямой вызов документа "Командировка"

ВЫБРАТЬ
    Командировка.Ссылка КАК СсылкаНаОбъект,
    Командировка.ДатаНачала КАК Период,
    Командировка.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТСсылкиНаДокумент
ИЗ
    Документ.Командировка КАК Командировка
ГДЕ
    Командировка.Ссылка В(&СсылкиНаОбъекты)
;
35 DrZombi
 
гуру
23.08.22
11:32
+ Как вариант, создать свой отчет "ПечатнаяФормаТ9", который будет использовать документ "Заявка на командировку"
36 DrZombi
 
гуру
23.08.22
11:32
+ Назвать "ПечатнаяФормаТ9_Зявка"
37 Salimbek
 
23.08.22
11:40
(33) Ну скопируй этот запрос и положи на ПастеБин какой-нибудь. Может посмотрит кто, может даже я, если не лень будет...
38 Salimbek
 
23.08.22
11:42
+(37) Хотя в свете (34) все равно переделывать надо.
39 DrZombi
 
гуру
23.08.22
12:31
+ (0)  "ФункциональныеОпции", коль вы используете заранее известный вам кусочек коду, то можно не использовать :)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.