Мысли на тему: Склонения объектов в конфигурации Управление производственным предприятем 8.1. Использование запросов для получения склонений.
В базе должен быть РегистрСведений.СклонениеОбъектов
В базе должен быть РегистрСведений.СклонениеОбъектов
Функция ЗапросСклоненияОбъекта(Объект,Падеж)
// задается Объект и Падеж (Перечисления.Падежи)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СклонениеОбъектов.Объект,
| СклонениеОбъектов.Падеж,
| СклонениеОбъектов.Значение
|ИЗ
| РегистрСведений.СклонениеОбъектов КАК СклонениеОбъектов
|ГДЕ
|(СклонениеОбъектов.Падеж = &Падеж)
|И (СклонениеОбъектов.Объект = &ТекОбъект)";
Запрос.УстановитьПараметр("Падеж", Падеж);
Запрос.УстановитьПараметр("ТекОбъект",Объект);
Возврат Запрос.Выполнить();
КонецФункции
Функция УстановитьПадеж(Сотрудник)
Запрос = Новый Запрос; // Выбираются склонения должностей и физ. лиц
Запрос.УстановитьПараметр("Падеж", Сотрудник.Падеж);
Запрос.УстановитьПараметр("Должность", Сотрудник.Должность);
Запрос.УстановитьПараметр("ФизическоеЛицо", Сотрудник.ФизЛицо);
Запрос.Текст = "ВЫБРАТЬ
| СклонениеОбъектов.Объект,
| СклонениеОбъектов.Падеж,
| СклонениеОбъектов.Значение
|ИЗ
| РегистрСведений.СклонениеОбъектов КАК СклонениеОбъектов
|ГДЕ
|СклонениеОбъектов.Падеж = &Падеж
|И (СклонениеОбъектов.Объект = &Должность
|ИЛИ СклонениеОбъектов.Объект = &ФизическоеЛицо)";
Результат = Запрос.Выполнить().Выгрузить();
Для каждого Строка Из Результат Цикл
Если Строка.Объект = Сотрудник.Должность Тогда
Сотрудник.ДолжностьВПадеже = Строка.Значение;
КонецЕсли;
Если Строка.Объект = Сотрудник.ФизЛицо Тогда
Сотрудник.ФИОВПадеже = Строка.Значение;
КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции
В функцию УстановитьПадеж(Сотрудник) Передается Структура. Выглядить она таким образом:
Сотрудник = Новый Структура();
Для Каждого ТекСтрока Из РаботникиОрганизации Цикл
Сотрудник.Вставить("ФизЛицо",ТекСтрока.ФизЛицо);
Сотрудник.Вставить("Падеж", Перечисления.Падежи.Дательный);
Сотрудник.Вставить("Должность", ТекСтрока.Должность);
Сотрудник.Вставить("ДолжностьВПадеже",ТекСтрока.Должность
.Наименование);Сотрудник.Вставить("ФИОВПадеже",ТекСтрока.ФизЛицо.Наименование);
КонецЦикла;
попользовался 1С и заметил, что она отстает по функционалу в равнении с онлайн-сервисом «Моё дело», так как на этом ресурсе намного удобнее вести учет финансов, плюс он более надежен и предоставляет профессиональные консультации, мне этот ресурс больше подходит.
ОтветитьУдалить