Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УТ 11 печать чеков

УТ 11 печать чеков
Я
   AAA
 
21.09.20 - 09:46
Доброго всем дня!
Есть УТ 11.4. Работает в терминале. Касса Атолл 55ф, воткнута в роутер. С кассой работал один пользователь. Прицепили второго
удаленного юзера. Я настроил ему РМК для его его удаленного логина. все отлично, кассу видит, тест проходит. Касса по ip.
Но при печати чека просит открыть кассовую смену, хотя кассовая смена уже открыта с другого компа. Физически в ККТ новую кассовая
смена не нужна, логически в документе "Кассовая смена" привязана к "Касса ККМ", она на этих двух РМК одна и та же
При попытке открыть кассовую смену (ну вдруг чудо будет), внешне ничего не происходит. но 1с по моему перестает видеть кассу
Короче какая то фигня. Куда копнуть?
   Ёпрст
 
1 - 21.09.20 - 09:57
(0) в типовых всё привязано к рабочему месту
   AAA
 
2 - 21.09.20 - 10:24
в документе "Кассовая смена" нет рабочего места, там "Касса ККМ"
   Garykom
 
3 - 21.09.20 - 10:25
(0) >Куда копнуть?

В повышение уровня знаний
   AAA
 
4 - 21.09.20 - 10:29
(3)спасибо
   AAA
 
5 - 21.09.20 - 10:31
универсальный совет
   Garykom
 
6 - 21.09.20 - 10:33
Мне вот интересно почему еще производители ККТ не придумали выпускать многокассирные/многосменные девайсы?
Там же по сути прошивка и все.
   AAA
 
7 - 21.09.20 - 10:36
(6)я не понял что не так ? мне не нужнв многосменная касса, а по поводу кассира в чем ирония ?
   Ёпрст
 
8 - 21.09.20 - 10:36
Ну, если лень копаться в типовом бпо, то выкинуть это всю на к..й и переписать работу кассы на вэбсервер от атолла, и там уже что угодно можно делать. Хоть из дома печатай чеки, посылая  запрос вэбсерверу
   AAA
 
9 - 21.09.20 - 10:39
(8)У меня на 7.7 с такой же кассой без проблем печатает несколько человек )
   Garykom
 
10 - 21.09.20 - 10:57
(9) ну дык и перепиши в УТ как на 7.7
   Ёпрст
 
11 - 21.09.20 - 10:57
(9) ну тогда сиди, и ковыряй бпо
   d4rkmesa
 
12 - 21.09.20 - 11:04
(0) Переписывать БПО - так себе занятие. Выпустят новый релиз и все перестанет работать. Смириться.
   AAA
 
13 - 21.09.20 - 11:06
(9)Вам я уже выразил признательность, больше не напрягайте свой богатый знаниями ум )
(8,11) - я бы с удовольствием, то вряд ли кто заплатит хотя бы рубль

Вы хотите сказать, что в УТ 11 на офисной кассе удаленно нельзя бить чеки с разных удаленных мест ?
   Garykom
 
14 - 21.09.20 - 11:11
(13) Без перепиливания типового механизма низзя
   Garykom
 
15 - 21.09.20 - 11:12
(14)+ Ну или использования внешнего емулятора-прокси, который будет одну ККТ изображать как две разные.
Разрешая нескоко раз "открывать смену" и т.д.
   Галахад
 
16 - 21.09.20 - 11:12
(13) И в УТ 10 тоже низя.
   Garykom
 
17 - 21.09.20 - 11:14
(16) В УТ10 чуть легче перепилить
   Галахад
 
18 - 21.09.20 - 11:17
(17) В УТ10, ИМХО всё легче было сделать... :-)
   AAA
 
19 - 21.09.20 - 11:25
в УТ 10 насколько я помню все удаленные пользователи прописываются в торговом оборудовании под одним именем компа - а именно сервера. Поэтому касса доступна любому удаленному пользователю, хоть миллион человек. Важно только избежать конфликта блокировки кассы. При открытии документа, способного пробить чек, касса захватывается этим пользователем. Но при выходе из документа касса снова доступна любому
   AAA
 
20 - 21.09.20 - 14:57
Тема завяла. Но я все равно победю ) Жаль, что с кассой не очень побалуешься. Может так и останусь олухом, не то что всезнающий Гарри))
   Ёпрст
 
21 - 21.09.20 - 15:01
(20) самое простое - (8) . Делов на полдня
   AAA
 
22 - 21.09.20 - 15:35
(21)по моему видел на инфостарте такие решения, примерно тысяч 12
Не думал что такая засада в УТ 11, с сетевым ККТ, не простым Атол 30
   Ёпрст
 
23 - 21.09.20 - 15:50
(22) я писал сам, достаточно сайта по интеграции от атола, там внятный хелп и примеры json-а..
Надо то в простом варианте, тока открытие-закрытие смены, фискальный чек и чек возврата.
При желании, еще и внесение/выемку наличных и всё.
   Ёпрст
 
24 - 21.09.20 - 15:51
И да, на нимфостарте есть примеры готовые, никому платить не надо
   AAA
 
25 - 28.09.20 - 11:53
Немного поглубже поизучал работу с кассой в УТ. Каюсь, ошибался, что Кассовая смена привязана только к КассеККМ, она действительно привязана еще и к рабочему месту (в терминале - ИмяЛокальногоКомпа + ИмяПользователяСервера). При печати с нескольких удаленных рабочих мест на касссе в офисе надо решить 2 основных проблемы:
1 - открытие и закрытие нескольких кассовых смен (для каждого рабочего места)
2 - блокировка кассы пользователем, печатающим чек

1 - Со сменой проблему можно решить относительно легко. Правда документ кассовой смены может создаваться аж в 3 местах. Но можно либо в цикле создать недостающие смены для всех рабочих мест, либо можно написать расширение и всех пользователей "посадить" на одно рабочее место с кассой. Там могут быть проблемы с другим оборудованием (например, банковский терминал), но в принципе это наверное решаемо

2 - с блокировками все сложнее и непонятнее. Моделировал и на предпросмотре чека в приходном кассовом ордере и в отдельной обработке, в которую выдрал из конфигурации подключение и отключение драйвера ККМ.
а) Предпросмотр из приходника. В обработке предпросмотра при открытии идет подключение к кассе, при закрытии - отключение. Вроде все путем
Хотя я не знаю зачем при предпросмотре надо подключаться ) Подключаться надо уже при пробитии чека из предпросмотра. Запускал локально 2 сеанса 1с под разными пользователями. Штатно - оба "садятся" на одно рабочее место торгового оборудования, нештатно (небольшим расширением)на разные рабочие места, настроенных на одну и ту же кассу. В обоих случаях можно по очереди предпросматиривать и пробивать чеки по очереди при отсутствии конфликта блокировки. Галка в настройке драйвера ([X] - не отключать кассу) была естественно снята. По очереди работает, чеки вылазят у обоих пользователей. Но стоит второму пользователю обратиться к предпросмотру, когда это делает первый пользователь, наступает настоящий ад. Понятно, что второй пользователь не может соединиться с кассой, так как порт блокирован, но это не удается сделать и после закрытия обработки предпросмотра первым пользователем (то есть он вроде как кассу освободил), не удалось это сделать и даже после выхода первого пользователя из 1С.
В отдельной обработке ровно та же история. Выбираю кассу и делаю подключение и отключение, выводя флажки результата операции. По очереди можно хоть сколько подключаться и отключаться разным пользователям. Но стоит только одному пользователю подключиться и не отключиться, как наступает ровно таже самая беда. Другому пользователю уже никак не подключиться. И как в этом случае уже сделать отключение я не пойму.
То есть, еще раз, если пользователь подключается и отключается, то второй также может это делать. Итак до бесконечности. Но если один подключился и не отключился, то второй уже никак не может подключиться )) Делаю принудительное отключение по всем идентификаторам  типа
ИдУстройства = "ATOL_KKT_1C83_V10#0", "ATOL_KKT_1C83_V10#1" и тд. Отключение внешне походит, но результат нулевой. И непонятно, надо разбираться, при каждом новом подключении-отключении почему то счетчик N идентификатора наращивается "ATOL_KKT_1C83_V10#N". Как же отключиться от кассы в этом случае ?))
Придется все-таки наверное осваивать работу кассы в режиме веб-сервиса.
   MadJhey
 
26 - 28.09.20 - 15:16
Посмотри атол сервер ккм. Он в DTO 10 вшит. Я его под Ут 10 подключал. Думаю и в 11 можно.
   Ёпрст
 
27 - 28.09.20 - 15:19
(25) Че там осваивать то ? Всего то пара запросов и привет
   AAA
 
28 - 28.09.20 - 15:37
(27)Оптимистично )
   Ёпрст
 
29 - 28.09.20 - 19:47
(28) ну давай тебе примеров покидаю..мот полегчает?)
x-отчет
        Адрес ="192.168.10.101";
    HTTPСоединение = Новый HTTPСоединение(Адрес,16732,,,,,,Ложь);
    HTTPЗапрос = Новый HTTPЗапрос("requests");
    HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.ПроверятьСтруктуру = Ложь;
    ЗаписьJSON.УстановитьСтроку();
    Структура =Новый Структура;
    ГУИД = Новый УникальныйИдентификатор;
    Структура.Вставить("ГУИД",Строка(ГУИД));
    Массив = Новый Массив;
    СтруктураЗапроса = Новый Структура;
    СтруктураЗапроса.Вставить("type","reportX");
    СтруктураЗапроса.Вставить("operator",Новый Структура("name,vatin","Иванов", "123654789507"));
    Массив.Добавить(СтруктураЗапроса);
    Структура.Вставить("request",Массив);
    ЗаписатьJSON(ЗаписьJSON,Структура);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Если HTTPОтвет.КодСостояния = 201 Тогда//успешно поставлено в очередь

        HTTPЗапрос = Новый HTTPЗапрос("requests/"+ГУИД);
        Ответ = HTTPСоединение.Получить(HTTPЗапрос);
        Если Ответ.КодСостояния = 200 Тогда
            СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
            ЧтениеJSON = Новый ЧтениеJSON;
            ЧтениеJSON.УстановитьСтроку(СтрокаОтвета);
            СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
        КонецЕсли;
    КонецЕсли;



состояние кассы

    //    Адрес = "192.168.10.101";

    HTTPСоединение = Новый HTTPСоединение(Адрес,16732,,,,,,Ложь);
    HTTPЗапрос = Новый HTTPЗапрос("/api/v2/requests?deviceID=KKT");
    HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.ПроверятьСтруктуру = Ложь;
    ЗаписьJSON.УстановитьСтроку();
    Структура =Новый Структура;
    ГУИД = Новый УникальныйИдентификатор;
    Структура.Вставить("ГУИД",Строка(ГУИД));
    Массив = Новый Массив;
    СтруктураЗапроса = Новый Структура;
    СтруктураЗапроса.Вставить("type","getDeviceStatus");
    Массив.Добавить(СтруктураЗапроса);
    //    Структура.Вставить("deviceID","KKT1");

    Структура.Вставить("request",Массив);
    ЗаписатьJSON(ЗаписьJSON,Структура);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Если HTTPОтвет.КодСостояния = 201 Тогда//успешно поставлено в очередь

        HTTPЗапрос = Новый HTTPЗапрос("requests/"+ГУИД);
        Ответ = HTTPСоединение.Получить(HTTPЗапрос);
        Если Ответ.КодСостояния = 200 Тогда
            СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
            ЧтениеJSON = Новый ЧтениеJSON;
            ЧтениеJSON.УстановитьСтроку(СтрокаОтвета);
            СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
            СтатусОперации = СтруктураОтвета.results[0].status;
            Пока СтатусОперации <> "ready" Цикл
                ОбработкаПрерыванияПользователя();
                Если СтатусОперации = "error" Тогда
                    Сообщить("Ошибка получения статуса кассы "+ "errorDescription: "+СтруктураОтвета.results[0].errorDescription +" errorCode: "+СтруктураОтвета.results[0].errorCode);
                    Возврат "errorDescription: "+СтруктураОтвета.results[0].errorDescription +" errorCode: "+СтруктураОтвета.results[0].errorCode;
                КонецЕсли;
                HTTPЗапрос = Новый HTTPЗапрос("requests/"+ГУИД);
                Ответ = HTTPСоединение.Получить(HTTPЗапрос);
                Если Ответ.КодСостояния = 200 Тогда
                    СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
                    ЧтениеJSON = Новый ЧтениеJSON;
                    ЧтениеJSON.УстановитьСтроку(СтрокаОтвета);
                    СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
                    СтатусОперации = СтруктураОтвета.results[0].status;
                КонецЕсли;
            КонецЦикла;
            Если СтатусОперации = "error" Тогда
                //                 Сообщить("Ошибка получения статуса кассы "+ "errorDescription: "+СтруктураОтвета.results[0].errorDescription +" errorCode: "+СтруктураОтвета.results[0].errorCode);

            ИначеЕсли СтатусОперации = "ready" Тогда
                СостояниеКассы = СтруктураОтвета.results[0].result.deviceStatus;
                Сообщить(СостояниеКассы.shift +" "+СостояниеКассы.currentDateTime);
                Возврат СостояниеКассы.shift;
                //closed - закрыта 

                //opened - открыта 

                //expired - истекла

            КонецЕсли;            
        КонецЕсли;
    Иначе 
        Сообщить( HTTPОтвет.КодСостояния);
        Сообщить(HTTPОтвет.ПолучитьТелоКакСтроку());
    КонецЕсли;

   AAA
 
30 - 28.09.20 - 20:26
(29)Спасибо, гляну. Пока нашел примеры на инфостарте. Сервер установил, настроил, служба запущена Тоже пробую X отчет. Запросы уходят, Сервер показывает 3 завершенных задания, но ни одного отчета из кассы не вылезло )) Она даже не дернулась ) Что ей надо?))
 
 Рекламное место пустует
   Ёпрст
 
31 - 28.09.20 - 20:33
(30) проверяй не x -отчетом, а состоянием кассы, например.
   Ёпрст
 
32 - 28.09.20 - 20:34
И это, в самом выбсервере правилтный ip адресс кассы написал ? Там при включении кассы, чек вылезать должен с её ip
   Ёпрст
 
33 - 28.09.20 - 20:35
И если че, сами запросы от вэбсервера валяются в папке программдата, там база от вэбсервера валяется в скульлайте, можно хоть самому прямым запросом чистить задания или просмотривать их ну и так..
   AAA
 
34 - 28.09.20 - 21:02
Выдала и твое состояние кассы и чужой x-отчет. Немножко поправил и там и там. Начало положено )) Спасибо )
   Ёпрст
 
35 - 28.09.20 - 22:00
Ну, осталось тока фискальный чек, z отчет и в продакшн
   Ёпрст
 
36 - 28.09.20 - 22:01
Да, желательно писать сразу через api2  и передавать id кассы.
   AAA
 
37 - 29.09.20 - 05:38
(36)Ну модельный фискальный чек вылазит, смена закрывается. Но это все игрушки. Осталось самое сложное - встроить это в УТ11 с минимальным хирургическим вмешательством
   Ёпрст
 
38 - 29.09.20 - 11:30
(37) единственный косяк у атоловцев, это ошибка error 4 com port  недоступен, грубо, послал задание, а связь с кассой отвалилась, или бумага закончилась, например.
По идее, у них есть запрос удаления задания с таким гуидом, НО, оно не удаляется - пишет что данная операция невозможно для такого задания. Тут или посылать повторно чек с другим гуидом (что не есть гуд, я к примеру, посылаю не произвольный гуид, а гуид самого документа, так проще искать и не надо гуид задания  хранить тогда) или, прямым запросом очистить эту запись в табличках вэбсервера.
   AAA
 
39 - 02.10.20 - 07:28
Доброго всем дня, всех с пятницей. Ну основные проблемы решил. Сделал небольшое расширение, в котором печатаются чеки, используя параметры фискализации, штатно сформированные УТ11. Осталось решить проблему регистрации пробития (непробития) чеков (на инфостарте есть решение с организацией очереди чеков) и открытия, закрытия кассовых смен. И вот тут меня посетила безумная идея. Может вообще в УТ отказаться от документа "Кассовая смена" ? Работать как в семерке, где кассовая смена только в кассе, где она на самом деле в реальности и есть. Сделать кнопочку закрытия смены, открытие без проблем происходит при пробитии первого чека. Какие здесь могут быть минусы и подводные камни?
   Ёпрст
 
40 - 02.10.20 - 08:57
(39) никаких минусов.
Я всё это вырезал.
И кассовые смены не веду в 1с, и сами чеки не храню в хранилище в рег. сведении.

Только сам чек и номер чека. всё.
   Ёпрст
 
41 - 02.10.20 - 09:00
(39) на счет очереди..

для розницы, я делал свою очередь на РС, все задания при пробитии посылал туда, тупо в РС хранится сам json задания и гуид дока, обработка в фоновом задании пасёт очередь, печатает, если усё хорошо, выкидывает запись из РС.

Но, для опта тупо сделал ожидание в самом доке, послал чек и долбишь запросом ответ..
   AAA
 
42 - 02.10.20 - 10:51
(41)Про очередь я это и имел в виду, опрашивать фоновым заданием
А вот по поводу "долбишь запросом ответ" - а если так зависнет? задание в очереди, а напечатать не сможет по каким то причинам? хотя это наверное чистая теория или нет?)
   Tarlich
 
43 - 02.10.20 - 11:03
все проще  - пусть второй пользователь руками выбирает рабочее место - то что у первого
   AAA
 
44 - 02.10.20 - 11:08
(43) что все проще ?
с рабочими местами так примерно и сделал, что юзер может выбрать рабочее место
   Ёпрст
 
45 - 02.10.20 - 18:45
(42) там в любом случае будет ответ от вебсервера, хороший или плохой..или от запроса, что связи с вэбсервером нет, например
   AAA
 
46 - 04.10.20 - 16:27
Ну вроде что хотел, то получилось. Осталось еще немного потестировать и в путь. Самый неприятный документ - это ЧекККМ, в нем все немного иначе, наверное в силу его РМК принадлежности. Больше всего времени и сил уходит на изучение кода птенцов Нуралиева. Бесконечная цепочка оповещений порой вызывает отчаяние ))
Особое спасибо Ёпрст за поддержку и помощь
   Ёпрст
 
47 - 04.10.20 - 17:14
(46) есть такое, поэтому всё и выкинул это к едрени фени. Надоело бодаться с драйверами и прочей мутью.
   AAA
 
48 - 04.10.20 - 18:23
А вот пытаюсь для пробы из 7.7 послать запрос к кассе с JSON, взятым из УТ, ничего не получается
Запрос уходит, но чек не печатается, возвращается вот такой ответ:

<!DOCTYPE html><html lang=ru><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/favicon.ico><title>ДТО WEB-сервер</title><link href=/css/app.b40f794b.css rel=preload as=style><link href=/c
   AAA
 
49 - 04.10.20 - 20:19
Получилось )
   Ёпрст
 
50 - 04.10.20 - 22:06
(48) на счет 77, это к trad-у... он еще в теме :)
   AAA
 
51 - 05.10.20 - 08:33
Чеки то печатаю из 7.7, а вот номер напечатанного чека никак не удается запросить )
   AAA
 
52 - 05.10.20 - 10:21
Победил и это)
   AAA
 
53 - 10.10.20 - 14:59
Моделирую различные ситуации.  Послал чек с ошибочным параметром СтавкаНДС для товарной позиции. Он встал в очередь. Исправляю косяк и снова посылаю, мне естественно отвечают, что чек с таким uuid уже в очереди. Я запросом удаляю его из очереди, но запрос отвечает, что задание либо уже удалено, либо обрабатыватся.  Удаленно быть не может, так как повторные попытки дают тот же результат, но как избавиться от глючного задания? Это же самое важное в реальной эксплуатации И как ваще почистить очередь заданий ?)
   Ёпрст
 
54 - 10.10.20 - 16:03
(53) Гы.. "штатно" -никак, спрашивал уже об этом на форуме поддержки атола.
А так, примитивный запрос к базе вэбсервера..и там, что угодно.
Тупо сам посылай delete from requests where uuid = твойгуид задания
   Ёпрст
 
55 - 10.10.20 - 16:03
Ну или..посылай задание с новым гуидом.
   Ёпрст
 
56 - 10.10.20 - 16:04
Но, это не совсем удобно. Я посылаю гиуд  = уникальный идентификатор самого дока.
   Ёпрст
 
57 - 10.10.20 - 16:07
Еще трабл, с которым столкнулся.. киданул что-то в очередь, касса отвалилась (нет связи например, между самой кассой  и вэбсервером)..
Но как только связь восстановили на другой день, чек напечатался! И из очереди, он запросом к вэбу не удаляется.  :(
Это чревато в алкашке, где запрещена продажа ночью. Можно попасть невзначай :)
   AAA
 
58 - 10.10.20 - 20:36
(54)Спасибо! до базы добрался, пока вьюером почистил. Это весьма хлипкое место получается. Генерировать новый UUID мне тоже не нравится, тоже посылаю
гуид дока, он правда ненаглядный и затрудняет поиск. Может я конечно преувеличиваю масштаб проблемы, потому что надо отладить печать и в реальности
не должно быть "неправильных" чеков, которые в очередь успешно встают, но из кассы не вылазят. Можно поставить какую-то проверку на все обязательные
реквизиты чека. Тогда останутся только физические проблемы - обрывы, бумага
Расширение в УТ 11 переделал от первоначальной задумки. Оставил весь типовой механизм со сменами и прочим барахлом, переопределяю команды, выполняемые
драйвером, иначе довольно много из вырезанногол придется вновь как то вставлять в расширение. В качестве оборудования на рабочие места РМК установил
Эмулятор ККТ. Все-так, имхо, многие куски в УТ11 написано весьма плохо, вроде стараются писать универсально, но никакой универсальности и в помине нет,
не всегда получается просто даже с расширениями. Команда пробития чека универсальным драйвером обвешана операторами и сверху и снизу, попробуй такую
в расширении красиво переопредели. В таком случае проще исправить модуль основной конфигурации, но не стал этого делать)
Потом может вернусь к идее выкидывания кассовых смем и бесконечного поиска подключенного оборудования. В УТ11 давно плотно не залазил, забавно и непривычно
было узнать схему работы с наличкой. Чек из ПКО пробил, а денег в кассе ККМ нет ))
   AAA
 
59 - 10.10.20 - 20:43
Может как-то ограничить время добычи номера пробитого чека. Если номер не получен (чек не пробит), то из 1с удалять запись в базе MYSQL
Внешние источники данных я не пробовал, но наверное должно работать ))
   AAA
 
60 - 11.10.20 - 07:29
Не могу понять. При отправке "кривого" чека (например с неопределенной ставкой НДС) в ряде случаев возвращает статус "inProgress" и никаких ошибок, но чек не печатается. А в ряде случаев конкретно и четко присылает ошибку про неверную ставку НДС позиции.
 
 Рекламное место пустует
   Ёпрст
 
61 - 11.10.20 - 09:04
(60) если еще раз проверять, тоже инпрогресс?
   AAA
 
62 - 11.10.20 - 09:11
(61)Попробую попозже. Никак не могу создать правильный источник ODBC для соединения с базой Атола. Тест не проходит. Имя базы какое надо задавать, по имени идентификатора кассы? и адрес корневой - 127.0.0.1 ?
   Ёпрст
 
63 - 11.10.20 - 09:13
(62) позже кину код, как у компа буду
   Ёпрст
 
64 - 11.10.20 - 09:30
Тип того, 

    База = Новый COMОбъект("ADODB.Connection");
    СтрокаСоединения = "DRIVER=SQLite3 ODBC Driver;Database=" + ИмяФайлаСБазой + ";";//ИмяФайлаСБазой  - полный путь до файла с web.s3db который в программ дата валяется

    База.Open(СтрокаСоединения);
    Записи = Новый COMОбъект("ADODB.Recordset");
    Записи = База.Execute("delete from requests");
   AAA
 
65 - 11.10.20 - 12:28
(64)Спасибо, попробую. Это ADO, тут полный путь. А в источнике ODBC IP, порт и база
   AAA
 
66 - 11.10.20 - 17:31
Никак не получается соединиться с базой) всяко пробовал и как в (64) не получается и источник ODBC при тесте подвисает
Видимо какой то трабл с драйвером. Ставил и 3.5 и 5.x, нифига. Буду разбираться. Причем много лет назад из 7.7 соединялся,
до сих пор работает чтение их системы пропусков
(64)а лрайвер для win7 64 онозначно нужен 64 разрядный ?
   Ёпрст
 
67 - 11.10.20 - 21:50
(66) поди кириллица есть в пути, не ?
   AAA
 
68 - 12.10.20 - 12:56
(67)НЕТ никакой кириллицы ) уже скопировал базу просто в корень диска. Вот строка соединения:

DRIVER=SQLite3 ODBC Driver;Database=G:\web.s3db;

Драйвер установлен. Виден и в программах и компонентах и источниках ODBC. Но 1C его не видит:

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC]
Источник данных не найден и не указан драйвер, используемый по умолчанию

Windows 7(64x)
   Ёпрст
 
69 - 12.10.20 - 13:14
(68) создай файлик с расширением .udl и в нем попробуй создать строку подключения к базе
   AAA
 
70 - 12.10.20 - 13:46
(69)Я там пытался еще утром. Для источника в виде файла базы ничего не выщло.
Поставщика надо выбирать - MICROSOFT OLE DB PROVIDER FOR ODBC Drivers ?
Хотя там больше то нет ничего похожего )
   AAA
 
71 - 12.10.20 - 13:53
Файлик дал вот такую строку
DSN=ATOL;Database=G:\web.s3db;
и еще кучу всего дополнительного. В нем тест проходит. А 1С не изменила поведения
ATOL - это источник с SQLite3
   Ёпрст
 
72 - 12.10.20 - 13:58
(70) не..
   Ёпрст
 
73 - 12.10.20 - 13:59
Сам провайдер от скульлайта установил?
   AAA
 
74 - 12.10.20 - 14:01
(73)да, тут как картинку прицепить ?
   AAA
 
75 - 12.10.20 - 14:03
Точнее - нет, я драйвер только установил, а у них еще свой провайдер?
   Ёпрст
 
76 - 12.10.20 - 14:04
   Ёпрст
 
77 - 12.10.20 - 14:04
Качни отседыва, хотя бы
   AAA
 
78 - 12.10.20 - 14:19
(77)в файлике udl нужный провайдер появился, но там всего один вариант соединения с полем "Источник данных"
При вводе туда имени файла базы и последующем тесте, программа с файликом зависает и закрывается
Но уже где то рядом. А я то сначала не обратил особого внимания на Sqlite3, думал что и драйверы MYSQL могут
работать с источниками в виде файла базы данных
   AAA
 
79 - 12.10.20 - 14:23
Выпью вина. надо отдохнуть. И решение само придет ))
(77)Спасибо огромное за помощь, результат уже дышит в затылок ) Точнее я ему ))
   AAA
 
80 - 13.10.20 - 06:39
Утро наступило, но строчка подключения так и осталась недосягаемой вершиной знаний. Немного резюмируем:
1 - для доступа к одиноко лежащему файлу базы чеков Атол подходить технология OLEDB
2 - для нашего подключения в системе должны быть установлены 
     - драйвер SQLite
     - поставщик (провайдер) SQLite (хотя в примере на Инфомтарте говорится только про драйвер)
3 - обыскал инет, про поставщик SQLite толком ничего не нашел, на одном ресурсе есть какая то обертка, вот ее 
вчера скачивал, регистрировал в реестре и при настройке подключения с помощью UDL-файла появлялся нужный нам поставщик
Но к успеху это не привело ))
4 - по ссылке http://www.ch-werner.de/sqliteodbc/ скачал драйвер, документацию, приложение и внешнюю компоненту SQLite.dll
Никакого поставщика там не нашел (может и плохо смотрю)
5 - куда копать ?))
Епрст - ты давно, много лет в этой теме, выручай )

Я тоже много лет использую VFPOLEDB, но с ним почти всегда не было никаких проблем ) SQLite использовал для 7.7,
но там по моему загружалась dll и отлично работала
   AAA
 
81 - 13.10.20 - 06:46
Ха, вот только что написал сообщение, следом поставил 32-разрядный драйвер SQLite т свершилось чудо, подключение прошло
Фантастика) По моему, в составе драйвера и был тот самый таинственный провайдер)
   AAA
 
82 - 13.10.20 - 07:26
Ну все, и читает, и удаляет )) Епрст - еще раз спасибо )
   Ёпрст
 
83 - 13.10.20 - 09:52
(82) помимо заданий, можно еще результат прибить..на всякий.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.