Как в ЗУП 3.1 получить все реквизиты документа «Приём на работу»?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в ЗУП 3.1 получить все реквизиты документа «Приём на работу»?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38388
      Фото аватараOdineski
      Участник

        напиши ВПФ конфигурация ЗУП 3.1 выбрать все реквизиты документа прием на работу на печатную форму

      • #38389
        bot_avaOdin — Одинэсник
        Участник

          Чтобы во внешней печатной форме (ВПФ) для документа «ПриемНаРаботу» в ЗУП 3.1 вывести все реквизиты документа, нужно в модуле обработки ВПФ получить ссылку на объект документа и затем обратиться к его реквизитам.

          Пример кода на языке 1С (BSL) для процедуры формирования табличного документа с выводом всех реквизитов документа «ПриемНаРаботу»:

          |Процедура Печать(Объекты, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
          | Если Объекты = Неопределено Или Объекты.Количество() = 0 Тогда
          | Возврат;
          | КонецЕсли;
          |
          | ДокументПриемНаРаботу = Объекты[0];
          |
          | ТабДок = Новый ТабличныйДокумент;
          | ТабДок.Колонки.Добавить(«Реквизит»);
          | ТабДок.Колонки.Добавить(«Значение»);
          |
          | // Получаем метаданные документа
          | МетаданныеДокумента = ДокументПриемНаРаботу.Метаданные();
          |
          | Для каждого Реквизит Из МетаданныеДокумента.Реквизиты Цикл
          | ИмяРеквизита = Реквизит.Имя;
          | ЗначениеРеквизита = ДокументПриемНаРаботу[ИмяРеквизита];
          | // Преобразуем значение в строку для вывода
          | Если ЗначениеРеквизита = Неопределено Тогда
          | СтрокаЗначения = «»;
          | ИначеЕсли ТипЗнч(ЗначениеРеквизита) = Тип(«Дата») Тогда
          | СтрокаЗначения = Формат(ЗначениеРеквизита, «ДФ=dd.MM.yyyy»);
          | ИначеЕсли ТипЗнч(ЗначениеРеквизита) = Тип(«СправочникСсылка») Тогда
          | СтрокаЗначения = ЗначениеРеквизита.Представление;
          | Иначе
          | СтрокаЗначения = Формат(ЗначениеРеквизита);
          | КонецЕсли;
          |
          | ТабДок.ДобавитьСтроку();
          | ТабДок.Значения[ТабДок.КоличествоСтрок, «Реквизит»] = Реквизит.Имя;
          | ТабДок.Значения[ТабДок.КоличествоСтрок, «Значение»] = СтрокаЗначения;
          | КонецЦикла;
          |
          | // Вывод табличного документа на печать или в форму
          | ПоказатьТабличныйДокумент(ТабДок);
          |КонецПроцедуры

          Объяснение:
          — ВПФ получает массив объектов, берём первый — это ссылка на документ «ПриемНаРаботу».
          — Через метаданные документа перебираем все реквизиты.
          — Для каждого реквизита получаем значение из объекта.
          — Приводим значение к строке с учётом типа (дата, справочник и т.п.).
          — Заполняем табличный документ двумя колонками: имя реквизита и его значение.
          — Выводим табличный документ на экран.

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

          Для табличных частей пример:

          |Для каждого ТабЧасть Из МетаданныеДокумента.ТабличныеЧасти Цикл
          | ИмяТабЧасти = ТабЧасть.Имя;
          | Таблица = ДокументПриемНаРаботу[ИмяТабЧасти];
          | Для каждого Строка Из Таблица Цикл
          | // Аналогично выводим реквизиты строк табличной части
          | КонецЦикла;
          |КонецЦикла;

          Рекомендую посмотреть здесь, как работать с ВПФ и табличными документами:
          https://infostart.ru/public/191796/
          https://infostart.ru/1c/articles/633085/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С