Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешняя печатная форма
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Dgiva
Помогите сделать задание (1С:Предприятие 8.2 (8.2.13.219)):
Сделать внешнюю печатную форму РКО и ПКО чтобы в печатной форме Реквизит "Одержав кассир" выводил параметр из документа "Ответственное лицо".
Я сделала уже следующие шаги: 1. Создать внешнюю обработку

2. Добавить туда реквизит “СсылкаНаОбъект” и скопировать из исходного документа шаблон печатной формы

3. Добавить в модуль обработки функцию Печать() с пометкой Экспорт

4. Скопировать в модуль обработки из исходного документа функцию формирования табличного документа и отредактировать ее.

На этапе "отредактировать" не знаю что редактировать, подскажите.


 ! 

Правила пункт №5
 
MATEVI
Это точно управляемая конфигурация?

Ну для начала в модуле обработки в меню текст нажать проверка модуля или Ctrl+F и посмотреть какие ошибки Вам выдаст.
Dgiva
Цитата(MATEVI @ 26.07.12, 12:11) необходимо зарегистрироваться для просмотра ссылки
Это точно управляемая конфигурация?
вроде да, дали ее для сдачи тестового при приеме на работу, а у меня знания поверхностные.

Я нашла Документ РасходныйКассовыйОрдер. Из модуля объекта скопировала функции печати в модуль объекта своей внешней печатной формы.

Дальше, как я понимаю мне нужно в поле "Одержав кассир" занести параметр из документа "Ответственное лицо". Как это можно описать, может мне может кто-то пожсказать.

И где найти сам макет РКО. В документе РКО его нет....

ВнешняяОбработка.ПечатьРКО.МодульОбъекта(59,7)}: Переменная не определена (ВидОперации)
Если <<?>>ВидОперации = Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику ИЛИ ВидОперации = Перечисления.ВидыОперацийРКО.ВыдачаДенежныхСредствПодотчетнику Тогда (Проверка: Толстый клиент (обычное приложение))


и еще такого типа ошибки
Ardi
Нужно в начале модуля написать что-то наподобие.
ВидОперации = ДокСсылка.ВидОперации;

И так для многих реквизитов документа.
MATEVI
Цитата(Dgiva @ 26.07.12, 12:41) необходимо зарегистрироваться для просмотра ссылки
вроде да,


необходимо зарегистрироваться для просмотра ссылки
Ну и первая ошибка наверное из за того что Ваша обработка еще не знает, что ВидОперации это реквизит документа который находится в СсылкаНаОбъект...
Dgiva
от этой ошибки я вроде избавилась, а как занести Реквизит "Одержав кассир" из документа "Ответственное лицо"
MATEVI
Цитата(Dgiva @ 26.07.12, 14:01) необходимо зарегистрироваться для просмотра ссылки
от этой ошибки я вроде избавилась, а как занести Реквизит "Одержав кассир" из документа "Ответственное лицо"

Ну посмотрите как заполняются другие параметры например НомерОрдера и подставьте свои значения.
Dgiva
Не удалось сформировать внешнюю печатную форму!
Метод объекта не обнаружен (Печать)


где может быть ошибка?

то исправила теперь другое

Поле объекта не обнаружено (ВидОперации)
Егор Динин
Цитата(Dgiva @ 26.07.12, 15:58) необходимо зарегистрироваться для просмотра ссылки
Не удалось сформировать внешнюю печатную форму!


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

Цитата(Dgiva @ 26.07.12, 15:58) необходимо зарегистрироваться для просмотра ссылки
дали ее для сдачи тестового при приеме на работу, а у меня знания поверхностные


P.S. А кем Вас на работу берут?
Dgiva
Цитата(Егор Динин @ 26.07.12, 16:45) необходимо зарегистрироваться для просмотра ссылки
P.S. А кем Вас на работу берут?

я устраиваюсь на должность аналитика 1с, но дали и такое задание....с перспективой програмирования

ВидОперации = СсылкаНаОбъект.ВидОперации;
Контрагент = СсылкаНаОбъект.Контрагент;
мВалютаРегламентированногоУчета = СсылкаНаОбъект.мВалютаРегламентированногоУчета;
СчетКасса = СсылкаНаОбъект.СчетКасса;

я вот так прописала, но ему не нравится "мВалютаРегламентированногоУчета"
Поле объекта не обнаружено (мВалютаРегламентированногоУчета)


Егор Динин
Цитата(Dgiva @ 26.07.12, 16:48) необходимо зарегистрироваться для просмотра ссылки
я вот так прописала, но ему не нравится "мВалютаРегламентированногоУчета"
Поле объекта не обнаружено (мВалютаРегламентированногоУчета)


Это не реквизит документа, это переменная))) Смотрите в том модуле где процедуры и функции копировали, в начале модуля
Dgiva
Цитата(Егор Динин @ 26.07.12, 16:54) необходимо зарегистрироваться для просмотра ссылки
Смотрите в том модуле где процедуры и функции копировали, в начале модуля

к сожалению, там откуда я копировала, нет в начале модуля ничего, сразу идет функция печати
logist
В типовых конфигурациях управляемого приложения процедуры формирования печати расположены в модуле менеджера, и он не содержит данных Объекта.
Dgiva
Все ошибки исправила. Выводит тот же РКО, что и типовой.
Мне его нужно изменить: что бы в поле "Одержав кассир" занести параметр из документа "Ответственное лицо". Как это можно описать?

Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Булево не может быть выполнено


В чем может быть ошибка, может даже где-то в этой части кода?


 i 

Не стесняемся, ознакамливаемся с правилами форума.
 
Dgiva
Если СсылкаНаОбъект.ВидОперации = Перечисления.ВидыОперацийПКО.ПриходДенежныхСредствРозничнаяВыручка Тогда
        
        ТаблицаВыручки = СсылкаНаОбъект.Выгрузить();
        Для каждого Строка Из ТаблицаВыручки Цикл
            Если Строка.Возврат = Истина Тогда
                Строка.СуммаНДС = - Строка.СуммаНДС;    
            КонецЕсли;
        КонецЦикла;
        
        СуммаНДС = ТаблицаВыручки.Итог("СуммаНДС");    
        
    Иначе
        
        СуммаНДС = СсылкаНаОбъект.РасшифровкаПлатежа.Итог("СуммаНДС");
Dgiva
Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Булево не может быть выполнено

Подскажите, как это исправить, очень надо, а времени до обеда.
logist
Цитата(Dgiva @ 27.07.12, 9:32) необходимо зарегистрироваться для просмотра ссылки
Преобразование значения к типу Булево не может быть выполнено

В тексте ошибки указано в какой строке она возникает (хотя могли бы и здесь это указать, а так ждите гадалок) вот смотрите и ищите, пользуйтесь отладчиком.
sava1
Цитата(Dgiva @ 27.07.12, 0:39) необходимо зарегистрироваться для просмотра ссылки
Строка.Возврат = Истина


Тип Строка.Возврат Булево?
Да и = Истина не надо (обычно)

Какая конфигурация?
В уПП в модуле:
ОбластьМакета.Параметры.ФИОКассира = Кассир;
заменить на
ОбластьМакета.Параметры.ФИОКассира = СсылкаНаОбъект.Ответственный;

logist
Проблема скорее всего в первой строке сего опуса, потому что так не бывает:
Цитата(Dgiva @ 27.07.12, 0:39) необходимо зарегистрироваться для просмотра ссылки
СсылкаНаОбъект.ВидОперации

Цитата(Dgiva @ 27.07.12, 0:39) необходимо зарегистрироваться для просмотра ссылки
ТаблицаВыручки = СсылкаНаОбъект.Выгрузить();

sava1
Цитата(logist @ 27.07.12, 10:15) необходимо зарегистрироваться для просмотра ссылки
СсылкаНаОбъект.ВидОперации

Вполне цивильно, а вот ВЫГРУЗИТЬ без указания таблицы - это круто
Dgiva
Цитата(sava1 @ 27.07.12, 10:11) необходимо зарегистрироваться для просмотра ссылки
В уПП в модуле:
ОбластьМакета.Параметры.ФИОКассира = Кассир;
заменить на
ОбластьМакета.Параметры.ФИОКассира = СсылкаНаОбъект.Ответственный;


спс, так и сделала, работает
Ardi
Ну всё. ТС теперь не будут в франче ничему обучать. Сразу в поле отправят.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.