Копирование адресов физических лиц в 1С Зарплата и управлении персоналом для 1С 8.1
Полезные обработки для 1С Предприятия
Модератор: Spacesoft
-
- Site Admin
- Сообщения: 530
- Зарегистрирован: Чт мар 13, 2008 9:41 pm
Полезные обработки для 1С Предприятия
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Site Admin
- Сообщения: 530
- Зарегистрирован: Чт мар 13, 2008 9:41 pm
Процедура свёртки информационной базы
Процедура свёртки информационной базы 1С Предприятия 8.1 (с диска ИТС). (С) фирма 1С
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Site Admin
- Сообщения: 530
- Зарегистрирован: Чт мар 13, 2008 9:41 pm
Отчёт Выплаты работникам в разрезе дат
Простой отчёт для "1С Зарплата и Управление персоналом" позволяет вывести суммы выплат работникам организаций в разрезе дат, вида выплаты (касса, банк) и т.д.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Site Admin
- Сообщения: 530
- Зарегистрирован: Чт мар 13, 2008 9:41 pm
Доработки ЗиУП 2.5.20.3
Решение : общий модуль СотрудникиОрганизацийКлиент, процедура ФормаЭлементаПриОткрытии.Если кадровики ошиблись при вводе вида занятости сотрудника – основное или совместительство, то поправить программа не дает, в справочнике Сотрудники поле Вид занятости – нет доступа на редактирование. Надо дать пользователи с полными правами возможность изменять это поле. Остальным оставить без изменения – недоступным. У меня есть вопрос к этому заданию – если в карточке сотрудника изменить вид занятости принятого сотрудника, что это может повлечь за собой? Не возникнут ли потом проблемы например при расчете или в табеле? Конечно предполагается, что это будут исправлять сразу как обнаружили ошибку, но какие документы надо проверить, чтобы перепровести после внесения исправления?
Вставленный код находится между строками :
// вставка >
// вставка <
Код: Выделить всё
Процедура ФормаЭлементаПриОткрытии(ЭтаФорма) Экспорт
ЭлементыФормы = ЭтаФорма.ЭлементыФормы;
// запомним значения в переменных
ЭтаФорма.мДатаДоговора = ЭтаФорма.ДатаДоговора; //для правильной автонумерации номера трудового договора
// Установим видимость реквизитов в зависимости от уч.политики
ЭтаФорма.мМассивЭУ = Новый Массив();
Если глЗначениеПеременной("глЕстьВалютныеПоказателиОрганизаций") Тогда
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.СписокДоговоровГПХ.Колонки.Валюта);
Для Сч = 1 По 6 Цикл
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.ПлановыеНачисления.Колонки["Валюта"+Сч]);
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.ПлановыеНачисления.Колонки["Валюта"+Сч+"Завершения"]);
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.ПлановыеУдержания.Колонки["Валюта"+Сч]);
КонецЦикла;
Иначе
Для Сч = 1 По 6 Цикл
ЭлементыФормы.ПлановыеНачисления.Колонки["Валюта"+Сч].Видимость = Ложь;
ЭлементыФормы.ПлановыеНачисления.Колонки["Валюта"+Сч+"Завершения"].Видимость = Ложь;
ЭлементыФормы.ПлановыеУдержания.Колонки["Валюта"+Сч].Видимость = Ложь;
КонецЦикла;
КонецЕсли;
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.НадписьВалютаТарифнойСтавки);
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.ВалютаТарифнойСтавки);
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.НадписьВалютаТарифнойСтавки1);
ЭтаФорма.мМассивЭУ.Добавить(ЭлементыФормы.ВалютаТарифнойСтавки1);
Если ЭтаФорма.мЭтоНовый Тогда
УстановитьДоступностьРеквизитовФизлица(ЭтаФорма);
ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.СтраницаНовыйСотрудник;
ЭлементыФормы.РедактироватьФизлицоОтдельно.Видимость = Ложь;
ЭлементыФормы.ПерейтиКВводуТрудовогоДоговора.Видимость = ЭтаФорма.мДоступнаРольРасчетчика или ЭтаФорма.мДоступнаРольКадровика;
УстановитьЗаголовокОткрытьСправочникФизлиц(ЭтаФорма);
//получим очередной код элемента
ЭтаФорма.Код = ЭтаФорма.ЭтотОбъект.ПолучитьОчереднойТабельныйНомер();
Иначе
ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.СтраницаСотрудник;
ЭтаФорма.мЕстьНачисления = ЕстьНачисленияИлиПриемНаРаботу(ЭтаФорма.ВидДоговора, ЭтаФорма.Ссылка);
мЕстьНачисления = ЭтаФорма.мЕстьНачисления;
ЭлементыФормы.Организация1.ТолькоПросмотр = мЕстьНачисления;
ЭлементыФормы.ВидДоговора1.ТолькоПросмотр = мЕстьНачисления;
ЭлементыФормы.ВидЗанятости1.ТолькоПросмотр = мЕстьНачисления;
// вставка >
// дадим возможность `полным правам` редактировать вид занятости
кфЕстьНачисления = мЕстьНачисления И НЕ РольДоступна("ПолныеПрава");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПособияПоУходуЗаРебенкомДоПолутораЛет.Регистратор
|ИЗ
| РегистрНакопления.ПособияПоУходуЗаРебенкомДоПолутораЛет КАК ПособияПоУходуЗаРебенкомДоПолутораЛет
|ГДЕ
| ПособияПоУходуЗаРебенкомДоПолутораЛет.Организация = &Организация
| И ПособияПоУходуЗаРебенкомДоПолутораЛет.ФизЛицо = &ФизЛицо
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПособияСоциальномуСтрахованию.Регистратор
|ИЗ
| РегистрНакопления.ПособияСоциальномуСтрахованию КАК ПособияСоциальномуСтрахованию
|ГДЕ
| ПособияСоциальномуСтрахованию.Сотрудник = &Сотрудник";
Запрос.УстановитьПараметр("Организация", ЭтаФорма.ЭтотОбъект.Организация);
Запрос.УстановитьПараметр("ФизЛицо", ЭтаФорма.ЭтотОбъект.ФизЛицо);
Запрос.УстановитьПараметр("Сотрудник", ЭтаФорма.ЭтотОбъект.Ссылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
// Если есть ссылки на сотрудника в объектах, ссылающихся на вид занятости сотрудника,
// не дадим возможности редактировать вид занятости
кфЕстьНачисления = кфЕстьНачисления ИЛИ Выборка.Следующий();
ЭлементыФормы.ВидЗанятости1.ТолькоПросмотр = кфЕстьНачисления;
// вставка <
СформироватьЗаголовокПерсональныхНадбавок(ЭтаФорма);
ЭлементыФормы.РедактироватьФизлицоОтдельно1.Заголовок = "Более подробно о физическом лице " + ЭтаФорма.ФизлицоОбъект.Наименование + "...";
СотрудникиОрганизацийПереопределяемый.СформироватьПодменюВвестиДокумент(ЭтаФорма.мМассивКнопокПодменю, ЭтаФорма.мСтруктураСоответствияДействий, ЭтаФорма.ЭтотОбъект);
РаботаСДиалогами.ПроверитьИННОформитьПолеВвода(ЭтаФорма.ФизлицоОбъект.ИНН, ЭлементыФормы.ИНН1, Перечисления.ЮрФизЛицо.ФизЛицо);
РаботаСДиалогами.ПроверитьСтраховойНомерПФРФизлицаОформитьПолеВвода(ЭтаФорма.ФизлицоОбъект.СтраховойНомерПФР, ЭлементыФормы.СтраховойНомерПФР1);
КонецЕсли;
Если НЕ (ЭтаФорма.мДоступнаРольРасчетчика или ЭтаФорма.мДоступнаРольКадровика) Тогда
Кнопки = ЭлементыФормы.ДействияФормы.Кнопки;
Кнопки.Удалить(Кнопки.ПодменюПерейти);
КонецЕсли;
УстановитьВидимостьСправкиФормы(Ложь, ЭтаФорма);
СформироватьСписокОбособленныхПодразделений(ЭтаФорма);
ОбработатьОтображениеВыбораИзСписковПоШтаномуРасписанию(ЭтаФорма);
ОбработатьОтображениеОбособленногоПодразделения(Ложь, ЭтаФорма);
УстановитьВидимостьЭУПоИспользованиюТарифногоРазряда(ЭтаФорма, ЭтаФорма.ВидРасчета);
КонецПроцедуры
-
- Site Admin
- Сообщения: 530
- Зарегистрирован: Чт мар 13, 2008 9:41 pm
Доработки ЗиУП 2.5.20.3
Решение : обработка УправлениеДаннымиРаботника, форма Форма, модуль формы, процедура СформироватьДанныеКадровыеДанные.В обработке Управление данными сотрудника на закладке Кадровые данные есть карточка Т2. В заголовке карточки выводится ФИО сотрудника, а у нас много сотрудников на совместительстве в разных организациях. Надо, чтобы в заголовке карточки выводились не ФИО, а название организации, по которой выводится конкретная карточка Т2.
Вставленный код находится между строками :
// вставка >
// вставка <
Код: Выделить всё
Процедура СформироватьДанныеКадровыеДанные()
Если мДанныеКадровыеДанныеСформированы Тогда
Возврат;
КонецЕсли;
мДанныеКадровыеДанныеСформированы = Истина;
// обновить динамические списки
УчетКадровОрганизаций.Обновить();
// Сбор данных о состоянии работника в организациях.
ПолучитьМестаРаботыИСостоянияРаботника();
ПолучитьКадровыеДанные();
// настройка надписей раздела Действия и документы
ЭлементыФормы.НадписьПриемНаРаботу.Заголовок = "Принять на работу";
ЭлементыФормы.НадписьКадровоеПеремещение.Заголовок = "Переместить";
ЭлементыФормы.НадписьУвольнение.Заголовок = "Уволить";
ЭлементыФормы.НадписьАнкетаЗастрахованногоЛица.Заголовок = "Отправить анкету в ПФР";
ЭлементыФормы.НадписьЗаявлениеОбОбмене.Заголовок = "Отправить заявление в ПФР";
Для Каждого ИнфоПоОрганизации Из КадровыеДанные Цикл
Для Каждого Документ из ИнфоПоОрганизации.Значение.ПриемНаРаботуВОрганизацию Цикл
ЭлементыФормы.НадписьПриемНаРаботу.Заголовок = "Прием на работу";
Прервать;
КонецЦикла;
Для Каждого Документ из ИнфоПоОрганизации.Значение.КадровоеПеремещениеОрганизаций Цикл
ЭлементыФормы.НадписьКадровоеПеремещение.Заголовок = "Кадровое перемещение";
Прервать;
КонецЦикла;
Для Каждого Документ из ИнфоПоОрганизации.Значение.УвольнениеИзОрганизаций Цикл
ЭлементыФормы.НадписьУвольнение.Заголовок = "Увольнение";
Прервать;
КонецЦикла;
Для Каждого Документ из ИнфоПоОрганизации.Значение.АнкетаЗастрахованногоЛица Цикл
ЭлементыФормы.НадписьАнкетаЗастрахованногоЛица.Заголовок = "Анкета застрахованного лица";
Прервать;
КонецЦикла;
Для Каждого Документ из ИнфоПоОрганизации.Значение.ЗаявлениеОбОбменеДубликатеСтраховогоСвидетельства Цикл
ЭлементыФормы.НадписьЗаявлениеОбОбмене.Заголовок = "Заявление об обмене...(в ПФР)";
Прервать;
КонецЦикла;
КонецЦикла;
// Вывод данных в табличный документ
ВыходнойДокумент = ЭлементыФормы.КадровыеДанные;
// восстановление раскрытых группировок отчета
ГруппировкаТ2Раскрыта = Ложь;
Если ОбластьТ2Организаций <> НеОпределено и ОбластьТ2Организаций.Видимость Тогда
ГруппировкаТ2Раскрыта = Истина;
КонецЕсли;
ВыходнойДокумент.Очистить();
Макет = ПолучитьМакет("КадровыеДанные");
ПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока");
ОбластьФизлицо = Макет.ПолучитьОбласть("Физлицо");
ОбластьФизлицо.Параметры.Физлицо = Физлицо;
ВыходнойДокумент.Вывести(ОбластьФизлицо);
Если МестаРаботыИСостоянияФизлица.Количество() <> 0 Тогда
Область = Макет.ПолучитьОбласть("МестаРаботыЗаголовок");
ВыходнойДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("МестаРаботыСтрока");
Для Каждого МестоРаботы Из МестаРаботыИСостоянияФизлица Цикл
Область.Параметры.Заполнить(МестоРаботы);
ВыходнойДокумент.Вывести(Область);
КонецЦикла;
// Поиск не проведенных документов
РезультатВыборки = НеПроведенныеКадровыеДокументы();
Если НЕ РезультатВыборки.Пустой() Тогда
Область = Макет.ПолучитьОбласть("ДокументыНеПроведены");
Область.Параметры.ТекстДокументыНеПроведены = "ВНИМАНИЕ! Обнаружены не проведенные кадровые документы!";
ВыходнойДокумент.Вывести(Область);
КонецЕсли;
// Отчеты
ОтчетТ2Организаций = Отчеты.УнифицированнаяФормаТ2.Создать();
ОбработанныеСотрудники = Новый Соответствие;
Сч = 1;
Для Каждого МестоРаботы Из МестаРаботыИСостоянияФизлица Цикл
// Отчеты выводятся только по регистру РаботникиОрганизаций.
Если МестоРаботы.ВидРегистра = "РаботникиОрганизаций" Тогда
Если ОбработанныеСотрудники[МестоРаботы.Сотрудник] = НеОпределено Тогда
ОбработанныеСотрудники[МестоРаботы.Сотрудник] = Истина;
Область = Макет.ПолучитьОбласть("Организация");
Область.Параметры.ОрганизацияНаименование = МестоРаботы.СотрудникНаименование;
// вставка >
// в шапку формы Т-2 поместим название организации
Область.Параметры.ОрганизацияНаименование = МестоРаботы.СотрудникНаименование + " (" + СокрЛП(МестоРаботы.Организация) + ")";
// вставка <
Область.Параметры.Организация = МестоРаботы.Сотрудник;
ВыходнойДокумент.Вывести(Область);
ВыходнойДокумент.Вывести(ПустаяСтрока);
Область = Макет.ПолучитьОбласть("ОтчетТ2");
ИмяЯчейкиОтчета = Область.Области.ГиперссылкаТ2.Имя;
Область.Области.ГиперссылкаТ2.Имя = Формат(Сч,"ЧЦ=3; ЧВН=") + ИмяЯчейкиОтчета;
ВыходнойДокумент.Вывести(ПустаяСтрока);
ВыходнойДокумент.Вывести(Область);
// начнем группировку
ВыходнойДокумент.НачатьГруппуСтрок(, ГруппировкаТ2Раскрыта);
ВыходнойДокумент.Вывести(ПустаяСтрока);
ОбластьТ2Организаций = ВыходнойДокумент.Область(ВыходнойДокумент.ВысотаТаблицы, , ВыходнойДокумент.ВысотаТаблицы, );
ТиповыеОтчеты.УстановитьПараметр(ОтчетТ2Организаций.КомпоновщикНастроек, "Период", НачалоМесяца(Месяц));
ТиповыеОтчеты.УстановитьПараметр(ОтчетТ2Организаций.КомпоновщикНастроек, "КонецПериода", КонецГода(Месяц));
ТиповыеОтчеты.ДобавитьОтбор(ОтчетТ2Организаций.КомпоновщикНастроек, "Сотрудник", МестоРаботы.Сотрудник);
Т2ОрганизацийОтчет = Новый ТабличныйДокумент;
ОтчетТ2Организаций.СформироватьОтчет(Т2ОрганизацийОтчет, Истина);
ТиповыеОтчеты.УдалитьОтбор(ОтчетТ2Организаций.КомпоновщикНастроек,"Сотрудник");
// Для вывода отчетов в отдельных окнах
ДанныеТабличныхДокументовТ2.Вставить(Формат(Сч,"ЧЦ=3; ЧВН="),Т2ОрганизацийОтчет);
// таким способом размещаются отчеты без форматов строк
НачалоТаблицы = 1;
КонецТаблицы = 64;
ВысотаТаблицы = КонецТаблицы - НачалоТаблицы + 1;
ОбластьПрямоугольная = Т2ОрганизацийОтчет.Область(НачалоТаблицы, 1, КонецТаблицы, Т2ОрганизацийОтчет.ШиринаТаблицы);
НачалоНовогоФорматаСтрок = ВыходнойДокумент.ВысотаТаблицы + 1;
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, , НачалоНовогоФорматаСтрок + ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
// назначим ширину колонок у новой области формата строк
Для Счетчик = 1 По Т2ОрганизацийОтчет.ШиринаТаблицы Цикл
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Т2ОрганизацийОтчет.Область(1, Счетчик).ШиринаКолонки;
КонецЦикла;
ВыходнойДокумент.ВставитьОбласть(ОбластьПрямоугольная, ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, 1));
НачалоТаблицы = 65;
КонецТаблицы = 122;
ВысотаТаблицы = КонецТаблицы - НачалоТаблицы + 1;
ОбластьПрямоугольная = Т2ОрганизацийОтчет.Область(НачалоТаблицы, 1, КонецТаблицы, Т2ОрганизацийОтчет.ШиринаТаблицы);
НачалоНовогоФорматаСтрок = ВыходнойДокумент.ВысотаТаблицы + 1;
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, , НачалоНовогоФорматаСтрок + ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
// назначим ширину колонок у новой области формата строк
Для Счетчик = 1 По Т2ОрганизацийОтчет.ШиринаТаблицы Цикл
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Т2ОрганизацийОтчет.Область(1, Счетчик).ШиринаКолонки;
КонецЦикла;
ВыходнойДокумент.ВставитьОбласть(ОбластьПрямоугольная, ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, 1));
НачалоТаблицы = 123;
КонецТаблицы = 177;
ВысотаТаблицы = КонецТаблицы - НачалоТаблицы + 1;
ОбластьПрямоугольная = Т2ОрганизацийОтчет.Область(НачалоТаблицы, 1, КонецТаблицы, Т2ОрганизацийОтчет.ШиринаТаблицы);
НачалоНовогоФорматаСтрок = ВыходнойДокумент.ВысотаТаблицы + 1;
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, , НачалоНовогоФорматаСтрок + ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
// назначим ширину колонок у новой области формата строк
Для Счетчик = 1 По Т2ОрганизацийОтчет.ШиринаТаблицы Цикл
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Т2ОрганизацийОтчет.Область(1, Счетчик).ШиринаКолонки;
КонецЦикла;
ВыходнойДокумент.ВставитьОбласть(ОбластьПрямоугольная, ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, 1));
НачалоТаблицы = 178;
КонецТаблицы = Т2ОрганизацийОтчет.ВысотаТаблицы;
ВысотаТаблицы = КонецТаблицы - НачалоТаблицы + 1;
ОбластьПрямоугольная = Т2ОрганизацийОтчет.Область(НачалоТаблицы, 1, КонецТаблицы, Т2ОрганизацийОтчет.ШиринаТаблицы);
НачалоНовогоФорматаСтрок = ВыходнойДокумент.ВысотаТаблицы + 1;
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, , НачалоНовогоФорматаСтрок + ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
// назначим ширину колонок у новой области формата строк
Для Счетчик = 1 По Т2ОрганизацийОтчет.ШиринаТаблицы Цикл
ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Т2ОрганизацийОтчет.Область(1, Счетчик).ШиринаКолонки;
КонецЦикла;
ВыходнойДокумент.ВставитьОбласть(ОбластьПрямоугольная, ВыходнойДокумент.Область(НачалоНовогоФорматаСтрок, 1));
ВыходнойДокумент.ЗакончитьГруппуСтрок();
Сч = Сч + 1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ВыходнойДокумент.ТолькоПросмотр = Истина;
ВыходнойДокумент.Защита = Истина;
КонецПроцедуры
-
- Site Admin
- Сообщения: 530
- Зарегистрирован: Чт мар 13, 2008 9:41 pm
Форма просмотра неявок для 1С Зарплаты и управления персонал
Форма просмотра неявок для 1С Зарплаты и управления персоналом 8.1. Описание.
Форма состоит из трёх списков : список сотрудников (вверху), список кадровых назначений и увольнений (посередине) и список кадровых неявок (посередине). Два последних списка подчинены первому списку : данные в них всегда отбираются по выбранному в первом списке сотруднику.
Как работать с этой формой.
1) Выберите сотрудника в верхнем списке (быстрым поиском по первым символам или с помощью кнопок поиска на панели инструментов программы).
2) В двух списках отобразятся данные по сотруднику.
3) Если в нижнем списке оказалось слишком много записей, прокрутите нижний список до даты неявки, которую необходимо отследить.
4) Нажмите кнопку панели инструментов "Обновить текущий список" над нижним списком.
5) В нижнем списке отобразятся фактические даты окончания неявок, причём в случае перекрытия неявок (неплановые) даты окончания неявок будут подсвечены красным цветом.
Форма состоит из трёх списков : список сотрудников (вверху), список кадровых назначений и увольнений (посередине) и список кадровых неявок (посередине). Два последних списка подчинены первому списку : данные в них всегда отбираются по выбранному в первом списке сотруднику.
Как работать с этой формой.
1) Выберите сотрудника в верхнем списке (быстрым поиском по первым символам или с помощью кнопок поиска на панели инструментов программы).
2) В двух списках отобразятся данные по сотруднику.
3) Если в нижнем списке оказалось слишком много записей, прокрутите нижний список до даты неявки, которую необходимо отследить.
4) Нажмите кнопку панели инструментов "Обновить текущий список" над нижним списком.
5) В нижнем списке отобразятся фактические даты окончания неявок, причём в случае перекрытия неявок (неплановые) даты окончания неявок будут подсвечены красным цветом.
У вас нет необходимых прав для просмотра вложений в этом сообщении.