Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 18:56

просклонять список фамилий

Автор Space_minus, 01 авг 2016, 12:00

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

Space_minus

Подскажите как правильно просклонять список с фамилиями 

&НаСервере
Функция ПечатьПриказОЗачисленииНаКурсы(МассивОбъектов,ОбъектыПечати)
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДок.КоличествоЭкземпляров = 1;

Запрос = Новый Запрос;
Запрос.Текст =

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

 
Запрос.УстановитьПараметр("Ссылка",МассивОбъектов);
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Макет = ПолучитьМакет("ПриказОЗачисленииНаКурсы");
НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;


ОбластьМакета=макет.ПолучитьОбласть("Шапка");
        РезультатЗапроса.Следующий(); //получаем данные, первая строка результата запроса

        ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);
        РезультатЗапроса.Сбросить(); //возвращаем выборку в начальное состояние, для цикла
        ТабДок.Вывести(ОбластьМакета);


ОбластьМакета = Макет.ПолучитьОбласть("Абзац1");
    ОбластьМакета.Параметры.Абзац1 = "        В соответствии с положением об оказании платных образовательных услуг утвержденного 02.09.2013 и на основании заключенных договоров на оказание платных образовательных услуг, приказываю:";
ТабДок.Вывести(ОбластьМакета);


   ОбластьМакета = Макет.ПолучитьОбласть("Абзац2");
   РезультатЗапроса.Следующий();
   ОбластьМакета.Параметры.Абзац2 = "        Зачислить в группу № "+РезультатЗапроса.УчГрНаименование+" (период обучения с "+Формат(РезультатЗапроса.УчГрДатаПоступления,"ДФ=dd.MM.yyyy")+" по "+Формат(РезультатЗапроса.УчГрДатаОкончанияОбучения,"ДФ=dd.MM.yyyy")+") по образовательной программе профессиональной подготовки "+РезультатЗапроса.ОбразовательнаяПрограмма+" следующих слушателей:";
   ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);
   РезультатЗапроса.Сбросить();

   ТабДок.Вывести(ОбластьМакета);
   

   Пока РезультатЗапроса.Следующий() Цикл
   
     
ОбластьМакета=макет.ПолучитьОбласть("СписокСтудентов");
// ВзятьДваСимвола = Прав(СокрЛП(РезультатЗапроса.Студент),2);
// Если ВзятьДваСимвола = "ич" Тогда
// Пол = 1;
// ИначеЕсли  ВзятьДваСимвола = "на" Тогда
// Пол = 2;
// КонецЕсли;
//
// ОбластьМакета.Параметры.Студент = РаботаСоСтрокамиСервер.Падеж(РезультатЗапроса.Студент,2,Пол);


ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);

ТабДок.Вывести(ОбластьМакета);

КонецЦикла;


      ОбластьМакета=макет.ПолучитьОбласть("Подвал");
  ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);
  ТабДок.Вывести(ОбластьМакета);
  ОбластьМакета=макет.ПолучитьОбласть("Оборот");
  ОбластьМакета.Параметры.Заполнить(РезультатЗапроса);
  ТабДок.Вывести(ОбластьМакета);



Возврат ТабДок;

КонецФункции // ПриказОЗачисленииНаКурсы()


Skype: kreep17
готов материально отблагодарить исполнителя

cska-fanat-kz

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

Kironten

И как минимум пол имеет смысл хранить в справочнике физлица/студенты.
А то анализируя окончания отчества вы столкнетесь с проблемами, когда пойдут отчества -кызы, -оглы, -заде, или вообще без отчества... и т.д.

Hedinnk

Внешний компонент "Склонение ФИО" (Native API)

Склонение ФИО (Native API) - установка и настройка :: Дополнительные средства разработки: библиотеки, обработки, руководства :: Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8

На форуме есть волшебная кнопка "Сказать СПАСИБО"

Space_minus


cska-fanat-kz

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск