Cordelia @ 12.10.21, 9:07
, Доброго дня. Може запізно і проблема вирішилася, але вставлю свої 17 копійок.
Я так розумію, що ви проводите ініціювання послідовного порту один раз?
Як показала багаторічна практика 54 апарати полюбляють, щоб їм постійно нагадували про те, до якого порту вони підключені. Окрім того, можливо, що КА не знає, куди записати файл.
Тому, я б вчинив наступним чином: 1. Повідомив би ЕККА, куди писати файл (точніше OLE-серверу): 1.1. Підключаю порт: "open_port;3;115200;" 1.2. Налаштовую каталог: "set_dir;D:\OLE\Exemple;" 1.3. Закриваю порт: "close_port;" 2. Виконав би звіт: 2.1. Відкриваю порт 2.2. Виконую звіт: "get_report;0;" 2.3. Закриваю порт;
По Вашому коду я бачу, що ви у обов’язковому порядку при ініціалізації порту проводите реєстрацію касира. Не знаю, наскільки це виправдано для кожного випадку зверенення до порту. Наприклад при внесенні товарної позиції до чека це не обов’язково. А от при оплаті - так. Можливо цей звіт не вимагає реєстрації касира. Я сам не користуюся get_report (немає необхідності).
І ще одне. Якщо КА перепрошитий на 5401F3, то йому потрібно поставити останній драйвер (там є зміни, які OLE-сервер попередніх версій не розуміє). Якщо не перепрошитий - ситуація дзеркально подібна, тож оновлювати драйвер не потрібно, або, якщо це відбулося - поставити попередню версію.
Объем данных, получаемых мобильным устройством с адреса http://hostname/basename/ws/wsExchange.1cws?wsdl, приближался к 4 мегабайтам. Обмен одной записью справочника в локальной стомегабитной сетке занимал более 20 секунд. Эксперименты показали, что почти 100% времени занимает генерация и получение информации о конфигурации. А сам обмен просто "летает". (WS-ссылка тоже не особо помогла, поэтому я от неё отказался. Да и, ИМХО, динамика лучше).
Меня это не устраивало, поскольку среди этих данных передавалась совершенно не нужная для мобильного устройства информация о конфигурации УПП.
Как заправский хирург, хотел было "резать хвост кота по кусочкам", чтобы понять, что же можно из этих пакетов отбросить. Но вздохнул и удалил все. То есть полностью все пакеты XDTO. И попробовал сделать обмен. Обмен заработал. Скорость (субъективно) - около пары секунд.
Немножко уточнений. Объекты разрабатываемой подсистемы в УПП пока что полностью идентичны соответствующим объектам мобильной конфигурации. В перспективе объекты подсистемы в УПП будут иметь немного больше полей, чем мобильная конфигурация, поэтому обмен буду строить с учетом этого.
Вопрос собственно такой: Если обмен между различными конфигурациями работает без заполнения параметра "Пакеты XDTO" в веб-сервисе, то насколько их заполнение обязательно и, если да, то какие из них совершенно необходимы?
PS Курил куроводства с ИТС, мисты, инфостарта, здеся и прочего интернету, но по этой теме везде что-то навроде: "возьмите полъ фунта соловьиныхъ язычковъ и золотникъ брилліантовой пыли". А зачем?.. не говорят. Просто "возьмите". Хотелось бы понять.
По-этому я и спрашиваю какой из клонов медовой стыковки у медка и если в дальнейшем нужно платить дважды за две разные стыковки, но пользоваться одной из них, то надо определяться что нужнее: эта, с дополнительным функционалом и обменом с другими системами отчетности или только медка.
Кожен має вирішити сам. Мій головбух, наприклад, вирішила, що ми оплатимо модуль "Інтеграція", а стиковкою будемо користуватися цією. Звичною. "Пухнастою". Тим більше, що зворотній зв’язок від шановного Inkognito не йде ні в яке порівняння з "морозом" від медка.
uanr81 @ Вчера, 20:21
, Вот такой подход дал результат:
Цитата(uanr81 @ 22.03.18, 20:21)
Функция ПодключениеКВебСервису(ПараметрДляОтправкиНаСервер) Экспорт //Сервер авторизации ВСОпределение = Новый WSОпределения("http://192.168.1.2/DemoUT10/ws/DataTransfer.1cws?wsdl","Fedorov"); ВСервис = ВСОпределение.Сервисы.Получить("DataTransfer","DataTransfer"); ВТочкаВхода = ВСервис.ТочкиПодключения.Получить("DataTransferSoap"); ВОперация = ВТочкаВхода.Интерфейс.Операции.Получить("Registration");
ВСПрокси = Новый WSПрокси(ВСОпределение, "DataTransfer","DataTransfer","DataTransferSoap"); ВСПрокси.Пользователь = "Fedorov"; Тест = Новый Структура; Тест.Вставить("Стр","Строка"); Ответ = ВСПрокси.Registration(СериализаторXDTO.ЗаписатьXDTO(ПараметрДляОтправкиНаСервер)); Возврат СериализаторXDTO.ПрочитатьXDTO(Ответ); КонецФункции
Единственное, что добавил - пароль юзера.
Кстати, первоначально попробовал тестовую функцию. И когда она заработала, понял, что я что-то не понимаю в «WSОпределения» и «WSПрокси» Надо больше курить ретелатуры
Уроки Кухара глядел. Уроки от 1С - перечитал/просмотрел. И теперь не пойму, то ли тупой, то ли карму полировать надо.
UPD. Грешил на проброс апачевским прокси (с адреса 192.168.0.8, где у меня линуховый интернет-сервер, перекидаю на 192.168.0.128, где 1С обосновалась на винде с веб-серваком), но попытал счастья без пробросов, на голых айпишниках - та же петрушка.
Bernet @ Сегодня, 14:45
, Да суть в том, что я уже и в 1С прописал юзера с максимальными правами, и на серваке точно такого же админа создал... но ошибка первого типа все едино выходит.
Может в мобильном платформе трабл? Основную конфу пишу на 8.3.10.2252 Мобильная 8.3.10.51
Приветствую Нужна небольшая помощь, потому что мозги сломал уже. Либо я что-то не понимаю, либо упускаю, либо проблема столь проста, что гуру нигде в куроводствах про её решение не упоминают.
Преамбула: Пишу небольшое приложение на управляемых, которое должно работать также и на андроидовых мобильниках. Для публикации в сети приходится пользоваться IIS 7.5, установленном на Win 2008 R2
По всяким руководствам настроил веб-сервер, сделал публикацию базы. Взлетает и на тонких (через хттп) и в браузерах. Локалка/интернет - работает без разницы. Нафеячил мобильное приложение. Оно на мобилу установилось, фунциклирует как надо, свою базу ведет, блымает и переливаецца. Амбула, блин : Не могу настроить обмен. По всякому уже строил, сервак сносил/ставил раз пять (виртуальный). Но нифига. Одна и та же ошибка, что бы я на серваке не конфигурил. Точнее - две. Если я в модуле общей команды Обмен пишу
Определения = Новый WSОпределения("http://ip-address.local/zak2/ws/ws1.1cws?wsdl", "username", "userpass");
то приложение на мобиле выводит такую ругань: Ругань
{ОбщаяКоманда.Обмен.МодульКоманды(41)}: Помилка при виклику методу контексту (ВыполнитьОбмен) через: Під час виклику веб-сервісу відбулася помилка. Помилка виклику операції сервісу: {http://localhost/ws1}:WebОбмен:ВыполнитьОбмен() через: Під час виклику веб-сервісу відбулася помилка. Аутентифікація користувача не виконана.
Ошибка сервера в приложении "ip-address.local/ZAK2" Internet Information Services 7.5
Описание ошибки: Ошибка HTTP 401.5 - Unauthorized По URL-адресу, куда надо попасть, установлено приложение ISAPI или CGI, выполняющее проверку учетных данных пользователя до начала обработки данных. Данное приложение не может проверить ваши учетные данные.
Наиболее вероятные причины: Специальное расширение ISAPI, приложение CGI, страница ASP или обработчик заблокировали запрос с ошибкой "Доступ запрещен".
Что можно предпринять: Обратитесь к поставщику расширения ISAPI, приложения CGI, страницы ASP или обработчика, блокирующего запрос. Создайте правило трассировки, чтобы отслеживать невыполненные запросы для этого кода состояния HTTP. Чтобы получить дополнительные сведения о создании правила трассировки для невыполненных запросов, щелкните здесь.
Ссылки и дополнительные сведения... URL-адрес, куда надо попасть, представляет собой страницу ASP или подключен к расширению ISAPI, приложению CGI либо к специализированному обработчику. Специальное расширение ISAPI, приложение CGI, страница ASP или обработчик отказали в выполнении запроса, возвратив ошибку "Доступ запрещен". Дополнительные сведения...» Статьи базы знаний Microsoft Knowledge Base: 907273
через: Аутентифікація користувача не виконана.
А вот если я в модуле общей команды Обмен уберу имя и пароль
Определения = Новый WSОпределения("http://ip-address.local/zak2/ws/ws1.1cws?wsdl");
{ОбщаяКоманда.Обмен.МодульКоманды(12)}: Помилка при виклику конструктора (WSОпределения) через: Аутентифікація користувача не виконана. URL сервісу: http://192.168.0.128/zak2/ws/ws1.1cws?wsdl
Т.е. я так понимаю, что первый вариант, с логином и паролем - вернее. Но что строить в этом копанном IIS - я уже не понимаю. Все права есть, опубликованная база работает. Приложение на мобилу грузится и выполняется. Чё ему надо для обмена - неферштейн.
кст. Апач - вещь хорошая, но в данном случае не катит.
&НаСервере Процедура ОбработкаКомандыСервер() Адрес = "http://192.168.0.128/zak2/ws/ws1.1cws?wsdl"; Определения = Новый WSОпределения(Адрес, "zvn", "4369040"); УРИ = "http://localhost/ws1"; Прокси = Новый WSПрокси(Определения, УРИ, "WebОбмен", "WebОбменSoap");
СисИнфо = Новый СистемнаяИнформация; КодМобильногоКомпьютера = Строка(СисИнфо.ИдентификаторКлиента);
// инитим
Узел = ПланыОбмена.Мобильные.ЭтотУзел(); Если НЕ ЗначениеЗаполнено(Узел.Код) ИЛИ Узел.Код <> КодМобильногоКомпьютера Тогда ОбъектУзла = Узел.ПолучитьОбъект(); ОбъектУзла.Код = КодМобильногоКомпьютера; ОбъектУзла.Наименование = КодМобильногоКомпьютера; ОбъектУзла.Записать(); КонецЕсли;
ЦентральныйУзелОбмена = ПланыОбмена.Мобильные.НайтиПоКоду("001"); Если ЦентральныйУзелОбмена.Пустая() Тогда НовыйУзел = ПланыОбмена.Мобильные.СоздатьУзел(); НовыйУзел.Код = "001"; НовыйУзел.Наименование = "Центральный"; НовыйУзел.Записать(); ЦентральныйУзелОбмена = НовыйУзел.Ссылка; КонецЕсли;
// обмен ДанныеОбмена = Прокси.ВыполнитьОбмен(КодМобильногоКомпьютера, СформироватьПакетОбмена(ЦентральныйУзелОбмена));
//обработка ЧтениеХМЛ = Новый ЧтениеXML; ЧтениеХМЛ.УстановитьСтроку(ДанныеОбмена.Получить()); ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого); НачатьТранзакцию(); Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл Данные = ПрочитатьXML(ЧтениеХМЛ); Если НЕ Данные = Неопределено Тогда Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; Данные.ОбменДанными.Загрузка = Истина; Данные.Записать(); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); ЧтениеСообщения.ЗакончитьЧтение(); ЧтениеХМЛ.Закрыть();
КонецПроцедуры
Функция СформироватьПакетОбмена(УзелОбмена) Экспорт ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data"); ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения); Пока ВыборкаИзменений.Следующий() Цикл Данные = ВыборкаИзменений.Получить(); ЗаписатьXML(ЗаписьXML, Данные);// Записываем данные в сообщение КонецЦикла; ЗаписьСообщения.ЗакончитьЗапись(); Возврат Новый ХранилищеЗначения(ЗаписьXML.Закрыть(), Новый СжатиеДанных(9)); КонецФункции
Petre @ Сегодня, 13:45
, Факт этот мне известен. Вопрос в том, КТО не видит ключи? И как это всё дело проверить. Нужно ли мне "имплантировать" ключи на убунтовый сервак, или достаточно будет как-то что-то донастроить?
Ситуация такова: есть убунту-сервер, на котором постгри, 1с сервак, это всё дело х64. Пользователи с 1С работают через сервер терминалов (Win2008, который связан с убунтовым через сеть 192.168.202.ххх), также можно подключаться к убунтувому серверу через сеть 192.168.0.ххх (сделано для тонких клиентов). Веб- не используется. Ключи физические (УПП и серверный). на 20 рабочих мест. 32 разрядные. Из-за этой разрядности установлены на виртуальную машинку (192.168.0.5), которая занимается их раздачей. (Не захотел возиться с раздаванием с убунты). Настройки nethasp.ini в виндовых машинах сделаны. 1С не ломалась, но запускается. Значит ключи видит. Настройки /opt/1C/v8.3/x86_64/conf/nethasp.ini - тоже сделаны. При разных вариантах подключения все соединения работают и отображаются в соответствующей оснастке:
Проблема в том, что я не могу запустить больше 12 сеансов одновременно.
Пока что было некритично, но в очень близкой перспективе расширение количества рабочих мест, и хотелось бы иметь доступными все мои лицензии.
Прошу совета, бо франч говорит, что надо купить 64 разрядный ключик. А оно чутка дорого. В принципе, я согласен и "лопатой ударить", главное чтобы оно работало. Т.б., что ключи у меня есть.
ПиСи Я трохи не розумію, для чого цьому контрагенту треба створювати новий договір, якщо у нього, як у постачальника, договір уже є, та ще й призначений основним.
Обычно такая ошибка выскакивает, если проблема с Интернетом. Не может проверить дату лицензии. Загляните на закладку "Лицензирование" в настройках - и посмотрите дату окончания лицензии. При отсутствии обычно такая ошибка выскакивает.
На 54 же версии всё есть Лицензия кузява до 08 апреля 2017
Маєм помилку: {ВнешняяОбработка.MEDOC_1С8.МодульОбъекта(4075)}: Преобразование значения к типу Число не может быть выполнено ;goto ~80;~80:;~81:b__=-1;~82:b__=0;goto ~84;~83:b=дата(___a_,_a___,__a__);goto ~85;~84:b=дата(___a_,_a___,__a__)
Помилка проявляється при запуску обробки. При цьому: - не важливо чи медок вже запущений, чи ще ні; - не важливо проводиться запуск обробки як окремого файлу, чи у виді завантаженої до БД.
Опис системи: Конфігурація: Управление производственным предприятием для Украины 1.3.47.2 Движок: 8.3.6.2299 Сервер 1С: Ubuntu 14.4.5, 16 ГБ ОЗУ, 2ТБ RAID1 (2 дзеркальних диски), PostgreSQL 9.4.2-1.1C Сервер застосунків/термінальний: Windows Server 2008 R2, 16 ГБ ОЗУ, запущений як віртуальна машина у Windows HyperV сервер. Медок: мережева версія, 139-а, запускається як проста програма (не станція). Сеанси відкриваються у стандартному RDP-терміналі.
Насчет архива. Если будем выкладывать в 2х вариантах, будет нормально?
Это будет обалденно!
Кстати, пожелание. Главбух сегодня немного напугалась, когда 51 бета перед запуском проверила, есть ли новая версия и вывела окошко о том, что новая версия есть. Она не поняла, ЧТО именно должно обновиться, т.к. ни в заголовке окошка, ни в тексте не было информации, КТО это сказал. Информация о том, что есть обновление, какие изменения внесены - была понятной, но к чему это обновление - непонятно. Тем более, что я всех настращал вирусом, о котором везде предупреждает 1С (который "изменился БИК банка").
И, таки непонятно, что это за версия, о которой предупреждает 51-beta??? Это вторая бета или как? Ставить можно?
Ошибка: Налоговая накладная ИП-00000000000678 от 01.06.2016 11:10:00. Ошибка: Значение не является значением объектного типа (дата) Конф: УПП 1.3.46.1 Движок: 1С:Предприятие 8.3 (8.3.6.2299)
Ошибка при выгрузке налоговой накладной в Медок. Прочие НН, заполненные точно так же - выгружаются.
Я так розумію, що помилки API, якими розродилися медкісти в124 та 125 оновленнях, в цьому випуску стиковки враховані? Бо я щось побоююсь після їхніх "багдейтів" оновлювати систему здачі звітності.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!