|
Заполнение дней и часов из табеля (ЗУП) | ☑ | ||
---|---|---|---|---|
0
Tanis
17.01.13
✎
11:35
|
Добрый день! Подскажите в упорядовачинии циклов.
Имеем следующее, но это пока не заполняет. Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | РабочееВремяРаботниковОрганизаций.Сотрудник КАК Сотрудник, | СУММА(РабочееВремяРаботниковОрганизаций.Дней) КАК Дней, | СУММА(РабочееВремяРаботниковОрганизаций.Часов) КАК Часов, | МЕСЯЦ(РабочееВремяРаботниковОрганизаций.Период) КАК Период |ИЗ | РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботниковОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторИспользованияРабочегоВремени КАК КлассификаторИспользованияРабочегоВремени | ПО РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени = КлассификаторИспользованияРабочегоВремени.Ссылка |ГДЕ | РабочееВремяРаботниковОрганизаций.Сотрудник = &Сотрудник | И РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &ДатаН И &ДатаК | И (РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""Явка"" | ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""Простой, не зависящий от работодателя и работника"" | ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""Ремонт 75%т.с."" | ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""ТО 100%."") | |СГРУППИРОВАТЬ ПО | РабочееВремяРаботниковОрганизаций.Сотрудник, | МЕСЯЦ(РабочееВремяРаботниковОрганизаций.Период)"; Запрос.УстановитьПараметр("Сотрудник", Сотрудник); //Сотрудники Запрос.УстановитьПараметр("ДатаН", ПериодРасчетаСреднегоЗаработкаНачало); //Дата Запрос.УстановитьПараметр("ДатаК", ПериодРасчетаСреднегоЗаработкаОкончание); //Дата Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Период = Выборка.Период; Сотрудник = Выборка.Сотрудник; Дней = Выборка.Дней; Часов = Выборка.Часов; тзДни = Новый ТаблицаЗначений; тзДни.Колонки.Добавить("Период"); тзДни.Колонки.Добавить("Сотрудник"); тзДни.Колонки.Добавить("Дней"); тзДни.Колонки.Добавить("Часов"); КонецЦикла; РасчетСреднего1 = ЭтотОбъект.РасчетСреднего; Для Каждого СтрокаДокумента ИЗ РасчетСреднего1 Цикл Если СтрокаДокумента.ВидРасчета = ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуИндексируемые Тогда Продолжить; КонецЕсли; ПериодРасч = Месяц(СтрокаДокумента.БазовыйПериодКонец); НайденнаяСтрока = тзДни.Найти(ПериодРасч, "Период"); Если НайденнаяСтрока <> Неопределено Тогда //СтрокаДокумента.Результат = НайденнаяСтрока.Начислено; СтрокаДокумента.ОтработаноДней = НайденнаяСтрока.Дней; КонецЕсли; КонецЦикла; |
|||
1
Tanis
17.01.13
✎
11:52
|
Подскажите, что где изменить...
|
|||
2
fmrlex
17.01.13
✎
12:06
|
Пока Выборка.Следующий() Цикл
Период = Выборка.Период; Сотрудник = Выборка.Сотрудник; Дней = Выборка.Дней; Часов = Выборка.Часов; тзДни = Новый ТаблицаЗначений; тзДни.Колонки.Добавить("Период"); тзДни.Колонки.Добавить("Сотрудник"); тзДни.Колонки.Добавить("Дней"); тзДни.Колонки.Добавить("Часов"); КонецЦикла; Что цикл то делает? |
|||
3
Tanis
17.01.13
✎
12:15
|
Исправлен на
тзДни = Новый ТаблицаЗначений; тзДни.Колонки.Добавить("Период"); тзДни.Колонки.Добавить("Сотрудник"); тзДни.Колонки.Добавить("Дней"); тзДни.Колонки.Добавить("Часов"); Пока Выборка.Следующий() Цикл //Период = Выборка.Период; //Сотрудник = Выборка.Сотрудник; //Дней = Выборка.Дней; //Часов = Выборка.Часов; НоваяСтрока = тзДни.Добавить(); НоваяСтрока.Период = Выборка.Период; НоваяСтрока.Сотрудник = Выборка.Сотрудник; НоваяСтрока.Дней = Выборка.Дней; НоваяСтрока.Часов = Выборка.Часов; КонецЦикла; |
|||
4
Tanis
17.01.13
✎
12:16
|
Хочу в таблицу занести данные, потом из нее заполнить таблицу расчета.
|
|||
5
fmrlex
17.01.13
✎
12:18
|
(4) Ну вижу в цикле создаешь на каждой итерации таблицу значений и создаешь в ней колонки. А данные в таблицу засовывать собираешься?
|
|||
6
Tanis
17.01.13
✎
12:21
|
а как? он из запроса не проставляет данные?
|
|||
7
Tanis
17.01.13
✎
12:23
|
получает он там данные, и таблица нормальная выводится
|
|||
8
fmrlex
17.01.13
✎
12:25
|
тзДни как заполняется? Данными я имею в виду.
|
|||
9
vah1
17.01.13
✎
12:26
|
(0) ты лучше сразу в отчет свои данные подставляй, нафига в выборку-то тыкать
|
|||
10
fmrlex
17.01.13
✎
12:28
|
(3) а все, вижу
|
|||
11
Tanis
17.01.13
✎
12:32
|
Все, вопрос решен. Всем спасибо. Решение.
Процедура ЗаполнитьДниИЧасы(Кнопка) Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | РабочееВремяРаботниковОрганизаций.Сотрудник КАК Сотрудник, | СУММА(РабочееВремяРаботниковОрганизаций.Дней) КАК Дней, | СУММА(РабочееВремяРаботниковОрганизаций.Часов) КАК Часов, | МЕСЯЦ(РабочееВремяРаботниковОрганизаций.Период) КАК Период |ИЗ | РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботниковОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторИспользованияРабочегоВремени КАК КлассификаторИспользованияРабочегоВремени | ПО РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени = КлассификаторИспользованияРабочегоВремени.Ссылка |ГДЕ | РабочееВремяРаботниковОрганизаций.Сотрудник = &Сотрудник | И РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &ДатаН И &ДатаК | И (РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""Явка"" | ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""Простой, не зависящий от работодателя и работника"" | ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""Ремонт 75%т.с."" | ИЛИ РабочееВремяРаботниковОрганизаций.ВидИспользованияРабочегоВремени.Наименование = ""ТО 100%."") | |СГРУППИРОВАТЬ ПО | РабочееВремяРаботниковОрганизаций.Сотрудник, | МЕСЯЦ(РабочееВремяРаботниковОрганизаций.Период)"; Запрос.УстановитьПараметр("Сотрудник", Сотрудник); Запрос.УстановитьПараметр("ДатаН", ПериодРасчетаСреднегоЗаработкаНачало); Запрос.УстановитьПараметр("ДатаК", ПериодРасчетаСреднегоЗаработкаОкончание); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); тзДни = Новый ТаблицаЗначений; тзДни.Колонки.Добавить("Период"); тзДни.Колонки.Добавить("Сотрудник"); тзДни.Колонки.Добавить("Дней"); тзДни.Колонки.Добавить("Часов"); Пока Выборка.Следующий() Цикл НоваяСтрока = тзДни.Добавить(); НоваяСтрока.Период = Выборка.Период; НоваяСтрока.Сотрудник = Выборка.Сотрудник; НоваяСтрока.Дней = Выборка.Дней; НоваяСтрока.Часов = Выборка.Часов; КонецЦикла; РасчетСреднего1 = ЭтотОбъект.РасчетСреднего; Для Каждого СтрокаДокумента ИЗ РасчетСреднего1 Цикл Если СтрокаДокумента.ВидРасчета <> ПланыВидовРасчета.СреднийЗаработок.ПоЗаработкуИндексируемые Тогда Продолжить; КонецЕсли; ПериодРасч = Месяц(СтрокаДокумента.БазовыйПериодКонец); НайденнаяСтрока = тзДни.Найти(ПериодРасч, "Период"); Если НайденнаяСтрока <> Неопределено Тогда СтрокаДокумента.ОтработаноДней = НайденнаяСтрока.Дней; СтрокаДокумента.ОтработаноЧасов = НайденнаяСтрока.Часов; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
12
Tanis
17.01.13
✎
12:32
|
В какой отчет? Выборку, чтоб выбрать...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |