Имя: Пароль:
1C
1С v8
УФ ЗУП 3 Ведомость
0 Homer
 
25.09.18
09:39
редко работаю на УФ
Внешней обработкой пересчитываю выплаты, после отработки обработки, визуально не меняется сумма начисления, после записи документа, все появляется.
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
    
    Если ИдентификаторКоманды = "ЗаполнитьДокумент" Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Оповещение = Новый ОписаниеОповещения("ПослеОтветаНаВопросОЗаполненииТЧ", ЭтаФорма, Параметры);
        ПоказатьВопрос(Оповещение, "Обработать табличную часть?", Режим, 0);
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ПослеОтветаНаВопросОЗаполненииТЧ(Результат, Параметры) Экспорт
    
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
    
    Если Не ВладелецФормы = Неопределено Тогда
        НовыйОбъект = ВладелецФормы.Объект;
        
        ЗаполнитьТЧСервер(НовыйОбъект);
        КопироватьДанныеФормы(НовыйОбъект, ВладелецФормы.Объект);
        
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Табличная часть обработана!!!";
        Сообщение.Сообщить();
        
    КонецЕсли;
    
    ВладелецФормы.Объект.Комментарий = ВладелецФормы.Объект.Комментарий + " @Обработан";
    Модифицированность = Ложь;
    ОтобразитьИзменениеДанных(НовыйОбъект.Ссылка, ВидИзмененияДанных.Изменение);
    ОповеститьОбИзменении(НовыйОбъект.Ссылка);
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьТЧСервер(НовыйОбъект) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = ПолучитьЗапрос();
    Запрос.УстановитьПараметр("Дата", НачалоМесяца(НовыйОбъект.ПериодРегистрации) + 14*24*3600); //Дата
    Запрос.УстановитьПараметр("Зарплата", НовыйОбъект.Зарплата.Выгрузить()); //Ведомость в банк
    
    мТаб = Запрос.Выполнить().Выгрузить();
    
    Для Каждого Строка из НовыйОбъект.Зарплата Цикл
        ЗаполнитьЗначенияСвойств(Строка,мТаб.Получить(Строка.НомерСтроки - 1));
    КонецЦикла;
КонецПроцедуры

&НаСервере
Функция ПолучитьЗапрос()
1 SleepyHead
 
гуру
25.09.18
09:45
(0) Какую задачу решаешь, пересчитывая выплаты, и чем не устраивает типовой алгоритм?
2 SleepyHead
 
гуру
25.09.18
09:46
(0) Возможно, не все нужнгые ТЧ заполняешь, проверь, обновляется ли ТЧ Состав, соответствуют ли идентификаторы этой ТЧ идентификаторм в ТЧ Зарплата и так далее.
3 Homer
 
25.09.18
09:47
(1) Пересчет аванса с учетом отклонений
4 SleepyHead
 
гуру
25.09.18
09:49
(3) Но ведь 1с сама это делает, если сначала рассчитать ЗП за первую половину месяца?
5 Homer
 
25.09.18
09:53
(4) не подходит), этим мы тоже пользуемся
(2) нет там больше нужных таблиц
6 SleepyHead
 
гуру
25.09.18
09:54
(5) Да, я две основные назвал. Но ответ тот же - нужно проверять соответствие идентификаторов и не забыть потом скопировать новые данные в табличные данные формы.
7 Homer
 
25.09.18
10:04
ТЧ Состав - там ни чего нет, при отработки обработки, подвал пересчитывается! при расшифровки строки, так же вижу новую сумму. Комментарий обновляется!
8 SleepyHead
 
гуру
25.09.18
11:03
(7) "ТЧ Состав - там ни чего нет, "

Ну так заполнять значит надо самому. В этой ТЧ должны быть перечислены физлица, которые затем входят ТЧ Зарплата и НДФЛ.
9 Homer
 
25.09.18
11:14
(8) я имел ввиду там, не чего интересно нет, там все заполнено. Моя обработка обрабатывает уже текущий данные, и не перезаписывает только сумму
10 MuxaH
 
25.09.18
11:20
Там реквизит КВыплате, который на форме пользователю показывается, это именно реквизит формы, а не объекта. Ты его в обработке своей тоже меняешь?
11 Homer
 
25.09.18
12:19
(10)все нашел, поправил,
как теперь сделать Модифицированность = Истина
12 Homer
 
25.09.18
12:26
все нашел