Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Янв 2018, 08:01
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Печать на управляемых формах  (Прочитано 6002 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн art93

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-08-03
  • Сайт: 
  • Профессия: Программист 1С
Создал с нуля документ и форму, макет.
Код для печати.Прописанный в Модуле менеджера. Подскажите ещё что нужно прописать и где?
(один из вопросов Нужно ли добавлять ПодменюПечати в форме?)
Заранее спасибо

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
   
        КомандаПечати = КомандыПечати.Добавить();
        КомандаПечати.Идентификатор = "ПФ_ЗаказНаСопровождение";
        КомандаПечати.Представление = НСтр("ru = 'Заказ на сопровождение'");
        КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
        КомандаПечати.Порядок = 10;
       
КонецПроцедуры

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
       
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            "ПФ_ЗаказНаСопровождение",
            НСтр("ru = 'Заказ на сопровождение'"),
            СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, Неопределено),
            ,
            "Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение");
        КонецЕсли;
       
КонецПроцедуры

Функция СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, КомплектыПечати)
   
    УстановитьПривилегированныйРежим(Истина);
   
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказНаСопровождение_ПФ_ЗаказНаСопровождение";       
    Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение");
    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
   
    Область = Макет.ПолучитьОбласть("Шапка");
    сслыкаНаДок = МассивОбъектов[0];
    Контрагент= сслыкаНаДок.Контрагент;
    КонтактноеЛицоКонтрагента= сслыкаНаДок.КонтактноеЛицоКонтрагента;
    Номер = сслыкаНаДок.Номер;
    Дата  = Формат(Дата,"ДФ=dd.MM.yyyy");
    Автор   = сслыкаНаДок.Ответственный.Наименование;
    ДатаПередачи = Формат(сслыкаНаДок.ДатаПередачиИсполнителю,"ДФ=dd.MM.yyyy");
    ТабличныйДокумент.Вывести(Область);

    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,);
   
    ТабличныйДокумент.АвтоМасштаб = Истина;
   
    Если ПривилегированныйРежим() Тогда
        УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;
   
    Возврат ТабличныйДокумент;
   
КонецФункции


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Не очень понятна суть вопроса. Задание на разработку вроде мы вам не давали и ответить на вопрос нужно добавлять меню или нет - так же ответить не сможем. Это вам виднее - необходимо это меню или нет.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
прогоните Конструктор печати и увидите что и где создастся...
команда Печать
текст формирования табдока в модуле менеджера и т.д.

при желании сгенерированное потом можно будет переделать под свое...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн art93

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-08-03
  • Сайт: 
  • Профессия: Программист 1С
Суть вопроса вот в чём:
У меня есть документ ЗаказНаСопровождение. Форма документа у него. И макет. https://cloud.mail.ru/public/99cx/CWVTkbi3W
Нужно чтоб в форме печатался макет. Вот что я уже написал видно выше.
Подскажите пожалуйста всё ли правильно в написанном коде и что ещё нужно для реализации печати.
Заранее спасибо!

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Суть вопроса вот в чём:
У меня есть документ ЗаказНаСопровождение. Форма документа у него. И макет. https://cloud.mail.ru/public/99cx/CWVTkbi3W
Нужно чтоб в форме печатался макет. Вот что я уже написал видно выше.
Подскажите пожалуйста всё ли правильно в написанном коде и что ещё нужно для реализации печати.
Заранее спасибо!

Подготовительные действия

На первом этапе нужно внедрить подсистему в те формы, в которых предполагается использовать команды печати, и в модули менеджеров объектов:

1. В формах каждого объекта, где необходимо разместить команду печати, в процедуре ПриСозданииНаСервере добавить следующий код:

Копировать в буфер обмена
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // СтандартныеПодсистемы.Печать
    УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.Печать
КонецПроцедуры
По умолчанию команды печати располагаются в командной панели формы, но размещение можно переопределить, указав второй параметр в вызове УправлениеПечатью.ПриСозданииНаСервере:

Копировать в буфер обмена
    УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ГруппаКомандПечати);
Динамическое создание команд печати на форме может замедлять ее открытие, поэтому размещать команды печати рекомендуется в статической группе команд вида Подменю.

2. В формах объекта, куда размещается команда печати (кроме форм списков), добавить код подключаемого обработчика команды:

Копировать в буфер обмена
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
3. В формах списка объекта, куда размещается команда печати, добавить код подключаемого обработчика команды:

Копировать в буфер обмена
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать

P.S. Взято  с ИТС

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
это если совсем строго "по научному" делать.

более простой вариант: переделать то что вам насоздает конструктор печати.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн art93

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-08-03
  • Сайт: 
  • Профессия: Программист 1С
Делал так, но выдаёт ошибку, поэтому подумал что не в ту сторону думаю.
Вот какая ошибка выдаётся:

{ОбщийМодуль.СтандартныеПодсистемыПовтИсп.Модуль(396)}: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().

Для объекта метаданных "Документ.ЗаказНаСопровождение"
не найден идентификатор
в справочнике "Идентификаторы объектов метаданных".

Для разработчика: возможно требуется обновить вспомогательные данные,
которые влияют на работу программы. Для выполнения обновления можно:
- воспользоваться внешней обработкой
  "Инструменты разработчика: Обновление вспомогательных данных",
- либо запустить программу с параметром командной строки 1С:Предприятия 8
  "/С ЗапуститьОбновлениеИнформационнойБазы",
- либо увеличить номер версии конфигурации, чтобы при очередном запуске
  выполнились процедуры обновления данных информационной базы.
      ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

Добавлено: 03 Авг 2015, 14:36

Надо именно строго "по научному". Я начинающий программист пишу программу внутренней автоматизации для компании франчайзи. Меня проверяют, чтоб всё было по стандартам.

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Делал так, но выдаёт ошибку, поэтому подумал что не в ту сторону думаю.
Вот какая ошибка выдаётся:

{ОбщийМодуль.СтандартныеПодсистемыПовтИсп.Модуль(396)}: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().

Для объекта метаданных "Документ.ЗаказНаСопровождение"
не найден идентификатор
в справочнике "Идентификаторы объектов метаданных".

Для разработчика: возможно требуется обновить вспомогательные данные,
которые влияют на работу программы. Для выполнения обновления можно:
- воспользоваться внешней обработкой
  "Инструменты разработчика: Обновление вспомогательных данных",
- либо запустить программу с параметром командной строки 1С:Предприятия 8
  "/С ЗапуститьОбновлениеИнформационнойБазы",
- либо увеличить номер версии конфигурации, чтобы при очередном запуске
  выполнились процедуры обновления данных информационной базы.
      ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

Добавлено: 03 Авг 2015, 14:36

Надо именно строго "по научному". Я начинающий программист пишу программу внутренней автоматизации для компании франчайзи. Меня проверяют, чтоб всё было по стандартам.
в Режиме предприятия заходите в РС ВерсииПодсистем и меняете версию нужной подсистемы перезагружаете и будет счастье.....Наверное))

Оффлайн art93

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-08-03
  • Сайт: 
  • Профессия: Программист 1С
Проблема решается обработкой "ИнструментыРазработчикаОбновлениеВспомогательныхДанных"

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Проблема решается обработкой "ИнструментыРазработчикаОбновлениеВспомогательныхДанных"
и такой вариант тоже подходит)))). Ну что макет на печать выходит??


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
98 Сообщений
AIFrame
77 Сообщений
alex0402
32 Сообщений
kiksi
24 Сообщений
pavl_vs
23 Сообщений
andron81_81
18 Сообщений
alexandr_ll
17 Сообщений
Norfolk
15 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений
Staler
12 Сообщений

* Кто онлайн

  • Точка Гостей: 432
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal