8.х Распечатать коментарий в РеализацииТоваровУслуг

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Garisson-zzz, 17 ноя 2010.

  1. TopicStarter Overlay
    Garisson-zzz
    Offline

    Garisson-zzz

    Регистрация:
    17 ноя 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Добрый вечер. Помогите с проблемкой. Необходимо создать внешнюю печатную форму, которая позволяла бы распечатавать Акт об оказании услуг с коментарием в шапке. Коментарий берётся из формы Акта.
  2. r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Поищи готовую га сайте http://infostart.ru
  3. TopicStarter Overlay
    Garisson-zzz
    Offline

    Garisson-zzz

    Регистрация:
    17 ноя 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    готового нет ни чего на сайте. Но всёравно спсб
  4. r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Вы вообще куда смотрите www.infostart.ru/public/72759/
  5. TopicStarter Overlay
    Garisson-zzz
    Offline

    Garisson-zzz

    Регистрация:
    17 ноя 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    epf есть на этой странице, он послужил бы еще одним эталоном, но выдаёт сообщение ---- > Внешняя обработка не может быть прочитана текущей версией программы.
    у меня 8.2.12.92. Вообще сам принцып создания внешней печатный формы понятен. проблемма с кодом.
    // Возвращает табличный документ для печати
    //// Параметры
    // нет
    //// Возвращаемое значение:
    // ТабличныйДокумент - документ для печати
    //
    Функция Печать() Экспорт
    Перем Запрос, ВыборкаШапки, ВыборкаТоваров; // Определяем переменные, используемые
    Перем ТабДокумент, Макет, ОбластьМакета; // в нашей обработке
    Запрос = Новый Запрос
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст = "
    |ВЫБРАТЬ
    | Док.Номер,
    | Док.Дата,
    | Док.Организация,
    | Док.ВалютаДокумента КАК Валюта,
    | Док.Контрагент КАК Получатель,
    | Док.Организация КАК Поставщик,
    | Док.СуммаДокумента
    |
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК Док
    |ГДЕ
    | Док.Ссылка = &ТекущийДокумент";
    ВыборкаШапки = Запрос.Выполнить().Выбрать(); // Собираем данные пол шапке документа
    ВыборкаШапки.Следующий();

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

    // Выводим секцию с поставщиком
    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ПредставлениеПоставщика =
    ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(
    ВыборкаШапки.Организация, ВыборкаШапки.Дата),
    "ПолноеНаименование,");
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
    ОбластьМакета.Параметры.Поставщик = ВыборкаШапки.Поставщик;
    ТабДокумент.Вывести(ОбластьМакета);

    // Выводим секцию с покупателем
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ПредставлениеПолучателя =
    ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(
    ВыборкаШапки.Получатель, ВыборкаШапки.Дата),
    "ПолноеНаименование,");
    ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
    ОбластьМакета.Параметры.Получатель = ВыборкаШапки.Получатель;
    ТабДокумент.Вывести(ОбластьМакета);

    // Выводим шапку таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ТабДокумент.Вывести(ОбластьМакета);

    // Выводим строки таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицы");
    Пока ВыборкаТоваров.Следующий()
    Цикл
    ОбластьМакета.Параметры.НомерСтроки = ВыборкаТоваров.НомерСтроки;
    ОбластьМакета.Параметры.Код = ВыборкаТоваров.Код;
    ОбластьМакета.Параметры.Номенклатура = ВыборкаТоваров.Номеклатура;
    ОбластьМакета.Параметры.Количество = ВыборкаТоваров.Количество;
    ОбластьМакета.Параметры.Цена = ВыборкаТоваров.Цена;
    ОбластьМакета.Параметры.Сумма = ВыборкаТоваров.Сумма;
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;

    // Выводим секцию с итоговой суммой
    ОбластьМакета = Макет.ПолучитьОбласть("Итого");
    ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(ВыборкаШапки.СуммаДокумента,
    ВыборкаШапки.Валюта);
    ТабДокумент.Вывести(ОбластьМакета);

    // Выводим секцию для подписей сторон
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
    ТабДокумент.Вывести(ОбластьМакета);

    Возврат ТабДокумент;
    КонецФункции // Печать()
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Откройте сначала в конфигураторе, он предложет сконвертировать, соглашайтесь.

    Если это ваш код, пишите конкретнее в чем проблема. И пожалуйста тэг code используйте.
  7. TopicStarter Overlay
    Garisson-zzz
    Offline

    Garisson-zzz

    Регистрация:
    17 ноя 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Сконвертировал. Подключил. Теперь пиит ----->>>>>>>>>>>>>>>
    Не удалось сформировать внешнюю печатную форму!
    Значение не является значением объектного типа (НаименованиеПолное)
  8. r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Попробуйте "НаименованиеСокращенное"
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Какая у вас конфигурация, и печатную форму для какой конфигурации вы скачали?
  10. TopicStarter Overlay
    Garisson-zzz
    Offline

    Garisson-zzz

    Регистрация:
    17 ноя 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Теперь интереснее --->>>>
    :angry: Не удалось сформировать внешнюю печатную форму!
    Значение не является значением объектного типа (НаименованиеПолное)


    конфигурация 8.2.12.92. Бухгалтерия предприятия, редакция 2.0 (2.0.15.10)
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вы комментарии там читали? Народ жалуется что не работает.
    Попробуйте другое что-нибудь оттуда скачать.
  12. TopicStarter Overlay
    Garisson-zzz
    Offline

    Garisson-zzz

    Регистрация:
    17 ноя 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    почти что нужно. Люди, подскажите как оставить форму Накладной без изменений + коментарий. Этот epf меняет её полностью и добавляет много лишнего.
    Код:
    Процедура ВывестиЗначение(ТабличныйДокумент, ОбластьМакета, НаименованиеРеквизита, ЗначениеРеквизита = "")
    ОбластьМакета.Параметры.НаименованиеРеквизита = НаименованиеРеквизита;
    ОбластьМакета.Параметры.ЗначениеРеквизита = ЗначениеРеквизита;
    ТабличныйДокумент.Вывести(ОбластьМакета);
    КонецПроцедуры
    
    Функция Печать() Экспорт
    //При необходимости можно дать пользователю возможность ввести любую
    // дополнительную информацию в экранной форме обработки
    ФормаНастройкаПечати = ПолучитьФорму("НастройкаПечати");
    Если ФормаНастройкаПечати.ОткрытьМодально() <> Истина Тогда
    Возврат Неопределено;
    КонецЕсли;
    
    Таб = Новый ТабличныйДокумент;
    Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальнаяВнешняяПечатнаяФорма_Печать";
    Макет = ПолучитьМакет("Печать");
    ОбластьРеквизитШапки = Макет.ПолучитьОбласть("РеквизитШапки");
    ОбластьПустая = Макет.ПолучитьОбласть("Пустая");
    ОбластьШапкаНомер = Макет.ПолучитьОбласть("ШапкаТЧ|КолонкаНомер");
    ОбластьШапкаРеквизит = Макет.ПолучитьОбласть("ШапкаТЧ|КолонкаРеквизит");
    ОбластьСтрокаНомер = Макет.ПолучитьОбласть("СтрокаТЧ|КолонкаНомер");
    ОбластьСтрокаРеквизит = Макет.ПолучитьОбласть("СтрокаТЧ|КолонкаРеквизит");
    
    //Выводим вид, номер и дату документа и все реквизиты шапки
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, "Документ", СсылкаНаОбъект);	
    Для каждого Реквизит Из СсылкаНаОбъект.Метаданные().Реквизиты Цикл
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, Реквизит.Представление(), СсылкаНаОбъект[Реквизит.Имя]);
    КонецЦикла;
    
    //Выводим все имеющиеся табличные части
    Таб.Вывести(ОбластьПустая);
    Для каждого ТабличнаяЧасть Из СсылкаНаОбъект.Метаданные().ТабличныеЧасти Цикл
    //Наименование табличной части
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, ТабличнаяЧасть.Представление());
    Таб.Вывести(ОбластьШапкаНомер);
    //Шапка табличной части
    Для каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл
    ОбластьШапкаРеквизит.Параметры.ИмяРеквизита = Реквизит.Представление();
    Таб.Присоединить(ОбластьШапкаРеквизит);
    КонецЦикла;
    //Строки табличной части
    Для каждого СтрокаТЧ Из СсылкаНаОбъект[ТабличнаяЧасть.Имя] Цикл
    ОбластьСтрокаНомер.Параметры.НомерСтроки = СтрокаТЧ.НомерСтроки;
    Таб.Вывести(ОбластьСтрокаНомер);
    Для каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл
    ОбластьСтрокаРеквизит.Параметры.ЗначениеРеквизита = СтрокаТЧ[Реквизит.Имя];
    Таб.Присоединить(ОбластьСтрокаРеквизит);
    КонецЦикла;
    КонецЦикла;
    Таб.Вывести(ОбластьПустая);
    КонецЦикла;
    //Выводим реквизиты формы
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, "Дополнительная строка", ДополнительнаяСтрока);
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, "Дополнительное число", ДополнительноеЧисло);
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, "Дополнительная дата", ДополнительнаяДата);
    //Выводим дополнительные параметры
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, "Дополнительные параметры");
    Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
    Для каждого КлючИЗначение Из ДополнительныеПараметры Цикл
    ВывестиЗначение(Таб, ОбластьРеквизитШапки, КлючИЗначение.Ключ, КлючИЗначение.Значение);
    КонецЦикла;
    КонецЕсли;
    //Возвращаем сформированный табличный документ
    Возврат Таб;
    КонецФункции
    

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