Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ЗУП3: программное создание и заполнение ВедомостиНаСчета

ЗУП3: программное создание и заполнение ВедомостиНаСчета
Я
   dft2014
 
27.03.19 - 18:24
ЗУП 3.1.8

Пытаюсь написать обработку по автоматическому созданию документа "Ведомость на счета" для версии ЗУП3.1.8. Документ создается, но табличная часть - не заполнена! Для заполнения использую типовую процедуру ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма), но в отладчике видно, что не заходит в эту процедуру, хотя условие Форма.Объект.Основания.Количество() возвращает 1.

Помогите!!! Вот мой код:

&НаКлиенте
Процедура СформироватьДокумент(Команда)
    Структура = ПодготовитьСписокСотрудников();
    док = СформироватьДокументВедомостьНаСервере(Структура.мФизЛица,СсылкаДН);  
    Парам = Новый Структура("Ключ", Док);
    Форма =  ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыПеречислением.Форма.ФормаДокумента", Парам);
    Если Форма.Объект.Основания.Количество() > 0 Тогда
        ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма); //Форма.Объект.Основания.Количество() возвращает 1, но сюда не проваливается!
    КонецЕсли;
КонецПроцедуры


&НаСервере
Функция СформироватьДокументВедомостьНаСервере (мФизЛица, СсылкаДН)
    
    ДатаДокумента = Объект.Дата;        
    НовыйДокументВедомость = Документы.ВедомостьНаВыплатуЗарплатыПеречислением.СоздатьДокумент();
    НовыйДокументВедомость.Дата = Объект.Дата;
    НовыйДокументВедомость.ПериодРегистрации = НачалоМесяца(ДатаДокумента);
    НовыйДокументВедомость.Организация = Объект.Организация;    
    НовыйДокументВедомость.СпособВыплаты = Справочники.СпособыВыплатыЗарплаты.НайтиПоНаименованию("Начисления по договорам");
    
    НовыйДокументВедомость.Комментарий = "Создан обработкой загрузки ДГПХ " + ТекущаяДата();
    НовыйДокументВедомость.Ответственный = ПараметрыСеанса.ТекущийПользователь;
    НовыйДокументВедомость.ПеречислениеНДФЛВыполнено = Истина;
    НовыйДокументВедомость.Округление = Справочники.СпособыОкругленияПриРасчетеЗарплаты.НайтиПоНаименованию("Без округления");
    НовыйДокументВедомость.ПроцентВыплаты = 100;
    Строка = НовыйДокументВедомость.Основания.Добавить();
    Строка.Документ = СсылкаДН;
    НовыйДокументВедомость.Записать();
    
    Возврат НовыйДокументВедомость.Ссылка;       
КонецФункции
 
 
   dft2014
 
1 - 28.03.19 - 11:02
Ап!!!!
   dft2014
 
2 - 28.03.19 - 13:08
Вообще никто не поможет :( ???
   catena
 
3 - 28.03.19 - 13:11
Не заходит в процедуру или не заходит в Если при выполнении условия?
   dft2014
 
4 - 28.03.19 - 13:51
(3) В Если заходит, но в процедуру не заходит!
   ajax_new
 
5 - 28.03.19 - 14:06
Отладка на сервере включена?
   Gbpltw
 
6 - 28.03.19 - 14:13
3.1.9 говорят, сама все делает
   dft2014
 
7 - 28.03.19 - 14:18
(5) Да, отладка включена.
   catena
 
8 - 28.03.19 - 14:20
Кыш чистили?
   SleepyHead
 
9 - 28.03.19 - 14:31
Кэш тут ни при чем,нужно заполнить не только основания, но и тч "состав", и связать ее с тч "зарплата".
   dft2014
 
10 - 28.03.19 - 14:36
(9) Сейчас у меня документ "Ведомость на счета" создается, но табличная часть не заполняется. Заполнить я ее пытаюсь типовыми процедурами и функциями, например использую типовую процедуру ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма). Но отладчик заходи в ЕСЛИ (т.е. условие выполняется), а вот в саму процедуру не заходит! Ниже фрагмент условия из (0):

Если Форма.Объект.Основания.Количество() > 0 Тогда
     ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма);//Форма.Объект.Основания.Количество() возвращает 1, но сюда не проваливается!

КонецЕсли;
   SleepyHead
 
11 - 28.03.19 - 14:38
(10) я писал заполнение для зуп гу, структура там такач же, все работает. Все тч заполнял сам, без использования форм


Структура тч очень простая, не вижу смысла утяжелять заполнение так, как вы делаете.
   1Сергей
 
12 - 28.03.19 - 14:44
"ВедомостьНаВыплатуЗарплатыКлиент" в данном контексте это что?
   dft2014
 
13 - 28.03.19 - 15:00
ВедомостьНаВыплатуЗарплатыКлиент - это типовой общий модуль, в котором есть типовая процедура Заполнить(Форма):


Процедура Заполнить(Форма) Экспорт
    
    ОчиститьСообщения();
    Форма.ЗаполнитьНаСервере()
    
КонецПроцедуры
   Gucci76
 
14 - 28.03.19 - 15:18
А что в параметр "форма" передается?
Форма = ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыВБанк.ФормаОбъекта", );???
   dft2014
 
15 - 28.03.19 - 15:50
(14) В том-то и проблема, что не проваливается в ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма)!!!
   dft2014
 
16 - 28.03.19 - 15:55
(14) Ой, неправильно ответила в (15), сейчас посмотрю...
   dft2014
 
17 - 28.03.19 - 16:04
(14) В отладчике в Форма =  ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыПеречислением.Форма.ФормаДокумента", Парам);  передается значение "УправляемаяФорма", тип "УправляемаяФорма".
   dft2014
 
18 - 28.03.19 - 16:38
Вообще убрала условие, оставила только ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма); 
В отладчике, курсор на ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма) становится, но затем сразу переходит на следующую строку! В отладчике, нажала на "Вычислить выражение", в Значении пишет: "Обращение к процедуре объекта как к функции (Заполнить)" 

Как так?! Ведь в общем модуле ВедомостьНаВыплатуЗарплатыКлиент, это процедура и я обращаюсь к ней как к процедуре! Ниже сама процедура:

Процедура Заполнить(Форма) Экспорт
    ОчиститьСообщения();
    Форма.ЗаполнитьНаСервере()
КонецПроцедуры
   dft2014
 
19 - 28.03.19 - 18:17
Разобралась! Была нелепая ошибка: в конце строки ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма) не нужно было ставить ";". Ниже итоговый код:

&НаКлиенте
Процедура СформироватьДокумент(Команда)
    Структура = ПодготовитьСписокСотрудников();
    док = СформироватьДокументВедомостьНаСервере(Структура.мФизЛица,СсылкаДН);  
    Парам = Новый Структура("Ключ", Док);
    Форма =  ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыПеречислением.Форма.ФормаДокумента", Парам); 
    Если Форма.Объект.Основания.Количество() > 0 Тогда
        ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма)// вот здесь надо было убрать ;

    КонецЕсли;
КонецПроцедуры
   catena
 
20 - 29.03.19 - 05:04
(19)Это какая платформа так забавно трактует синтаксис?
   1Сергей
 
21 - 29.03.19 - 09:46
(19) о_О
   dft2014
 
22 - 29.03.19 - 11:30
(20) Платформа 8.3.13.1644. Сама в шоке!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.