|
пополнение пластиковых карт | ☑ | ||
---|---|---|---|---|
0
3463
21.08.13
✎
08:31
|
Доброе утро!делаю выгрузку з\п из ЗУП 2.5 для пополнения пластиковых карт в формате xml.все вроде как надо сделала,выдает ошибки.на данный момент такая
{ВнешняяОбработка.ВыгрузкаЗПвВяткаБанк.МодульОбъекта(136)}: Преобразование значения к типу Число не может быть выполнено Ном = Ном + 1; хотя до этого ном я к нулю приравнивала,то есть он должен к нулю прибавлять 1. подскажите где не права Функция ПолучитьЛицевойСчет(ФизЛицо, Организация, Банк) Экспорт ЗапросНаСуществование = Новый Запрос(" |ВЫБРАТЬ | ЛицевыеСчетаРаботниковОрганизации.ФизЛицо, | ЛицевыеСчетаРаботниковОрганизации.Организация, | ЛицевыеСчетаРаботниковОрганизации.Банк, | ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета |ИЗ | РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации |ГДЕ | ЛицевыеСчетаРаботниковОрганизации.ФизЛицо = &ФизЛицо | И ЛицевыеСчетаРаботниковОрганизации.Организация = &Организация | И ЛицевыеСчетаРаботниковОрганизации.Банк = &Банк"); ЗапросНаСуществование.УстановитьПараметр("ФизЛицо", ФизЛицо); ЗапросНаСуществование.УстановитьПараметр("Организация", Организация); ЗапросНаСуществование.УстановитьПараметр("Банк", Банк); Выборка = ЗапросНаСуществование.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.НомерЛицевогоСчета; Иначе Возврат Неопределено; КонецЕсли; КонецФункции Процедура Выгрузить() Экспорт //ТЧ = Документы.ЗарплатаКВыплатеОрганизаций.НайтиПоНомеру(номер).Зарплата;//чтобы не забыть ТЧ = СсылкаНаОбъект.Зарплата; Если НомерОтправки = 0 Тогда Сообщить("Номер отправки должен быть отличен от нуля!"); Возврат; КонецЕсли; Если ТЧ.Количество() = 0 Тогда Сообщить("Табличная часть не заполнена"); Возврат; КонецЕсли; Платеж = Новый Структура; Платеж.Вставить("Дата", "00010101"); Платеж.Вставить("Организация", Справочники.Организации.ПустаяСсылка()); Платеж.Вставить("Банк", Справочники.Контрагенты.ПустаяСсылка()); Ведомости = Новый Массив; Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда ЗапросПоДок = Новый Запрос; ЗапросПоДок.Текст = "ВЫБРАТЬ | ЗарплатаКВыплатеОрганизаций.Дата КАК Дата, | ЗарплатаКВыплатеОрганизаций.Организация КАК Организация, | ЗарплатаКВыплатеОрганизаций.Банк КАК Банк |ИЗ | Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций |ГДЕ | ЗарплатаКВыплатеОрганизаций.Ссылка = &СсылкаНаОбъект"; ЗапросПоДок.УстановитьПараметр("СсылкаНаОбъект", СсылкаНаОбъект); ПеречислениеЗаработнойПлаты = ЗапросПоДок.Выполнить().Выбрать(); Если ПеречислениеЗаработнойПлаты.Следующий() Тогда ЗаполнитьЗначенияСвойств(Платеж, ПеречислениеЗаработнойПлаты); Ведомости.Добавить(СсылкаНаОбъект); КонецЕсли; КонецЕсли; Текст = Новый ТекстовыйДокумент; Текст.ДобавитьСтроку("paycrum;1;1251;59;2;80##70#;"+Формат(ВыбДата, "ДЛФ=Д")+";"+НомерОтправки+";810;;Зачисление зарплаты;"); Для каждого Ведомость ИЗ Ведомости Цикл ЗапросПоВедомости = Новый Запрос; ЗапросПоВедомости.Текст = "ВЫБРАТЬ | ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Наименование КАК Наименование, | ЗарплатаКВыплатеОрганизацийЗарплата.Сумма + ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты КАК Сумма, | ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета КАК НомерЛицевогоСчета, | ЗаявкаНаОткрытиеСчетов.РаботникиОрганизации.( | НомерЛицевогоСчета | ) |ИЗ | Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаОткрытиеСчетов КАК ЗаявкаНаОткрытиеСчетов | ПО ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета = ЗаявкаНаОткрытиеСчетов.РаботникиОрганизации.НомерЛицевогоСчета | ПО (ЛицевыеСчетаРаботниковОрганизации.ФизЛицо = ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо) | И (ЛицевыеСчетаРаботниковОрганизации.Организация = &Организация) | И (ЛицевыеСчетаРаботниковОрганизации.Банк = &Банк) |ГДЕ | ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &Ссылка | И ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета = &Банк"; ЗапросПоВедомости.УстановитьПараметр("Ссылка", Ведомость); ЗапросПоВедомости.УстановитьПараметр("Организация", Платеж.Организация); ЗапросПоВедомости.УстановитьПараметр("Банк", Платеж.Банк); ВыборкаФизЛиц = ЗапросПоВедомости.Выполнить().Выбрать(); Пока ВыборкаФизЛиц.Следующий() Цикл Ном = 0; НаборЗаписей = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.СоздатьНаборЗаписей(); Для Каждого СтрокаТЧ Из ТЧ Цикл НаборЗаписей.Отбор.Организация.Значение = СсылкаНаОбъект.Организация; НаборЗаписей.Отбор.Организация.Использование = Истина; НаборЗаписей.Отбор.Банк.Значение = СсылкаНаОбъект.Банк; НаборЗаписей.Отбор.Банк.Использование = Истина; НаборЗаписей.Отбор.ФизЛицо.Значение = СтрокаТЧ.Физлицо; НаборЗаписей.Отбор.ФизЛицо.Использование = Истина; НаборЗаписей.Отбор.НомерЛицевогоСчета.Значение = ПолучитьЛицевойСчет(ВыборкаФизЛиц.ФизЛицо, ВыборкаФизЛиц.Организация, ВыборкаФизЛиц.Банк); НаборЗаписей.Отбор.НомерЛицевогоСчета.Использование = Истина; НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество() = 0 Тогда Сообщить("Сотруднику "+СтрокаТЧ.Физлицо.Наименование+" не задан лицевой счет. Данные по нему выгружены не будут."); Продолжить; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; //НомЛиц = РегистрыСведений.ЛицевыеСчетаРаботниковОрганизации.ПолучитьФормуСписка(); //Ном.Выбрать(); Ном = Ном + 1; //ФИО = СокрЛП(СтрокаТЧ.Физлицо.Наименование); ВремСтрока = СокрЛП(СтрокаТЧ.Физлицо.Наименование); Фамилия = Сред(ВремСтрока,1,Найти(ВремСтрока," ")-1); ВремСтрока = СокрЛП(Сред(ВремСтрока,Найти(ВремСтрока," "))); Имя = Сред(ВремСтрока,1,Найти(ВремСтрока," ")-1); Отчество = СокрЛП(Сред(ВремСтрока,Найти(ВремСтрока," "))); ФИО = Фамилия+" "+Имя+" "+Отчество; //из-за лишних пробелов Текст.ДобавитьСтроку(НаборЗаписей.Получить().НомерЛицевогоСчета+";"+ФИО+";"+Формат(СтрокаТЧ.Сумма+СтрокаТЧ.КомпенсацияЗаЗадержкуЗарплаты,"ЧГ=0; ЧДЦ=2; ЧРД='.'")); //КонецЦикла; Текст.ДобавитьСтроку("summary;"+Ном+";"+Формат(ТЧ.Итог("Сумма")+ТЧ.Итог("КомпенсацияЗаЗадержкуЗарплаты"),"ЧГ=0; ЧДЦ=2; ЧРД='.'")); ПолноеИмяФайла = КаталогДляФайла+"\p"+ПрефиксОрганизации+"-"+Формат(ТЧ.Итог("Сумма")+ТЧ.Итог("КомпенсацияЗаЗадержкуЗарплаты"),"ЧГ=0; ЧДЦ=2; ЧРД='.'")+"."+ДеньГода(ВыбДата); Текст.Записать(ПолноеИмяФайла); Сообщить("Выгрузка успешно завершена. Созданный файл: "+ПолноеИмяФайла); КонецПроцедуры |
|||
1
butterbean
21.08.13
✎
08:34
|
у тебя ном = ном + 1; вызывается после циклов
|
|||
2
Rie
21.08.13
✎
08:34
|
(0) Если цикл не выполнится ни разу - то Ном будет Неопределено, а не 0.
|
|||
3
RomaH
naïve
21.08.13
✎
08:35
|
А отладка что показывает?
Пока ВыборкаФизЛиц.Следующий() Цикл Ном = 0; нахрена в цикле? ничего что условия входа в цик может не выполнятся ни разу? |
|||
4
Defender aka LINN
21.08.13
✎
08:35
|
(0) "то есть он должен" - он никому ничего не должен. А если 1С говорит, что в переменной не число - ей надо верить.
|
|||
5
zak555
21.08.13
✎
08:36
|
зачем реквизит физлицо у лиц счета ?
|
|||
6
Defender aka LINN
21.08.13
✎
08:37
|
И, кстати, как вообще связаны тема и (0)?
|
|||
7
3463
21.08.13
✎
08:38
|
далжно в xml файле отражаться номер счета и ФИО владельца счета
|
|||
8
3463
21.08.13
✎
08:39
|
в смысле как,выгрузка в формате xml для зарплатного проекта
|
|||
9
Defender aka LINN
21.08.13
✎
08:41
|
(7) Я от души поздравляю XML-файл, но как это связано с (0)?
|
|||
10
3463
21.08.13
✎
08:45
|
ну короче спасибо за советы
|
|||
11
Lama12
21.08.13
✎
08:48
|
(10) Ну вытащи из цикла Ном = 0;
:) |
|||
12
Стерва-бух
21.08.13
✎
08:48
|
(9) ну переименуй тему, чего прицепился то к девушке?
|
|||
13
3463
21.08.13
✎
08:54
|
вытащила,ошибка такая теперь
{ВнешняяОбработка.ВыгрузкаЗПвВяткаБанк.МодульОбъекта(142)}: Значение не является значением объектного типа (Физлицо) ВремСтрока = СокрЛП(СтрокаТЧ.Физлицо.Наименование); |
|||
14
butterbean
21.08.13
✎
08:59
|
(13) тебе надо наоборот, все в цикл запихнуть... плохо ты еще копипастишь
|
|||
15
3463
21.08.13
✎
09:08
|
запихнула,все равно на это же ругается..(
{ВнешняяОбработка.ВыгрузкаЗПвВяткаБанк.МодульОбъекта(142)}: Значение не является значением объектного типа (Физлицо) ВремСтрока = СокрЛП(СтрокаТЧ.Физлицо.Наименование); |
|||
16
ДенисЧ
21.08.13
✎
09:09
|
Телепатирую...
В табличной части нет реквизита ФизЛицо... |
|||
17
Стерва-бух
21.08.13
✎
09:20
|
может я чего то не понимаю...
1 вопрос: но в ЗУП вроде были выгрузки в банк готовые? 2 вопрос: в ведомости на выплату ЗП если поставить "способ выплаты" - банк и нажать "заполнить" - в ведомость попадают только те сотры, у которых заполнен лицевой счет. нифага это тогда проверять? 3. и чего вы прицепились к Ном, если строка "Ном = Ном + 1;" вообще вне всяких циклов... или я совсем ничего не помню? |
|||
18
3463
21.08.13
✎
09:27
|
выгрузка выглядеть вот так должна,сказали писать,я пишу
paycrum;1;1251;59;2;80##70#;09.09.2008;1;810;;Зачисление зарплаты; 40817810000000000001;Бабкин Геннадий Иванович;12.00 40817810000000000002;Гурчева Татьяна Михайловна;569.00 summary;2;581.00 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |