Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Внешняя печатная форма ПеремещениеОС          
Hunterok Подменю пользователя
сообщение 14.01.14, 15:05
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 38
Спасибо сказали: 4 раз
Рейтинг: 0

Сразу скажу, что в программировании 1С я мало что понимаю, но хочу научиться подключать внешние печатные формы. Стоит задача сделать печатную форму "Перемещние ОС" для конфигурации БП.
Посмотрел на youtube обучающее видео:
1) Создал внешнюю обработку
2) Добавил реквизит "СсылкаНаОбъект"
3) Ссоздал макет
4) Скопировал функцию печати с модуля документа "ПеремещениеОС" и сделал в ней правки

<КОД МОДУЛЯ>
                                                                                                                                                  // Функция формирует табличный документ с печатной формой ОЗ-1,
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция Печать()      Экспорт

    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("Ссылка",         СсылкаНаОбъект.Ссылка);
    Запрос.УстановитьПараметр("ТекДата",        СсылкаНаОбъект.МоментВремени());
    Запрос.УстановитьПараметр("ТекОрганизация", СсылкаНаОбъект.Организация);
    Запрос.УстановитьПараметр("Сдал",             СсылкаНаОбъект.Сдал);
    Запрос.УстановитьПараметр("Принял",         СсылкаНаОбъект.Принял);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПеремещениеОС.Дата                                   КАК ДатаАкта,
    |    ПеремещениеОС.Номер                                  КАК НомерАкта,
    |    ПеремещениеОС.ПодразделениеОрганизации.Представление КАК ПринялоПодразделение,
    |    ПеремещениеОС.ПодразделениеОрганизации               КАК ПодразделениеПриняло,
    |    ВЫРАЗИТЬ(ПеремещениеОС.Организация.НаименованиеПолное
    |                        КАК СТРОКА(1000))     КАК Организация,
    |    КодыОрганизации.КодПоЕДРПОУ               КАК ЕДРПОУ,
    |    ФИОСдал.Фамилия + "" ""
    |        + ПОДСТРОКА(ФИОСдал.Имя, 1, 1) + "". ""
    |        + ПОДСТРОКА(ФИОСдал.Отчество, 1, 1) + "".""               КАК СдалФИО,
    |    ФИОПринял.Фамилия + "" ""
    |        + ПОДСТРОКА(ФИОПринял.Имя, 1, 1) + "". ""
    |        + ПОДСТРОКА(ФИОПринял.Отчество, 1, 1) + "".""             КАК ПолучилФИО,
    |    ДолжностьСдал.Должность                                       КАК СдалДолжность,
    |    ДолжностьПринял.Должность                                     КАК ПолучилДолжность
    |ИЗ
    |    Документ.ПеремещениеОС КАК ПеремещениеОС
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыОрганизации.СрезПоследних(&ТекДата,
    |                                         Организация = &ТекОрганизация) КАК КодыОрганизации
    |        ПО ПеремещениеОС.Организация = КодыОрганизации.Организация
    |        ЛЕВОЕ СОЕДИНЕНИЕ
    |            РегистрСведений.РаботникиОрганизаций.СрезПоследних(
    |                            &ТекДата,
    |                            Организация = &ТекОрганизация
    |                            И Сотрудник.Физлицо = &Сдал) КАК ДолжностьСдал
    |        ПО ПеремещениеОС.Организация = ДолжностьСдал.Организация
    |        ЛЕВОЕ СОЕДИНЕНИЕ
    |            РегистрСведений.РаботникиОрганизаций.СрезПоследних(
    |                            &ТекДата,
    |                            Организация = &ТекОрганизация
    |                            И Сотрудник.Физлицо = &Принял) КАК ДолжностьПринял
    |        ПО ПеремещениеОС.Организация = ДолжностьПринял.Организация
    |        ЛЕВОЕ СОЕДИНЕНИЕ
    |            РегистрСведений.ФИОФизЛиц.СрезПоследних(
    |                            &ТекДата,
    |                            ФизЛицо = &Сдал) КАК ФИОСдал
    |        ПО (ИСТИНА)
    |        ЛЕВОЕ СОЕДИНЕНИЕ
    |            РегистрСведений.ФИОФизЛиц.СрезПоследних(
    |                            &ТекДата,
    |                            ФизЛицо = &Принял) КАК ФИОПринял
    |        ПО (ИСТИНА)
    |
    |ГДЕ
    |    ПеремещениеОС.Ссылка = &Ссылка";
    ВыборкаПоШапке = Запрос.Выполнить().Выбрать();
    ВыборкаПоШапке.Следующий();

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

    ВыборкаПоКомиссии = РаботаСДиалогами.ПолучитьСведенияОКомиссии(ЭтотОбъект);
    
    Пока ВыборкаПоОС.Следующий() Цикл

        ОбластьМакета = Макет.ПолучитьОбласть("ОЗ1");
        Параметры     = ОбластьМакета.Параметры;
        Параметры.Заполнить(ВыборкаПоШапке);
        Параметры.Организация = СокрП(ВыборкаПоШапке.Организация);
        Параметры.Валюта      = ВалютаРегламентированногоУчета;
        
        Параметры.Заполнить(ВыборкаПоОС);
        Параметры.Заполнить(ВыборкаПоКомиссии);
        Параметры.НомерАкта   = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект);
        Параметры.ВидОперации = "Внутр. перемі-" + Символы.ПС + "щення";
        ТабДокумент.Вывести(ОбластьМакета);
        
    КонецЦикла;

    ТабДокумент.ОбластьПечати = ТабДокумент.Область(2, 2, ТабДокумент.ВысотаТаблицы, ТабДокумент.ШиринаТаблицы);
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, СсылкаНаОбъект.КоличествоЭкземпляров, СсылкаНаОбъект.НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект, НСтр("ru='Внутреннее перемещение основных средств';uk='Внутрішнє переміщення основних засобів'")), СсылкаНаОбъект.НепосредственнаяПечать);
    
КонецФункции // ПечатьОЗ1()


Эту обработку я подключил как Дополнительные внешние печатные формы к документу Перемещение ОС.

При печати получаю ошибку:
Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Дата)


Буду очень благодарен, если кто-то подскажет в каком направлении рыть. А то просидел 2 часа, но так и не устранил ошибку.

Zaval Подменю пользователя
сообщение 14.01.14, 15:15
Сообщение #2

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Где-то стоит "Дата" вместо "СсылкаНаОбъект.Дата". Возможно, в Макете.

И вот это
Параметры.НомерАкта   = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект);

скорее всего вернет ошибку.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.05.24, 20:59
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!