На рассмотрении

Неизвестная ошибка получения документа при получении документа по штрих коду

Борис Деревянко 7 лет назад обновлен Алексей (Рук. ТП) 7 лет назад 30

Добрый день!


Пытаюсь настроить автоматическую загрузку документов из 1С на ТСД. Ситуация следующая: на печатных формах документов печатаются штрих коды, в которых кодируется уникальный идентификатор. Необходимо настроить автоматический поиск и загрузку нужного документа из базы 1С при сканировании его штрих кода.
Я настроил внешнее соединение, указал путь к промежуточной конфигурации, имя обработки "ВнешниеВызовыУТ11". В модуле этой обработки написал свой код:

Функция ПолучитьДокументПоУИД(UserId, КодДокумента, ТипДокумента, Режим) Экспорт

Возврат УниверсальныеМеханизмы.ПолучитьДокументПоУИД(UserId, КодДокумента, ТипДокумента, Режим);
КонецФункции

Соответственно, в модуле "универсальныеМеханизмы" добавил следующую функцию:

Функция ПолучитьДокументПоУИД(UserId, КодДокумента, ТипДокумента, Режим) Экспорт

Документ1С = мСоединение.Документы[ТипДокумента].ПолучитьСсылку(мСоединение.NewObject("УникальныйИдентификатор",КодДокумента));
ГруппПользователя = ПолучитьГруппуПользователя(UserId);
ГруппПользователяИД = ГруппПользователя.Ид;
ДокументMobileSMARTS = ПолучитьДокументMobileSMARTS(UserId,ГруппПользователяИД,Документ1С,ТипДокумента);
Результат = мStorageConnector.ToXml(ДокументMobileSMARTS);
Возврат Результат;
КонецФункции



Однако при сканировании штрих кода документа у меня на ТСД вылетает ошибка:
"Неизвестная ошибка получения документа". Помогите, пожалуйста, разобраться, в чём причина ошибки и как её можно устранить

Добрый день,

Пришлите лог с ТСД (папка MobileSMARTS на ТСД, файл errors.log) и лог с ПК ( для Win 7/Seven/Vista C:\ProgramData\Cleverence\Logs. для Win XP С:\Documents and Settings\All Users\Application Data\Cleverence\Logs).

В панели управления соединение устанавливается? (правой кнопкой мыши на внешнем соединении запустить).

Прикрепляйте вложения на форуме, а то получается дублирование одного и того же вопроса.

исправил пользователя - и ошибка, которая показана на скрине, ушла. Но основная проблема осталась

Удалите все логи, воспроизведите ошибку и пришлите логи еще раз.

Добрый день! Хотелось бы всё-таки получить какое-то заключение о возможных причинах ошибки

Добрый день!

информация передана разработчикам, как будет информация сразу же ответим.

На рассмотрении

Отладкой самостоятельно пробовали посмотреть?

Открываем отладку, находим строку из лога

{ОбщийМодуль.УниверсальныеМеханизмы(14966)}: Значение не является значением объектного типа (Документы)


Документ1С = мСоединение.Документы[ТипДокумента].ПолучитьСсылку(мСоединение.NewObject("УникальныйИдентификатор",КодДокумента)); мСоединение не инициализировано, перед этим нужно:

Если мСоединениеНеАктивно() Тогда
Результат = ПодключитьСНастройкамиИзБазы();
Если ЗначениеЗаполнено(Результат) Тогда
Ошибка("#Ошибка выполнения операции",Результат,"ПолучитьДокументПоШтрихкоду");
Возврат Результат;
КонецЕсли;

КонецЕсли;


мСоединение - объект подключения к основной базе, если его не создать, мСоединение = Неопределено, поэтому мСоединение.Документы вызывает ошибку. Чтобы его создать и установить подключение к основной базе нужен вызов ПодключитьСНастройкамиИзБазы(), чтобы не звать каждый раз, есть проверка Если мСоединениеНеАктивно() Тогда

Точно, спасибо. Сделал, но видимо, дело не только в этом - появилась другая ошибка (скрин), и не совсем понятно, что не так с использованием "NewObject" в моей записи получения документа


КодДокумента не guid, отладчиком проверите и там нужна Попытка ... Исключение, на терминале что угодно можно отсканировать, а "это" в гуид пытаетесь превратить

Спасибо, поправил, документ находит. Смотрел отладчиком - код отрабатывает от начала и до конца. Но по завершению его выполнения на ТСД вылетает ошибка:
"Ошибка.Object reference not set to an instance of an object. Подробнее смотрите errors.log".
Файл логов с ТСД прилагаю
errors.log

в документе MS, который вы возвращаете не заполнен тип документа.

Нужно проверять как вы получаете из документа 1С документ смартса...

Хорошо, а какое значение туда нужно поместить для корректной работы (строка,ссылка на объект и т.п.)?

На рассмотрении

Передается строка с типом документа в ВыгрузитьДокумент

ДокументТСД.ИмяТипаДокумента = ОперацияТСД;

Доброго времени суток.

На всякий случай, напомню, у нас стоит Ваш драйвер WiFi ПРОФ + лицензия автоматической загрузки/выгрузки документов. Я настроил автоматическую загрузку документов ТСД по УИД (при сканировании штрих кода на печатной форме документа). И вроде всё работало, но сейчас решил проверить - отладчик даже не проваливается в написанную мной процедуру. Отладчик подключён. Подключения между ТСД и базой проверил - подключено (в том числе подключение самого ТСД к нужной базе). Скрины прилагаю. Файл логов прилагаю.

С Уважением!

Деревянко Борис



errors.log Logs (комп).rar

Спасибо, с этой проблемой и сам разобрался (просто были перебои с wi fi). Но теперь остался ещё один вопрос: при сканировании штрих кода документа документ подтягивается, но это событие сопровождается звуковым сигналом, как при возникновении ошибки. Хотелось бы понять, почему. Файл логов с ТСД прилагаю
errors.log

Добрый день,

из вашего лога:

MESSAGE: Справочник товаров пока не загружен на ТСД

Вероятно после сканирования ищется сначала товар на ТСД, выводится звук ошибки а затем находится документ. Попробуйте сменить префикс у документов.

Добрый день. Вернулся к задаче настройки автоматической загрузки/выгрузки документов на ТСД. На тестовой базе неделю назад всё работало, в рабочей базе сделал аналогично, но опри сканировании штрих кода печатной формы документа появляется окно "неизвестная ошибка". В логах на ТСД появилось следующее сообщение:

0; 1; 18.04.2017 13:39:19.348 Man: PiTECH Model: LPT82


0; 1; 18.04.2017 13:39:38.169 CurDPI = 144

0; 1; 18.04.2017 13:45:46.373 ERROR
ADDITION TEXT: GetDocumentFromServerByBarcode
MESSAGE: Серверу не удалось обработать запрос. ---> OneC_8_Connector is not initialized.
TYPE:System.Web.Services.Protocols.SoapException
SOURCE:System.Web.Services
TARGETSITE: EndInvoke
[STACK TRACE]
at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke (System.IAsyncResult asyncResult) [0x00051] in <051795d290b94b57860a4c13da5c8a94>:0
at Cleverence.Warehouse.Compact.DataStorage.Invoke (System.String methodName, System.Object[] parameters, System.Int32 timeout) [0x000e4] in <ef7ba5aebc6d4f63a7114b98d7838bad>:0
[STACK TRACE]
DATA:System.Collections.ListDictionaryInternal

HRESULT: -2146233087


errors.log

Сделал, не помогло. Логи прилагаю


errors.log

после выполнения этих действий, попытался нажать "пуск" внешнего соединения:

никаких сеансов платформы другой версии я не обнаружил. Пару дней назад мы уже выполняли этот пункт:

1) Запустите из командной строки команды: 1cv8.exe /RegServer и regsvr32 comcntr.dll из папки 1С\bin (пример расположения папки: C:\Program Files (x86)\1cv82\8.2.19.83\bin)

Видимо регистрация 1С платформы выполнена не той версии. Либо на Пк есть зависший процесс 1С версии*2170

у нас и стоит версия 2170, и регистрировали мы на эту версию

Ошибку возвращает 1С, на скриншоте это видно - существуют активные сеансы.

где? (скрин)

я только что заново выполнил описанные действия, от начала и до конца:


скрин - который вы прислали. Существуют активные сеансы. Перерегистрировать бесполезно ком объект. Пока с базой есть рабочие сеансы. На ПК должны быть завершены все процессы 1С.

сделал ещё раз, предварительно завершив все активные сеансы. Дошёл до пункта:
Перезапустите службу драйвера. Запустите Mobile Smarts, нажмите "Настройки локального сервера", выберите ваш сервер. Затем нажмите на кнопку "Остановить сервер данных", затем "Запустить сервер данных"

Сначала кнопка "остановить сервер данных" была не активна, затем стала активна, но вместе с этим появился тот самый активный сеанс предыдущей версии. После нажатия этой кнопки, данный сеанс исчез, однако при нажатии кнопки "запустить сервер данных" он снова появился

Попробуйте отключить галочку указанную на скриншоте. При запуске службы сразу идет попытка создания внешнего подключения.

Сервис поддержки клиентов работает на платформе UserEcho