|   |   | 
| 
 | ЗУП3: программное создание и заполнение ВедомостиНаСчета | ☑ | ||
|---|---|---|---|---|
| 0
    
        dft2014 27.03.19✎ 18:24 | 
        ЗУП 3.1.8
 Пытаюсь написать обработку по автоматическому созданию документа "Ведомость на счета" для версии ЗУП3.1.8. Документ создается, но табличная часть - не заполнена! Для заполнения использую типовую процедуру ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма), но в отладчике видно, что не заходит в эту процедуру, хотя условие Форма.Объект.Основания.Количество() возвращает 1. Помогите!!! Вот мой код: &НаКлиенте Процедура СформироватьДокумент(Команда) Структура = ПодготовитьСписокСотрудников(); док = СформироватьДокументВедомостьНаСервере(Структура.мФизЛица,СсылкаДН); Парам = Новый Структура("Ключ", Док); Форма = ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыПеречислением.Форма.ФормаДокумента", Парам); Если Форма.Объект.Основания.Количество() > 0 Тогда ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма); //Форма.Объект.Основания.Количество() возвращает 1, но сюда не проваливается! КонецЕсли; КонецПроцедуры &НаСервере Функция СформироватьДокументВедомостьНаСервере (мФизЛица, СсылкаДН) ДатаДокумента = Объект.Дата; НовыйДокументВедомость = Документы.ВедомостьНаВыплатуЗарплатыПеречислением.СоздатьДокумент(); НовыйДокументВедомость.Дата = Объект.Дата; НовыйДокументВедомость.ПериодРегистрации = НачалоМесяца(ДатаДокумента); НовыйДокументВедомость.Организация = Объект.Организация; НовыйДокументВедомость.СпособВыплаты = Справочники.СпособыВыплатыЗарплаты.НайтиПоНаименованию("Начисления по договорам"); НовыйДокументВедомость.Комментарий = "Создан обработкой загрузки ДГПХ " + ТекущаяДата(); НовыйДокументВедомость.Ответственный = ПараметрыСеанса.ТекущийПользователь; НовыйДокументВедомость.ПеречислениеНДФЛВыполнено = Истина; НовыйДокументВедомость.Округление = Справочники.СпособыОкругленияПриРасчетеЗарплаты.НайтиПоНаименованию("Без округления"); НовыйДокументВедомость.ПроцентВыплаты = 100; Строка = НовыйДокументВедомость.Основания.Добавить(); Строка.Документ = СсылкаДН; НовыйДокументВедомость.Записать(); Возврат НовыйДокументВедомость.Ссылка; КонецФункции | |||
| 1
    
        dft2014 28.03.19✎ 11:02 | 
        Ап!!!!     | |||
| 2
    
        dft2014 28.03.19✎ 13:08 | 
        Вообще никто не поможет :( ???     | |||
| 3
    
        catena 28.03.19✎ 13:11 | 
        Не заходит в процедуру или не заходит в Если при выполнении условия?     | |||
| 4
    
        dft2014 28.03.19✎ 13:51 | 
        (3) В Если заходит, но в процедуру не заходит!     | |||
| 5
    
        ajax_new 28.03.19✎ 14:06 | 
        Отладка на сервере включена?     | |||
| 6
    
        Gbpltw 28.03.19✎ 14:13 | 
        3.1.9 говорят, сама все делает     | |||
| 7
    
        dft2014 28.03.19✎ 14:18 | 
        (5) Да, отладка включена.     | |||
| 8
    
        catena 28.03.19✎ 14:20 | 
        Кыш чистили?     | |||
| 9
    
        SleepyHead гуру 28.03.19✎ 14:31 | 
        Кэш тут ни при чем,нужно заполнить не только основания, но и тч "состав", и связать ее с тч "зарплата".     | |||
| 10
    
        dft2014 28.03.19✎ 14:36 | 
        (9) Сейчас у меня документ "Ведомость на счета" создается, но табличная часть не заполняется. Заполнить я ее пытаюсь типовыми процедурами и функциями, например использую типовую процедуру ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма). Но отладчик заходи в ЕСЛИ (т.е. условие выполняется), а вот в саму процедуру не заходит! Ниже фрагмент условия из (0):
 Если Форма.Объект.Основания.Количество() > 0 Тогда ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма); //Форма.Объект.Основания.Количество() возвращает 1, но сюда не проваливается! КонецЕсли; | |||
| 11
    
        SleepyHead гуру 28.03.19✎ 14:38 | 
        (10) я писал заполнение для зуп гу, структура там такач же, все работает. Все тч заполнял сам, без использования форм 
 Структура тч очень простая, не вижу смысла утяжелять заполнение так, как вы делаете. | |||
| 12
    
        1Сергей 28.03.19✎ 14:44 | 
        "ВедомостьНаВыплатуЗарплатыКлиент" в данном контексте это что?     | |||
| 13
    
        dft2014 28.03.19✎ 15:00 | 
        ВедомостьНаВыплатуЗарплатыКлиент - это типовой общий модуль, в котором есть типовая процедура Заполнить(Форма):
 Процедура Заполнить(Форма) Экспорт ОчиститьСообщения(); Форма.ЗаполнитьНаСервере() КонецПроцедуры | |||
| 14
    
        Gucci76 28.03.19✎ 15:18 | 
        А что в параметр "форма" передается?
 Форма = ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыВБанк.ФормаОбъекта", );??? | |||
| 15
    
        dft2014 28.03.19✎ 15:50 | 
        (14) В том-то и проблема, что не проваливается в ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма)!!!     | |||
| 16
    
        dft2014 28.03.19✎ 15:55 | 
        (14) Ой, неправильно ответила в (15), сейчас посмотрю...     | |||
| 17
    
        dft2014 28.03.19✎ 16:04 | 
        (14) В отладчике в Форма =  ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыПеречислением.Форма.ФормаДокумента", Парам);  передается значение "УправляемаяФорма", тип "УправляемаяФорма".     | |||
| 18
    
        dft2014 28.03.19✎ 16:38 | 
        Вообще убрала условие, оставила только ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма); 
 В отладчике, курсор на ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма) становится, но затем сразу переходит на следующую строку! В отладчике, нажала на "Вычислить выражение", в Значении пишет: "Обращение к процедуре объекта как к функции (Заполнить)" Как так?! Ведь в общем модуле ВедомостьНаВыплатуЗарплатыКлиент, это процедура и я обращаюсь к ней как к процедуре! Ниже сама процедура: Процедура Заполнить(Форма) Экспорт ОчиститьСообщения(); Форма.ЗаполнитьНаСервере() КонецПроцедуры | |||
| 19
    
        dft2014 28.03.19✎ 18:17 | 
        Разобралась! Была нелепая ошибка: в конце строки ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма) не нужно было ставить ";". Ниже итоговый код: 
 &НаКлиенте Процедура СформироватьДокумент(Команда) Структура = ПодготовитьСписокСотрудников(); док = СформироватьДокументВедомостьНаСервере(Структура.мФизЛица,СсылкаДН); Парам = Новый Структура("Ключ", Док); Форма = ПолучитьФорму("Документ.ВедомостьНаВыплатуЗарплатыПеречислением.Форма.ФормаДокумента", Парам); Если Форма.Объект.Основания.Количество() > 0 Тогда ВедомостьНаВыплатуЗарплатыКлиент.Заполнить(Форма) // вот здесь надо было убрать ; КонецЕсли; КонецПроцедуры | |||
| 20
    
        catena 29.03.19✎ 05:04 | 
        (19)Это какая платформа так забавно трактует синтаксис?     | |||
| 21
    
        1Сергей 29.03.19✎ 09:46 | 
        (19) о_О     | |||
| 22
    
        dft2014 29.03.19✎ 11:30 | 
        (20) Платформа 8.3.13.1644. Сама в шоке!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |