Имя: Пароль:
1C
1С v8
Не загружается клиент банка
,
0 gsdgdgds
 
12.05.14
12:26
Добрый день. Кто нибудь сталкивался с проблемой загрузки из клиент банка? Выдает ошибку "Неверный реквизит платежного документа, строка 65 : Код=0" Если удалить эту строчку из txt документа то нормально грузит. Как быть, каждый раз удалять из дока эти строчки или же дописать код в 1С?
1 Господин ПЖ
 
12.05.14
12:28
(0) головой подумать - не предлагать?
2 ИС-2
 
naïve
12.05.14
12:32
(0) обнови конфигурацию или возьми из последнего релиза
3 Godofsin
 
12.05.14
12:32
(0) Вариант 1 - обновиться
Вариант 2 - подправить обработку загрузки
4 Kookish
 
12.05.14
12:33
(0) Вариант 3 - правильно выбрать систему банк-клиента в 1С по рекомендации ТП банка.
5 Господин ПЖ
 
12.05.14
12:33
щас угадаю - все это вокруг уин...
6 Kookish
 
12.05.14
12:34
(5) Это был вариант "0" в (2).
7 gsdgdgds
 
12.05.14
12:43
(3) Обновились, нет разницы. А подправить обработку загрузки. Она не игнорит стоку с тегом "код" Она ее проверяет на логическое выражение. Я не знаю как ее игнорировать.

Если Импорт_Загружаемые[Тег] = Истина Тогда
СтрокаДокумента[Тег] = Значение;
Иначе
Сообщить("Неверный реквизит платежного документа, строка " + (Импорт_ТекущаяСтрока - 1) + " : " + СтрокаРазбора);
Возврат Ложь;

Можете подсказать как поправить обработку?
8 Масянька
 
12.05.14
12:45
(7) Что в строке, на которую ругается?
9 gsdgdgds
 
12.05.14
12:47
"Код=0" - это строка в документа. Неверный реквизит платежного документа
10 gsdgdgds
 
12.05.14
12:47
значение в тег "Код"
11 Godofsin
 
12.05.14
12:50
(9) (10) Какие мысли есть по этому поводу? Может что-нибудь на что-нибудть проверять и игнорировать в случае выполнения какого-нибудь условия?
12 gsdgdgds
 
12.05.14
12:51
Перем Импорт_Загружаемые;
13 gsdgdgds
 
12.05.14
12:53
Проверить тег на значение? Если оно равно значение "Код" то принимать его равным "" или переходить к следующему? Верно?
14 Godofsin
 
12.05.14
12:56
(13) Воооот!
15 Масянька
 
12.05.14
12:58
(13) Из файла, выгруженного из банк-клиента, берутся данные для создания и заполнения платежек в 1С.
В какой-то строке - либо не хватает данных, либо лишние, либо не понятны для 1С.
Так посмотри, что в той строке, на которую ругается.
16 Godofsin
 
12.05.14
12:58
(13) А вообще, что за конфигурация? Вариант с обновлением должен был проканать так то...
17 Kookish
 
12.05.14
12:58
(0) Сейчас они тебя научат снимать конфигурацию с поддержки да типовые менять. И покатишься по наклонной...
18 Godofsin
 
12.05.14
12:58
(13) Поправочка "Код="
19 Godofsin
 
12.05.14
12:59
(17) Обработку можно во внешние пихнуть ))))
20 Господин ПЖ
 
12.05.14
13:00
Код=0 - это вполне нормальная строчка
21 gsdgdgds
 
12.05.14
13:00
(16) БП 1.6 Не типовая допилиная на 40% Добавлен управленческий учет и изменена реализация
22 Godofsin
 
12.05.14
13:01
(21) И про какое обновление ты нам тут втирал?
23 Godofsin
 
12.05.14
13:01
(20) не для (21)
24 Kookish
 
12.05.14
13:01
(21) Обана! Вот это поворот! Обновление точно не поможет. Позовите программиста.
25 Ganiev
 
12.05.14
13:01
(0)До последнего релиза обнови и будет гуд!
26 rozer76
 
12.05.14
13:01
пробегало здесь...

Ном=1;
Пока ном<ПотокЧтения.КоличествоСтрок() Цикл
  Если СокрЛП(ПотокЧтения.ПолучитьСтроку(ном))="Код=" Тогда
  ПотокЧтения.УдалитьСтроку(ном);
     Иначе
  ном=ном+1;
  КонецЕсли;
  
  КонецЦикла;
  ПотокЧтения.Записать(Файл,Кодир);
27 Kookish
 
12.05.14
13:01
(24) И поломайте ему пальцы.
28 Ganiev
 
12.05.14
13:02
(21) ))) Хи.. а написал что обновлял!
29 Господин ПЖ
 
12.05.14
13:02
(23)  плохой клиент-банк, плохой...
30 Масянька
 
12.05.14
13:03
Вангую: в банк-клиенте учли последние изменения по ПП.
31 cons74
 
12.05.14
13:03
(21) по правилам хорошего тона такое пишется только после 100 страниц обсуждения )))
32 gsdgdgds
 
12.05.14
13:04
(21) На типовую пытался подгрузить наш фаил и клиент банка
33 Kookish
 
12.05.14
13:04
(30) А в бухгалтерии 1.6 почему-то не учли.
34 Godofsin
 
12.05.14
13:05
(32) На типовую 1.6? Красавчег.
35 Господин ПЖ
 
12.05.14
13:05
(33) она сдохла давно
36 Kookish
 
12.05.14
13:05
(35) Тссссс...
37 gsdgdgds
 
12.05.14
13:06
(32) На типовую 2.0
38 Godofsin
 
12.05.14
13:07
(37) Не верю. У меня типовая 2.0 и хавает все нормально.
39 DjSpike
 
12.05.14
13:07
Я забыл здесь разрешены ссылки на инфостарт ? Если нет то удалите http://infostart.ru/public/270170/
40 gsdgdgds
 
12.05.14
13:12
Если Импорт_Загружаемые[Тег] = Истина Тогда
В этом месте программа сравнивает тег с чем-то. Как посмотреть с чем сравнивается? что бы добавить туда еще 1 реквизит?
41 Godofsin
 
12.05.14
13:13
(40) *рукалицо
42 Godofsin
 
12.05.14
13:15
(40) Покажи текст процедуры с выводом ошибки полностью
43 Масянька
 
12.05.14
13:17
+(42) И файл от банк-клиента.
44 gsdgdgds
 
12.05.14
13:19
(41) Помоги, не издевайся.  
Перем Импорт_Загружаемые;


Если РазобратьТеговуюСтроку(СтрокаРазбора, Тег, Значение)Тогда
Если Импорт_Загружаемые[Тег] = Истина Тогда
СтрокаДокумента[Тег] = Значение;
Иначе
Сообщить("Неверный реквизит платежного документа, строка " + (Импорт_ТекущаяСтрока - 1) + " : " + СтрокаРазбора);
Возврат Ложь;
КонецЕсли;

спотыкается на месте когда сравнивать начинает тег. Он разбирает строку "Код=0" В тег попадает "код" и после "Импорт_Загружаемые[Тег] = Истина Тогда" попадает на иначе. Значит не проходит сравнение. Вывод Нужно в переменную с которой сравнивают добавить наш "код" но я не могу заглянуть в нее так как если нажать перейти к определению он перебрасывает на  "Перем Импорт_Загружаемые;"
45 gsdgdgds
 
12.05.14
13:22
Это сам фаил
1CClientBankExchange
ВерсияФормата=1.01
Кодировка=Windows
Отправитель=5NT(e) CLIENT 4.70.7
Получатель=Бухгалтерский учет, редакция 4.4
СекцияДокумент=Платежное поручение
Дата=08.05.2014
Номер=3822
Сумма=97358.67
ПлательщикСчет=4
ПолучательСчет=40
ПлательщикИНН=2317
ПлательщикРасчСчет=40702
Плательщик1=Открытое акционерное общество "Санаторий"
ПлательщикБИК=0463
ПлательщикКорсчет=301018
ПлательщикБанк1=ОАО "БАЛАКОВО-БАНК"
ПлательщикБанк2=Г БАЛАКОВО
ПолучательИНН=2320
ПолучательРасчСчет=40702
Получатель=ОАО "Сочинский мясокомбинат""
ПолучательБИК=046015602
ПолучательКорсчет=301018
ПолучательБанк1=ЮГО-ЗАПАДНЫЙ БАНК ОАО "СБЕРБАНК РОССИИ"
ПолучательБанк2=РОСТОВ-НА-ДОНУ
Очередность=5
СрокПлатежа=08.05.2014
НазначениеПлатежа=Оплата за продукты питания по с/ф, №СЧ-0042009 от 14.04.2014 , СЧ-0042776 от 26.04.2014,СЧ-0044117 от 30.04.2014Сумма 97358-67В т.ч. НДС(10%) 8850-79
ДатаСписано=08.05.2014
ПлательщикКПП=231
ПолучательКПП=232
КонецДокумента
СекцияДокумент=Платежное поручение
Дата=08.05.2014
Номер=3765
Сумма=13344.15
ПлательщикСчет=40702
ПолучательСчет=405018100
ПлательщикИНН=2317008757
ПлательщикРасчСчет=4070281
Плательщик1=Открытое акционерное общество "Санаторий"
ПлательщикБИК=046359728
ПлательщикКорсчет=3010
ПлательщикБанк1=ОАО "БАЛАКОВО-БАНК"
ПлательщикБанк2=Г БАЛАКОВО
ПолучательИНН=2309000994
ПолучательРасчСчет=40501810
Получатель=УФК по Краснодаскому краю (ФБУ "Краснодарский ЦСМ" л/с 20186X06940 )
ПолучательБИК=040349001
ПолучательБанк1=ГРКЦ ГУ БАНКА РОССИИ ПО КРАСНОДАРСКОМУ КР.
ПолучательБанк2=КРАСНОДАР
Очередность=5
СрокПлатежа=08.05.2014
НазначениеПлатежа=Доход отоказания платных услуг по сч 41600039/41 от 04.04.2014Сумма 13344-15В т.ч. НДС(18%) 2035-55
ДатаСписано=08.05.2014
СтатусСоставителя=08
ПлательщикКПП=23
ПолучательКПП=230
ПоказательКБК=00000
ОКАТО=037
ПоказательОснования=0
ПоказательПериода=0
ПоказательНомера=0
ПоказательТипа=0
Код=2
КонецДокумента
46 Godofsin
 
12.05.14
13:22
(44) Что мне кажется это не полностью процедура. Давай со слов Процедура ТакаяТо()

КонецПроцедуры
47 CepeLLlka
 
12.05.14
13:22
(44)Лол..
Ты не обновился походу..

Соответствие загружаемых формируется раньше, перед чтением строк документа

Посмотри что-нибудь такое - "СформироватьСоответствиеЗагружаемых" и увидишь там через запятую перечисляются все теги.. вот туда добавь..

Но этого будет мало..
Надо так-же добавить реквизит Код в самое ПП и добавить колонку в таблицу загружаемых. Иначе не прокатит..
48 gsdgdgds
 
12.05.14
13:24
(46)
Функция ЗагрузитьСекциюДокумента(СтрокаДокумента)
    
    СтрокаРазбора = ПолучитьСтрокуИмпорта();
    
    Пока Лев(Врег(СокрЛП(СтрокаРазбора)), 14) <> "КОНЕЦДОКУМЕНТА" Цикл
        
        Значение = "";
        Тег = "";
                                                                             
        Если РазобратьТеговуюСтроку(СтрокаРазбора, Тег, Значение) Тогда
            
            Если Импорт_Загружаемые[Тег] = Истина Тогда
                СтрокаДокумента[Тег] = Значение;
                
            Иначе
            // неправиьный реквизит заголовка
                Сообщить("Неверный реквизит платежного документа, строка " + (Импорт_ТекущаяСтрока - 1) + " : " + СтрокаРазбора);
                Возврат Ложь;
                
            КонецЕсли;
            
        Иначе
            
            // неправиьный реквизит заголовка
            Сообщить("Нарушена структура платежного документа, строка " + (Импорт_ТекущаяСтрока - 1) + " : " + СтрокаРазбора);
            Возврат Ложь;
            
        КонецЕсли;
        
        СтрокаРазбора = ПолучитьСтрокуИмпорта();
        
    КонецЦикла;
    
    Возврат Истина;
    
КонецФункции
49 Godofsin
 
12.05.14
13:25
(48)     Пока Лев(Врег(СокрЛП(СтрокаРазбора)), 14) <> "КОНЕЦДОКУМЕНТА" Цикл
        Если Найти(СтрокаРазбора,"Код=")<>0 тогда
            СтрокаРазбора = ПолучитьСтрокуИмпорта();
            Продолжить;
        КонецЕсли;
50 gsdgdgds
 
12.05.14
13:29
(49) Она самая
51 Godofsin
 
12.05.14
13:31
(50) Что "она самая"? я за тебя допилил
52 Godofsin
 
12.05.14
13:31
с тебя 500 руб.
53 gsdgdgds
 
12.05.14
13:33
(51) В какое место ее пихать?))
54 CepeLLlka
 
12.05.14
13:34
А что УИН в базу загружать не надо?
55 Godofsin
 
12.05.14
13:35
(53) Ну чууууваааак!!! Хорош тупить!
Найди в функции эту строку:
"Пока Лев(Врег(СокрЛП(СтрокаРазбора)), 14) <> "КОНЕЦДОКУМЕНТА" Цикл", потом добавь код
56 Godofsin
 
12.05.14
13:35
(54) Я хз, надо это ТС или нет
57 Масянька
 
12.05.14
13:39
(53) Попробуй в файле банк-клиента удалить строку Код=2 и загрузить.

Код=2 // вот эту
КонецДокумента
58 Godofsin
 
12.05.14
13:40
(57) Он пробовал уже
59 gsdgdgds
 
12.05.14
13:41
(55) Я воткнул куда надо... Теперь он просто пропускает ее и вся таблица пустаюя кроме поля назначения. Я так делал уже
60 ivanov-i-i
 
12.05.14
13:42
Попробуй так:

// Загружает секцию документа
//
Функция ЗагрузитьСекциюДокумента(СтрокаДокумента)
    
    СтрокаРазбора = ПолучитьСтрокуИмпорта();
    
    Пока Лев(Врег(СокрЛП(СтрокаРазбора)), 14) <> "КОНЕЦДОКУМЕНТА" Цикл
        
        Значение = "";
        Тег = "";
        
        Если РазобратьТеговуюСтроку(СтрокаРазбора, Тег, Значение) Тогда
            
            Если Врег(Тег) <> "КОД" Тогда // Добавлено+++
            
            Если Импорт_Загружаемые[Тег] = Истина Тогда
                СтрокаДокумента[Тег] = Значение;
                
            Иначе
                // неправиьный реквизит заголовка
                Сообщить("Неверный реквизит платежного документа, строка " + (Импорт_ТекущаяСтрока - 1) + " : " + СтрокаРазбора);
                Возврат Ложь;
                
            КонецЕсли;
            
            КонецЕсли; // Добавлено+++
61 Масянька
 
12.05.14
13:45
(58) Где?
(59) В загружаемом файле удали строку, сохрани файл и пробуй загрузить в 1С.
62 gsdgdgds
 
12.05.14
13:47
(61) Это мы и так сейчас делаем что бы загружать тонну платежек.
63 gsdgdgds
 
12.05.14
13:48
(60) Нет, все равно пусто. в таблице. Я уже так делал. у меня потом вся таблица пустая. Мне так не нужно.
64 Масянька
 
12.05.14
13:48
(62) Значит - догоняйте БД до последнего релиза. В док-т ПП появились новые реквизиты, вот их и не хватает.
65 ivanov-i-i
 
12.05.14
13:50
(62) Так ты убери все, что раньше делал.
66 gsdgdgds
 
12.05.14
13:51
(64) что такое ПП скажите пожалуйста
67 Масянька
 
12.05.14
13:51
(66) Платежное поручение.
68 Godofsin
 
12.05.14
13:52
(59) Покажи, что получилось
69 Godofsin
 
12.05.14
13:52
(64) у него 1.6
70 Масянька
 
12.05.14
13:52
(66) Точно скажи, какой у тебя релиз.
71 Godofsin
 
12.05.14
13:52
+(68) У меня работает
72 Масянька
 
12.05.14
13:52
(69) Так он же говорил, что 2.0?!
73 gsdgdgds
 
12.05.14
13:52
1.6 (1.6.25.9)
74 Масянька
 
12.05.14
13:53
(73) И чего ты хочешь?!
Либо - переходить на 2.0, либо удалять строку с кодом.
75 Godofsin
 
12.05.14
13:55
(74) Да не надо ничего удалять. (49) отлично работает
76 gsdgdgds
 
12.05.14
13:56
(74) ВОт об этом я в начале спрашивал... Большенство по рекомендовала дописал. Я думал так будет легче. Я просто до этого убирал иначе и документ грузился без ошибки но при этом терял реквизиты ПП. (64)Дело в том что выгружает то нормально. Платежка соответствует стандартам. Проблема только в загрузке.
77 gsdgdgds
 
12.05.14
13:58
Может кто знает хорошо Командную строку? Я бы сделал батник и через него бы удалял циклом строки в которых есть "код=0" но к сожалению Команды для подобных манипуляция я нашел только под linux.
78 Масянька
 
12.05.14
13:59
(76) Значит - плохо дописал.
Показывай - как дописал (в каком модуле - тоже показывай).
79 gsdgdgds
 
12.05.14
14:01
sed -e 's/ "код=0"/ " "/' -i (C:\11.txt) это для linux для windows подобных команд не нашел
80 ivanov-i-i
 
12.05.14
14:02
(76) Возьми оригинал обработки, до того как ты там что-то изменял, и добавь строчки из (60). Сегодня только это делал для клиента - все прекрасно работает - ничего не теряется.
81 gsdgdgds
 
12.05.14
16:18
Up!
82 gsdgdgds
 
12.05.14
16:19
(60) http://yadi.sk/d/BlpAal1KPwiSc Вот что получается если сделать с 0 как вы сказали.
83 ivanov-i-i
 
12.05.14
17:11
А вот что получается у меня: http://yadi.sk/d/BE0DA4nBPx5UQ
Ты из (60) что добавил? Надо только строчки, где комментарий "Добавлено".
84 Масянька
 
12.05.14
17:17
(82) Слушай! Не выноси мосх!
Показывай весь код своей функции ЗагрузитьСекцию...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой