Полезные функции: Принятые и Уволенные, работающие сотрудники, Неполное рабочее время, Отпуск без ЗП Дорабатывая у клиента отчет по данным для предоставления в статистику - появилось несколько готовых функций, которые Вам наверняка понадобятся:
Код 1C v 8.х Функция ПолучитьКоличествоСотрудниковСНеполнымРабочимДнём(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(Работники.НеполноеРабочееВремя) КАК НеполноеРабочееВремя,
| Работники.Сотрудник КАК Сотрудник
|ПОМЕСТИТЬ ВТ_СписокРаботниковНаНеполномРабочемГрафике
|ИЗ
| (ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
| РаботникиОрганизацийСрезПоследних.ГрафикРаботы.СокращенноеРабочееВремя КАК НеполноеРабочееВремя
| ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НачалоПериода, Организация =Организация) КАК РаботникиОрганизацийСрезПоследних
| ГДЕ
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
| И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РаботникиОрганизаций.Сотрудник,
| РаботникиОрганизаций.ГрафикРаботы.СокращенноеРабочееВремя
| ИЗ
| РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
| ГДЕ
| РаботникиОрганизаций.Период МЕЖДУНачалоПериода ИКонецПериода
| И РаботникиОрганизаций.Организация =Организация
| И РаботникиОрганизаций.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)) КАК Работники
|ГДЕ
| Работники.НеполноеРабочееВремя
|
|СГРУППИРОВАТЬ ПО
| Работники.Сотрудник
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СписокРаботниковНаНеполномРабочемГрафике.Сотрудник) КАК КоличествоСотрудниковНаСокрРабВремени
|ИЗ
| ВТ_СписокРаботниковНаНеполномРабочемГрафике КАК ВТ_СписокРаботниковНаНеполномРабочемГрафике";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.КоличествоСотрудниковНаСокрРабВремени
Иначе
Возврат 0
КонецЕсли;
КонецФункции //ПолучитьКоличествоСотрудниковСНеполнымРабочимДнём()
Функция ПолучитьКоличествоСотрудниковИмевшихОтпускаБезСохраненияЗП(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| СостояниеРаботниковСрезПоследних.Сотрудник КАК Сотрудник
|ПОМЕСТИТЬ ВТ_СотрудникиВОтпускахБезСохрЗП
|ИЗ
| РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&НачалоПериода, Организация =Организация) КАК СостояниеРаботниковСрезПоследних
|ГДЕ
| СостояниеРаботниковСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты)
| И ВЫБОР
| КОГДА СостояниеРаботниковСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА СостояниеРаботниковСрезПоследних.ПериодЗавершения >=НачалоПериода
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И СостояниеРаботниковСрезПоследних.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СостояниеРаботниковОрганизаций.Сотрудник
|ИЗ
| РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
|ГДЕ
| СостояниеРаботниковОрганизаций.Период МЕЖДУНачалоПериода ИКонецПериода
| И СостояниеРаботниковОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.ОтпускБезСохраненияЗарплаты)
| И СостояниеРаботниковОрганизаций.Организация =Организация
| И СостояниеРаботниковОрганизаций.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СотрудникиВОтпускахБезСохрЗП.Сотрудник) КАК КоличествоСотрудниковВОтпускеБезСохраненияЗП
|ИЗ
| ВТ_СотрудникиВОтпускахБезСохрЗП КАК ВТ_СотрудникиВОтпускахБезСохрЗП";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.КоличествоСотрудниковВОтпускеБезСохраненияЗП
Иначе
Возврат 0
КонецЕсли;
КонецФункции //ПолучитьКоличествоСотрудниковИмевшихОтпускаБезСохраненияЗП()
Функция ПолучитьКоличествоПринятыхСотрудников(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник
|ПОМЕСТИТЬ ВТ_СотрудникиПринятыеПоПриемуНаРаботу
|ИЗ
| Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ПриемНаРаботуВОрганизациюРаботникиОрганизации
|ГДЕ
| ПриемНаРаботуВОрганизациюРаботникиОрганизации.ДатаПриема МЕЖДУНачалоПериода ИКонецПериода
| И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Проведен
| И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка.Организация =Организация
| И ПриемНаРаботуВОрганизациюРаботникиОрганизации.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СотрудникиПринятыеПоПриемуНаРаботу.Сотрудник) КАК КоличествоСотрудниковПринятыхНаРаботу
|ИЗ
| ВТ_СотрудникиПринятыеПоПриемуНаРаботу КАК ВТ_СотрудникиПринятыеПоПриемуНаРаботу";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.КоличествоСотрудниковПринятыхНаРаботу
Иначе
Возврат 0
КонецЕсли;
КонецФункции //ПолучитьКоличествоПринятыхСотрудников()
Функция ПолучитьКоличествоУволенныхСотрудников(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| УвольнениеИзОрганизацийРаботникиОрганизации.Сотрудник
|ПОМЕСТИТЬ ВТ_СотрудникиУволенные
|ИЗ
| Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК УвольнениеИзОрганизацийРаботникиОрганизации
|ГДЕ
| УвольнениеИзОрганизацийРаботникиОрганизации.ДатаУвольнения МЕЖДУНачалоПериода ИКонецПериода
| И УвольнениеИзОрганизацийРаботникиОрганизации.Ссылка.Проведен
| И УвольнениеИзОрганизацийРаботникиОрганизации.Ссылка.Организация =Организация
| И УвольнениеИзОрганизацийРаботникиОрганизации.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СотрудникиУволенные.Сотрудник) КАК КоличествоУволенныхСотрудников
|ИЗ
| ВТ_СотрудникиУволенные КАК ВТ_СотрудникиУволенные";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.КоличествоУволенныхСотрудников;
Иначе
Возврат 0
КонецЕсли;
КонецФункции
Функция ПолучитьКоличествоСотрудниковСписочногоСостава(Запрос)
Запрос.Текст =
"ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник
|ПОМЕСТИТЬ ВТ_СотрудникиСписочногоСостава
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(ДОБАВИТЬКДАТЕ(&КонецПериода, СЕКУНДА, 1), Организация =Организация) КАК РаботникиОрганизацийСрезПоследних
|ГДЕ
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
| И (РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
| ИЛИ РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.Совместительство))
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_СотрудникиСписочногоСостава.Сотрудник) КАК КоличествоСотрудниковСписочногоСостава
|ИЗ
| ВТ_СотрудникиСписочногоСостава КАК ВТ_СотрудникиСписочногоСостава";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.КоличествоСотрудниковСписочногоСостава;
Иначе
Возврат 0
КонецЕсли;
КонецФункции
---------- Использование -------------------
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(мДатаНачалаПериодаОтчета));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(мДатаКонцаПериодаОтчета));
// Сотрудники с неполным рабочим днём
СтруктураПолей.П0001000201 = ПолучитьКоличествоСотрудниковСНеполнымРабочимДнём(Запрос);
// Отпуска без сохранения зп
СтруктураПолей.П0001000501 = ПолучитьКоличествоСотрудниковИмевшихОтпускаБезСохраненияЗП(Запрос);
// Принятые сотрудники
СтруктураПолей.П0001000601 = ПолучитьКоличествоПринятыхСотрудников(Запрос);
// Выбывшие сотрудники
СтруктураПолей.П0001000801 = ПолучитьКоличествоУволенныхСотрудников(Запрос);
// По собственному желанию
СтруктураПолей.П0001001201 = СтруктураПолей.П0001000801;
// Количество сотрудников списочного состава на конец месяца
СтруктураПолей.П0001001301 = ПолучитьКоличествоСотрудниковСписочногоСостава(Запрос);
Категория:
1С Зарплата и Управление Персоналом 2.5 В регламентированной отчетности не печается штрих-код 1С ( EanGnivc ) Установка шрифта EanGnivc
В формах регламентированной отчетности, например, налоговые декларации, которые введены для
предоставления отчетности, на всех листах в левом верхнем углу содержат свой уникальный штрих-код. В этих формах, которые распространяются фирмой "1С", для отображения штрих-кода используется специальный шрифт EanGnivc, который должен быть установлен в операционной системе. Если данный шрифт не установлен, то штрих-коды отображаться не будут.
Как установить EANG000.ttf:
Найти файл шрифта EANG000.ttf на вашем компьютере, либо скачайте с нашего сайта:
Скачивать файлы может только зарегистрированный пользователь!
Далее в зависимости от установленного у Вас Windows выполните следующие действия:
Для Windows Vista, Windows 7 (Seven) и Windows Server 2008:
Выделить файл шрифта EANG000.ttf, правой кнопкой мыши выбрать команду Установить, после этого штрих-коды будут отображаться.
Для Windows XP и Windows Server 2003:
- Пуск-Панель управления-Шрифты
- в раскрывшемся окне зайти в меню Файл и выбрать команду Установить шрифт
- в поле со списком Диски выбрать нужный диск
- в поле Папки раскрыть каталог, где располагается файл шрифта EANG000.ttf
- в Списке шрифтов выбрать строку EanGnivc (True Type) и жмем Ок. Вот и готово!
Категория:
1С Общие вопросы - Обычные формы