1С, Mobile Smarts ЕГАИС, выгрузка номенклатуры на ТСД
Сделал свою обработку по выгрузке одной позиции номенклатуры на ТСД по документу "Инструкция для интеграции с 1С v8"
1. Описанный в инструкции способ метод "ДобавитьВВыгрузкуТоваров" возвращает Ложь.
мДрайверТСД.ПолучитьОшибку("Описание ошибки") возвращает 1
2. выгрузка через таблицу значений.
Метод ВыгрузитьТаблицу() возвращает Истина. Поля COM объекта мДрайверТСД.loadedproducts.products.item(0) заполняются.
метод ЗавершитьВыгрузкуТоваров() возвращает Ложь . Ошибка 1
3. выгрузка через строки
все методы НачатьВыгрузку(), ВыгрузитьСтроку(), ЗавершитьВыгрузку() возвращают Истина, но ни на терминале ни в базе, указанной в строке подключения, выгружаемая позиция не появляется.
Вопросы:
1. Где можно посмотреть расшифровку кодов ошибок
2. Что я делаю не так, что ни один из методов не возволяет выгрузить номенклатуру?
Сервис поддержки клиентов работает на платформе UserEcho
С описанным в инструкции способом разобрался. в массив место строки передавалось число.
Теперь ошибок не возникает, но номенклатура никуда не выгружается.
Как Вы определили, что номенклатура не выгружается? Посмотрите через Панель управления, а также файл Cleverence.Warehouse.ProductsBook.xml в папке <папка базы Mobile Smarts>\Documents
Получить описание ошибки можно так:
Описание = "";
мДрайверТСД.ПолучитьОшибку(Описание);
Сообщить("Ошибка: " + Описание);
Перед выгрузкой происходит подключение к базе Mobile SMARTS?
Подключение и выгрузка:
ПодключитьВнешнююКомпоненту("AddIn.Cl.TerminalConnector");
мДрайверТСД= Новый ("AddIn.Cl.TerminalConnector");
СписБаз = Новый Массив;
СписБаз.Добавить(<Строка с Ид базы Mobile SMARTS>);
мДрайверТСД.Подключить(СписБаз,"");
мДанные = Новый Массив(15); // например, 15 полей
мДанные.Установить( 0, "Product.Ид" );
мДанные.Установить( 1, "Product.Marking" );
мДанные.Установить( 2, "Product.Barcode" );
....
мДанные.Установить( 14, "Packing.price" );
Если Не мДрайверТСД.НачатьВыгрузкуТоваров(мДанные) Тогда // Начинаем выгрузку установив список полей
ОписаниеОшибки = "";
мДрайверТСД.ПолучитьОшибку(ОписаниеОшибки);
...
КонецЕсли;
Для Каждого СтрокаТовара Из МассивВыгрузки Цикл
...
мДанные.Установить( 0, ИдТовара ); // Заполняем массив значениями полей
мДанные.Установить( 1, Артикул );
мДанные.Установить( 2, Код );
....
мДанные.Установить( 14, Цена );
Если Не мДрайверТСД.ДобавитьВВыгрузкуТоваров(мДанные) Тогда // Добавляем в выгрузку порцию данных
мДрайверТСД.ПолучитьОшибку(ОписаниеОшибки);
...
КонецЕсли;
КонецЦикла;
Если Не мДрайверТСД.ЗавершитьВыгрузкуТоваров() Тогда //завершаем выгрузку
мДрайверТСД.ПолучитьОшибку(ОписаниеОшибки);
...
КонецЕсли;
Определил так что ни на ТСД, ни в панели управления->Номенклатура, ни в файле Cleverence.Warehouse.ProductsBook.xml
тех данных что я выгружаю нет.
С Описанием ошибки уже тоже разобрался.
Приведенный пример кода (с доп полями для ЕГАИС) отрабатывает сейчас без ошибок.
Выгружаемые мной данные обнаружились в файле Cleverence.Warehouse.ProductsBook.xml в каталоге C:\ProgramData\Cleverence\Driver1C\Documents, тогда как строку подключения указываю для базы каталог которой "C:\ProgramData\Cleverence\Базы Mobile SMARTS\Mobile SMARTS ЕГАИС"
Зарегистрируйте терминал коннектор от Егаиса, видимо еще и батч драйвер установили.
Запустите с правами АДМИНИСТРАТОРА файл "Зарегистрировать COM.bat" из папки C:\Program Files (x86)\Cleverence Soft\Mobile SMARTS\Connectivity
Спасибо, помогло.