Категории статистического учета для должностей. ЗУП 3.1

Обработки - Обработка справочников

КатегорияСтатистическогоУчета, ЗУП3.1

2
В программе ЗУП 2.5 был такой реквизит "категория статистического учета", который разработчики посчитали ненужным и решили не включать в редакцию 3.1, предлагая при необходимости воспользоваться механизмом доп реквизитов. В данной статье я расскажу, как добавить доп реквизит к справочнику "должности" в программе ЗУП 3.1 (тестировалось на релизе 3.1.6.37, платформа 8.3.10.2580) и программно импортировать туда данные из ЗУП 2.5.

Доброго времени суток!

Если Вы, как и я, столкнулись с необходимостью перенести данные по категориям должностей в ЗУП 3, то надеюсь Вам поможет моя публикация :) Изменение или снятие конфигурации с поддержки не требуется: категория будет храниться в дополнительном реквизите, а импорт осуществляться внешней обработкой посредством Com-объекта. 

Прежде всего, указываем в настройках возможность использования дополнительных реквизитов: Администрирование - Общие настройки - Дополнительные реквизиты и сведения

Далее добавляем дополнительный реквизит к справочнику Должности: Администрирование - Дополнительные реквизиты - В правой части добавляем реквизит, назовем его, к примеру,  "Категория статистического учета".

Развернем область "Для разработчика" внизу формы и впишем туда имя "КатегорияСтатистическогоУчета". Тип значения реквизита установим свой: на вкладке Значения добавим варианты категорий так, как они были заведены в зуп 2.5 (важно, что бы их наименования полностью совпадали, по ним будет производится сопоставление для импорта).

Сохраняем изменения по кнопке "Записать". 

Теперь у нас есть реквизит для хранения категории, если должностей совсем немного - на этом можно остановиться и забить их вручную. Однако если должностей очень много, либо вносить вручную просто не хочется, идем дальше - напишем обработку для подключение к базе зуп 2.5.

Устанавливаем соединение с базой ЗУП 2.5 посредством com-объекта: 

Функция УстановитьCOMСоединение()
     
    //Заменить слова сервер, база, пользователь и пароль на соответствующие значения   
    СтрокаПодключения = "Srvr=""сервер""; Ref=""база""; Usr=""пользователь""; Pwd=""пароль"";";     
    
    //Если вы подключаетесь к файловой базе, строка выглядит следующим образом:
    //СтрокаПодключения = "file=""D:\ПапкаСБазой""; Usr=""пользователь""; Pwd=""пароль"";"  
   

    Попытка
        Коннектор = Новый COMObject("V83.COMConnector");
        Соединение = Коннектор.Connect(СтрокаПодключения);
        Возврат Соединение;
    Исключение
        ТекстСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
        ВызватьИсключение ТекстСообщенияОбОшибке;
    КонецПопытки;
    
КонецФункции

После успешного подключения получаем выборку данных по категориям должностей из базы зуп 2.5:

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

    
    Выб = Запрос.выполнить().ВЫбрать();
    
    пока Выб.следующий() цикл
        
        Попытка    
            должность = Справочники.Должности.НайтиПоНаименованию(Выб.Наименование);
            долж = должность.ПолучитьОбъект();
             
            рекв = долж.ДополнительныеРеквизиты.Добавить();
            рекв.Свойство = Объект.Свойство; //реквизит обработки, создаем и выводим на форму реквизит с типом ПланВидовХарактеристик "Дополнительные реквизиты и сведения"
            
            Если выб.КатегорияСтатистическогоУчета = "Руководители" тогда
                рекв.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Руководители");
            ИначеЕсли
                выб.КатегорияСтатистическогоУчета = "Специалисты" тогда
                рекв.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Специалисты");
            ИначеЕсли
                выб.КатегорияСтатистическогоУчета = "Рабочие" тогда
                рекв.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Рабочие");
            ИначеЕсли
                выб.КатегорияСтатистическогоУчета = "Научные и научно-педагогические работники" тогда
                рекв.Значение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Научные и научно-педагогические работники");    
            Иначе
                рекв.Значение = "Другие служащие";
            КонецЕсли;        
            
            долж.Записать();
        Исключение
            ошибка = ОписаниеОшибки();
            Сообщить(Выб.Наименование+ " " +ошибка);
        КонецПопытки;
    КонецЦикла;
        
КонецПроцедуры

Готово, теперь в наших дополнительных реквизитах хранятся категории! Данное поле можно выводить в отчеты посредством пользовательских настроек, устанавливать по нему отбор и т.д. Надеюсь, моя публикация была Вам полезна :)

Прилагаю также оригинал обработки - для использования необходимо выбрать из выпадающего списка вариант подключения - файловый(file..) или клиент-серверный(srvr..) и прописать параметры строки - имя базы и сервера для клиент-серверного, путь к базе для файлового, пользователь и пароль для подключения к вашей базе для экспорта. Обработка тестировалась на релизе ЗУП 3.1.6.37, платформа 8.3.10.2580

2

Скачать файлы

Наименование Файл Версия Размер
ЗУП 3.1 Категории статистического учета для должностей
.epf 7,83Kb
08.05.18
4
.epf 7,83Kb 4 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. Kaval88 11 08.05.18 16:00 Сейчас в теме
1. Все давно для таких задач используют Конвертацию данных 2.0
2.
Справочники.Должности.НайтиПоНаименованию(Выб.Наименование);
Некорректно искать по наименованию, скорее всего был перенос из 2.5. Сначала необходимо искать по уникальному идентификатору, а потом уже по наименованию.
2. Bene_Valete 08.05.18 17:38 Сейчас в теме
(1) Спасибо за замечания, буду знать. По поводу реализации - я описала данный способ, т.к. он(по моему мнению) более прост в исполнении - работа с com объектами интуитивно понятна, в то время как Конвертация данных требует гораздо более тщательного подхода к изучению. Моя публикация рассчитана на то, чтобы программист(в частности начинающий) имел возможность максимально быстро решить проблему отсутствия реквизита в новой программе, не вникая в тонкости создания правил обмена и др.
3. haereticus 09.05.18 02:06 Сейчас в теме
Разработчики посчитали ненужным только категорию "Ученые", а так перечисление там есть "КатегорииДолжностейДляСтатистическогоУчета" и оно полностью совпадает по составу с перечислением "КатегорииДолжностейДляВоинскогоУчета".
Действительно, зачем нужны ученые, когда у нас есть такие гениальные разработчики ЗУП 3:)
Прикрепленные файлы:
4. Bene_Valete 09.05.18 05:06 Сейчас в теме
Да, действительно, такой объект в типовой конфигурации присутствует, однако что он дает?) Возможность не снимать всю конфигурацию с поддержки(если речь не идет о расширениях) для добавления перечисления, а только включить возможность изменения должностей, добавить к справочнику реквизит с этим типом(сейчас у должностей такого реквизита нет http://prntscr.com/jfj9as) и вывести его на форму, и затем перенести в него данные из предыдущей редакции. Но почему бы тогда просто не оставить его в реквизитах справочника и не включить в стандартный перенос, я не понимать - кто в теме, расскажите)
5. pavl_vs 09.05.18 12:59 Сейчас в теме
(4), (0), уже давно для привязки категории статучета к должности используется не Перечисление, в Справочник типа "Строки отчетности мониторинга ...". По крайней мере так произошло в ЗКБУ 1.0 и, разумеется, в ЗКГУ 3.0 и 3.1.

Проверить сейчас не могу, но это замечание написал, руководствуясь если не полной, то заметной, аналогией между указанными конфигурациями и ЗУП 2.5 и ЗУП 3.0, соответственно.
6. Bene_Valete 09.05.18 14:58 Сейчас в теме
(5) Если речь идет о справочнике "Строки отчетности мониторинга работников социальной сферы", других с похожим наименованием нет, то он есть и в ЗКГУ 3.1 и в ЗУП 3.1, но в обоих случая он пустой, и я не совсем понимаю причем тут работники соц сферы.
7. pavl_vs 10.05.18 13:30 Сейчас в теме
(6), да именно этот справочник.

Кажется я понял в чем у нас отсутствует взаимопонимание:

- Вы имеете ввиду категории статучета, так сказать внутреннего пользования, применяемых при формировании отчетов (листков, ведомостей и пр.) - отборы, группировки;

- я же имел ввиду категории для форм федерального статистического наблюдения, например, ЗП-Здравоохранение, ЗП-Наука, ЗП-Образование и т.д. (это и есть социальная сфера), т.е. форм регламентированной статистической отчетности.

Для обеспечения формирования последних в справочнике должностей ранних релизов, наряду с "Категория статистического учета" было введено поле "Категория работников социальной сферы"; в дальнейшем (редакции линейки "3") первый реквизит исчез.

PS А вот почему у Вас справочники "Строки ..." пустые - не понимаю, особенно, если был перенос данных.
8. Bene_Valete 11.05.18 03:54 Сейчас в теме
(7) Совершенно верно, мы говорим о разных категориях :)
В моем случае речь идет о коммерческой фирме, возможно поэтому справочник категорий работников соц сферы пустой. Что касается клиентской базы ЗиКГУ, которую я рассмотрела для примера - организация, по которой в ней ведется учет, не относится к социальной сфере и должностей относящейся к здравоохранению, науке и т.д. в ней нет. Как я понимаю, включается возможность учета по данным категориям следующим образом http://prntscr.com/jgd3h4
Оставьте свое сообщение