Имя: Пароль:
1C
 
1c Расчетный листок программно
0 illiona
 
naïve
20.05.24
11:27
Добрый день. Формирую программно расчетный листок
Но Организация, Подразделение, Должность, Оклад в табличном документе не заполнены - пустые. Сотрудник и все остальные данные заполнены.

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

1 Волшебник
 
20.05.24
11:28
Отладчик знаете?
2 illiona
 
naïve
20.05.24
11:37
Конечно, Я отладкой не вижу в каком конкретно месте посмотреть
3 illiona
 
naïve
20.05.24
11:42
вообще не вижу Параметра Подразделение, в какой момент оно должно быть заполнено
4 Волшебник
 
20.05.24
11:45
(2) Вы вообще программировать умеете?
5 illiona
 
naïve
20.05.24
11:51
Вот у более опытных и спрашиваю, кто не хочет помочь можно не отвечать на форуме
6 Gucci76
 
20.05.24
12:35
Возможно это не параметр , а отбор
7 _Batoo
 
20.05.24
12:57
Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток
8 illiona
 
naïve
21.05.24
07:58
Получилось сделать вывод: Но теперь выводит лишние данные
//Вывод в таблицу
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
ФизическоеЛицо, Организация, НачалоМесяца(Месяц), КонецМесяца(Месяц), ОтчетРасчетныйЛисток);
Если вывести в таблицу, этих нет отсутствий - всё красиво,

//Вывод в табличный документ
ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
Результат = ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
ФизическоеЛицо, Организация, НачалоМесяца(Месяц), КонецМесяца(Месяц), ОтчетРасчетныйЛисток).ДокументРезультат;
в Табличном документе Отсутствие по невыясненной причине с днями и часами с минусом. И месяц берет текущий и следующий
9 Гена
 
гуру
21.05.24
09:36
(8) Раз берёт следующий месяц, то данные собираются не по периоду регистрации, а по периоду действия.
10 illiona
 
naïve
21.05.24
10:03
а  Отсутствие по невыясненной причине с днями и часами с минусом почему выводит?
11 Гена
 
гуру
21.05.24
10:14
(10) Сначала в одном месяце были НН, затем в следующем месяце завели конкретный невыход, например, БЛ, который и сторнировал НН по периоду действия.
12 Мультук
 
гуру
21.05.24
10:22
(8)

1) Не вижу чем "Вывод в таблицу" отличается от "Вывод в табличный документ"
в моей HRM на выходе структура с единственным полем "ДокументРезультат"
Я хз как вы получаете "таблицу"

2) Возьмите некое физ.лицо, сформируйте по нему расчетный листок типовым способом
Он по идее должен совпасть с вашим "Вывод в табличный документ"

Если и там "хрень", то -- удачи!
13 illiona
 
naïve
21.05.24
10:23
а можно поставить какой-то отбор и убрать эти данные, для расчетного листка они не нужны
14 Гена
 
гуру
21.05.24
10:25
(13) Программист 1С может всё (с) моё
15 illiona
 
naïve
21.05.24
10:29
ЗарплатаКадрыОтчеты.ДанныеРасчетныхЛистков(
ФизическоеЛицо, Организация, НачалоМесяца(Месяц), КонецМесяца(Месяц), ОтчетРасчетныйЛисток) содержит и таблицу и табличный документ
16 illiona
 
naïve
21.05.24
12:13
(12) Сформировала типовым способом, выводит такие же данные, и присутствуют в расчетном листке
Отсутствие по невыясненной причине                            01.12            -1        -7    
Отсутствие по невыясненной причине                            04.12            -1        -15    
Отсутствие по невыясненной причине                            05.12            -1        -7    
Отсутствие по невыясненной причине                            08.12            -1        -15
17 illiona
 
naïve
23.05.24
06:51
Подскажите как поставить отбор по полю "Сумма" не нулевые значения вывести при выводе Расчетного листка.
НовыйЭлементОтбора = ОтчетРасчетныйЛисток.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ЛевоеЗначение  = "Сумма";
НовыйЭлементОтбора.Использование  = Истина;
НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.НеРавно;
НовыйЭлементОтбора.ПравоеЗначение = 0;
Ничего не происходит
Пробовала также через Дополнительные поля отбора
18 Мультук
 
гуру
23.05.24
08:15
(17)

Дам последний "бесполезный" совет

1) Или научитесь программировать или перестаньте лезть в ЗУП.
ЗУП гораздо сложнее, чем это может показаться.

2) Если этот ЗУП считает официальную белую ЗП, то тем более

3) По поводу "Но теперь выводит лишние данные".
Вы не думали о том, что эти данные не нужно скрывать,
нужно разораться, почему они возникают и правильно ли это
И искоренить (если нужно) первопричины.

4) Судя по (16) и (17), вам нужно привести в порядок ведение учета в ЗУП
Возможно исправить ошибки ведения учета.
Нулевые суммы без часов "просто так" не появляются

5) Текущий ЗУП не идеален, но если не пытаться его дорабатывать,
то вполне работоспособен.