Jump to content

1c:stargazer


Recommended Posts

Перечитал тему по поводу связки билинга с 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/ за оказанную поддержку и моральную и техническую.

Link to post
Share on other sites
  • Replies 56
  • Created
  • Last Reply

Top Posters In This Topic

К сожалению не работает.

Ошибка: Сервер сообщает об ошибке: Recv data answer error!

Сервер стг - последний.

 

Замечания по самой обработке для 1С:

 

1) А если логин больше 8 символов ? а если пароль больше 10 символов ?

2) вот здесь Стг.УстановитьПараметрыПодключения ..... лучше применять СокрЛП() для параметров или компонента сама уберет лидирующие и конечные пробелы ?

3) зачем выключена возможность сохранения значений в форме и панель инструментов ?

Link to post
Share on other sites

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 минут ))

 

 

Насчет нового сервера - отпиши мне какой конфигуратор используешь я сравню изменения

 

Судя по ошибке - у тебя прошли проверки на заголовок,логин,пароль и даже данные отправил, только вот получить не удалось - нужно смотреть - я поссмотрю в чем может быть проблема

 

И опиши когда ошибка возникает при загрузке таблицы пользователей или при попытке деньги добавить

Link to post
Share on other sites

Вдогонку

 

вроде бы нашел свой баг.

 

При получении данных из сокета неправильно определял когда закончить прием.

 

Подправил - забери из шапки обновленную версию (1.0.0.2) - проверь

 

спасибо

Link to post
Share on other sites

Все равно таже ошибка :(

 

Ошибка возникает при нажатии загрузить, т.е. вот здесь: Результат=Стг.ПолучитьТаблицуПользователей();

 

Сервер - последний от 12 октября, конфигуратор 1.88.9

Link to post
Share on other sites

хм...

 

Скажи полную версию сервера, я проверю.

 

У мну все работает...

 

проверь версию файла (свойства файла) - должно быть 1,0,0,3

 

и в какой платформе подключаешь? Если на 8-ке попробуй на 7-ке?

Link to post
Share on other sites

Версия файла 1.0.0.3. В платформе 7.7 проверяю (в 8 режим идентичности реализован для компонент написанных для 7, так что особой разницы нет).

 

Сервер - еще раз повторяюсь - последний, от 10 октября сего года

(http://local.com.ua/forum/index.php?showtopic=9757).

 

Стандартный конфигуратор нормально работает.

Link to post
Share on other sites

по-поводу внешних компонент на 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;

Link to post
Share on other sites

В дельфях не силен, силен только в 1С как и ты, поэтому сказать что-то не могу. Тем более у тебя работает все ок. Попробую с другого компа.

Link to post
Share on other sites

Еще не определились что с ней делать. Просто идея возникла спонтанно и компонента была написана за 3 дня и выложена как бетка. Но навсякий случай сделали ограничение.

 

И еще если у тебя есть время сделаешь als файлик?

 

 

 

strSetParamsOfConnection =
   'SetParamsOfConnection,УстановитьПараметрыПодключения,ВстановитиПараметриПідключення';
 strGetTableUsers =
   'GetTableUsers,ПолучитьТаблицуПользователей,ОтриматиТаблицюКористувачів';
 strGetUserCash =
   'GetUserCash,ПолучитьОстатокПользователя,ОтриматиЗалишокКористувача';
 strGetUserName = 'GetUserName,ПолучитьИмяПользователя,ОтриматиІмяКористувача';
 strGetUserAddress =
   'GetUserAdress,ПолучитьАдресПользователя,ОтриматиАдресуКористувача';
 strGetUserTariff =
   'GetUserTariff,ПолучитьТарифныйПланПользователя,ОтриматиТарифнийПланКористувача';
 strGetUserIp = 'GetUserIp,ПолучитьИППользователя,ОтриматиИПКористувача';
 strGetUserPhone =
   'GetUserPhone,ПолучитьНомерТелефонаПользователя,,ОтриматиНомерТелефонуКористувача';

 strAddUserCash =
   'AddUserCash,ПополнитьСчетПользователя,ПоповнитиРахунокКористувача';

 strErrorMessage = 'ErrorMessage,СтрокаОшибки,СтрокаПомилки';

 

думаю разберешься

Link to post
Share on other sites

А чего ждать - в шапке все рабочее - проверяй ))

 

выложил версию 1.0.0.5 - снято ограничение на пополнение счета

 

 

Планируется выход полноценной компоненты.

 

В серверной части обнаружен мелкий баг - это сдерживает разработку.

 

madf - обещал разобраться с багом ))) Спасибо ему )))

Link to post
Share on other sites

если поставить логин 1 пароль 1 тогда работает )) , нету случайно готовой бази под 1с, штоб там добавлять как в старгейзере ))а не делать щот а потом добавлять вручну с обработки

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...