Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/288: Рейтинг темы: голосов - 288, средняя оценка - 4.67
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
1

вывод количества рабочих часов из регистра сведений в документ

05.06.2010, 10:49. Просмотров 52309. Ответов 39
Метки нет (Все метки)

помогите пожалуйста, очень надо
как в регистре сведений График работы подсчитать сумму колонки часы в документе начисление зарплаты, чтобы потом уможить на часовую ставку.
И ещё у меня, у меня персонал который содержит реквизит Язык, как сделать так, чтобы в документе, когда я в поле выбора выбираю Ф.И.О. автоматически вводилось в другом поле выбора Реквизит язык.

8.0
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2010, 10:49
Ответы с готовыми решениями:

Вывод из регистра сведений
Здравствуйте! в общем такой вопрос есть регистр сведений аудиторские процедуры(измер - процедуры,...

Выборка данных из регистра сведений и регистра остатков
Нужно написать отчет по з.п, продавцы получают з.п в зависимости от того сколько они продали, т.е...

Вывод записей регистра сведений.
Доброе утро. никак не могу победить задачку. есть регистр записей. при открытии какой-то формы...

Подстановка цены в документ из регистра сведений через табличную модель
Пытаюсь получить из регистра цену на выбираемый в табличной части товар по текущему контрагенту....

Как вытащить Цену из Регистра сведений в документ Реализация Товара
Пишу: Процедура ТоварыНоменклатураПриИзменении(Элемент) ЦенаОтбор = Новый Структура;...

39
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
05.06.2010, 13:39 2
Код ( (Unknown Language)):
Процедура СотрудникПриИзменении(Элемент)

Язык = Сотрудник.Язык;
КонецПроцедуры
Часы по сотруднику?
Из документа в регистр или наоборот? Какая структура регистра?
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
05.06.2010, 14:49 3
При заполнении документа Зарплата, надо в поле Количесвто рабочих часов вывести сумму значений ресурса Часы регистра сведений График Работы за то время, которое указано в Документе Зарплата ОтЧисла и До Числа
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
05.06.2010, 16:51 4
Запросом. Выгружаете массив сотрудников в таблицу значений, составляете запрос к регистру сведений с группировкой по сотрудникам и часам. потом загружаете обратно в таблицу документа.
0
05.06.2010, 16:51
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
05.06.2010, 17:02 5
:fuckyou: а можете книжку посоветовать, где есть что-то похожее :crash:
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
05.06.2010, 17:06 6
"Практическое пособие разработчика" М.Радченко
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
05.06.2010, 20:21 7
как же всё тяжело
мы по этому учебнику 15 лаб сделали
на странице 349 есть то что мне нужно, но оно слишком далеко от того, чтоб я смог это реализовать


Код ( (Unknown Language)):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаЗарплата Из Зарплата Цикл
// регистр Начисления
Движение = Движения.Начисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаЗарплата.ВидыНачислений;
Движение.ПериодДействияНачало = ТекСтрокаЗарплата.ОтЧисла;
Движение.ПериодДействияКонец = ТекСтрокаЗарплата.ДоЧисла;
Движение.ПериодРегистрации = ТекСтрокаЗарплата.ОтЧисла;
Движение.БазовыйПериодНачало = ТекСтрокаЗарплата.ОтЧисла;
Движение.БазовыйПериодКонец = ТекСтрокаЗарплата.ДоЧисла;
Движение.Сотрудник = ТекСтрокаЗарплата.Сотрудник;
Движение.ГрафикРаботы = ТекСтрокаЗарплата.КоличествоРабочихЧасов;
Движение.Зарплата = ТекСтрокаЗарплата.КВыплате;
КонецЦикла;
// записываем движения регистров
Движения.Начисления.Записать();
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗарплатаЗарплата.Сотрудник
|ИЗ
| Документ. Зарплата. Зарплата КАК ЗарплатаЗарплата.Сотрудник
|ГДЕ
| ЗарплатаЗарплата.Ссылка = &ТекущийДокумент");
Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);

ТаблЗнач = Запрос.Выполнить().Выгрузить();
МассивСотрудников = ТаблЗнач.ВыгрузитьКолонку("Сотрудник");
СписокСотрудников = Новый СписокЗначений;
СписокСотрудников.ЗагрузитьЗначения(МассивСотрудников);


КонецПроцедуры
это то что я сделал, тыкните пожалуйста пальцем, что дальше делать.



Запросом. Выгружаете массив сотрудников в таблицу значений, составляете запрос к регистру сведений с группировкой по сотрудникам и часам. потом загружаете обратно в таблицу документа.
Выгружаете массив сотрудников в таблицу значений - это сделал

Составляете запрос к регистру сведений с группировкой по сотрудникам и часам. потом загружаете обратно в таблицу документа - как это сделать?
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
05.06.2010, 21:13 8
1) Выгружаете массив (будет условием для запроса)

МассивСотрудников = ИмяТабличнойЧасти.ВыгрузитьКолонку("Сотрудники");

в свойствах виртуальной таблицы указываете:

"Сотрудник В (&МассивСотрудников)".

Запрос.УстановитьПараметр("МассивСотрудников", МассивСотрудников);

ИмяТабличнойЧасти.Загрузить(Запрос.Выполнить().Выгрузить());
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
06.06.2010, 17:02 9
ничё не получается

Код ( (Unknown Language)):
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Зарплата.Сотрудник,
| Зарплата.КоличествоРабочихЧасов,
| Зарплата.ОтЧисла,
| Зарплата.ДоЧисла,
| Зарплата.КВыплате;
|ИЗ
| Документ.Зарплата
| РегистрыСведений.ГрафикиРаботы
| ГДЕ
| Зарплата.Ссылка = &ТекущийДокумент");

// Зарплата.Сотрудник В (&МассивСотрудников);
Запрос.УстановитьПараметр("МассивСотрудников", МассивСотрудников);
ТаблЗнач = Зарплата.Загрузить(Запрос.Выполнить().Выгрузить());
МассивСотрудников = Зарплата.ВыгрузитьКолонку("Сотрудники");
СписокСотрудников = Новый СписокЗначений;
СписокСотрудников.ЗагрузитьЗначения(МассивСотрудников);
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
06.06.2010, 17:59 10
А в запросе где параметр &МассивСотрудников? Это запрос к чему к чему? к документ или к регистру?
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
06.06.2010, 20:35 11
на первом скрине, какие ещё поля нужно выбрать. В разделе таблица ни где не загарается параметры виртуальной таблицы, для того чтобы ввести Сотрудник В (&МассивСотрудников)

на втором скрине, я думаю что всё правильно сделал

на третьем, вы сказали что Выгружаете массив (будет условием для запроса) какие поля туда вбить?

на четвёртом, думаю что практически всё правильно

нужны ли ещё какие-то пункты?
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
07.06.2010, 09:26 12
Цитата Сообщение от aimp
на первом скрине, какие ещё поля нужно выбрать. В разделе таблица ни где не загарается параметры виртуальной таблицы, для того чтобы ввести Сотрудник В (&МассивСотрудников)

на втором скрине, я думаю что всё правильно сделал

на третьем, вы сказали что Выгружаете массив (будет условием для запроса) какие поля туда вбить?

на четвёртом, думаю что практически всё правильно

нужны ли ещё какие-то пункты?
Начинаем сначала и по-порядку.

1) Условие "Сотрудник В" если не получается указать в параметрах вирт.таблицы, значит указываем на закладке "Условия"
2) Что в ресурсе "Часы" хранится? А что хранится в "КоличествоЧасов" в документе?
3) массив - полностью колонка "Сотрудники" из документа (ВыгрузитьКолонку("ИмяКолонки") вернет массив)
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
07.06.2010, 11:06 13
1) Условие "Сотрудник В" если не получается указать в параметрах вирт.таблицы, значит указываем на закладке "Условия"
сделал


2) Что в ресурсе "Часы" хранится? А что хранится в "КоличествоЧасов" в документе?
Ресурс "Часы" относиться к РегистрСведений.ГрафикРаботы.Часы, у меня каждый день месяца есть в этом регистре, а в ресурсе часы отображается в день сколько чаосов человек работал. Сумму часов надо вставить в документ в поле "КоличествоЧасов" за указынный период времени который указан в документе документа


3) массив - полностью колонка "Сотрудники" из документа (ВыгрузитьКолонку("ИмяКолонки") вернет массив)
МассивСотрудники = СсылкаНаДокумент.Зарплата.ВыгрузитьКолонку("Сотрудник"); <------- так писать? Родченко перекопал и не нашёл ничего связанное с выгрузить в Конструкторе запроса, он везде пишется за его пределами
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
07.06.2010, 12:09 14
Цитата Сообщение от aimp
МассивСотрудники = СсылкаНаДокумент.Зарплата.ВыгрузитьКолонку("Сотрудник"); <------- так писать? Родченко перекопал и не нашёл ничего связанное с выгрузить в Конструкторе запроса, он везде пишется за его пределами
СсылкаНаДокумент - я так понимаю ссылка на текущий документ. И ее не надо указывать.

Теперь получившийся массив "МассивСотрудников" передаете в запрос ("УстановитьПараметр"); Выполняете запрос и результат загружаете обратно в таблицу к себе:


Код ( (Unknown Language)):
Зарплата.Загрузить(Запрос.Выполнить().Выгрузить());
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
07.06.2010, 14:04 15
Запрос = Новый Запрос(

"ВЫБРАТЬ
| ЗарплатаЗарплата.Сотрудник
|ИЗ
| Документ.Зарплата.Зарплата КАК ЗарплатаЗарплата
|ГДЕ
| ЗарплатаЗарплата.Сотрудник В (&МассивСотрудников)"

МассивСотрудники = Зарплата.ВыгрузитьКолонку("Сотрудник");
МассивСотрудники = Зарплата.Загрузить(Запрос.Выполнить().Выгрузить());

правильно?

З.Ы.. Ресурс "Часы" относиться к РегистрСведений.ГрафикРаботы.Часы, у меня каждый день месяца есть в этом регистре, а в ресурсе часы отображается в день сколько чаосов человек работал. Сумму часов надо вставить согласно выбранному Графику РАботы в документ в поле "КоличествоЧасов" за указынный период времени который указан в документе документа
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
07.06.2010, 14:54 16
1) Почему каждый раз запрос то к документу, то к регистру? Часы нормы хранятся в регистре (если я правильно понял), значит запрос должен быть к регистру, а не к документу.
2) Где взаимосвязь между сотрудником и его графиком?
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
07.06.2010, 16:15 17
1) Почему каждый раз запрос то к документу, то к регистру? Часы нормы хранятся в регистре (если я правильно понял), значит запрос должен быть к регистру, а не к документу.
ну да, только я не понимаю ход ваших мыслей, и по этому пытаюсь тупо следовать тому что вы говорите. Вы говорите слово, я иду в родченко, исчу его, стараюсь додумать что вы имели в виду. Как я понял, Конструктор запроса вроде так работает, я выбираю все поля из взаимодействующих объектов, потом провожу соответствия и согласно соответствиям суммирую необходиме данные и вывожу их в документе. Возможно вы так и говорите, просто у меня много чего опущенно из-за пробелов в знаниях, мне даже не у кого спросить кроме вас. Курсовую сдавать в четверг надо уже готовую, так что пожалуйста, говорите как можно подробнее в своих сообщениях и больше, чтоб дело сдвинулось с мёртовой точки, а то мне не успеть
Какие поля я должен выбрать на скрине?



2) Где взаимосвязь между сотрудником и его графиком?
это от старой версии отсатлось, сейчас там ГрафикиРаботыСотрудников, выбирая к примеру у Иванова график работы Иванов, загружаются из РегистраСведений только его график, т.е. дни и количество часов.
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
07.06.2010, 18:04 18
:blush:

был тут скрин с актуальной структурой?

График работы - реквизит Сотрудника? Если да, то получаем данные в 2 этапа (можно пакетом запросов):

1) запрос получаете все возможные графики сотрудников документа

2) Получаем часы по сотрудникам документа - запрос к регистру сведений с условием "...МассивСотрудников" и условие ГрафикРаботы в (результат Шага 1)

3) выгружаем обратно в документ.
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
07.06.2010, 19:28 19
График работы - реквизит Сотрудника? Если да, то получаем данные в 2 этапа (можно пакетом запросов):
нет, есть справочник, который хранит в себе предопределённые значения. Регистр сведений получает значение графика ссылаясь на справочник



был тут скрин с актуальной структурой?
какой? там где я 4 выкладывал? я новый сделла, я думаю он правильный
Мы должны выбирать все поля которые находятся и в документе и в регистре? или к примеру реквизит зарплата можно не брать, так как не замешан в передачах значение между объектами?


в каком окне конфигуратора нужно проводить суммирование часы?
и как потом эти часы засунуть в документ?
0
oymp
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 22
08.06.2010, 00:21 20
вот моя последняя версия
0
08.06.2010, 00:21
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2010, 00:21

Сортировка в упр. форме, вывод регистра сведений
Создал форму, вывел туда РС(3 поля в нем контрагент, менеджер и статус), настроил отбор, все...

Вывод в табличную часть справочника данных из регистра сведений
Здравствуйте! Есть справочник и РС. Надо в табличную часть справочника вывести данные из РС,...

Программа для расчета общего количества рабочих часов за месяц
Необходимо разработать алгоритм и программу для расчета общего количества часов за месяц по каждому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.