8.х Доработка печатной формы требование - накладная (м11)

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем retker, 20 дек 2013.

  1. TopicStarter Overlay
    retker
    Offline

    retker Опытный в 1С

    Регистрация:
    12 дек 2013
    Сообщения:
    124
    Симпатии:
    0
    Баллы:
    26
    Добрый день, новичок в 1с, поставленна задача реализовать внешнюю печатную форму с добавлением двух столбцов эл-тов на основе внутренней печатной формы требование - накладная М11, документ МЗ_Внутреннее перемещение.

    мне нужно выводить два дополнительных значения:
    1 Розничная (продажная) цена товаров с учетом наценки и НДС, руб., коп. - т.е. сумма
    2 Розничная (продажная) цена 1 ед. товара с учетом наценки и НДС, руб., коп. - цена

    Эти данные я беру из этого же документа, МЗ_ВнутреннееПеремещение.Материалы: ЦенаРеализации и СуммаРеализации

    Далее в макете уже внешней обработки добавил столбцы и прописал нужные ячейки как параметры, затем изменил запрос и добавил пару строчек кода, вот листинг:


    Код:
    // добавленные строчки в основной код обозначенны "//+"
    Функция Печать() Экспорт
    ТабДокумент = Новый ТабличныйДокумент;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    Запрос.Текст = "ВЫБРАТЬ
    | МЗ_ВнутреннееПеремещение.Номер КАК пНомер,
    | МЗ_ВнутреннееПеремещение.Дата КАК пДата,
    | МЗ_ВнутреннееПеремещение.Учреждение.НаименованиеПолное КАК пНаименованиеОрганизации,
    | МЗ_ВнутреннееПеремещение.Учреждение.КодОКПО КАК пКодОКПО,
    | МЗ_ВнутреннееПеремещение.ЦМООтправитель.Подразделение КАК пПодразделениеОтправитель,
    | МЗ_ВнутреннееПеремещение.ЦМОПолучатель.Подразделение КАК пПодразделениеПолучатель,
    | МЗ_ВнутреннееПеремещение.ЦМОПолучатель.Сотрудник КАК пМОЛПолучатель,
    | МЗ_ВнутреннееПеремещение.ЦМООтправитель.Сотрудник КАК пМОЛОтправитель,
    | ""105"" КАК пКоррСчет,
    | """" КАК пКодАналитики,
    | МЗ_ВнутреннееПеремещение.Материалы.(
    | НомерСтроки,
    | КВД,
    | СчетУчета.Представление КАК Счет,
    | КБКСчетУчета.Представление КАК КБК,
    | КОСГУСчетУчета.Представление КАК КОСГУ,
    | Количество КАК пКоличество,
    | Затребовано КАК пЗатребовано,
    | Сумма КАК пСумма,
    | ЕдиницаИзмерения.Представление КАК пЕдиница,
    | ЕдиницаИзмерения.Код КАК пКодЕдиницы,
    | ВЫБОР
    | КОГДА МЗ_ВнутреннееПеремещение.Материалы.Номенклатура.НаименованиеПолное = """"
    | ТОГДА МЗ_ВнутреннееПеремещение.Материалы.Номенклатура.Наименование
    | ИНАЧЕ МЗ_ВнутреннееПеремещение.Материалы.Номенклатура.НаименованиеПолное
    | КОНЕЦ КАК пНоменклатура,
    | Номенклатура.Код КАК пКодМЦ,
    | Номенклатура.НоменклатурныйНомер КАК пНоменклатурныйНомер,
    | ВЫБОР
    | КОГДА МЗ_ВнутреннееПеремещение.Материалы.Количество = 0
    | ТОГДА 0
    | ИНАЧЕ МЗ_ВнутреннееПеремещение.Материалы.Сумма / МЗ_ВнутреннееПеремещение.Материалы.Количество
    | КОНЕЦ КАК Цена,
    | ЦенаРеализации КАК рЦена, //+
    | СуммаРеализации КАК рСумма //+
    | )
    |ИЗ
    | Документ.МЗ_ВнутреннееПеремещение КАК МЗ_ВнутреннееПеремещение
    |ГДЕ
    | МЗ_ВнутреннееПеремещение.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    | пНомер";
    Выборка = Запрос.Выполнить().Выбрать();
    Если ТипЗнч(Выборка) = Тип("Структура") Тогда
    Шапка = Выборка.Шапка; // Это выборка запроса
    ТабЧасть = Выборка.ТабЧасть;
    Шапка.Следующий();
    Иначе
    Шапка = Выборка;
    Шапка.Следующий();
    ТабЧасть = Шапка.Материалы.Выгрузить();
    КонецЕсли;
    Макет = ПолучитьОбщийМакет("ТребованиеНакладнаяМ11");
    ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого");
    ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьМакетаЗаголовок.Параметры.Заполнить(Шапка);
    ОбластьМакетаЗаголовок.Параметры.пМОЛПолучатель = "";
    ТабДокумент.Вывести(ОбластьМакетаЗаголовок);
    ОбластьМакетаШапка.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакетаШапка);
    ЗатребованоИтог = 0;
    КоличествоИтог = 0;
    СуммаИтог = 0;
    СуммаИтогРоз = 0;//+
    ЦенаИтогРоз = 0;//+
    Для каждого ТекСтрока из ТабЧасть Цикл
    ОбластьМакетаСтрока.Параметры.Заполнить(ТекСтрока);
    ОбластьМакетаСтрока.Параметры.пЦена = Окр(ТекСтрока.Цена,2);
    пСчетМЦ = "" + ТекСтрока.КБК + "." + ТекСтрока.КВД + "." + ТекСтрока.Счет + "." + ТекСтрока.КОСГУ;
    пСчетМЦ = ?(Лев(пСчетМЦ,1)=".",Сред(пСчетМЦ,2),пСчетМЦ);
    ОбластьМакетаСтрока.Параметры.пСчетМЦ = пСчетМЦ;
    ТабДокумент.Вывести(ОбластьМакетаСтрока);
    ЗатребованоИтог = ЗатребованоИтог + ТекСтрока.пЗатребовано;
    КоличествоИтог = КоличествоИтог + ТекСтрока.пКоличество;
    СуммаИтог = СуммаИтог + ТекСтрока.пСумма;
    СуммаИтогРоз = СуммаИтогРоз + ТекСТрока.рСумма; // +
    ЦенаИтогРоз = ЦенаИтогРоз + ТекСТрока.рЦена; // +
    КонецЦИкла;
    ОбластьМакетаИтого.Параметры.пЗатребованоИтог = ЗатребованоИтог;
    ОбластьМакетаИтого.Параметры.пКоличествоИтог = КоличествоИтог;
    ОбластьМакетаИтого.Параметры.пСуммаИтог = СуммаИтог;
    ОбластьМакетаИтого.Параметры.рСуммаИтог = СуммаИтогРоз;//+
    ОбластьМакетаИтого.Параметры.рЦенаИтог = ЦенаИтогРоз; //+
    ТабДокумент.Вывести(ОбластьМакетаИтого);
    пДолжностьМОЛОтправитель = "";
    пФИОМОЛОтправитель = "";
    Если ЗначениеЗаполнено(Шапка.пМОЛОтправитель) Тогда
    СтруктураПараметров = Новый Структура("ДанныеСотрудника", Новый Структура("Должность"));
    ПолучениеНСИ.ПолучитьДанные(Шапка.пМОЛОтправитель, СсылкаНаОбъект.Дата, СтруктураПараметров);
    Если СтруктураПараметров.Свойство("Должность") Тогда
    пДолжностьМОЛОтправитель = СокрП(СтруктураПараметров.Должность);
    КонецЕсли;
    пФИОМОЛОтправитель = БухгалтерскийУчет.ФИО(Шапка.пМОЛОтправитель,Истина);
    КонецЕсли;
    ОбластьМакетаПодвал.Параметры.пДолжностьМОЛ = пДолжностьМОЛОтправитель;
    ОбластьМакетаПодвал.Параметры.пФИОМОЛ = пФИОМОЛОтправитель;
    пДолжностьМОЛПолучатель = "";
    пФИОМОЛПолучатель = "";
    Если ЗначениеЗаполнено(Шапка.пМОЛПолучатель) Тогда
    СтруктураПараметров = Новый Структура("ДанныеСотрудника", Новый Структура("Должность"));
    ПолучениеНСИ.ПолучитьДанные(Шапка.пМОЛПолучатель, СсылкаНаОбъект.Дата, СтруктураПараметров);
    Если СтруктураПараметров.Свойство("Должность") Тогда
    пДолжностьМОЛПолучатель = СокрП(СтруктураПараметров.Должность);
    КонецЕсли;
    пФИОМОЛПолучатель = БухгалтерскийУчет.ФИО(Шапка.пМОЛПолучатель,Истина);
    КонецЕсли;
    ОбластьМакетаПодвал.Параметры.пДолжностьМОЛПолучатель = пДолжностьМОЛПолучатель;
    ОбластьМакетаПодвал.Параметры.пФИОМОЛПолучатель = пФИОМОЛПолучатель;
    ТабДокумент.Вывести(ОбластьМакетаПодвал);
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    Возврат ТабДокумент;
    КонецФункции
    Вывело ошибку: {ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта(104)}: Поле объекта не обнаружено (рСуммаИтог)
    ОбластьМакетаИтого.Параметры.рСуммаИтог = СуммаИтогРоз;//+

    Подскажите, что я делаю не так. что то голова не варит :(
  2. NcSteel
    Offline

    NcSteel Опытный в 1С

    Регистрация:
    29 окт 2013
    Сообщения:
    78
    Симпатии:
    0
    Баллы:
    26
    нет в макете параметра с именем "рСуммаИтог", либо он находится в другой секции.... Проверьте!
  3. Savant
    Offline

    Savant Опытный в 1С

    Регистрация:
    19 ноя 2007
    Сообщения:
    252
    Симпатии:
    4
    Баллы:
    29
    Код:
    Макет = ПолучитьОбщийМакет("ТребованиеНакладнаяМ11");
    Видишь откуда он макет берет? Создай свой макет во внешней печатной форме (с двмя дополнительными колонками) и тяни его оттуда.
  4. TopicStarter Overlay
    retker
    Offline

    retker Опытный в 1С

    Регистрация:
    12 дек 2013
    Сообщения:
    124
    Симпатии:
    0
    Баллы:
    26
    Спасибо за помощь,печатная форма выводится.
  5. Равиль
    Offline

    Равиль

    Регистрация:
    24 окт 2014
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Подскажите, пожалуйста, что нужно сделать чтобы в шапке печатной формы М-11 выводилась автоматом нужная фамилия и должность? (1С 8.2 БП 2.0)
  6. ТехБухПривет
    Offline

    ТехБухПривет Профессионал в 1С Команда форума

    Регистрация:
    25 июн 2013
    Сообщения:
    504
    Симпатии:
    53
    Баллы:
    54
    У вас ответственные лица указаны для организации? (бух 2.0 у меня нет - по памяти): Открываете свою организацию, на вкладке подписи или ответственные лица - должны быть заполнены данные. Если не ошибаюсь программа автоматом должна подтягивать в эту форму.

Поделиться этой страницей