Имя: Пароль:
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) Текущий ЗУП не идеален, но если не пытаться его дорабатывать,
то вполне работоспособен.
Основная теорема систематики: Новые системы плодят новые проблемы.