Публикации

БСП
Разработки

Найдено результатов: 42


Массив видов рабочего времени, отражающих норму времени для суммированного учета рабочего времени

Автор: HostHost

FastCode 37 5
//Это рабочее время + выходные + время, когда сотрудник отсутствовал по своей вине.

УчетРабочегоВремениРасширенный.ВидыВремениВЗачетНормыСуммированногоУчета()

Вопрос по OneTracker

OneTracker - трекер учета рабочего времени в 1С Есть ли возможность тестового периода? Читать дальше

Создать временную таблицу, с данными учета времени и состояний сотрудников

Автор: HostHost

FastCode 37 5
ПараметрыЗаполнения = УчетРабочегоВремениРасширенный.ПараметрыДляЗапросВТДанныеУчетаВремениИСостоянийСотрудников();

ПараметрыЗаполнения.ИмяВТСотрудники = "ВТСотрудникиПериоды";

ПараметрыЗаполнения.ИмяВТРезультат = "ВТУчетРабочегоВремениПолный";

ПараметрыЗаполнения.РассчитыватьПлановоеВремя = Истина;

ПараметрыЗаполнения.ДатаАктуальности  = ПериодПланирования;

ПараметрыЗаполнения.ДатаНачала = АнализируемыйГод;

ПараметрыЗаполнения.ДатаОкончания = КонецГода(АнализируемыйГод);

ПараметрыЗаполнения.МесяцДатаНачала = АнализируемыйГод;

ПараметрыЗаполнения.МесяцДатаОкончания = КонецГода(АнализируемыйГод);

ПараметрыЗаполнения.ВыделятьВыходныеВПериодыОтклонений = Ложь;

УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаВремениИСостоянийСотрудников(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыЗаполнения);

Массив видов рабочего времени, отражающих отработанное время

Автор: HostHost

FastCode 37 5
УчетРабочегоВремениРасширенный.ВидыВремениОтработанноеВремяДляСуммированногоУчета()

Данные отработанного времени

Получить данные рабочего (отработанного) времени, данные табеля Т-13
//В ДАННОМ ПРИМЕРЕ МОЖНО ПОЛУЧИТЬ ДАННЫЕ ВРЕМЕНИ ТОЛЬКО ЗА ОДИН МЕСЯЦ

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

&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры

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

Данные бухгалтерского учета

Получить данные бухгалтерского учета (организации, подразделения, сотрудника, начисления) в ЗУП 3
&НаСервере
Процедура ОтражениеВУчетеНаСервере()
	
	//Тестировалось на релизе 3.1.8
	
	Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию("Колесник Дмитрий Иванович");
	ДатаНачалаСобытия = ДАТА(2018,12,14);
	Начисление = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Оплата по окладу");
	
	// Определяет статью финансирования, используемую для СОТРУДНИКА по умолчанию.
	
	ОтражениеВБухучетеНачисления = УчетСреднегоЗаработка.ОтражениеВБухучетеПоУмолчанию(Сотрудник, ДатаНачалаСобытия, Начисление);
	
	// Определяет статью финансирования, используемую для НАЧИСЛЕНИЯ СОТРУДНИКА по умолчанию.
	
	ОтражениеВБухучетеСотрудника = УчетСреднегоЗаработка.ОтражениеВБухучетеПоУмолчанию(Сотрудник, ДатаНачалаСобытия);
	
	//ОтражениеВБухучетеСотрудника2 = ОтражениеЗарплатыВБухучетеРасширенный.НастройкаБухучетаЗарплатыСотрудника(Сотрудник, ДатаНачалаСобытия);
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	//ВАРИАНТ 1
	
	// Определяет статью финансирования, используемую для НАЧИСЛЕНИЯ СОТРУДНИКА по умолчанию.
	// Определяет откуда применяется статья финансирования (из Организации, Подразделения, Сотрудника)	
	// и выводит статью финансирования с учетом всех введенных данных
	
	КадровыеДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(Истина, 
	ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), 
	"Организация,ФизическоеЛицо,Подразделение,ТерриторияВыполненияРаботВОрганизации", ДатаНачалаСобытия);

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

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

Просмотр временной таблицы

Автор: HostHost

3 FastCode 37 5
Запрос.МенеджерВременныхТаблиц.Таблицы.Получить(0).ПолучитьДанные().Выгрузить();

Уничтожение временной таблицы

Автор: HostHost

FastCode 37 5
//1.
ЗарплатаКадры.УничтожитьВТ(

        МенеджерВременныхТаблиц,

        СтрРазделить("ВТФизическиеЛицаПатент,ВТКадровыеДанныеСотрудников,ВТИностранцыСотрудники,ВТИностранцы,ВТНерезиденты,ВТФиксированныеСтатусыФизическихЛиц,ВТТекущиеСтатусыФизическихЛиц,ВТИностранцыСДатами,ВТНачисления,ВТРегистрация,ВТРассчитанныеДниВРФ",","));

//2.
		
УдалитьВТ = Новый Массив;

УдалитьВТ.Добавить("втВременныеПозиции");

УдалитьВТ.Добавить("втВременныеПодразделения");

УдалитьВТ.Добавить("втФинальная");

ЗарплатаКадры.УничтожитьВТ(МенеджерВТ, УдалитьВТ);

Создает временную таблицу по набору записей

Автор: HostHost

1 FastCode 37 5
ЗарплатаКадры.СоздатьВТПоНаборуЗаписей(Запрос.МенеджерВременныхТаблиц, Движения.СведенияОДоходахНДФЛ, Истина, "ВТПеренесенныеДоходы");

Прибавить рабочие дни к дате

8 Yuriy K. 18 2
        Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ " + Число(ДобавитьКоличествоДней) + "
		|	ДанныеПроизводственногоКалендаря.Дата КАК ДатаКалендаря
		|ПОМЕСТИТЬ ВТ_РабочиеДни
		|ИЗ
		|	РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
		|ГДЕ
		|	ДанныеПроизводственногоКалендаря.ВидДня = &ВидДня_РабочийДень
		|	И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	МАКСИМУМ(ВТ_РабочиеДни.ДатаКалендаря) КАК ДатаКалендаря
		|ИЗ
		|	ВТ_РабочиеДни КАК ВТ_РабочиеДни";
	
	Запрос.УстановитьПараметр("ИсходнаяДата", НачалоДня(Объект.Дата));
	Запрос.УстановитьПараметр("ВидДня_РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий);
	
        РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		Возврат ВыборкаДетальныеЗаписи.ДатаКалендаря;			
	КонецЕсли;