Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > КИС Lack & УС Land

УС Лэнд:ЕГАИС – 2017. Обсуждение программы, предложения, замечания, вопросы : КИС Lack & УС Land

29.03.2024 4:30


28.02.2017 20:57
FinSoft
 
Привет, Андрей.

Если речь про обязательное использование SSL в публичных почтовых сервисах (mail, yandex и т.п.), то можно задействовать curl, он умеет с этим работать. Единственное, для прикрепления файлов надо научиться переводить их содержимое в mime формат.

Если с SSL связываться неохота, то я у себя на хостинге открываю для клиентов простые почтовые ящики и, на случай ответов, переназначаю входящие письма на их основные адреса. Тогда можно использовать старые встроенные библиотеки отправки почты из приложения.
01.03.2017 02:44
winmasta
 
Цитата:
AndreyZh
Удалять, наверное уже неприлично, но слишком уже много впаривания:
Надо будет помочь, в особом порядке... любой отчет по продажам пива присылайте на почту... возможно найду приемлемое решение? Например есть наверняка ШК EAN13+ИНН+КПП производителя и это скорее всего однозначно можно ассоциировать с алкокодом

Вам скорее всего где-то нужно вести соответствие уникальных кодов СМ и алкокодов. По схеме из данной таблицы формировать файл pivo.txt - думаю придворный программист легко решит данную задачу
Буду иметь ввиду. Для начала все таки попробую сам разобраться, интересно же, а не из жадности

Думаю начать с того, что ввести алкокоды для всего пива в карточку в поле "Аннотация" вкладки "Описание", а потом sql запросом получать таблицу где товар из определенной группы (пиво) продавался вчера, с количеством и алкокодом и потом уже распарсить этот ответ в pivo.txt
01.03.2017 03:06
winmasta
 
Сделал задание для check по аналогии с auto и запустил прямо из планировщика, сижу жду, прошло 30 минут, думаю что-то не то. Убил процесс, запускаю этот батник из cmd и мне предлагается ввести данные как при первом запуске. Нажал esc, запустил еще раз, программа просто запустилась и ждет действий. Полез в настройки а там пусто. Начал заново все вводить, но как всегда куча проблем, через temaviewer русские буквы вводятся как знаки вопроса, ну и хрен с ним, введу только цифры. Не могу найти КПП обособленного подразделения, сайт service.fsrar.ru и egais.ru лежат, как же мне везет с утра ))) Потом запустил из cmd hle.exe check программа поругалась, что была неправильно завершена предыдущая работа, надо ремонт базы и т.п. все прошло, закрыл, запустил просто программу, все настройки восстановились. Теперь запуск hle.exe check просто открывает программу и ничего дальше не происходит, видимо дело в 1 часе и в самый первый раз я поторопился.
01.03.2017 07:56
konst
 
Цитата:
winmasta Думаю начать с того, что ввести алкокоды для всего пива в карточку в поле "Аннотация" вкладки "Описание", а потом sql запросом получать таблицу где товар из определенной группы (пиво) продавался вчера, с количеством и алкокодом и потом уже распарсить этот ответ в pivo.txt
В СуперМаге к товарам можно добавлять "дополнительные характеристики"
я у себя так и сделал.
Помимо алкокода егаис, там же добавлены: id производителя и код классификатора ап - для формирования деклараций
01.03.2017 09:39
AndreyZh
 
Доброе утро!

Цитата:
FinSoft Если речь про обязательное использование SSL в публичных почтовых сервисах (mail, yandex и т.п.), то можно задействовать curl, он умеет с этим работать. Единственное, для прикрепления файлов надо научиться переводить их содержимое в mime формат.

Если с SSL связываться неохота, то я у себя на хостинге открываю для клиентов простые почтовые ящики и, на случай ответов, переназначаю входящие письма на их основные адреса. Тогда можно использовать старые встроенные библиотеки отправки почты из приложения.
Я не "программист"! Мне просто нужно было решить очередную задачку - вот и решил её, как смог... Впрочем способ весьма универсальный, что даёт возможность его использования для большого класса задач:

- формирую текстовый файл скрипта
- запускаю скрипт на выполнение

Цитата:
winmasta Думаю начать с того, что ввести алкокоды для всего пива в карточку в поле "Аннотация" вкладки "Описание", а потом sql запросом получать таблицу где товар из определенной группы (пиво) продавался вчера, с количеством и алкокодом и потом уже распарсить этот ответ в pivo.txt
Самое простое и универсальное решение... и даже не нужно "парсить", а просто выборку по SQL запросу сразу выводить в текстовый (по сути CSV) файл pivo.txt

Цитата:
winmasta Сделал задание для check по аналогии с auto и запустил прямо из планировщика, сижу жду, прошло 30 минут, думаю что-то не то. Убил процесс, запускаю этот батник из cmd и мне предлагается ввести данные как при первом запуске. Нажал esc, запустил еще раз, программа просто запустилась и ждет действий. Полез в настройки а там пусто. Начал заново все вводить, но как всегда куча проблем, через temaviewer русские буквы вводятся как знаки вопроса, ну и хрен с ним, введу только цифры. Не могу найти КПП обособленного подразделения, сайт service.fsrar.ru и egais.ru лежат, как же мне везет с утра ))) Потом запустил из cmd hle.exe check программа поругалась, что была неправильно завершена предыдущая работа, надо ремонт базы и т.п. все прошло, закрыл, запустил просто программу, все настройки восстановились. Теперь запуск hle.exe check просто открывает программу и ничего дальше не происходит, видимо дело в 1 часе и в самый первый раз я поторопился.
Тут много абсолютно разных "вопросов":

1. "Сделал задание для check по аналогии с auto и запустил прямо из планировщика, сижу жду, прошло 30 минут, думаю что-то не то."

Нужно просто создать ярлык, в котором прописать hle check, который можно потом протестить вызывая, а потом прописать вызов ярлыка в планировщик. Раскрывая алгоритмы - нужно же иногда знать, что "кушаешь"?

Исходный код процедуры check:
Код:
   
* --------------------------------------------------------------------------------------------------    
*   Проверка состояния отправленных операций автоматических режимов и создание файла лога в каталоге
*   Процедура работает, пытаясь проверять состояние прохождения документов в течении до 30 минут, а 
*   затем при неудаче анализа по документам вываливается с созданием файла сообщения
*   23.02.2017  Различаю операции auto-от минусов от null-передача под ноль... Другая логика проверки
PROC pgCheckAuto()
    LOCA nSecStart:=Seconds(), cst:=Time(), nTrans:=0, nTransNull:=0, nBalans:=0, cTxt:="", cStr:=""
    LOCA cOldCol:=SetColor(), nD:=Day(Date()-1)
    PRIV cNumbAuto:= Alltrim(Str(nD))+"_auto", cNumbNull:= Alltrim(Str(nD))+"_null", dDatAuto:=Date()-1

    //  Включаю режим бездиалоговой проверки прохождения документов и операций
    SET CURS OFF
    lgCheckAuto     := TRUE
    CLS
    DispBox(1,0,24,79,Repl(Chr(219),9),"N+/BG")
    @ 0,0 SAY Padc("Esc! Проверка проведение операций трансфера и постанов.на баланс в ТЗ",80)
    
    //  Бесконечный цикл проведения проверки или по достижению времени положенного на режим
    DO WHIL TRUE .AND. Inkey(10) <> K_ESC
        @ 0,0 SAY Alltrim(Str(Seconds() - nSecStart,5))
        
        //  Проверка происходит максимум в течении 30 минут - потом бесполезно ожидать результата
        IF Seconds() - nSecStart > 1800 THEN EXIT

        //  Анализирую трансфер со склада в торговый зал для сервиса уборки минусов и/или передачи под остаток
        pSkl_shop()
        nTrans      := ngCheckAuto
        nTransNull  := ngCheckNull
        
        //  Анализирую постановку на баланс в торговом зале
        pShopBal()
        nBalans     := ngCheckAuto
        
        //  Смотрю результат проверок прохождения документов и произвожу действия в зависимости от результата 
        IF nTrans > 0 .AND. nBalans > 0 .AND. nTransNull > 0 THEN EXIT
    END
    
    //  Имеет результат проверки. Пишу его в строку файл отчета
    cTxt    := "Check_auto.txt"
    O____A
    ? HB_OEMTOANSI(cgMyIdEga+" "+cgObosName+" ИНН: "+cgInnFirm+" КПП: "+cgKppFirm)
    ? HB_OEMTOANSI("Результат проверки прохождения автоопераций на "+Dtoc(Date())+" Начат: "+cst+" Закончен: "+Time())+CRLF+" "+CRLF
    
    cStr    := "Трансфер уборки минусов: "
    DO CASE
    CASE nTrans = 0;        cStr += "ВЫХОД по истечению времени! Не работает УТМ!"
    CASE nTrans = 1;        cStr += "нет созданных операций"
    CASE nTrans = 2;        cStr += "документ создался, но НЕ ОТПРАВЛЕН В ЕГАИС"
    CASE nTrans = 3;        cStr += "ПРОВЕДЕНО в ЕГАИС"
    CASE nTrans = 4;        cStr += "ОТКАЗ ЕГАИС. Нужно анулировать и руками отправить операцию"
    CASE nTrans = 9;        cStr += "операция и каскадное удаление произведено"
    ENDC
    ? HB_OEMTOANSI(cStr)
    
    cStr    := "Трансфер передачи под 0: "
    DO CASE
    CASE nTransNull = 0;    cStr += "ВЫХОД по истечению времени! Не работает УТМ!"
    CASE nTransNull = 1;    cStr += "нет созданных операций"
    CASE nTransNull = 2;    cStr += "документ создался, но НЕ ОТПРАВЛЕН В ЕГАИС"
    CASE nTransNull = 3;    cStr += "ПРОВЕДЕНО в ЕГАИС"
    CASE nTransNull = 4;    cStr += "ОТКАЗ ЕГАИС. Нужно анулировать и руками отправить операцию"
    CASE nTransNull = 9;    cStr += "операция и каскадное удаление произведено"
    ENDC
    ? HB_OEMTOANSI(cStr)
    
    cStr    := "Постановка на баланс ТЗ: "
    DO CASE
    CASE nBalans = 0;       cStr += "ВЫХОД по истечению времени! Не работает УТМ!"
    CASE nBalans = 1;       cStr += "нет созданных операций"
    CASE nBalans = 2;       cStr += "документ создался, но НЕ ОТПРАВЛЕН В ЕГАИС"    
    CASE nBalans = 3;       cStr += "ПРОВЕДЕНО в ЕГАИС"
    CASE nBalans = 4;       cStr += "ОТКАЗ ЕГАИС. Нужно анулировать и руками отправить операцию"
    OTHE;                   cStr += "операция и каскадное удаление произведено"
    ENDC
    ? HB_OEMTOANSI(cStr)
    C____A

    //  При наличии электронного адреса в настройке отправляю письмо по нему с результатами проверки. Ору, если есть проблемы
    IF !Empty(cgemail)
        cStr    := ""
        IF (nBalans=0) .OR. (nBalans=2) .OR. (nBalans=4) .OR. (nTrans=0) .OR. (nTrans=2) .OR. (nTrans=4) .OR. (nTransNull=0) .OR. (nTransNull=2) .OR. (nTransNull=4) THEN cStr := "ПРОБЛЕМА! "
        pzSendMail(cgemail,"УСЕга <USLandEgais_yandex_ru>",;
                   cStr+cgMyIdEga+" Проверка автоопераций на "+Dtoc(Date()),HB_ANSITOOEM(MemoRead(cTxt)),;
                   "smtp.yandex.ru","USLandEgais_yandex_ru","пароль",TRUE)
    ENDI
    
    //  Сообщение об успешности прохождения всех этапов и выход из пограммы
    pCloseUSega()
    fErr_Quit("Все этапы проверки прохождения операций трасфера и постановки на баланс произведены! Спасибо за ожидание!",cColor)    
    RETU


то есть проверка будет идти 30 минут, а потом вывалиться при неработающем УТМ, но на всякий случай рекомендую её запускать через 15-30 минут после "автоматов" отправляющих документы

2. "Убил процесс, запускаю этот батник из cmd и мне предлагается ввести данные как при первом запуске. Нажал esc, запустил еще раз, программа просто запустилась и ждет действий. Полез в настройки а там пусто."

а. Программа при каждом запуске, если это "первый" пользователь (напомню, что она сетевая, т.е. одновременно с ней, в одной базе могут работать неограниченное число пользователей) проверяет как завершил "последний" пользователь работу с ней. Если приложение "убить", то это будет аварийным завершением и при следующем (любом способе) запуске программа поговорит с Вами о необходимости ремонта БД, которую действительно можно испортить, например выключив комп.

б. Авто процедуры предполагают, что используется рабочая, настроенная программа, т.е. создав новый каталог с нуля и попытки их запуска не приведут ни к чему хорошему... То есть в настройках будет пусто в этом случае... Вообще таблица настроек находится вне БД программы.

3. "Начал заново... Не могу найти КПП обособленного подразделения"

а. КПП программе нужно лишь для её кассового аппарата, ну и более подробного информирования;
б. ИНН нужно для кассы и различения контрагентов по признаку "свой-чужой", что более важно, например в сервисе приёмки АП
01.03.2017 16:07
FinSoft
 
Цитата:
AndreyZh Я не "программист"! Мне просто нужно было решить очередную задачку - вот и решил её, как смог... Впрочем способ весьма универсальный, что даёт возможность его использования для большого класса задач:

- формирую текстовый файл скрипта
- запускаю скрипт на выполнение
Андрей, стесняюсь спросить, а кто ты?
Я вот тоже всем говорил, что не программист, а в последнее время просто не обращаю на это внимания. Программисты бывают очень состоятельными людьми, ничего зазорного в этом названии не вижу...
01.03.2017 16:40
AndreyZh
 
Цитата:
FinSoft Андрей, стесняюсь спросить, а кто ты?
ХЗ

Сей момент сижу перед сразу четырьмя ПК, 5 стопками бумаг и пытаюсь что-то, а всё срочно сделать... Всё идёт туго - наверное вечер:

1 ПК. Win10 - у буха пропал принтер и не хочет обнаруживаться... наверняка какое-то изменение правил Win при очередном обновлении, но срочно, т.к. завтра в "полях"

2 ПК Устанавливаю с нуля Win 7, что бы вспомнить, как настраивать атоловский драйвер

3 ПК В принципе работает, но упирается тестовая програмка печати чеков... мне ПК в пн. настроили и мучаю кассу, мелкими перебежками вникаю в программирование on-line кассы Атол 30Ф

4 ПК Этот XP торчу в интернете и выуживаю подсказки по проблемкам

1 Пачка - "Драйвер торгового оборудования"
2 Пачка - "Драйвер ККМ - руководство программиста"
3 Пачка - Инструкция к программе по "экологии"... что-то у буха не получается... изредка бегаю к его ПК
4 Пачка - поправка к закону 171-ФЗ. Руководитель попросил на русском языке, что за платежи с него хотят получить за правку в лицензии при закрытии магазина
5 Пачка - черновики (мои записи) - записки сумашедшего...

Хотя уже мозги закипели... да и win7 упирается с обновлениями... на сегодня уже перебор... т.ч. не программист и не имею возможности и желания неделями выискивать идеальные решения задачек!!!
01.03.2017 18:01
AndreyZh
 
Цитата:
AndreyZh ХЗ
1 ПК. Win10 - у буха пропал принтер и не хочет обнаруживаться... наверняка какое-то изменение правил Win при очередном обновлении, но срочно, т.к. завтра в "полях"
Всего навсего надо было снова зайти с учеткой Guest и запомнить её

Цитата:
AndreyZh 2 ПК Устанавливаю с нуля Win 7, что бы вспомнить, как настраивать атоловский драйвер
Помнишь писал, что дважды из-за него переустанавливал ОС, а оказывается нужно было в настройке кассового аппарата задать интерфейс USB, а всё остальное ставится и настраивается с "полпинка"

Цитата:
AndreyZh 3 ПК В принципе работает, но упирается тестовая програмка печати чеков... мне ПК в пн. настроили и мучаю кассу, мелкими перебежками вникаю в программирование on-line кассы Атол 30Ф
Всё элементарно... нужно просто "курить мануал" на предмет новых методов... открытие смены, закрытие/печать чека работает... а дальше - нужно ли это мне ещё буду думать?

Теперь можно уже со спокойной совестью перемещаться домой... благо уже пробки рассосались
02.03.2017 03:54
winmasta
 
Опять стал жертвой своей невнимательности (и, в минимальной степени, путаницей с сверсиями, которая, скорее всего тоже только в моей голове). Пытался делать check на версии от 31.01.17, утром (как всегда) это понял, откатился до версии от 23.01.17 и обновился до 28.02.17 и все зае... заработало.
02.03.2017 15:43
winmasta
 
Проверил, все работает, но почему чек не делает каскадное удаление запросов ?

PS настроил мониторинг Check_auto.txt - любо дорого, осталось пиво прикрутить и можно расходиться, до следующих внедрений )))
Часовой пояс GMT +3, время: 04:30.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.