Имя: Пароль:
1C
1С v8
корректировка данных регистра сведений
,
0 noooobok
 
31.07.15
09:38
Здравствуйте!
1с 8.2 упп

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

Проблема в том, что регистр сведений "Авансы сотрудников организации" ссылается на данные физлица, а не сотрудника и ,соответственно, нельзя поставить отбор по подразделению организации исходя из исходных данных(измерения:организация, физлицо, ресурс:сумма аванса).

Подскажите, пожалуйста, какое-нибудь опытное решение проблемы. Не первый день голову ломаю
1 shuhard_серый
 
31.07.15
09:41
(0)[какое-нибудь опытное решение проблемы.]
чё ?
2 noooobok
 
31.07.15
09:41
(1) есть идеи как задачу выполнить?
3 noooobok
 
31.07.15
10:04
еще раз:
в регистре сведений "Авансы сотрудников организации" необходимо поставить отбор по "подразделению организации" из справочника "Сотрудники". Регистр на сотрудников не сссылается.
добавлять новое измерение "Сотрудники" с ссылкой на справочник мне кажется не очень правильной идеей.
4 noooobok
 
31.07.15
10:47
up
5 John83
 
31.07.15
11:05
открой пофигураторо и посмотри на самый первый реквизит в справочники сотрудников
еще вопросы?
6 Goggy
 
31.07.15
11:13
Версия с реквизитом мне понравилась. Пятнично...
7 noooobok
 
31.07.15
11:21
(5) я знаю, что через сотрудника можно получить физлицо. В данной ситуации это ничего не дает

открой пофигураторо и посмотри на измерения в регистре сведений Авансы сотрудников организации
Есть вопрос: как исходя из этих данных отобрать сотрудника по подразделению?
8 D_E_S_131
 
31.07.15
11:23
Это типовая конфигурация? И какая, если типовая?
9 noooobok
 
31.07.15
11:25
1с 8.2. Управление производственным предприятием, редакция 1.3 (1.3.65.3)
10 John83
 
31.07.15
11:28
(7) узнаешь, какой сотрудник относится к физлицу, узнаешь какое подразделение относится к сотруднику
или это так сложно?
11 noooobok
 
31.07.15
11:28
Набросал запрос как по физлицу можно получить сотрудника, но как приобщить это к делу хз

ВЫБРАТЬ
    ФизическиеЛица.Ссылка КАК ФизЛицо,
    ВложенныйЗапрос.Сотрудник КАК Сотрудник,
    ВложенныйЗапрос.Сотрудник.ТекущееПодразделениеОрганизации
ПОМЕСТИТЬ СотрудникПоФизлицу
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
            РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо КАК СотрудникФизлицо
        ИЗ
            РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСреза, ) КАК РаботникиОрганизацийСрезПоследних
        ГДЕ
            РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок > &Ноль
            И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = &ОсновноеМестоРаботы) КАК ВложенныйЗапрос
        ПО ФизическиеЛица.Ссылка = ВложенныйЗапрос.СотрудникФизлицо
ГДЕ
    ВложенныйЗапрос.Сотрудник.ВидДоговора = &ТрудовойДоговор
    И ВложенныйЗапрос.Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    АвансыРаботникамОрганизаций.Физлицо КАК ФизлицоРС,
    АвансыРаботникамОрганизаций.СуммаАванса,
    СотрудникПоФизлицу.Сотрудник КАК Сотрудник,
    СотрудникПоФизлицу.СотрудникТекущееПодразделениеОрганизации
ИЗ
    РегистрСведений.АвансыРаботникамОрганизаций КАК АвансыРаботникамОрганизаций
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ СотрудникПоФизлицу КАК СотрудникПоФизлицу
        ПО АвансыРаботникамОрганизаций.Физлицо = СотрудникПоФизлицу.ФизЛицо
ИТОГИ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Сотрудник)
ПО
    ОБЩИЕ
12 noooobok
 
31.07.15
11:37
Что должно быть в итоге: мало просто посмотреть у кого какие авансы, их надо изменить.

Для работы с регистрами сведений использую обработку "Корректировка регистров сведений". Выбираю необходимый регистр (в данном случае Авансы сотрудников организации), хочу получить список сотрудников, например, Бригада №1.

Но не могу я епрст установить такой отбор по вышеописанным причинам.
Запрос в (11), который по физлицу получает сотрудника и его долбанное подразделение можно как-то использовать в этой обработке?

По физлицу не айс поштучно отбирать овер9000 сотрудников
13 D_E_S_131
 
31.07.15
11:51

ТЗ = Новый ТаблицаЗначений;

ТЗ.Колонки.Добавить("ПодразделениеОрганизации", Тип("СправочникСсылка.ПодразделенияОрганизаций"));
ТЗ.колонки.Добавить("НовыйАванс", ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2));

// какое-то заполнение строк ТЗ данными по новым авансам

Запрос = Новый Запрос;

Запрос.Текст =
"ВЫБРАТЬ
|    ВнешнийИсточник.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
|    ВнешнийИсточник.НовыйАванс
|ПОМЕСТИТЬ ВТ_УстановитьАвансы
|ИЗ
|    &ИсточникДанных КАК ВнешнийИсточник
|
|ИНДЕКСИРОВАТЬ ПО
|    ПодразделениеОрганизации
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    АвансыРаботникамОрганизаций.Физлицо КАК Физлицо,
|    АвансыРаботникамОрганизаций.Организация КАК Организация,
|    ЕСТЬNULL(ВТ_УстановитьАвансы.НовыйАванс, АвансыРаботникамОрганизаций.СуммаАванса) КАК СуммаАванса
|ИЗ
|    РегистрСведений.АвансыРаботникамОрганизаций КАК АвансыРаботникамОрганизаций
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
|            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_УстановитьАвансы КАК ВТ_УстановитьАвансы
|            ПО РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации = ВТ_УстановитьАвансы.ПодразделениеОрганизации
|        ПО АвансыРаботникамОрганизаций.Физлицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо"
;

Запрос.УстановитьПараметр("ИсточникДанных", ТЗ);

Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда
    Возврат;
КонецЕсли;

НаборЗаписей = РегистрыСведений.АвансыРаботникамОрганизаций.СоздатьНаборЗаписей();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

    НовЗапись = НаборЗаписей.Добавить();
    
    ЗаполнитьЗначенияСвойств(НовЗапись, Выборка);

КонецЦикла;

НаборЗаписей.Записать();
14 D_E_S_131
 
31.07.15
11:52
Не тестировал, просто подаю мысль...
15 noooobok
 
31.07.15
13:22
(14) спасибо! буду пробовать
16 Goggy
 
31.07.15
13:42
Как автора допустили к УПП если он даже элементарный запросик с двумя соединениями не может запилить...
17 D_E_S_131
 
31.07.15
13:50
(16) Так же как и большинство здесь присутствующих.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший