Имя: Пароль:
1C
1С v8
ЗУП 3 Внешняя команда и ВладелецФормы
0 егаис
 
18.09.20
14:50
небольшой код
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
    
    МассивСотрудников = Новый Массив();
    Для Каждого Стр Из ВладелецФормы.Объект.Начисления Цикл
        МассивСотрудников.Добавить(Стр.Сотрудник);     
    КонецЦикла;
    
    ОписаниеТаблицы = ОписаниеТаблицыНачислений();
    ИдентификаторыСтрок = Новый Массив;
    
    ВладелецФормы.РассчитатьСотрудниковНаСервере(МассивСотрудников, ОписаниеТаблицы, Истина);
    ВладелецФормы.Модифицированность = Истина;
    Для Каждого Стр Из ВладелецФормы.Объект.Начисления Цикл
        //некие действия
    КонецЦикла;
    
    ДокументВладелец = ВладелецФормы.Объект;
    ПересмотретьРасчетнуюБазуНаСервере(ДокументВладелец);    
    
КонецПроцедуры


&НаСервере
Процедура ПересмотретьРасчетнуюБазуНаСервере(ДокументВладелец)
    
    Для Каждого Стр Из ДокументВладелец.Начисления цикл
        КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Стр.Сотрудник), "ДатаУвольнения", ДокументВладелец.Дата);
        Если НЕ (КадровыеДанные[0].ДатаУвольнения = Дата(1,1,1)) Тогда
            ИдентификаторСтрокиВидаРасчета = Стр.ИдентификаторСтрокиВидаРасчета;
            НайденныеСтроки = ДокументВладелец.Показатели.НайтиСтроки(Новый Структура("ИдентификаторСтрокиВидаРасчета, Показатель", ИдентификаторСтрокиВидаРасчета, Справочники.ПоказателиРасчетаЗарплаты.РасчетнаяБаза));
            Если НайденныеСтроки.Количество() > 0 Тогда
                НайденныеСтроки[0].Значение = 0;
            КонецЕсли;    
        КонецЕсли;    
    КонецЦикла;
    
КонецПроцедуры


до ПересмотретьРасчетнуюБазуНаСервере(ДокументВладелец) все работает как надо
В ПересмотретьРасчетнуюБазуНаСервере(ДокументВладелец) значение присваивается, все условия применяются, но на форме значение не меняется.
В чем мой косяк?
Задача обнулить показатель РасчетнаяБаза в документе премия по уволенным сотрудникам. Задача решается через внешнюю команду.
3 егаис
 
19.09.20
07:31
подниму
4 Фрэнки
 
19.09.20
08:05
из топика не совсем понятно : цель в применении внешней команды или нужно найти решение задачи? Если решение задачи, то постановка не раскрыта.
Ну может я не совсем проснулся, такое тоже допускаю.
Но есть предложение немного раскрыть и тогда возможно кто-нибудь озвучит другие способы решения.
5 егаис
 
19.09.20
11:13
Команда определяет расчетную базы для документа Премия, заполняет показатель "Расчетная база".
До этого
ДокументВладелец = ВладелецФормы.Объект;
ПересмотретьРасчетнуюБазуНаСервере(ДокументВладелец);    
все работает на ура.

Добавилась задача обнулить расчетную базу уволенным сотрудникам.
Для этого и создана процедура ПересмотретьРасчетнуюБазуНаСервере()
Она работает корректно, до НайденныеСтроки[0].Значение = 0  доходим.
Но почему-то на форме владельца данные не изменились.
Я где-то туплю с этим владельцем.
6 егаис
 
19.09.20
13:23
вопрос закрыт
писал в объект, а надо было в реквизит формы , Значение1 зовут его :(
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой