Вход | Регистрация


1С:Предприятие ::

Метки: 

Ошибка внешней печатной формы

Я
   Cоляпсус
 
28.09.17 - 17:11
Здравствуйте, застрял с печатной формой. Так как опыта не так много, не знаю как решить проблему, может кто-то подскажет.
В ЗКБУ 1.0 встала задача изменить формируемые значения в печатной форме. Так как конфа на поддержке, добавляю доп печатную форму. Нашёл где формируется код (общий модуль) и скопировал код оттуда. Всё вроде поправил но застрял на вот какой ошибке:
{ВнешняяОбработка.ПредоставлениеОтпуска.МодульОбъекта(122,173)}: Ожидается выражение
        ПечатьРасчетаСреднегоЗаработка(МассивОбъектов, ОбъектыПечати,ДокументСсылка, ДатаСобытия, ПродолжительностьРасчетногоПериода, ОписаниеОплачиваемогоПериода, СпособРасчета,<<?>> Знач ИспользоватьСреднеЧасовойЗаработок = Неопределено , СписокСоставляющихСреднегоЗаработка = Неопределено, ВыводитьЗаголовок = Истина, ОтражатьДолюВремени = Истина, СтруктураПоказателей = Неопределено) (Проверка: Толстый клиент (обычное приложение))
Не понимает она <<?>> Знач ИспользоватьСреднеЧасовойЗаработок. Подскажите что предпринять.
Заранее благодарю
 
 
   rabbidX
 
1 - 28.09.17 - 17:18
"ПечатьРасчетаСреднегоЗаработка(МассивОбъектов, ОбъектыПечати,ДокументСсылка, ДатаСобытия, ПродолжительностьРасчетногоПериода, ОписаниеОплачиваемогоПериода, СпособРасчета,<<?>> Знач ИспользоватьСреднеЧасовойЗаработок = Неопределено , СписокСоставляющихСреднегоЗаработка = Неопределено, ВыводитьЗаголовок = Истина, ОтражатьДолюВремени = Истина, СтруктураПоказателей = Неопределено)"
Это у тебя объявление процедуры или вызов?
   Cоляпсус
 
2 - 28.09.17 - 17:19
Мммм(((, функция где формируется табдок
   Cоляпсус
 
3 - 28.09.17 - 17:21
в типовой работает, а при попытке переноса в печатную форму ругается, что-то я не так делаю, никак не пойму где исправить
   Lexey_
 
4 - 28.09.17 - 17:23
(2) почему ты из двух вариантов выбрал третий?
   rabbidX
 
5 - 28.09.17 - 17:25
Давай так попробуем:
Скопируй 121 и 122 строку модуля объекта внешней обработки
   Cоляпсус
 
6 - 28.09.17 - 17:29
(5) не понял честно говоря, строки могут быть любыми
   Cоляпсус
 
7 - 28.09.17 - 17:30
(4)какой третий вариант? о выборе внешней печатной формы?
   Numerus Mikhail
 
8 - 28.09.17 - 17:30
(6) как это строки могут быть любыми? динамически собираемая обработка?)
   rabbidX
 
9 - 28.09.17 - 17:31
(6) Не спорю, скопируй те, которые есть сейчас.
   Cоляпсус
 
10 - 28.09.17 - 17:32
(6)Нет обработка не динамически собирается
 
 Рекламное место пустует
   Cоляпсус
 
11 - 28.09.17 - 17:34
(9)всё равно не понимаю зачем копировать то и куда их копировать? Это же внешняя обработка и 121 и 122 строки попадают в тело запроса
   rabbidX
 
12 - 28.09.17 - 17:36
(11) Сюда копировать
   Cоляпсус
 
13 - 28.09.17 - 17:38
это пожалуйста, как бумага здесь всё стерпит, но зачем же именно 121 и 122
ИНАЧЕ """"
КОНЕЦ + ФИОФизЛицСрезПоследних.Фамилия, ОтветственныеЛицаСрезПоследних.НаименованиеФизлица) КАК НаименованиеОтветственногоЛица,
   Numerus Mikhail
 
14 - 28.09.17 - 17:40
(13) А если пойти другим путем. Можешь привести кусок кода +- 5 строк, где вываливается эта ошибка из (0)? Чтобы мы хоть чуть-чуть понимали, что происходит
   Cоляпсус
 
15 - 28.09.17 - 17:41
121 и 122 строка модуль объекта внешней печатной формы или я чтото не понимаю?))) Точнее я точно не понимаю как исправить ошибку, но это не позор,а временное неудобство изза малоопытности.
   Cоляпсус
 
16 - 28.09.17 - 17:41
Сейчас
   Cоляпсус
 
17 - 28.09.17 - 17:43
Функция ПечатьРасчетаСреднегоЗаработка(МассивОбъектов, ОбъектыПечати,ДокументСсылка, ДатаСобытия, ПродолжительностьРасчетногоПериода, ОписаниеОплачиваемогоПериода, СпособРасчета, Знач ИспользоватьСреднеЧасовойЗаработок = Неопределено , СписокСоставляющихСреднегоЗаработка = Неопределено, ВыводитьЗаголовок = Истина, ОтражатьДолюВремени = Истина, СтруктураПоказателей = Неопределено) Экспорт
    
    Если Не ЗначениеЗаполнено(ДокументСсылка) Тогда
        Возврат Новый ТабличныйДокумент
    КонецЕсли;
    
    МетаданныеДокумента = ДокументСсылка.Метаданные();
    Попытка
        ИмяИсточникаДанных = МетаданныеДокумента.Имя;
    Исключение
        Возврат Новый ТабличныйДокумент
    КонецПопытки;
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасчетСреднегоЗаработка";
    
    Макет = ПолучитьОбщийМакет("РасчетСреднегоЗаработка");
    
    СекцияШапка = Макет.ПолучитьОбласть("Шапка");
    СекцияЗаголовокНачислений = Макет.ПолучитьОбласть("ЗаголовокНачислений");
    СекцияЗаголовокРабочегоМеста = Макет.ПолучитьОбласть("ЗаголовокРабочегоМеста");
    СекцияМесячныйЗаработок = Макет.ПолучитьОбласть("МесячныйЗаработок");
    СекцияСерединаОтчета = Макет.ПолучитьОбласть("СерединаОтчета");
    СекцияДоляВремени = Макет.ПолучитьОбласть("ДоляВремени");
    СекцияЗаголовокПремий = Макет.ПолучитьОбласть("ЗаголовокПремий");
    СекцияПремии = Макет.ПолучитьОбласть("Премии");
    СекцияПодвал = Макет.ПолучитьОбласть("Подвал");
    
    Запрос = Новый Запрос;
    
    // Установим параметры запроса

    Запрос.УстановитьПараметр("ДокументСсылка",            ДокументСсылка);
    Запрос.УстановитьПараметр("ДатаНачалаСобытия",        ДатаСобытия);
    Запрос.УстановитьПараметр("ИспользоватьСреднеЧасовойЗаработок", ИспользоватьСреднеЧасовойЗаработок);
    Запрос.УстановитьПараметр("Регистратор",            ДокументСсылка);
    Запрос.УстановитьПараметр("СпособРасчета",            СпособРасчета);
    Запрос.УстановитьПараметр("ОсновнойЗаработокНеиндексируемый", ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуНеИндексируемые);

и это не единственное обращение к параметру, там просто очень большой код, скопированный из общего модуля типовой конфы
   Lexey_
 
18 - 28.09.17 - 17:47
(7) тебя спросили: тёплый или холодный? А ты ответил мягкий
   FIXXXL
 
19 - 28.09.17 - 17:48
(17) а зачем ты ее вообще скопировал, вместо того, что бы просто вызвать и получить результат в модуле твоей обработки?
   rabbidX
 
20 - 28.09.17 - 17:48
В (17) Знач начинается со 181 символа а в (0) со 173. Где-то ты нас дуришь.
   Cоляпсус
 
21 - 28.09.17 - 17:49
Подозреваю, вы уж извините, я не со зла)), просто я не совсем понял (4), что значит третий, а какой первый и второй
   rabbidX
 
22 - 28.09.17 - 17:52
(21) да пофиг, забей. У тебя в 122 строке написано
 ПечатьРасчетаСреднегоЗаработка(МассивОбъектов, ОбъектыПечати,ДокументСсылка, ДатаСобытия, ПродолжительностьРасчетногоПериода, ОписаниеОплачиваемогоПериода, СпособРасчета,<<?>> Знач ИспользоватьСреднеЧасовойЗаработок = Неопределено , СписокСоставляющихСреднегоЗаработка = Неопределено, ВыводитьЗаголовок = Истина, ОтражатьДолюВремени = Истина, СтруктураПоказателей = Неопределено)

А слова "Функция" перед этой трататой нет. Исправляй.
   Cоляпсус
 
23 - 28.09.17 - 17:53
))) Ну я не то чтобы дурю, но есть чуть, просто одну я написал где использовал шаблон (122,173)}, а второй раз прислал, это где я не по шаблону делал а сам с нуля (15,172)}
поэтому так получилось
   Cоляпсус
 
24 - 28.09.17 - 17:54
(21) ну почему, это тратата и есть функция
   Cоляпсус
 
25 - 28.09.17 - 18:02
эх гонят домой, но если вдруг не все против, спрошу ещё раз завтра ,спасибо всем за содействие)
   Cоляпсус
 
26 - 29.09.17 - 10:16
Доброе утро. Вынужден повториться, так как решения пока не нашёл.
Есть типовая конфа ЗКБУ 1.0 там есть типовая печатная форма
"Расчёт среднего основного отпуска", заказчик решил что в ячейке он хочет видеть другое значение. Так как конфа на полной поддержке, решил добавить дополнительную внешнюю печатную форму (хотя только сейчас подумал, а какие ещё есть выходы), и вот создал по шаблону печатную форму, нашёл код в общем модуле где формируются значения данной формы, код скопировал, поправил разные огрешности в связи с копированием, но застрял на одной ошибке и не пойму как поправить, чтобы не ругалась.
{ВнешняяОбработка.ПредоставлениеОтпуска.МодульОбъекта(122,173)}: Ожидается выражение        ПечатьРасчетаСреднегоЗаработка(МассивОбъектов, ОбъектыПечати,ДокументСсылка, ДатаСобытия, ПродолжительностьРасчетногоПериода, ОписаниеОплачиваемогоПериода, СпособРасчета,<<?>> Знач ИспользоватьСреднеЧасовойЗаработок = Неопределено , СписокСоставляющихСреднегоЗаработка = Неопределено, ВыводитьЗаголовок = Истина, ОтражатьДолюВремени = Истина, СтруктураПоказателей = Неопределено) (Проверка: Толстый клиент (обычное приложение))

Заранее благодарю
   Lexey_
 
27 - 29.09.17 - 10:20
(26) ты вместо вызова процедуры используешь текст из ее объявления
   Cоляпсус
 
28 - 29.09.17 - 10:45
ссори за вопрос, а как поправить?
   Lexey_
 
29 - 29.09.17 - 10:48
(28) а посмотри как в других местах используется
   Cоляпсус
 
30 - 29.09.17 - 10:53
(29) Хм, этот параметр используется только в рамках этой функции,
   Lexey_
 
31 - 29.09.17 - 10:55
(30) я про процедуру, а не параметр
   Cоляпсус
 
32 - 29.09.17 - 10:59
Не понимаю
   Cоляпсус
 
33 - 29.09.17 - 12:35
Сообразил поправил.
Осталось только поправить ещё маленький огрех.
В Процедуре Печать, есть метод 
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НачислениеОтпуска") Тогда
и конечно система ругается 
{ВнешняяОбработка.ПредоставлениеОтпуска.МодульОбъекта(113,7)}: Переменная не определена (УправлениеПечатью)
    Если <<?>>УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НачислениеОтпуска") Тогда (Проверка: Толстый клиент (обычное приложение))
вот сейчас не пойму, необходимо определить переменную или это как-то связано с клиентским или серверным вызовом?
Заранее благодарен.
 
 
   Cоляпсус
 
34 - 29.09.17 - 12:37
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода = Неопределено)  экспорт 
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НачислениеОтпуска") Тогда
        
        ДокументСсылка     = МассивОбъектов[0];
        ДатаСобытия        = ДокументСсылка.ДатаСобытия;
        ПродолжительностьРасчетногоПериода  =  ДокументСсылка.ПродолжительностьРасчетногоПериода;
        ОписаниеОплачиваемогоПериода = ДокументСсылка.ОписаниеОплачиваемогоПериода;
        СпособРасчета = ДокументСсылка.СпособРасчета;
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "НачислениеОтпуска",//тот же - что и в функции "СведенияОВнешнейОбработке"! 

        "Начисление отпуска при печати комплектом", 
        //СформироватьПечатнуюФорму1(МассивОбъектов, ОбъектыПечати)//исполняющая функция (в этом же модуле)

        ПечатьРасчетаСреднегоЗаработка(ДокументСсылка, ДатаСобытия, ПродолжительностьРасчетногоПериода, ОписаниеОплачиваемогоПериода, СпособРасчета)//, Знач ИспользоватьСреднеЧасовойЗаработок = Неопределено , СписокСоставляющихСреднегоЗаработка = Неопределено, ВыводитьЗаголовок = Истина, ОтражатьДолюВремени = Истина, СтруктураПоказателей = Неопределено)

);
КонецЕсли;
    
КонецПроцедуры
   SleepyHead
 
35 - 29.09.17 - 12:55
(0) "В ЗКБУ 1.0 встала задача изменить формируемые значения в печатной форме."

А ничего, что эти значения (возможно!) не будут стыковаться с фактическим расчетом среднего в документе?
   Cоляпсус
 
36 - 29.09.17 - 13:00
Да там ячейки не затрагивающие расчёты, скорее видимость представления например не "премия за 3 мес", а хотят чтобы была "Годовая премия", но всё равно формируется из значений и менять нужно
   SleepyHead
 
37 - 29.09.17 - 13:04
(36) Ну вот как-то изменение количества месяцев в премии это нифига не косметическое изменение.
   SleepyHead
 
38 - 29.09.17 - 13:07
Если речь идет о видимости представления, то вопрос - пробовали менять макеты печатных форм?

Раздел "Администрирование", "Печатные формы, отчеты и обработки" - "Макеты печатных форм"

Фильтруйте по "Печать расчета среднего заработка" в колонке "Владелец макета".
   Cоляпсус
 
39 - 29.09.17 - 13:17
)) где бы в единичке ещё найти Раздел "Администрирование", "Печатные формы, отчеты и обработки" - "Макеты печатных форм" 
нет такого, в лучшем случае "Сервис", но сейчас поищу где бы это могло находиться
   SleepyHead
 
40 - 29.09.17 - 13:19
Точно, я балда. Не посмотрел версию.
   Cоляпсус
 
41 - 29.09.17 - 13:53
В единичке только через внешнюю можно реализовать(насколько я понимаю), поэтому (33) всё ещё актуальный вопрос
   Cоляпсус
 
42 - 29.09.17 - 14:17
Извиняюсь, но снова вынужден не повториться
Осталось только поправить ещё маленький огрех.
В Процедуре Печать, есть метод 
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НачислениеОтпуска") Тогда 
и конечно система ругается 
{ВнешняяОбработка.ПредоставлениеОтпуска.МодульОбъекта(113,7)}: Переменная не определена (УправлениеПечатью) 
    Если <<?>>УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "НачислениеОтпуска") Тогда (Проверка: Толстый клиент (обычное приложение)) 
вот сейчас не пойму, необходимо определить переменную или это как-то связано с клиентским или серверным вызовом?
Заранее благодарен.
   dezss
 
43 - 29.09.17 - 14:33
Стесняюсь, но все таки спрошу.
А ты кто по образованию, не геолог случайно?)
   dezss
 
44 - 29.09.17 - 14:33
(43) + ну или может геодезист
   FIXXXL
 
45 - 29.09.17 - 14:34
(44) или бетонщик :)
   Cоляпсус
 
46 - 29.09.17 - 16:01
Не стесняйся, экономист, но волей случая пришлось переквалифицироваться и менять направление деятельности. И в этом нет ничего такого и даже если бы был бетонщик, так наоборот бы порадовались за парня, что новых знаний набирается.... или даже геодезист, всё равно это не меняет дело...
   dezss
 
47 - 29.09.17 - 16:23
(46) просто был тут один геодезист...
а чтоб переквалифицироваться, надо хотя бы какие-то базовые вещи изучить. Про область видимости и жизни сущностей(в частности переменных) и т.п.
Думаешь, 5 лет в универе (а сейчас даже 6, вроде) люди просто так сидят, а не учатся программированию?
А чтобы переквалифицироваться, надо пройти обучение. На конкретные вопросы тут отвечают, но если спрашивают про такую базовую вещь как "Переменная не определена", то ответить просто нечего. Ну не определена она, значит в этой области кода ее нет.
   Cоляпсус
 
48 - 29.09.17 - 17:59
(47) Думаешь я не учился и не продолжаю учится и днём и кстати иногда ночами? Объем большой всё сразу освоить просто мозгу не возможно. Поэтому и спрашиваю. Если лень отвечать, просто не ввязвывайся в переписку, а остальные мнения и домыслы не конструктивны и не красят не с какой стороны.
А что переменная не определена в данной области я и так вижу, просто не пойму как это исправить, необходимо переменную присваивать или это с серверными или клиентскими вызовами связано. Не у меня , но это так работало, у меня не работает. пытаюсь выяснить почему, вот и всё...
   PiotrLoginov
 
49 - 29.09.17 - 22:45
(48) *не красят НИ с какой стороны

Вот не верю, что Вы нечаянно опечатались. Наверняка, искренне полагаете, что частицу употребили правильно.

...

Просто одно дело, когда человек только осваивает некую профессию и рассчитывает на адекватное отношение к своему уровню. С пониманием того, что текущий навык программирования не дает оснований полагать, будто бы у этого человека и в других областях знаний такая же компетенция.

И совсем другое дело, когда Вы не демонстрируете ни аккуратности, ни методичности, ни логики, а только невежество и высокомерие, даже во время запроса помощи не забывая назидательно поправить собеседника. Так вот Вам ответочка :)
 
 Рекламное место пустует



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует