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

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

28.03.2024 17:03


28.02.2017 09:43
AndreyZh
 
В сообщении: https://olegon.ru/showpost.php?p=277602&postcount=68 изменил релиз, исправив маленькую логическую недоработку, описанную в примечании.

Цитата:
smogamk Текстовый файл в формате Алкокод;Количество и с именем pivo.txt в папке с УСЕГой. Запуск автомата hle pivo.txt.
Коль скоро владелец технологии сам её озвучил - не смею возражать... хотя присланной помощи на французский коньяк не хватило, ну и ладно добавил свои - не обеднел

Надеюсь Евгений так же поделится со всеми обработкой для СМ, а я тогда размещу полное описание (инструкцию) по режиму:

В данном режиме производится списание пива с причиной "реализация" на основе списка алкогольной продукции, перечисленном в файле с точным именем: pivo.txt формата: алкокод;количество, где строки разделяются символом смены каретки CRLF. Вызов режима: hle pivo.txt

Кодировка файла не важна, т.к. файл содержит только числовые значения, пробелы игнорируются, допустимо повторение алкокодов, тогда программа суммирует количества по алкокодам

Программа производит некоторые проверки корректности переданной из файла информации, ошибки по товарам игнорируются, в том смысле, что программа не пропускает ошибочные записи. Проверки:

1. Проверка существования переданного файла в каталоге программы
2. Проверка удовлетворения формально правильному формату переданных в файле значений - алкокод точно 19 знаков и количество больше нуля и меньше 999999
+ Анализ корректности ссылки на внутреннюю базу данных - наличие файла остатков
+ Если актуальность остатков более часа, то запрашиваются свежие остатки
3. Возможность открытия рабочих таблиц программы и целостность рабочих индексов
4. Контроль повтора операции продажи пива на предыдущий день с номером дд_pivo
5. Ошибка - нет товара в остатках торгового с заданным алкокодом
6. Нулевой остаток товара в справочнике остатков ТЗ с алкокодом
+ отражаю предполагаемое к списанию количество и наименование АП из справочника остатков ТЗ
7. АП не является пивом-продажа через списание запрещена КВАП не из списка 500,510,520,261,262,263
+ отражаю предполагаемое к списанию количество и наименование АП из справочника остатков ТЗ
8. Если продажа больше остатка, то продаем под остаток, но даём сообшение об ошибке
+ отражаю предполагаемое к списанию количество и наименование АП из справочника остатков ТЗ

Далее отправляется операция списания в ЕГАИС, а затем в течении получаса проверяется прохождение операции через ЕГАИС. При этом возможны ошибочные ситуации:

9. ВЫХОД по истечению времени! Не работает УТМ! Или задержки в обработке документов
10. Нет созданных операций - сбой программы, возможно по разрушению внутренних данных или по всему списку товаров была блокировка создания строк операций
11. Документ создался, но НЕ ОТПРАВЛЕН В ЕГАИС, напримеротвалился УТМ или малая пауза в настройке
12. ОТКАЗ ЕГАИС. Нужно анулировать и руками отправить операцию. Смотреть Ticket о причине запрета

Затем программа переименовывает файл pivo.txt в pivo.act, сохраняет полный анализ проведения работ по списанию пива, а так же полный реестр ошибок в файле pivo_test.txt. При указании в настройках электронного адреса отправляет письмо, содержащее атрибуты магазина и текст из pivo_test.txt

Письма отправляются, используя почтовый сервис yandex.ru от имени УСЕга <USLandEgais ....>, при этом в почтовом ящике информация о получателе не сохраняется... и на этот адрес письма писать бесполезно

Проверки, работы с остатками и комбинации автоматов программы - их можно настроить в ярлыках и вызывать посредством планировщиков Windows или вызывая двойным кликом на ярлыке и ВСЁ ЗАВИСИТ ОТ ТЕХНОЛОГИИ РАБОТЫ С ОСТАТКАМИ СКЛАДА (РЕГ1) И ТОРГОВОГО ЗАЛА (РЕГ2) и САМОЕ ВАЖНОЕ - ОСТАТКИ МОЖНО ЗАПРАШИВАТЬ НЕ ЧАШЕ РАЗА В ОДИН ЧАС.

Пример сценария:

1. Запрашиваем остатки склада и зала. Переводим ПИВО под остаток со склада в зал. Можно автоматом: hle VseVZalPivo Другие возможности: VseVZalAlco - только алкоголь, VseVZalVse - алкоголь и пиво

2. Проверям проведение через ЕГАИС данных операций - F7 на операции. Можно автоматом: hle Check

3. Выправление минусов по алкоголю, проданному по чекам. Вызов режима из сервиса или автоматом: hle Auto

4. Продажа пива через списания. Данный режим: hle pivo.txt

Программа все операции проводит предыдущей датой и с номерами: <номер дня месяца>_ и в зависимости от типа автоматической операции:

auto - выправление минусов
null - трасфер под ноль
pivo - продажи пива через списания
28.02.2017 14:35
smogamk
 
Цитата:
AndreyZh Надеюсь Евгений так же поделится со всеми обработкой для СМ
Если это ко мне, то я пользуюсь другой товароучеткой, не СМ.
28.02.2017 15:07
AndreyZh
 
Цитата:
smogamk Если это ко мне, то я пользуюсь другой товароучеткой, не СМ.
Хотя бы под Вас это (по пиву) делалось?
28.02.2017 16:05
winmasta
 
По пиву, как время будет попробую прикрутить к СМ+, правда не знаю в какое поле алкокод в карточке товара писать, версия то не для ЕГАИС. Сейчас правда времени совсем нет, но как только (если) сделаю, сразу же выложу сюда.

Тут нарисовалась другая "проблема" про причине моей, возможно, невнимательности:

1. Программа отработала в авторежиме в 2:00
2. В 8:00 я "передвинул" УТМ 2.0.3 и поставил УТМ 2.0.5
3. В 12:00 мне сообщают, что в программе автотрансфер висит в статусе отправленный и нет никаких ответов по нему.

Тут я и понимаю, что ответы остались в 2.0.3 похоже. Пробовал "подсовывать" новой УТМ старую базу - вообще не запускается. Подскажите как выйти из ситуации наиболее правильно, если из нее вообще нужно выходить.
28.02.2017 16:14
AndreyZh
 
Цитата:
winmasta Тут нарисовалась другая "проблема" про причине моей, возможно, невнимательности:
Вполне возможно, что тикеты по данному трасферу остались в базе 2.0.3, если она не переносилась... Ну и нехай с ней - надпись "отправлено" это статус документа в "УСЕга" и всего лишь, а главное, что бы остатки перешли по регистрам

П.С. Разумнее через 15 минут после запуска auto запускать hle check для контроля проведения через ЕГАИС... тогда такие накладки не произойдут
28.02.2017 18:13
AndreyZh
 
Цитата:
winmasta По пиву, как время будет попробую прикрутить к СМ+, правда не знаю в какое поле алкокод в карточке товара писать, версия то не для ЕГАИС. Сейчас правда времени совсем нет, но как только (если) сделаю, сразу же выложу сюда.
Удалять, наверное уже неприлично, но слишком уже много впаривания:
Надо будет помочь, в особом порядке... любой отчет по продажам пива присылайте на почту... возможно найду приемлемое решение? Например есть наверняка ШК EAN13+ИНН+КПП производителя и это скорее всего однозначно можно ассоциировать с алкокодом

Вам скорее всего где-то нужно вести соответствие уникальных кодов СМ и алкокодов. По схеме из данной таблицы формировать файл pivo.txt - думаю придворный программист легко решит данную задачу
28.02.2017 18:19
Greben
 
Цитата:
AndreyZh Письма отправляются, используя почтовый сервис yandex.ru от имени УСЕга <USLandEgais ....>,
Т.е. возможность прикрутить свой "исходящий почтовый сервис" пока отсутствует?
28.02.2017 19:21
AndreyZh
 
Цитата:
Greben Т.е. возможность прикрутить свой "исходящий почтовый сервис" пока отсутствует?
Не являюсь хорошим программистом! Не понимаю фразу "свой "исходящий почтовый сервис""! Более того, как оказалось - мои старые наработки не работают по новым требованиям почтовиков... "придумал" колхозный, но универсальный подход и могу его "раскрыть". Суть: программа генерирует текстовый код сценария VBScript и запускает его на выполнение...

Взятый за основу код сценария:
Код:
Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
    .To = "zhso--mail.ru" 'куда отправляем
    .From = "Андрей <poseyd---ndexru>" 'имя отправителя + Email
    .Subject = "Тема письма"
    .TextBody = "Body. Line 1" & VbCrLf & "Body. Line 2" & VbCrLf & "Body. Line 3" 'Сообщение  .AddAttachment "Check_auto.txt" 'Прикрепить файл
    .TextBodyPart.Charset = "windows-1251" 'русская кодировка
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange
    .Item(v_Conf & "smtpserver") = "smandex.ru" 'Адрес SMTP-сервера
    .Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации
    .Item(v_Conf & "sendusername") = "poseydon20so-x.ru" 'здесь имя пользователя
    .Item(v_Conf & "sendpassword") = "Sol---14" 'пароль
    .Item(v_Conf & "smtpserverport") = 25 'порт (альтернативный - 465)
    .Item(v_Conf & "smtpusessl") = True 'использовать ли шифрованое подключение SSL
    .Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения
    .Update
End With
    .send
End With
Set o_Mess = Nothing


Сделанная на его основе универсальная функция отправки почты:
Код:
*   Параметры:
*       cTo         Адрес почты куда посылаем письмо
*       cFrom       Адрес отправителя на почтовом сервисе
*       cSub        Тема письма
*       cBody       Тело письма - текст на строки разбивается входящим форматированием
*       cSmpt       Адрес SMTP-сервера
*       cUser       Имя адреса отправителя
*       cPass       Пароль на сервисе отправителя
*       lSSL       Использовать ли шифрованое подключение SSL
PROC pzSendMail(cTo,cFrom,cSub,cBody,cSmpt,cUser,cPass,lSSL)
    LOCA nT:=0, nI:=0, cStr:="", cbd:=cBody
    PRIV cFile:="SMTPMess.vbs"
    
    //  Преобразую cBody, если в нём имеются символы перевода строк CRLF в формат VBS
    nT      := NumToken(cBody,CRLF)
    IF nT > 0
        cBd     := Token(cBody,CRLF,1)
        FOR nI := 2 TO nT DO cBd += [" & VbCrLf & "]+Token(cBody,CRLF,nI)
    ENDI
    
    //  Формирую текствовую строку в досовой кодировке
    cStr    += [Dim oMes, v_Conf]+CRLF
    cStr    += [v_Conf = "http://schemas.microsoft.com/cdo/configuration/"]+CRLF
    cStr    += [Set oMes = CreateObject("CDO.Message")]+CRLF
    cStr    += [With oMes]+CRLF+Spac(3)
    cStr    += [.To = "]+Alltrim(cTo)+["]+CRLF+Spac(3)                              //  куда отправляем
    cStr    += [.From = "]+Alltrim(cFrom)+["]+CRLF+Spac(3)                          //  имя отправителя + Email
    cStr    += [.Subject = "]+Alltrim(cSub)+["]+CRLF+Spac(3)                        //  Тема письма
    cStr    += [.TextBody = "]+cBd+["]+CRLF+Spac(3)                                 //  Сообщение - тело письма

*   Какие-то проблемы были с прикрплением файлов - пока не делаю .AddAttachment = "Check_auto.txt" 'Прикрепить файл
    cStr    += [.TextBodyPart.Charset = "windows-1251"]+CRLF+Spac(3)                //  По умолчанию - русская кодировка
    cStr    += [With .Configuration.Fields]+CRLF+Spac(6)
    cStr    += [.Item(v_Conf & "sendusing") = 2]+CRLF+Spac(6)                       //  без использования каталога Server Exchange
    cStr    += [.Item(v_Conf & "smtpserver") = "]+Alltrim(cSmpt)+["]+CRLF+Spac(6)   //  Адрес SMTP-сервера
    cStr    += [.Item(v_Conf & "smtpauthenticate") = 1]+CRLF+Spac(6)                //  Тип авторизации
    cStr    += [.Item(v_Conf & "sendusername") = "]+Alltrim(cUser)+["]+CRLF+Spac(6) //  Имя пользователя - отправителя
    cStr    += [.Item(v_Conf & "sendpassword") = "]+Alltrim(cPass)+["]+CRLF+Spac(6) //  пароль
    cStr    += [.Item(v_Conf & "smtpserverport") = 25]+CRLF+Spac(6)                 //  порт (альтернативный - 465)
    cStr    += [.Item(v_Conf & "smtpusessl") = ]+IF(lSSL,"True","False")+CRLF+Spac(6)   //  использовать ли шифрованое подключение SSL
    cStr    += [.Item(v_Conf & "smtpconnectiontimeout") = 60]+CRLF+Spac(6)          //  Время до завершения повторных попыток подключения
    cStr    += [.Update]+CRLF+Spac(6)
    cStr    += [End With]+CRLF+Spac(3)
    cStr    += [.send]+CRLF
    cStr    += [End With]+CRLF
    cStr    += [Set o_Mess = Nothing]
    
    //  Сохраняю строку в файле с заданным именем в Windows кодировке
    MemoWrit( cFile, HB_OEMTOANSI(cStr) )
    RUN &cFile
    
    //  Удаляю за собой скрипт
    fErase(cFile)
    RETU


Т.е. она допускает использование "любого" сервиса, если правильно понял, что Вы имеете ввиду
28.02.2017 20:53
AndreyZh
 
Подумал, вспомнил! В догонку...

Цитата:
Greben Т.е. возможность прикрутить свой "исходящий почтовый сервис" пока отсутствует?
Возможность отправки отчета по почте средствами "УСЕга" сделана для небольших и небогатых фирм, а техника, в общем:

В процессе контроля прохождения операций через ЕГАИС программа создает диагностические файлы в Win кодировке. Для auto - Check_auto.txt Для Pivo.txt - pivo_test.txt... и Вы можете их просматривать или переотправлять любым способом, по расписанию, например при помощи приведенного сценария. Однако, если в настройке программы указать электронный адрес, то программа так же отправит эти логи на указанный адрес по завершению процедуры... То есть - как изволите!
Часовой пояс GMT +3, время: 17:03.

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