|
Передача данных на сайт | ☑ | ||
---|---|---|---|---|
0
Анютик
14.08.15
✎
13:46
|
Возникла проблема при подключении к сайту.
Делаю гет запрос на корневую страницу. Получаю куки. Делаю гет-запрос с этими куками на страницу авторизации. Получаю токен. Отправляю пост-запрос с данными авторизации, получаю ответ, что авторизована. Тут все ок. Дальше отправляю гет-запрос опять на корень(или на скрипт загрузки данных из файла - это конечная цель) и вылетаю снова на страницу авторизации. Вопрос, что я делаю не так?:) я же уже прошла авторизашку, куки передаю те же, что и вначале. Уже не знаю, куда рыть |
|||
1
drcrasher
14.08.15
✎
13:56
|
конечный скрипт точно куки и токен проверяет?
|
|||
2
drcrasher
14.08.15
✎
13:56
|
ну и ковырять, собственно, нужно ещё и на стороне сайта
|
|||
3
Анютик
14.08.15
✎
13:57
|
(1) сейчас узнаю, я только со стороны 1С работаю.
(2) что можно поковырять со стороны сайта? видно, что на посте прошла авторизация...куки проверили... |
|||
4
Otkr
14.08.15
✎
13:57
|
(0) Цель всех этих действий то какие?
|
|||
5
Анютик
14.08.15
✎
13:58
|
(4) есть скрипт, который грузит данные из файла. задача - подсунуть ему (скрипту) этот файлик
|
|||
6
Анютик
14.08.15
✎
13:59
|
если еще проще - робот, который кидает данные на сайт сам из 1С
|
|||
7
Otkr
14.08.15
✎
13:59
|
(5)(6) Может сделать проще и данные писать в базу данных сайта напрямую из 1С, безо всяких промежуточных скриптов?
|
|||
8
drcrasher
14.08.15
✎
14:00
|
(3) на сайте сделайте примитивный лог: пришел юзер, авторизовался, получил токен, записали куку, пришел на скрипт с кукой и токеном и т.д.
+ для сайта а.ру и 1.а.ру - разные куки могут быть |
|||
9
drcrasher
14.08.15
✎
14:01
|
(7) поменяли структуру бд на сайте и что дальше?
|
|||
10
Otkr
14.08.15
✎
14:04
|
(9) И что? Скрипт тоже в таком случае переписывать надо
|
|||
11
Анютик
14.08.15
✎
14:07
|
(7) не уверена, что в нашем случае так можно
|
|||
12
Анютик
14.08.15
✎
14:07
|
(8) я так понимаю, сейчас и есть
|
|||
13
KSN135
14.08.15
✎
14:29
|
Вот лог:
Первый запрос, отправка авторизации: авг. 14 14:22:47 symfony [info] {sfPatternRouting} Match route "sf_guard_signin" (/login) for /login with parameters array ( 'module' => 'sfGuardAuth', 'action' => 'signin',) Aug 14 14:22:47 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" Aug 14 14:22:47 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" Aug 14 14:22:47 symfony [info] {sfFilterChain} Executing filter "auditFilter" Aug 14 14:22:47 symfony [debug] {sfPropelLogger} time: 0.000 sec | slow: NO | mem: 6.5 MB | mempeak: 6.5 MB | memdelta: 0.0 B | INSERT INTO `log_item` (`REMOTE_IP`, `ACTION`, `MODULE`, `PARAMS`, `RESPONSE_CODE`, `ID`, `CREATED_AT`, `UPDATED_AT`) VALUES ('192.168.85.1', 'signin ', 'sfGuardAuth ', 'signin: { _csrf_token: 449fb7f956c4fd1d6f31a1495528c44d, username: ********* } submit: "Вход\\r\\r\\n\\r\\n" ', 200, NULL, '2015-08-14 14:22:47', '2015-08-14 14:22:47') Aug 14 14:22:47 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter" Aug 14 14:22:47 symfony [info] {sfGuardAuthActions} Call "sfGuardAuthActions->executeSignin()" Aug 14 14:22:47 symfony [debug] {sfPropelLogger} time: 0.000 sec | slow: NO | mem: 7.3 MB | mempeak: 7.3 MB | memdelta: 0.0 B | SELECT sf_guard_user.ID, sf_guard_user.USERNAME, sf_guard_user.ALGORITHM, sf_guard_user.SALT, sf_guard_user.PASSWORD, sf_guard_user.CREATED_AT, sf_guard_user.LAST_LOGIN, sf_guard_user.IS_ACTIVE, sf_guard_user.IS_SUPER_ADMIN, sf_guard_user.LAST_NAME, sf_guard_user.GIVEN_NAME, sf_guard_user.MIDDLE_NAME, sf_guard_user.POSITION, sf_guard_user.DEPARTMENT_ID, sf_guard_user.EMAIL, sf_guard_user.EMAIL2, sf_guard_user.PHONE, sf_guard_user.PHONE2, sf_guard_user.CONTRACT_APPROVE_MODE, sf_guard_user.CONTRACT_NOTIFY, sf_guard_user.CONTRACTOR_NOTIFY, sf_guard_user.ACT_NOTIFY, sf_guard_user.PROJECT_NOTIFY, sf_guard_user.CONTRACT_INITIAL_COORDINATION, sf_guard_user.ACT_INITIAL_COORDINATION, sf_guard_user.IS_VISIBLE, sf_guard_user.ACT_APPROVE_MODE, sf_guard_user.UPDATED_AT, sf_guard_user.CREATED_BY, sf_guard_user.UPDATED_BY FROM `sf_guard_user` WHERE sf_guard_user.USERNAME='gukasovaaa' AND sf_guard_user.IS_ACTIVE=1 LIMIT 1 Авторизован! Победа! Aug 14 14:22:47 symfony [info] {myUser} User is authenticated Aug 14 14:22:47 symfony [debug] {sfPropelLogger} time: 0.000 sec | slow: NO | mem: 9.3 MB | mempeak: 10.0 MB | memdelta: 0.0 B | SELECT sf_guard_user_permission.USER_ID, sf_guard_user_permission.PERMISSION_ID, sf_guard_user_permission.CREATED_AT, sf_guard_user_permission.UPDATED_AT, sf_guard_permission.ID, sf_guard_permission.NAME, sf_guard_permission.DESCRIPTION, sf_guard_permission.CREATED_AT, sf_guard_permission.UPDATED_AT, sf_guard_permission.CREATED_BY, sf_guard_permission.UPDATED_BY FROM `sf_guard_user_permission` LEFT JOIN `sf_guard_permission` ON (sf_guard_user_permission.PERMISSION_ID=sf_guard_permission.ID) WHERE sf_guard_user_permission.USER_ID=31 Aug 14 14:22:47 symfony [debug] {sfPropelLogger} time: 0.000 sec | slow: NO | mem: 9.5 MB | mempeak: 10.0 MB | memdelta: 0.0 B | SELECT sf_guard_user_group.USER_ID, sf_guard_user_group.GROUP_ID, sf_guard_user_group.CREATED_AT, sf_guard_user_group.UPDATED_AT, sf_guard_user_group.CREATED_BY, sf_guard_user_group.UPDATED_BY, sf_guard_group.ID, sf_guard_group.NAME, sf_guard_group.DESCRIPTION, sf_guard_group.CREATED_AT, sf_guard_group.UPDATED_AT, sf_guard_group.CREATED_BY, sf_guard_group.UPDATED_BY FROM `sf_guard_user_group` LEFT JOIN `sf_guard_group` ON (sf_guard_user_group.GROUP_ID=sf_guard_group.ID) WHERE sf_guard_user_group.USER_ID=31 Aug 14 14:22:47 symfony [info] {myUser} Add credential(s) "manager, acc" Aug 14 14:22:47 symfony [debug] {sfPropelLogger} time: 0.001 sec | slow: NO | mem: 9.5 MB | mempeak: 10.0 MB | memdelta: 0.0 B | UPDATE `sf_guard_user` SET `LAST_LOGIN`='2015-08-14 14:22:47', `UPDATED_AT`='2015-08-14 14:22:47' WHERE sf_guard_user.ID=31 Перекидывает на главную: Aug 14 14:22:48 symfony [info] {sfFrontWebController} Redirect to "https://mx01.goodstorymedia.com:444/" Aug 14 14:22:48 symfony [info] {sfWebResponse} Send status "HTTP/1.1 302 Found" Aug 14 14:22:48 symfony [info] {sfWebResponse} Send header "Location: https://mx01.goodstorymedia.com:444/" Aug 14 14:22:48 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8" Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Configuration 440.31 ms (11) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Factories 7.96 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 724.28 ms (1) Aug 14 14:22:48 symfony [info] {sfWebResponse} Send content (107 o) Второй запрос (в котором нас не узнают): авг. 14 14:22:48 symfony [info] {sfPatternRouting} Match route "real_payment_import" (/real/payment/ListImport/action) for /real/payment/ListImport/action with parameters array ( 'module' => 'real_payment', 'action' => 'ListImport',) Aug 14 14:22:48 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" Aug 14 14:22:48 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter" Не авторизован говорит (кто это?), хотя руку отправляем: Aug 14 14:22:48 symfony [info] {sfBasicSecurityFilter} Action "real_payment/ListImport" requires authentication, forwarding to "sfGuardAuth/signin" Aug 14 14:22:48 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter" Aug 14 14:22:48 symfony [info] {sfFilterChain} Executing filter "sfGuardRememberMeFilter" Aug 14 14:22:48 symfony [info] {sfFilterChain} Executing filter "auditFilter" Aug 14 14:22:48 symfony [debug] {sfPropelLogger} time: 0.000 sec | slow: NO | mem: 6.8 MB | mempeak: 6.8 MB | memdelta: 0.0 B | INSERT INTO `log_item` (`REMOTE_IP`, `ACTION`, `MODULE`, `PARAMS`, `RESPONSE_CODE`, `ID`, `CREATED_AT`, `UPDATED_AT`) VALUES ('192.168.85.1', 'ListImport ', 'real_payment ', '{ }', 200, NULL, '2015-08-14 14:22:48', '2015-08-14 14:22:48') Aug 14 14:22:48 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter" Aug 14 14:22:48 symfony [info] {sfGuardAuthActions} Call "sfGuardAuthActions->executeSignin()" Aug 14 14:22:48 symfony [info] {sfPHPView} Render "/var/www/ais/apps/ais/modules/sfGuardAuth/templates/signinSuccess.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/plugins/sfAdminDashPlugin/modules/sfAdminDash/templates/_login.php" Aug 14 14:22:48 symfony [info] {sfPHPView} Decorate content with "/var/www/ais/apps/ais/templates/layout.php" Aug 14 14:22:48 symfony [info] {sfPHPView} Render "/var/www/ais/apps/ais/templates/layout.php" Aug 14 14:22:48 symfony [info] {main} Call "sfAdminDash->executeHeader()" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/apps/ais/modules/sfAdminDash/templates/_header.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/apps/ais/modules/sfAdminDash/templates/_menu.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/plugins/sfAdminDashPlugin/modules/sfAdminDash/templates/_menu_list.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/plugins/sfAdminDashPlugin/modules/sfAdminDash/templates/_menu_list.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/plugins/sfAdminDashPlugin/modules/sfAdminDash/templates/_menu_list.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/plugins/sfAdminDashPlugin/modules/sfAdminDash/templates/_menu_list.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/plugins/sfAdminDashPlugin/modules/sfAdminDash/templates/_user_actions.php" Aug 14 14:22:48 symfony [info] {sfPartialView} Render "/var/www/ais/apps/ais/modules/sfAdminDash/templates/_footer.php" Aug 14 14:22:48 symfony [info] {sfWebResponse} Send status "HTTP/1.1 200 OK" Aug 14 14:22:48 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8" Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Configuration 2.29 ms (17) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Factories 8.43 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Action "sfGuardAuth/signin" 1.10 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} View "Success" for "sfGuardAuth/signin" 13.47 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Partial "sfAdminDash/_login" 2.51 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Component "sfAdminDash/header" 0.35 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Partial "sfAdminDash/_header" 6.69 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Partial "sfAdminDash/_menu" 3.21 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Partial "sfAdminDash/_menu_list" 1.35 ms (4) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Partial "sfAdminDash/_user_actions" 0.30 ms (1) Aug 14 14:22:48 symfony [info] {sfWebDebugLogger} Partial "sfAdminDash/_footer" 0.37 ms (1) Aug 14 14:22:48 symfony [info] {sfWebResponse} Send content (61332 o) |
|||
14
Анютик
14.08.15
✎
14:31
|
Вот код подключения, комментарии в тексте
Скрипт = "/"; //1. запрос гет на получение куки ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла(); ssl3 = Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровФайл("C:\Users\\Desktop\CER\server.crt")); Соединение = Новый HTTPСоединение(Сервер,444,,,,,ssl3); HTTPЗапрос = Новый HTTPЗапрос(Скрипт); ОтветHTTP= Соединение.Получить(HTTPЗапрос); Куки = ОтветHTTP.Заголовки["Set-Cookie"]; Заголовки = Новый Соответствие(); Скрипт = "/login"; Если ЗначениеЗаполнено(Куки) Тогда Заголовки.Вставить("Cookie", Куки); КонецЕсли; Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Заголовки.Вставить("Origin", "https://mx01..com:444"); Заголовки.Вставить("Referer", "https://mx01..com:444/"); Заголовки.Вставить("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); Заголовки.Вставить("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"); Заголовки.Вставить("Connection", "keep-alive"); Заголовки.Вставить("Host", "mx01.goodstorymedia.com:444"); Заголовки.Вставить("Upgrade-Insecure-Requests", "1"); Заголовки.Вставить("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36"); HTTPЗапрос = Новый HTTPЗапрос(Скрипт,Заголовки); ОтветHTTP = Соединение.Получить(HTTPЗапрос); //2. Запрос Гет на получение токена для авторизации Куки = ОтветHTTP.Заголовки["Set-Cookie"]; Если Куки <>Неопределено Тогда //тут куки остаются прежними Заголовки = Новый Соответствие(); Если ЗначениеЗаполнено(Куки) Тогда Заголовки.Вставить("Cookie", Куки); КонецЕсли; КонецЕсли; Текстрока = ОтветHTTP.ПолучитьТелоКакСтроку(); ПодстрокаПоиска1 = "<input type=""hidden"" name=""signin[_csrf_token]"" value="""; ПодстрокаПоиска2 = """ id=""signin__csrf_token""" ; ЗначТокенаНачало = Найти(ТекСтрока, ПодстрокаПоиска1); ЗначТокенаКонец = Найти(Текстрока, ПодстрокаПоиска2); Токен = Сред(Текстрока,ЗначТокенаНачало+СтрДлина(ПодстрокаПоиска1), ЗначТокенаКонец-(ЗначТокенаНачало+СтрДлина(ПодстрокаПоиска1))); ТекстЗапроса = "signin%5B_csrf_token%5D="+Токен+"&signin%5Busername%5D=aaa&signin%5Bpassword%5D=oyw&submit=%D0%92%D1%85%D0%BE%D0%B4"+Символы.ВК+Символы.ПС; ИмяФайлаОтправкиНачало = ФайлЗапрос; ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.ANSI, Символы.ПС, Ложь); ФайлОтправкиНачало.ЗаписатьСтроку(ТекстЗапроса); ФайлОтправкиНачало.Закрыть(); HTTPОтвет = Соединение.ОтправитьДляОбработки(ИмяФайлаОтправкиНачало,"/login",ФайлОтвет, Заголовки); //3. запрос пост с параметрами авторизации //файлответ ниже, т.е. авторизация прошла, код ответа 200 //<?xml version="1.0"?> //-<html> //-<head> //<meta content="0;url=https://mx01.....com:444/" http-equiv="refresh"/> //</head> //</html> Куки = ОтветHTTP.Заголовки["Set-Cookie"]; //тут куки остаются прежними Если Куки <>Неопределено Тогда Заголовки = Новый Соответствие(); Если ЗначениеЗаполнено(Куки) Тогда Заголовки.Вставить("Cookie", Куки); КонецЕсли; КонецЕсли; Скрипт = "/real/payment/ListImport/action"; Заголовки.Удалить("Content-Type"); Заголовки.Удалить("Referer"); Заголовки.Вставить("Content-Type", "text/html; charset=utf-8"); HTTPЗапрос = Новый HTTPЗапрос(Скрипт,Заголовки); ОтветHTTP = Соединение.Получить(HTTPЗапрос); //4. гет-запрос на скрипт, возвращает страницу авторизации Текстрока = ОтветHTTP.ПолучитьТелоКакСтроку(); |
|||
15
drcrasher
14.08.15
✎
15:26
|
проверь сертификат, попробуй в юзер-агента вставить "здрасти" от эксплорера.
насколько я могу судить, ты для сервера представляешься окошком браузера причем в виде формы пост запроса |
|||
16
drcrasher
14.08.15
✎
15:28
|
(15) + а ты в (14) пишешь гет запрос
зы - если убираешь гудсторимедиа, то убирай везде, тов. Гукасова ;) ззы - ещё можно поковырять 1с на тему вот этой строки лога: "Aug 14 14:22:48 symfony [info] {sfWebResponse} Send header "Content-Type: text/html; charset=utf-8" " |
|||
17
Анютик
14.08.15
✎
16:01
|
так не я постила фамилию))) посмотрите
|
|||
18
Анютик
14.08.15
✎
16:02
|
(16) не поняла на тему ззы
|
|||
19
Анютик
14.08.15
✎
16:04
|
(15) это уже была агония, представиться браузером. Изначально кроме куки и Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Заголовки.Вставить("Origin", "https://mx01..com:444";); Заголовки.Вставить("Referer", "https://mx01..com:444/";); ничего не было. |
|||
20
KSN135
14.08.15
✎
16:07
|
(17) виновен, спалил
|
|||
21
Анютик
14.08.15
✎
16:17
|
(20) это была небольшая тайна))) тем более, что меня в сети под этой фамилией нет
|
|||
22
alex_shkut
14.08.15
✎
16:32
|
(21) Почему же не постила? В логах видно. Кто внимательно читает - тот видит. И логин пароль спалила.
sf_guard_user.USERNAME='gukasovaaa'. Отчество тоже на А? |
|||
23
Анютик
14.08.15
✎
16:44
|
(22) потому что это не мой пост)))
|
|||
24
KSN135
14.08.15
✎
17:02
|
(22) (16) что к девушке то пристали?
Лучше помогите 1Сину с сайтом подружить... )) |
|||
25
Анютик
14.08.15
✎
17:27
|
(24) к женщине с ребенком:) думаю, это больше поможет заняться сайтом:)))
|
|||
26
Анютик
15.08.15
✎
23:45
|
ап, ну где же свежие отдохнувшие мозги?
|
|||
27
Анютик
17.08.15
✎
12:11
|
апппп
|
|||
28
simol
18.08.15
✎
13:54
|
А ты POST запрос делаешь с помощью ОтправитьДляОбработки. При этом не используешь ЗапроcHTTP специально?
|
|||
29
simol
18.08.15
✎
14:07
|
Может при авторизации возвращается нмоер сессии, котоырй нужно использовать при последующих обращениях?
|
|||
30
KSN135
21.08.15
✎
09:24
|
Разрулили.
Symfony 1.4 передаёт ДВЕ одинаковых куки в заголовке, последняя верная. Оставлю здесь рабочий кусок работы через HTTPS для потомков: &НаКлиенте Функция ПолучитьПараметрыSSLСоединения() Возврат Новый ЗащищенноеСоединениеOpenSSL( Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровФайл("server.crt") ); КонецФункции &НаКлиенте Функция ОбработатьКуки(Заголовки,HTTPОтвет) Куки = HTTPОтвет.Заголовки["Set-Cookie"]; Если ЗначениеЗаполнено(Куки) Тогда // Symfony 1.4 посылает ДВЕ разные куки в ОДНОЙ строке РАЗДЕЛЕННЫЕ ЗАПЯТОЙ !!!!!!!!! // XXXXSessionName=vcbhd8f5ddh8ou7d7asn1pr5d4; path=/, XXXXSessionName=3uca5s84oiu20vu6vet1fvkb16; path=/ Сообщить("Получены ""печеньки"": " + Куки); Куки = СтрЗаменить(Куки,",",Символы.ПС); Куки = СтрПолучитьСтроку(Куки,2); Куки = СтрЗаменить(Куки,";",Символы.ПС); Куки = СтрПолучитьСтроку(Куки,1); Сообщить("Запомнена ""печенька"": " + Куки); Заголовки.Вставить("Cookie", Куки); КонецЕсли; КонецФункции &НаКлиенте Процедура Команда2НаСервере() СекретноеИмяФормы = "**********"; // чтоб враги не догадались !!! ;-) Логин = "***************"; Пароль = "***************"; Заголовки = Новый Соответствие(); Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); HTTPСоединение = Новый HTTPСоединение("*******************", 443,,,,,ПолучитьПараметрыSSLСоединения()); HTTPЗапрос = Новый HTTPЗапрос("***************",Заголовки); HTTPЗапрос.УстановитьТелоИзСтроки("&"+СекретноеИмяФормы+"%5Busername%5D="+Логин+"&"+СекретноеИмяФормы+"%5Bpassword%5D="+Пароль); HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); ОбработатьКуки(Заголовки,HTTPОтвет) Заголовки.Удалить("Content-Type"); Тело = HTTPОтвет.ПолучитьТелоКакСтроку(); Сообщить("Ответ: " + Тело); /// Теперь мы авторизованы кукой и можем делать что захотим ) КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |