Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • Типовые конфигурации
    • ЗУП 3.1
      • Разработка
        • Обработки
        • Отчеты
        • Печатные формы
        • Расширения
      • Инструкции
      • Ответы техподдержки 1С
      • Общие вопросы
    • ДО 2.1
    • УХ 3.2
    • УПП 1.3
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Обработки
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Разработки
    • Контакты
  • Toggle search form

Внешняя печатная форма с диалогом перед печатью (УФ)

Posted on 21 июня 22 г.24 июня 25 г. By Алексей 20 комментариев к записи Внешняя печатная форма с диалогом перед печатью (УФ)
Образец печатной формы:

Справка о заработной плате с диалогом перед печатью (УФ)Скачать

внесены корректировки с учетом изменений БСП 3.1.9

Пример печатной формы «Справка о заработной плате и других доходах» которая запрашивает период у пользователя перед выводом на печать.


Описание:

Демонстрационный пример добавляется, как внешняя печатная форма и вызывается из меню «Печать» карточки «Сотрудника».

Печатная форма с диалогом перед печатью
  1. В сведениях о внешней обработки устанавливаем вызов клиентского метода
1С (Код)
1
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();

2. У формы создаем 4-и ключевых параметра:

Ключевые параметры формы

3. Создаем еще одну форму ввода

Форма ввода

4. В модуле «Формы» &НаКлиенте прописываем процедуру Печать() которая откроет «Форму ввода» с вызовом процедуры ПечатьЗавершение() при закрытии.

1С (Код)
1
2
3
4
5
&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
ПараметрыФормы = Новый Структура;
ОткрытьФорму("ВнешняяОбработка.СправкаОЗаработнойПлатеЗаПериод.Форма.ФормаВвода",ПараметрыФормы,,,,,Новый ОписаниеОповещения("ПечатьЗавершение", ЭтаФорма, ОбъектыНазначенияМассив), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
КонецПроцедуры
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаКлиенте
Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Если Результат.Печать Тогда
ВыполняемаяКоманда = Параметры;
// {{ изменения версии БСП 3.1.9
//ПараметрыОткрытия                                       = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия                                         = Новый Структура("ИсточникДанных, ПараметрыИсточника, КоллекцияПечатныхФорм");
// }}
ПараметрыОткрытия.ИсточникДанных                          = Параметры.ДополнительнаяОбработкаСсылка;
ПараметрыОткрытия.ПараметрыИсточника                      = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды;
ОбъектыНазначения = Новый Массив;
ОбъектыНазначения.Добавить(Результат);
//Ссылки на вызвавшие форму объекты
Для каждого ОбъектНазначения Из ВыполняемаяКоманда.ОбъектыНазначения Цикл
ОбъектыНазначения.Добавить(ОбъектНазначения);
КонецЦикла;
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения;
//Вывод сформированного табличного документа в штатную форму.
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

внесены корректировки с учетом изменений БСП 3.1.9

В процедуре ПечатьЗавершение() открывается общая форма «ПечатьДокументов».

5. В «Форме ввода» получаются нужные данные от пользователя и передаются в параметр метода Закрыть(<ПараметрЗакрытия>).

1С (Код)
1
2
3
4
5
6
7
&НаКлиенте
Процедура Печать(Команда)
Структура = Новый Структура;
Структура.Вставить("ПериодОтчета", ПериодОтчета);
Структура.Вставить("Печать" , Истина);
ЭтаФорма.Закрыть(Структура);
КонецПроцедуры

Образец печатной формы для скачивания в начале описания.

Рекомендации

  • Внешняя печатная форма с печатью без проверки на проведение и пометку удаления (УФ)
  • Проверка вывода на печать - если не умещается, печатать с нового листа
  • Программное объединение строк в табличном документе
ЗУП 3.1, Печатные формы, Печатные формы, Разработка, Шаблоны и заготовки Tags:печать с диалогом

Навигация по записям

Previous Post: Программная загрузка фото физических лиц в ЗУП 3.1
Next Post: Представление «Кадровая История Сотрудников»

Комментарии (20) on “Внешняя печатная форма с диалогом перед печатью (УФ)”

  1. Артём Потапов:
    5 апреля 23 г. в 23:20

    Дяденька, дай тебе Бог здоровья!
    Сутки мучаюсь c внешней формой, которая интерактивно запрашивает данные перед печатью, перечитал все неработающие варианты из статей по всему рунету, и только твоя статья работает прямо на моей типовой конфигурации методом копипаста.
    Теперь буду разбираться с кодом, потому что этот точно работает.

    Ответить
  2. Аноним:
    25 мая 23 г. в 12:57

    приложеныый файл работает, но то что тут написано нихрена не понятно, придется лезть в код

    Ответить
    1. admin:
      25 мая 23 г. в 20:52

      В описании обозначены ключевые моменты, основное это файл

      Ответить
  3. Кизлык Андрей:
    13 июня 23 г. в 15:12

    За ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода() — конкретное спасибо!

    Ответить
  4. Дмитрий:
    18 октября 23 г. в 16:26

    в новой БСП (по крайней мере ЗУП) нет там параметра KоллекцииПечатныхФорм при открытии ОткрытьФорму(«ОбщаяФорма.ПечатьДокументов», ПараметрыОткрытия) поэтому больше не работает

    Ответить
    1. Александр:
      27 октября 23 г. в 14:39

      Да, согласен с Вами. Столкнулся с такой же проблемой.

      Ответить
    2. admin:
      8 ноября 23 г. в 11:45

      Спасибо за подсказку, в обработку внесены корректировки с учетом изменений БСП 3.1.9

      Ответить
  5. admin:
    8 ноября 23 г. в 11:43

    Спасибо за ссылку, в обработку внесены корректировки с учетом изменений БСП 3.1.9

    Ответить
  6. Андрей Васильевич:
    23 ноября 23 г. в 13:23

    Спасибо, актуальный материал!

    Ответить
  7. Сергей:
    30 ноября 23 г. в 12:34

    Спасибо за статью. Долго мучился исправляя внешнюю печатную форму после обновления БСП. Всё заработало!

    Ответить
  8. Ильмира:
    30 ноября 23 г. в 12:55

    Спасибо большое! Все по делу. То что нужно!

    Ответить
  9. sxaronov:
    12 декабря 23 г. в 16:03

    Спасибо.

    Ответить
  10. Andrey:
    21 мая 24 г. в 14:05

    Здравствуйте.

    Ваша обработка работает.
    Сделал свой отчёт. Тест работает, но при печати из формы сотрудников
    даёт ошибку. Похоже массив объектов в форме настройки не заполняется автоматом из текущего сотрудника формы.

    Ответить
  11. Антон:
    2 сентября 24 г. в 16:54

    Спасибо, вам, светлая голова. На БСП 3.1.9.199 работает!

    Ответить
  12. Денис Ф.:
    20 июня 25 г. в 00:15

    ОбъектыНазначения = Новый Массив;
    ОбъектыНазначения.Добавить(Результат);

    Тут же ошибка.
    Объекты назначения передались через параметры описания оповещения.
    У меня заработало с изменением на следующий код:
    ОбъектыНазначения = Новый Массив;
    Для Каждого ТекущийОбъект Из ДополнительныеПараметры Цикл
    ОбъектыНазначения.Добавить(ТекущийОбъект);
    КонецЦикла;

    Ответить
    1. Алексей:
      24 июня 25 г. в 16:45

      Проверил у меня все работает, вы в какой конфигурации и на какой БСП получили ошибку?

      Ответить
  13. Александр:
    7 июля 25 г. в 07:52

    Всем добрый день!
    Решил доработать вашу обработку под свои нужды, а именно помимо периода на форму ввода вывел таблицу данных с конкретными сотрудниками которые формируются через запрос и именно их мне надо вывести на печать, но они не выводятся на печать почему-то, а выводятся только те сотрудники, которых выделил (выбрал) в справочнике «Сотрудники» (ВПФ разместил для печати из меню «Печать» в справочнике «Сотрудники»). Я начинающий программист и поэтому не могу тут разобраться. Помогите пожалуйста. Как вывести на печать сотрудников из дополнительной формы ввода (формы диалога)? Прикрепить файл своей обработки не могу здесь, поэтому постарался расписать суть проблемы. Работаю в ЗУП 3.1 (3.1.34.3).

    Ответить
    1. Алексей:
      7 июля 25 г. в 20:44

      Данные которые вы заполняете на «ФормеВвода» №2 (Диалоговом окне), сначала попадают в переменную «Результат» процедуру ПечатьЗавершение «Формы» №1, там они упаковываются в первый элемент Массива «ОбъектыНазначения» и далее с этим массивом мы уже работаем в Модуле Объекта под именем «МассивОбъектов» (процедур ПечатьВнешнейПечатнойФормы), извлекаем данные из первого элемента массива с его удалением.

      Т.е. если вы тяните какой то список сотрудников из диалога, то ищите его в процедуре ПечатьВнешнейПечатнойФормы переменном МассивОбъектов[0].ИмяВашейПеременной.

      Ответить
  14. Андрей:
    17 января 26 г. в 15:10

    Почему просто не использовать тип команды «ОткрытиеФормы» (БСП 3.11.х)?
    Cразу откроется основная форма внешней обработки, «ФормаВвода» будет не нужна!

    Ответить
  15. Андрей:
    17 января 26 г. в 15:15

    Обратите внимание на 3-й параметр в ОписаниеОповещения
    Новый ОписаниеОповещения(«ПечатьЗавершение», ЭтаФорма, ОбъектыНазначенияМассив)

    Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт

    Здесь ОбъектыНазначенияМассив «попадут» в ДополнительныеПараметры

    Но дальше ДополнительныеПараметры НЕ используются, так может НЕ нужно из передовать?

    Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ДзенTelegram

Разработки

  • Печатная форма "Расходный кассовый ордер" для ЗУП 3.1 Печатная форма "Расходный кассовый ордер" ЗУП 3.1 650,00 ₽
  • Отчет "План-факт отпусков сотрудников в виде диаграммы Ганта Отчет "План-факт по отпускам сотрудников" ЗУП 3.1 650,00 ₽
  • Приказ об отмене трудового договора (рис 1) Печатная форма "Отмена приема на работу" ЗУП 3.1 650,00 ₽
  • Обработка “Выплата сотруднику через банк” ЗУП 3.1 Обработка “Выплата сотруднику через банк” ЗУП 3.1 0,00 ₽
  • Тестирование API Яндекс GPT Обработка "Работа с API YandexGPT" 650,00 ₽

MDM web-сервис XML БСП ЕФС-1 ИИ КД 2.0 НДФЛ СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СФР СЭДО ФСС ФСС НС больничные листы взносы вычеты длительная операция запрос интерфейс кадровая история кадровые данные кадровые переводы легкий труд мастер-данных обмен данными общий модуль отбор отпуска печать без проверки печать с диалогом пользователи представление прием на работу резервы отпусков сверхурочные синхронизация ЗУП и БП средний заработок табель таблица периодов табличный документ фотография штатное расписание

Яндекс.Метрика

© 2022-2026 myblog-1c.ru

Пользовательское соглашение

Контакты