Дано: 1С Университет
ПРОФ.
Задача: добавить
дополнительные сведения в печатную форму приказа.
Данная инструкция
любезно предоставлена коллегой из Сибирского государственного университета
телекоммуникаций и информатики (СибГУТИ). Скриншоты автора.
В этой статье будет
рассмотрен пример добавления в печатную форму
приказа в табличную часть дополнительных данных по студенту, а именно
сведений об иностранном языке и документе об образовании.
Скриншот примера
приказа с такими сведениями:
Чтобы вывести
иностранный язык, номер документа, регистрационный номер необходимо:
1. Добавить свой общий модуль в конфигурацию:
2. В модуль добавить две функции:
а) ИностранныеЯзыки – берет первый язык физлица в
табличной части «Иностранные языки» в справочнике «Физические лица».
Текст функции:
Функция ИностранныеЯзыки(ФизическоеЛицо) Экспорт
РезультатФункции = Новый Структура;
РезультатФункции.Вставить("ИностранныйЯзык", Справочники.ИностранныеЯзыки.ПустаяСсылка());
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
|
ИностранныеЯзыки.ИностранныйЯзык КАК ИностранныйЯзык
|ИЗ
|
Справочник.ФизическиеЛица.ИностранныеЯзыки КАК ИностранныеЯзыки
|ГДЕ
|
ИностранныеЯзыки.Ссылка = &ФизическоеЛицо";
Запрос.УстановитьПараметр("ФизическоеЛицо", ФизическоеЛицо);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
СтрокаРезультатЗапроса = Выборка;
РезультатФункции.ИностранныйЯзык = СтрокаРезультатЗапроса.ИностранныйЯзык;
КонецЕсли;
КонецЕсли;
Возврат РезультатФункции;
КонецФункции
б)
ДанныеДокументаОбОбразовании – берет
значения полей Серия, Номер, Регистрационный
номер документа об образовании, указанного в заявлении абитуриента.
Текст функции:
Функция ДанныеДокументаОбОбразовании(ФизическоеЛицо, ПриемнаяКампания, УчебныйПлан) Экспорт
РезультатФункции = Новый Структура;
РезультатФункции.Вставить("СерияДиплома", "");
РезультатФункции.Вставить("НомерДиплома", "");
РезультатФункции.Вставить("РегистрационныйНомер", "");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
|
ЗаявленияПоступающих.ПодтверждающийДокумент.СерияДиплома КАК
СерияДиплома,
|
ЗаявленияПоступающих.ПодтверждающийДокумент.НомерДиплома КАК
НомерДиплома,
|
ЗаявленияПоступающих.ПодтверждающийДокумент.РегистрационныйНомер КАК
РегистрационныйНомер
|ИЗ
|
РегистрСведений.ЗаявленияПоступающих КАК ЗаявленияПоступающих
|ГДЕ
|
ЗаявленияПоступающих.ФизическоеЛицо = &ФизическоеЛицо
| И
ЗаявленияПоступающих.ПриемнаяКампания = &ПриемнаяКампания
| И
ЗаявленияПоступающих.УчебныйПлан = &УчебныйПлан
|УПОРЯДОЧИТЬ ПО
|
ЗаявленияПоступающих.Регистратор ВОЗР";
Запрос.УстановитьПараметр("ФизическоеЛицо", ФизическоеЛицо);
Запрос.УстановитьПараметр("ПриемнаяКампания", ПриемнаяКампания);
Запрос.УстановитьПараметр("УчебныйПлан", УчебныйПлан);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
СтрокаРезультатЗапроса = Выборка;
РезультатФункции.СерияДиплома = СтрокаРезультатЗапроса.СерияДиплома;
РезультатФункции.НомерДиплома = СтрокаРезультатЗапроса.НомерДиплома;
РезультатФункции.РегистрационныйНомер = СтрокаРезультатЗапроса.РегистрационныйНомер;
КонецЕсли;
КонецЕсли;
Возврат РезультатФункции;
КонецФункции
3. Осуществить настройки в виде приказа
(например, в приказе "Зачисление в вуз", если нужно выводить данную
информацию в этом виде приказа):
Пример текста
"Шапки" приказа:
В
соответствии с решением приемной комиссии зачислить в федеральное
государственное бюджетное образовательное учреждение высшего образования
"Сибирский государственный университет телекоммуникаций и
информатики" [ФизическоеЛицо1Настраиваемый]
(сумма баллов - [СуммаБалловНастраиваемый],
категория приема - [КатегорияПриемаНастраиваемый])
с [ДатаНачалаНастраиваемый] на [КурсНастраиваемый] курс [ФакультетНастраиваемый] на [ФормаОбученияНастраиваемый] форму обучения[ПоИУПНастраиваемый1][СПрименениемДОТНастраиваемый] по основной профессиональной
образовательной программе высшего образования - программе [ПрограммаНастраиваемый] по [ЭтоНаправлениеИлиСпециальностьНастраиваемый]
[СпециальностьНастраиваемый][ЕслиСпециализация][ЕслиПрофиль][ЕслиПрофильМагистратура],
[Оплата1Настраиваемый].
|
Пример текста
"Шапки" группы приказа:
В
соответствии с решением приемной комиссии зачислить с [ДатаНачалаНастраиваемый] в федеральное
государственное бюджетное образовательное учреждение высшего образования
"Сибирский государственный университет телекоммуникаций и
информатики" на [КурсНастраиваемый]
курс [ФакультетНастраиваемый] на [ФормаОбученияНастраиваемый] форму обучения[ПоИУПНастраиваемый][СПрименениемДОТНастраиваемый] по основной профессиональной
образовательной программе высшего образования - программе [ПрограммаНастраиваемый] по [ЭтоНаправлениеИлиСпециальностьНастраиваемый]
[СпециальностьНастраиваемый][ЕслиСпециализация][ЕслиПрофиль][ЕслиПрофильМагистратура],
[ОплатаНастраиваемый], следующих
абитуриентов:.
|
Также настаиваем
параметры приказа:
Таблица параметров:
Nпп
|
Параметр
|
Описание
|
1
|
ФизическоеЛицо
Настраиваемый |
ИменительныйПадеж(&ФизическоеЛицо, &ФизическоеЛицо.Пол)
|
2
|
КурсНастраиваемый
|
ВинительныйПадеж(&Курс.ПорядковыйНомер)
|
3
|
ФормаОбучения
Настраиваемый |
ВинительныйПадеж(Нрег(&ФормаОбучения))
|
4
|
Специальность
Настраиваемый |
ИменительныйПадеж(&Специальность)
|
5
|
ДатаНачала
Настраиваемый |
ИменительныйПадеж(Формат(&ДатаНачала, "ДЛФ=Д"))
|
6
|
ФормаОбучения
Настраиваемый |
ВинительныйПадеж(Нрег(&ФормаОбучения))
|
7
|
Специальность
Настраиваемый |
ИменительныйПадеж(&Специальность)
|
8
|
Программа
Настраиваемый |
?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Бакалавр, "бакалавриата", ?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Специалист, "специалитета", ?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Магистр, "магистратуры", "")))
|
9
|
ФакультетНастраиваемый
|
""+Нрег(РодительныйПадеж(&Факультет)) + " (" + &Факультет.СокращенноеНаименование +")"
|
10
|
ОплатаНастраиваемый
|
?(&Основа = Справочники.ОснованияПоступления.ПолноеВозмещениеЗатрат, "на места с оплатой по договору об оказании платных образовательных услуг", ?(&Основа = Справочники.ОснованияПоступления.БюджетнаяОснова, "на места с обучением на бюджетной основе", ?(&Основа = Справочники.ОснованияПоступления.ЦелеваяКонтрактнаяПодготовка, "на целевое обучение на бюджетной основе", "")))
|
11
|
ЭтоНаправлениеИли
Специальность Настраиваемый |
?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Специалист, "специальности", "направлению")
|
12
|
СПрименением
ДОТНастраиваемый |
?(&УчебныйПлан._ИсключительноСПрименениемДОТ = Истина, " с применением дистанционных технологий", "")
|
13
|
ПоИУПНастраиваемый
|
?(&УчебныйПлан.ИндивидуальныйПлан = Истина, " по индивидуальным рабочим планам","" )
|
14
|
СуммаБаллов
Настраиваемый |
&СуммаБаллов
|
15
|
КатегорияПриема
Настраиваемый |
Нрег(&КатегорияПриема)
|
16
|
ПоИУПНастраиваемый1
|
?(&УчебныйПлан.ИндивидуальныйПлан = Истина, " по индивидуальному рабочему плану","" )
|
17
|
ЕслиСпециализация
|
?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Специалист И &УчебныйПлан.Профили.Количество() <> 0, " (специализация "+"''"+ &УчебныйПлан.Профили[0].Специализация+"''"+ ")", "")
|
18
|
ЕслиПрофиль
|
?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Бакалавр И &УчебныйПлан.Профили.Количество() <> 0, " (профиль "+"''"+ &УчебныйПлан.Профили[0].Специализация+"''"+ ")", "")
|
19
|
ЕслиПрофиль
Магистратура |
?(&УчебныйПлан.УровеньПодготовки = Справочники.УровеньПодготовки.Магистр И &УчебныйПлан.Профили.Количество() <> 0, " (профиль "+"''"+ &УчебныйПлан.Профили[0].Специализация+"''"+ ")", "")
|
20
|
ФизическоеЛицо1
Настраиваемый |
ВинительныйПадеж(&ФизическоеЛицо, &ФизическоеЛицо.Пол)
|
21
|
Оплата1Настраиваемый
|
?(&Основа = Справочники.ОснованияПоступления.ПолноеВозмещениеЗатрат, "на место с оплатой по договору об оказании платных образовательных услуг", ?(&Основа = Справочники.ОснованияПоступления.БюджетнаяОснова, "на место с обучением на бюджетной основе", ?(&Основа = Справочники.ОснованияПоступления.ЦелеваяКонтрактнаяПодготовка, "на целевое обучение на бюджетной основе", "")))
|
22
|
ИностранныйЯзык
|
_МойМодуль.ИностранныеЯзыки(&ФизическоеЛицо)
.ИностранныйЯзык |
23
|
Номер
|
_МойМодуль.ДанныеДокументаОбОбразовании (&ФизическоеЛицо, &ПриемнаяКампания, &УчебныйПланПриПоступлении).СерияДиплома + " " + _МойМодуль.ДанныеДокументаОбОбразовании (&ФизическоеЛицо, &ПриемнаяКампания, &УчебныйПланПриПоступлении).НомерДиплома
|
24
|
РегистранныйНомер
|
_МойМодуль.ДанныеДокументаОбОбразовании(&ФизическоеЛицо, &ПриемнаяКампания, &УчебныйПланПриПоступлении).РегистрационныйНомер
|
Примечание: Такие же настройки параметров можно
задавать при настройке печатной формы договора в макете.
_МойМодуль.ДанныеДокументаОбОбразовании(&ФизическоеЛицо, &ПриемнаяКампания, &УчебныйПланПриПоступлении).СерияДиплома - так мы получаем
серию документа об образовании,
_МойМодуль.ДанныеДокументаОбОбразовании(&ФизическоеЛицо, &ПриемнаяКампания, &УчебныйПланПриПоступлении).НомерДиплома - так мы получаем номер документа об
образовании,
+" "+ - так мы соединяем
серию и номер документа об образовании и добавляем пробел между ними.
Если нам нужен только номер об образовании, то
оставляем только _МойМодуль.ДанныеДокументаОбОбразовании(&ФизическоеЛицо, &ПриемнаяКампания, &УчебныйПланПриПоступлении).НомерДиплома
За
основу была взята функция ДанныеОбОбученииДляПриказа
в общем модуле ПриказыГлобальный.
Как вариант, чтобы
не трогать типовую конфигурацию, данный модуль можно включить в расширение и
просто подключить его к конфигурации.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Комментариев нет:
Отправить комментарий