vovksextra Posted November 30, 2007 Posted November 30, 2007 Перечитал тему по поводу связки билинга с 1С и не придумал ничего лучшего чем написать компоненту под 1С выкладываю пробную версию компоненты и внешнюю обработку (1С77) с примером использования. Документацию и файлик с расширением als выложу когда сделаю )) версия 1.0.0.5 Берем здесь версия 2.0.1.6 (с исходниками) Берем здесь Для желающих оказать материальную поддержку в WMZ: Z339491627945 Для разбора XML структуры были использованы классы (На мой взгляд самые лучшие) реализованные в модуле GsvXml.pas - размер всего 62к (релизация DOM и SAX парсера) Автор Гурин Сергей Сайт автора http://gurin.tomsknet.ru/delphixml.htm В общем обсуждаем здесь PS Отдельное спасибо коллективу сети http://komservice.net/ за оказанную поддержку и моральную и техническую.
egor2fsys Posted November 30, 2007 Posted November 30, 2007 К сожалению не работает. Ошибка: Сервер сообщает об ошибке: Recv data answer error! Сервер стг - последний. Замечания по самой обработке для 1С: 1) А если логин больше 8 символов ? а если пароль больше 10 символов ? 2) вот здесь Стг.УстановитьПараметрыПодключения ..... лучше применять СокрЛП() для параметров или компонента сама уберет лидирующие и конечные пробелы ? 3) зачем выключена возможность сохранения значений в форме и панель инструментов ?
vovksextra Posted November 30, 2007 Author Posted November 30, 2007 stg-2.402.9.7 + 7.70.025 - проверялось - работает за основу были взяты исходники конфигуратора 1.88.9 1. Проверку на длину строк не делал - незачем - бага всеравно не будет - в сокет передается только то что нужно.Вырезка из кода: var loginZ: array[0..ADM_LOGIN_LEN - 1] of char; ............ ............ begin ......... ......... fillchar(loginZ, ADM_LOGIN_LEN, #0); strncpy(loginZ, login, ADM_LOGIN_LEN); 2. Я использую Trim внутри 3. По-поводу сохранений - включи - я переделывал из другой обработки.)) Это всего лишь наброска сделанная за 5 минут )) Насчет нового сервера - отпиши мне какой конфигуратор используешь я сравню изменения Судя по ошибке - у тебя прошли проверки на заголовок,логин,пароль и даже данные отправил, только вот получить не удалось - нужно смотреть - я поссмотрю в чем может быть проблема И опиши когда ошибка возникает при загрузке таблицы пользователей или при попытке деньги добавить
vovksextra Posted November 30, 2007 Author Posted November 30, 2007 Вдогонку вроде бы нашел свой баг. При получении данных из сокета неправильно определял когда закончить прием. Подправил - забери из шапки обновленную версию (1.0.0.2) - проверь спасибо
vovksextra Posted December 1, 2007 Author Posted December 1, 2007 Вдогонку обновил 1.0.0.3 - эта точно должна работать
egor2fsys Posted December 1, 2007 Posted December 1, 2007 Все равно таже ошибка Ошибка возникает при нажатии загрузить, т.е. вот здесь: Результат=Стг.ПолучитьТаблицуПользователей(); Сервер - последний от 12 октября, конфигуратор 1.88.9
vovksextra Posted December 1, 2007 Author Posted December 1, 2007 хм... Скажи полную версию сервера, я проверю. У мну все работает... проверь версию файла (свойства файла) - должно быть 1,0,0,3 и в какой платформе подключаешь? Если на 8-ке попробуй на 7-ке?
egor2fsys Posted December 1, 2007 Posted December 1, 2007 Версия файла 1.0.0.3. В платформе 7.7 проверяю (в 8 режим идентичности реализован для компонент написанных для 7, так что особой разницы нет). Сервер - еще раз повторяюсь - последний, от 10 октября сего года (http://local.com.ua/forum/index.php?showtopic=9757). Стандартный конфигуратор нормально работает.
vovksextra Posted December 1, 2007 Author Posted December 1, 2007 по-поводу внешних компонент на 7ку и 8ку - я сам знаю )) В следующий раз подправлять не нужно )) 1С - основная моя работа - все остальное хобби )) Проблема где-то здесь то-есть код не видит признак окончания строки и еще раз пытается получить данные из сокета, которыых уже нет ((( По-этому и выдается такое сообщение как у тебя (RECV_DATA_ANSWER_ERROR) где глюк не вижу- может тебе что-то на ум прийдет. У меня все работает .х-з куда рыть дальше function TNetTransact.RxDataAnswer: Integer; var n: Integer; ret: Integer; bufferS: TCryptBuff; buffer: TCryptBuff; j: Integer; Len: Integer; Flag: Boolean; begin n := 0; FStream.Clear; EnDecryptInit(password, strlen(password)); Flag := True; while Flag do begin ret := winsock.recv(outerSocket, bufferS[n], 1, 0); if ret <= 0 then begin winsock.closesocket(outerSocket); strcpy(errorMsg, RECV_DATA_ANSWER_ERROR); result := st_recv_fail; exit; end; inc(n); if n = 8 then begin n := 0; len := 8; Decrypt(@buffer, bufferS); for j := 0 to 7 do if buffer[j] = #0 then begin len := j; flag := False; end; if Len <> 0 then FStream.Write(buffer, len); end; end; FStream.Position := 0; result := st_ok; end;
egor2fsys Posted December 1, 2007 Posted December 1, 2007 В дельфях не силен, силен только в 1С как и ты, поэтому сказать что-то не могу. Тем более у тебя работает все ок. Попробую с другого компа.
vovksextra Posted December 1, 2007 Author Posted December 1, 2007 Не там искал - баг нашелся чуток раньше Забери 1,0,0,4 и пробуй еще раз )) спасибо
egor2fsys Posted December 1, 2007 Posted December 1, 2007 Спасибо, теперь заработало. Почему сделана возможность пополнять только на 1 грн ? Компонента платная ?
vovksextra Posted December 1, 2007 Author Posted December 1, 2007 Еще не определились что с ней делать. Просто идея возникла спонтанно и компонента была написана за 3 дня и выложена как бетка. Но навсякий случай сделали ограничение. И еще если у тебя есть время сделаешь als файлик? strSetParamsOfConnection = 'SetParamsOfConnection,УстановитьПараметрыПодключения,ВстановитиПараметриПідключення'; strGetTableUsers = 'GetTableUsers,ПолучитьТаблицуПользователей,ОтриматиТаблицюКористувачів'; strGetUserCash = 'GetUserCash,ПолучитьОстатокПользователя,ОтриматиЗалишокКористувача'; strGetUserName = 'GetUserName,ПолучитьИмяПользователя,ОтриматиІмяКористувача'; strGetUserAddress = 'GetUserAdress,ПолучитьАдресПользователя,ОтриматиАдресуКористувача'; strGetUserTariff = 'GetUserTariff,ПолучитьТарифныйПланПользователя,ОтриматиТарифнийПланКористувача'; strGetUserIp = 'GetUserIp,ПолучитьИППользователя,ОтриматиИПКористувача'; strGetUserPhone = 'GetUserPhone,ПолучитьНомерТелефонаПользователя,,ОтриматиНомерТелефонуКористувача'; strAddUserCash = 'AddUserCash,ПополнитьСчетПользователя,ПоповнитиРахунокКористувача'; strErrorMessage = 'ErrorMessage,СтрокаОшибки,СтрокаПомилки'; думаю разберешься
ollegh Posted December 3, 2007 Posted December 3, 2007 з нетерпінням чекаю нормальної робочої обробки, дуже цікаво ))
vovksextra Posted December 3, 2007 Author Posted December 3, 2007 А чего ждать - в шапке все рабочее - проверяй )) выложил версию 1.0.0.5 - снято ограничение на пополнение счета Планируется выход полноценной компоненты. В серверной части обнаружен мелкий баг - это сдерживает разработку. madf - обещал разобраться с багом ))) Спасибо ему )))
egor2fsys Posted December 9, 2007 Posted December 9, 2007 В самой обработке для 1С ограничена длина логина и пароля. Исправить можно в конфигураторе.
ollegh Posted December 9, 2007 Posted December 9, 2007 если поставить логин 1 пароль 1 тогда работает )) , нету случайно готовой бази под 1с, штоб там добавлять как в старгейзере ))а не делать щот а потом добавлять вручну с обработки
egor2fsys Posted December 9, 2007 Posted December 9, 2007 Готовой базы нет. На неделе попытаюсь выложить чуть поправленную обработку для 7.7 и для 8.1.
vovksextra Posted December 10, 2007 Author Posted December 10, 2007 пока не спешите ничего делать пишу полную компоненту
vovksextra Posted December 10, 2007 Author Posted December 10, 2007 Выложил в "шапке" версию 2.0.0.1 читает все данные пользователя. тестим ))
vovksextra Posted December 10, 2007 Author Posted December 10, 2007 К концу недели научу писать все поля кроме нескольких (Login,PingTime,LastCash ........), кроме 6-ти
vovksextra Posted December 11, 2007 Author Posted December 11, 2007 Выложил в 2.0.0.2 читаем readmy.!!!,history.txt
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now