|
v7: Один ПК, две базы 1С77, в одной обработка не работает. | ☑ | ||
---|---|---|---|---|
0
Lsr1
20.07.19
✎
13:46
|
Доброго времени суток. Выручайте, сломал себе мозг. Есть компьютер на нём работает 2 базы 1С77 (движок 27) разных конфигураций Мисофт. Из стандартной бухгалтерии с порталом ЭСЧФ(vat.gov.by) работает без проблем (авторизуется, проверяет наличие ЭСЧФ), из второй конфигурации (УСН+розница) только авторизуется, при запросе списка ЭСЧФ получает от сервера сообщение об ошибке. Но весь прикол в том, что используется одна и та же обработка. Привожу участок кода, на котором глючит.
//2. Устанавливает соединение с АС портала и запрашивает список поступивших счетов-фактур. АдресСервера = СокрЛП(Константа.АдресСервераОбменаЭСЧФ); Если ПустоеЗначение(АдресСервера) = 1 Тогда АдресСервера = "https://ws.vat.gov.by:...cesPort"; КонецЕсли; if EVatService.Connect(АдресСервера) = 0 then Сообщить( "Подключение успешно"); else Сообщить( "Ошибка подключения: " + EVatService.LastError); возврат; endif; //*********в коде ниже проблема******** Попытка InvList = EVatService.GetList(ПреобразоватьДату(НаДату)+"T00:00:00Z"); Исключение Сообщить(Лев("243_Не удалось получить список ЭСЧФ "+EVatService.LastError,450)); Возврат; КонецПопытки; В бухгалтерии ругательства из 243 строки нет. В УСН выдается ругательство, что файлы не найдены (типа: 404 not found) Как такое возможно? Повторяю - обработки ОДИНАКОВЫЕ! Из браузера для двух фирм vat.gov.by работает. Такое чувство, что из 1С77 в EVatService.GetList передаётся неправильная дата. Выводил, что передается (ПреобразоватьДату(НаДату)+"T00:00:00Z")- в двух базах (как и ожидалось) информация одинаковая. Если воспользоваться фирменным способом проверки с помощью файла ...eInvVat\simpleapp\vbs\receive2Dir.bat - файлы ЭСЧФ принимаются. |
|||
1
Alexor
20.07.19
✎
14:16
|
Посмотри в настройках. Дата начала и формат даты год 2 знака или 4
|
|||
2
Alexor
20.07.19
✎
14:17
|
+1 Дата начала столетия вроде так называется
|
|||
3
Lsr1
20.07.19
✎
15:06
|
Alexor, 2 знака в формате даты, начало столетия 1959. Это в проблемной базе. В работающей скорее всего так же, но утверждать не могу, так как бухгалтер пока не снимает трубку.
Но хочу повторить, что я проверял в 1С77, какой она передает параметр (ПреобразоватьДату(НаДату)+"T00:00:00Z"). В двух базах ОДИНАКОВЫЙ. Еще... ответ из техподдежки на полученное сообщение об ошибке: "Ошибка "Error 404 NOT_FOUND/HTTP ERROR: 404" говорит о некорректно указанном адресе соединения с Порталом." Понятное дело, что я первым делом проверил адрес. Опять же, если бы был неправильный адрес, не происходила бы авторизация на портале. |
|||
4
Lsr1
20.07.19
✎
15:13
|
Для предметности разговора...В двух базах передаваемый параметр выглядит так: ДатаФормата=2019-07-19T00:00:00Z, т.е.
Попытка InvList = EVatService.GetList(2019-07-19T00:00:00Z); |
|||
5
Злопчинский
20.07.19
✎
23:07
|
скорее всего то что тебе сказали - проверяй ПАРАМЕТРЫ коннета с порталом
|
|||
6
Lsr1
21.07.19
✎
02:38
|
Злопчинский, что проверять, если происходит авторизация?!!!! И выводится сообщение "Подключение успешно". Если бы этого не было, я здесь не задавал бы этот вопрос. Всё явно логичное я уже проверил. У меня идеи кончились. Теперь готов проверять даже бредовые.
|
|||
7
GreyK
21.07.19
✎
03:52
|
(6) в (0) полный текст модуля?
|
|||
8
Туц
21.07.19
✎
09:51
|
(0) Конфигурации разные!!! Обработка может вызывать процедуры глобального модуля.
|
|||
9
Консультант Баранов
21.07.19
✎
10:22
|
Добавить строчку Сообщить и посмотреть.
Попытка Сообщить("х"+Строка(НаДату)+" "+Строка(ПреобразоватьДату(НаДату)) ); InvList = EVatService.GetList(ПреобразоватьДату(НаДату) |
|||
10
Lsr1
21.07.19
✎
10:46
|
GreyK, "полный текст модуля?". Нет конечно. Но это именно тот код, где одна конфигурация работает, а вторая спотыкается. Мне не трудно выложить и полный код, но зачем? Здесь же ярко видно, что запрашивается всего лишь список ЭСЧФ до указанной даты. По крайне мере так в рабочей происходит.
Туц, я не зря приложил код. Посмотрите. Нет никаких других вызовов, кроме тех, что в коде!!! Консультант Баранов, мне Ваша идея нравится. Прямо сейчас могу сделать только: Попытка Сообщить("х"+Строка(НаДату)+" "+Строка(ПреобразоватьДату(НаДату)) ); Результат: х20.07.19 2019-07-20 Я понимаю, что это надо сделать на двух базах, но сейчас бухгалтер недоступен. Как только свяжусь отпишусь. |
|||
11
Lsr1
21.07.19
✎
10:55
|
Бух откликнулась, через пол часика отпишусь по двум базам.
|
|||
12
Lsr1
21.07.19
✎
13:31
|
Ответ-ругательство сервера выглядит так(да, с несколькими строками с пробелами):
Ответ сервера: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <title>Error 404 NOT_FOUND</title> </head> <body> <h2>HTTP ERROR: 404</h2> <p>Problem accessing /Invoices/InvoicesPort. Reason: <pre> NOT_FOUND</pre></p> <hr /><i><small>Powered by Jetty://</small></i> Строку немного изменил: Сообщить("х="+Строка(НаДату)+"*"+Строка(ПреобразоватьДату(НаДату)) ); результат в двух базах одинаковый: х=01.04.19*2019-04-01 х=01.04.19*2019-04-01 |
|||
13
hhhh
21.07.19
✎
13:57
|
(12) а точно разные логины используете для двух этих фирм? Может вы под одним логином заходите?
|
|||
14
Консультант Баранов
21.07.19
✎
14:01
|
А если вот так:
InvList = EVatService.GetList(СокрЛП(Строка(ПреобразоватьДату(НаДату))+"T00:00:00Z"); Исключение Сообщить(""+ОписаниеОшибки()); Сообщить(Лев("243_Не удалось получить список ЭСЧФ "+EVatService.LastError,450)); Возврат; КонецПопытки; |
|||
15
Alexor
21.07.19
✎
14:02
|
EVatService - как инициализируется?
Может какая dll запускается, а она в базе размещена. Скопируй рабочую базу, попробуй подключиться, если успешно, то из другой базы сделай выгрузку в dat и загрузи в эту копию, и пробуй. |
|||
16
Lsr1
21.07.19
✎
14:08
|
Еще. Проверил вид даты в настройках. В двух базах 2 цифры. Начало столетия 1959год.
Для исключения "чертовского места" сохранил из конфигуратора две базы и залил их друг в друга, перекрестно, так сказать. Результат тот же - ИП не работает, вторая работает. Создал в базе ИП Пользователя (раньше не было) с правами администратора. Результат тот же - сообщение об ошибке. Проверил на разных датах, а не только с даты 1-й ЭСЧФ. Результат тот же - сообщение об ошибке. hhhh, логины разные.Точно. Кроме того, в этом коде логин не отслеживается. Сервер определяет пользователя по ключу. Так вот, я из 1С ИП логинился ключом другого пользователя. РАБОТАЕТ!!! Т.е. казалось бы проблема в ключе. Так вот фиг. 1) При подключении на портал с этим ключом из браузера всё работает. 2) И при подключении при помощи bat-файла eInvVat\simpleapp\vbs\receive2Dir.bat тоже работает! На основании этих двух фактов техподдержка говорит мне, что проблемы на моей стороне. Я думаю, что это не так. Но доказательств у меня нет! |
|||
17
Lsr1
21.07.19
✎
15:00
|
Мне стыдно!!!! Смотрю в код - вижу фигу.
Решение. В коде указан правильный адрес, если он не забит в константе. А в константе указан чуть-чуть неправильный, ведущий на портал, только на тестовый. поэтому авторизация и происходила. Итак, в коде АдресСервера = "https://ws.vat.gov.by:443/InvoicesWS/services/InvoicesPort"; в константе https://ws.vat.gov.by:443/Invoices/InvoicesPort Разница в этом: WS/services/ Ни в коем случае не снимаю с себя ответственности за свою невнимательность, но очевидно и другое, что техподдержка должна была догадаться и подсказать, что коль проходит авторизация, но далее не работает, значит я залогинился на тестовый адрес. Кроме того, этот случай выявил еще явный косяк службы поддержки. Приведенный в первом посте код фактически взят из их мануала "Процедуры ЭСФЧ для 1с8(+1с7).docx", скаченного 18.07.2019 по указанной ими ссылки http://vat.gov.by/mainPage/xml/ Так вот в нем используется конструкция, которая не предполагает получение сообщения более 499 символов. Сообщить(EVatService.LastError); Тем не менее их сервер генерирует сообщения длинее. Для нас, программистов, это хорошо. Пользователи будут обращаться. Но не люблю зарабатывать деньги на чужом несчастье. Всем откликнувшимся огромное СПАСИБО !!!! И успехов! |
|||
18
Злопчинский
21.07.19
✎
18:47
|
(17) главное, что тебе следует вынести (но вынес ты совсем мало, в недостаточеном количестве) - в свою непогрешимость - верит не надо. тебе и раньше в самом начале и я в (5) проблему казали. но ты наплевал, типа - я тут ближе к проблеме и лучше вас знаю в чем проблема.
основное, чему ты должен научиться пр расследовании проблемы - уметь отключаться от самого ctmz и смотреть на свое произведение - как на чужое. |
|||
19
Lsr1
21.07.19
✎
21:12
|
Злопчинский, не злопыхайте! Нравоучения, пожалуйста, своим детям и жене. А "проверяй ПАРАМЕТРЫ коннета с порталом", так это из серии "Будьте здоровы и богаты". Как только появился новый контекст, что есть еще и ТЕСТОВЫЙ портал, взгляд на проблему стал совсем другим и проблема решилась очень быстро. Вот если бы Вы написали "сравни адрес в коде и адрес в константе" - это решение. Так что уважаемый господь бог Злопчинский, решение предложили НЕ Вы и не надо надевать себе лавры.
Но тем не менее я БЛАГОДАРЕН и Вам и другим участникам, откликнувшихся на мою проблему!!! Главное - желание помочь. Кстати, Злопчинский, Гераклу не засчитали один подвиг, потому что он потребовал за него деньги. |
|||
20
Злопчинский
21.07.19
✎
23:41
|
(19) Я лавровый венок ношу с удовольствием, мне он не жмет.
"Вот если бы Вы написали "сравни адрес в коде и адрес в константе" - это решение." - ну, я могу еще и свечку подержать или пожевать и отрыгнуть если самому жевать влом... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |