О работе отчета Табель учета рабочего времени (Т-13)

1. user1524444 01.05.21 20:12 Сейчас в теме
Добрый день форумчане.
Помогите разобраться в следующем вопросе.
В 1С ЗУП 3.1 существует отчет Табель учета рабочего времени (Т-13). Данные из этого отчета необходимо выгрузить в другую учетную систему, отличную от 1С. Помогите пожалуйста разобраться как работает данный отчет. Я уже несколько дней пытаюсь разобраться в механизме его работы. Просматривала работу отчета отладчиком, но так никуда и не продвинулась. Не понимаю, как он работает. Да и знаний по 1С не хватает. Может быть кто-нибудь разбирался в работе данного отчета и подскажет как он работает. Очень, очень нужно!!!
По теме из базы знаний
Найденные решения
2. Sakuraso 01.05.21 22:09 Сейчас в теме
(1)В модуле отчета есть такой блок кода, дерево значений "ДанныеОВремени" это данные отчета, вот их и выгружайте.
Если КлючВарианта = "УнифицированнаяФормаТ13" Тогда
		
		СтандартнаяОбработка = Ложь;
		
		// Параметры документа
		ДокументРезультат.ТолькоПросмотр = Истина;
		ДокументРезультат.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УнифицированнаяФормаТ13";
		ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
		
		ПараметрРассчитыватьПлановоеВремя = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РассчитыватьПлановоеВремя"));
		ПараметрРассчитыватьПлановоеВремя.Использование = Истина;
		ПараметрРассчитыватьПлановоеВремя.Значение = Истина;
		
		МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанныхДляКоллекцииЗначений(СхемаКомпоновкиДанных, НастройкиОтчета);
		
		ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени();
		ПараметрыПолученияДанных.ДатаНачала = "ДатаНачала";
		ПараметрыПолученияДанных.ДатаОкончания = "ДатаОкончания";
		
		УчетРабочегоВремениРасширенный.ПолученияДанныхУчетаВремениПослеКомпоновкиМакета(МакетКомпоновки.НаборыДанных.ДанныеОВремени, ПараметрыПолученияДанных);
		
		СоответствиеПользовательскихПолей = ЗарплатаКадрыОтчеты.СоответствиеПользовательскихПолей(НастройкиОтчета);
		
		// Создадим и инициализируем процессор компоновки.
		ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
		ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
		
		ДанныеОВремени = Новый ДеревоЗначений;
		
		ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
		ПроцессорВывода.УстановитьОбъект(ДанныеОВремени);
		
		// Обозначим начало вывода
		ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
		ВывестиМакет(ДокументРезультат, ДанныеОВремени, НачалоПериода, КонецПериода, ДатаОтчета, СоответствиеПользовательскихПолей);
		ДопСвойства = КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства;
		ДопСвойства.Вставить("ОтчетПустой", ДанныеОВремени.Строки.Количество() = 0);
		
	Иначе

Показать
user1592156; biimmap; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sakuraso 01.05.21 22:09 Сейчас в теме
(1)В модуле отчета есть такой блок кода, дерево значений "ДанныеОВремени" это данные отчета, вот их и выгружайте.
Если КлючВарианта = "УнифицированнаяФормаТ13" Тогда
		
		СтандартнаяОбработка = Ложь;
		
		// Параметры документа
		ДокументРезультат.ТолькоПросмотр = Истина;
		ДокументРезультат.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УнифицированнаяФормаТ13";
		ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
		
		ПараметрРассчитыватьПлановоеВремя = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РассчитыватьПлановоеВремя"));
		ПараметрРассчитыватьПлановоеВремя.Использование = Истина;
		ПараметрРассчитыватьПлановоеВремя.Значение = Истина;
		
		МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанныхДляКоллекцииЗначений(СхемаКомпоновкиДанных, НастройкиОтчета);
		
		ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени();
		ПараметрыПолученияДанных.ДатаНачала = "ДатаНачала";
		ПараметрыПолученияДанных.ДатаОкончания = "ДатаОкончания";
		
		УчетРабочегоВремениРасширенный.ПолученияДанныхУчетаВремениПослеКомпоновкиМакета(МакетКомпоновки.НаборыДанных.ДанныеОВремени, ПараметрыПолученияДанных);
		
		СоответствиеПользовательскихПолей = ЗарплатаКадрыОтчеты.СоответствиеПользовательскихПолей(НастройкиОтчета);
		
		// Создадим и инициализируем процессор компоновки.
		ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
		ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
		
		ДанныеОВремени = Новый ДеревоЗначений;
		
		ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
		ПроцессорВывода.УстановитьОбъект(ДанныеОВремени);
		
		// Обозначим начало вывода
		ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
		ВывестиМакет(ДокументРезультат, ДанныеОВремени, НачалоПериода, КонецПериода, ДатаОтчета, СоответствиеПользовательскихПолей);
		ДопСвойства = КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства;
		ДопСвойства.Вставить("ОтчетПустой", ДанныеОВремени.Строки.Количество() = 0);
		
	Иначе

Показать
user1592156; biimmap; +2 Ответить
3. user1524444 12.05.21 10:31 Сейчас в теме
Добрый день Sakuraso. Спасибо за Ваш ответ. Я посмотрела дерево значений ДанныеОВремени.
Действительно в нем есть данные по сотрудникам. Но у меня появился вопрос,
как из этой переменной выгрузить данные. Попробовала создать внешнюю обработку,
но как работать со СхемойКомпановкиДанных.И еще одна проблема.
Процедуры в отчете выполняются в модуле объекта в контексте сервера, а мне нужно
выгрузить данные в файл. Как их передать в контекст клиента?
Подскажите пожалуйста хоть чуть-чуть. Буду очень благодарна за помощь.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот