Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

ИнфоСофт использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. Вы можете запретить обработку сookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования cookies.
Оставаясь на сайте, вы соглашаетесь с политикой использования cookies.

Программное добавление реквизитов в справочник «Штатное расписание»

Язловицкий Александр Посмотреть все статьи >> Специалист по внедрению 1С франчайзинговой сети "ИнфоСофт".
19.05.2025
91
Время прочтения - 5 мин.
Заказать консультацию

В данной статье рассмотрено программное добавление реквизитов в справочник «Штатное расписание» при включенной и выключенной настройке «Ведется история изменения штатного расписания». Все примеры приведены на демонстрационной базе конфигурации 1С:ЗУП, релиз 3.1.31.67.

 

Настройка «Ведется история изменения штатного расписания» отключена

Сначала рассмотрим добавление реквизита без ведения истории изменений штатного расписания. Добавим новый строковый реквизит «НР_КатегорияДолжности» в справочник «Штатное расписание»:

1.png

 

Данный реквизит будем выводить в конец левой колонки на форме элемента справочника «Штатное расписание»:

2.png

 

Добавим программно реквизит на форму элемента справочника «Штатное расписание»:

3.png

 

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

4.png

 

Настройка «Ведется история изменения штатного расписания» включена

Рассмотрим второй случай. При включенной настройке справочник «Штатное расписание» изменяется с помощью документов «Изменение штатного расписания» и «Утверждение штатного расписания». Соответственно добавленный реквизит не должен быть доступен к редактированию из формы элемента справочника «Штатное расписание». Для этого установим для элемента формы свойство «Только просмотр» в значение «Истина»:

5.png

 

Чтобы данный реквизит можно было изменять с помощью документов «Изменение штатного расписания» и «Утверждение штатного расписания», в них необходимо добавить данный реквизит. Так как структура данных документов похожа, далее будет рассмотрена доработка только документа «Изменение штатного расписания».

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

6.png

 

Добавим созданный реквизит на форму документа:

7.png

Редактирование позиций штатного расписания выполняется не в форме документа, а в общей форме «ФормаСтрокиДокументаИзмененияШтатногоРасписания», которая открывается при нажатии на любую область строки в форме документа «Изменение штатного расписания». Поэтому для добавленного элемента формы необходимо установить свойство «Только просмотр» в значение «Истина». В противном случае может возникнуть ситуация, при которой пользователь откроет форму изменения позиции штатного расписания, нажав на область, содержащую новый реквизит:

8.png

 

В таком случае после закрытия формы изменения позиции штатного расписания данная область станет активной для редактирования.

9.png

 

Как было описано выше, изменения позиции происходят в общей форме «ФормаСтрокиДокументаИзмененияШтатногоРасписания». Поэтому на нее  необходимо добавить новый элемент:

10.png

 

Попробуем изменить категорию должности:

11.png

 

После закрытия формы «ФормаСтрокиДокументаИзмененияШтатногоРасписания» категория должности осталась пустой:

12.png

 

Чтобы в строке позиции отображался новый реквизит, необходимо изменить структуру штатного расписания в функции «ОписаниеПозицииштатногоРасписания» общего модуля «УправлениеШтатнымРасписанием»:

13.png

 

Теперь строка позиции штатного расписания заполняется корректно:

14.png

 

Но после проведения документа добавленный реквизит в элементе справочника «Штатное расписание» по-прежнему остается пустым.

15.png

 

Проблема заключается в том, что данные не были зарегистрированы к изменению. Регистрация изменений производится в модуле менеджера регистра сведений «ИсторияИспользованияШтатногоРасписания». Соответственно, для начала реквизит необходимо добавить в данный регистр:

16.png

 

Теперь нужно доработать запрос перед его выполнением в процедуре «ОбновитьТекущиеСведенияПозицииШтатногоРасписания» модуля менеджера.

17.png

 

Установим категорию должности для позиции штатного расписания и проведем документ изменения штатного расписания:

18.png

 

Откроем элемент справочника «Штатное расписание», категория должности не заполнилась:

19.png

Аналогично категория не подтягивается при следующем создании документа «Изменение штатного расписания»:

20.png

 

Выведем категорию должности с помощью обработки «Консоль запросов» для позиции штатного расписания, изменяемой в документе:

21.png

 

Получается, что реквизит объекта записан корректно, но при отображении на формах не заполняется. Так происходит, потому что данные для отображения получаются не на прямую из объекта, а с помощью запроса. Доработаем запрос в функции «ЗапросВТШтатноеРасписание» общего модуля «УправлениеШтатнымРасписанием»:

22.png

 

Теперь категория должности будет отображается корректно:

23.png

 

Аналогично при создании нового документа «Изменения штатного расписания» на форму подтягивается актуальное значение реквизита:

24.png

 

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


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Отправить заявку
Рассказать друзьям
1С:ЗУП
Вам может быть интересно: