Форум по программам и оборудованию > > >

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

28.05.2018 0:20


[ТЕМА ЗАКРЫТА]
14.02.2017 19:52
AndreyZh
 
Цитата:
Greben сообщение средствами программы на е-mail пользователя о таком нештатном событии
Главный вопрос!!! - Был ли хотя бы один случай отказа ЕГАИСом в проведении этих, порождаемых автоматом операций трансфера и/или постановки на баланс в зале? Лично мне не приходит в голову, как это может быть возможным?... Хотя: создать операцию списания на складе под ноль и держа палец на F4 в параллеле запустить автомат и сразу отправить списание... и то врятли

Идея почты? ... оставлю памятку в виде кода - ведь когда-то изголялся этим:

Посылка писем из программы:

Код:
*   Описание функции из исходника xHarbour
FUNCTION HB_SendMail( cServer, nPort, cFrom, aTo, aCC, aBCC, cBody, cSubject,;
                      aFiles, cUser, cPass, cPopServer, nPriority, lRead,;
                      lTrace, lPopAuth, lNoAuth, nTimeOut, cReplyTo )
                      
cServer    -> Об.   IP or domain name моего почтового сервера: imap.yandex.ru
nPort      -> -     Порт моего сервера: 25
cFrom      -> Об.   Email адрес отправителя:
aTo        -> Об.   Строка или массив куда отправлять: 
aCC        -> -     Character string or array of email adresses for CC (Carbon Copy)
aBCC       -> -     Character string or array of email adresses for BCC (Blind Carbon Copy)
cBody      -> -     Текстовое тело сообщения или or the filename of the HTML message to send.
cSubject   -> -     Тема сообщения
aFiles     -> -     Массив прикрепляемых файлов к письму
cUser      -> Об.   Имя пользователя для POP3 server
cPass      -> Об.   Пароль для cUser
cPopServer -> Об.   Pop3 имя сервера или его адрес
nPriority  -> -     Приоритет письма: 1=High, 3=Normal (Standard), 5=Low
lRead      -> -     .T. необходимо подтверждение на письмо, по умол. .F.
lTrace     -> -     .T. создается лог успешности отправки, по умол. .F.
lNoAuth    -> -     Отключение метода идентификации
nTimeOut   -> -     Число задержки при отправки, нужно больше при больших вложениях. default 20000 (20s)
cReplyTo   -> -     Куда посылать ответ.

Примеры из форума
Hb_sendmail("mai  ru",25,"dim mai","bbcom",,,"Проверка связи","Темка",,"dim","parolik","pu") // возвращает .f.

cgSmpt  := "smtp.yandex.ru"         //  SMPT адрес своего почтового сервиса
cgOut   := "posxxxod @ yandex.ru"   //  Почтовый адрес отправителя
cgIn1   := "report @ sxxx.ru"       //  Основной адрес получателя писем
cgIn2   := "zhsoft @ mail.ru"       //  Адрес для копий писем
cgPass  := "So1233l014"             //  Пароль своего сервера
cgPop   := "pop.yandex.ru"          //  POP3 адрес своего сервера.

lSend   := HB_SendMail(cgSmpt,25,cgOut,{cgIn1,cgIn2},,,;
                       HB_OEMTOANSI("Тело письма - Hello World"),HB_OEMTOANSI(cDistrib)+" "+Dtoc(dgBeg)+"-"+Dtoc(dEnd),;
                       {"t1.dbf","t2.dbf","t3.dbf"},;
                       cgOut,cgPass,cgPop,,,,,,20000)  //  20сек, м.б. нужно увеличить
15.02.2017 01:25
smogamk
 
Цитата:
AndreyZh Главный вопрос!!! - Был ли хотя бы один случай отказа ЕГАИСом в проведении этих, порождаемых автоматом операций трансфера и/или постановки на баланс в зале? Лично мне не приходит в голову, как это может быть возможным?... Хотя: создать операцию списания на складе под ноль и держа палец на F4 в параллеле запустить автомат и сразу отправить списание... и то врятли
Лично у меня не было, все документы проводятся успешно.
15.02.2017 03:26
winmasta
 
Цитата:
AndreyZh
Главный вопрос!!! - Был ли хотя бы один случай отказа ЕГАИСом в проведении этих, порождаемых автоматом операций трансфера и/или постановки на баланс в зале? Лично мне не приходит в голову, как это может быть возможным?... Хотя: создать операцию списания на складе под ноль и держа палец на F4 в параллеле запустить автомат и сразу отправить списание... и то врятли

[/CODE][/SPL]
не было
15.02.2017 03:27
winmasta
 
Цитата:
Greben IMXO, лучше организовать (в случае появления такой ошибки) запуск внешнего скрипта. Какого - это уже на усмотрение конечного пользователя программы.
Ну а в идеале - сообщение средствами программы на е-mail пользователя о таком нештатном событии.
это организуется системами мониторинга уже (по крайней мере у меня)
20.02.2017 17:53
AndreyZh
 
Отмечусь, дабы успокоить пользователей "УС Лэнд:ЕГАИС" - программа помаленьку развивается перманентно находясь в полуотлаженном состоянии, например на сей момент сделано (что помню ):

1. Расширен спектр "автоматов", вызываемых исключительно из командной строки или ярлычка:

- передачи под остаток со склада в зал алкоголя, пива или всей АП
- автоматический контроль проведения операций ЕГАИС с сохранением лога в текстовый файл, а при внесения e-mail в настройку программы отправка лога на почту...

Туго идёт, то ЕГАИС (тестовый контур) не работает, а то мозги. Например варианты писем:



2. На своих вдоволь покуроченных тестовых данных умучился аннулировать и переотправлять операции, "выяснив", что в сообщениях ЕГАИС указывает код справки Б, а не более логичных условий. Вот и во все режимы добавлен поиск по коду справки Б:



3. Один из позвонивших и пропавших "акционеров" подкинул задачку - оказывается "1с" не умеет подтверждать реакцию поставщика на акт расхождения, да и УСЕга только может подтверждать, но не отказывать... Вот и добавлена фишка:



4. Удалены только режимы (алгоритмы пока в работе), связанные с бесконечно устаревшей технологией ключников и если таковые имеются, то смогу напомнить как всё переводить на единственный ключ

Ваш покорный слуга о Вас помнит, старается успеть за веяниями ЕГАИС, желаниями пользователей помогающих развитию проекта и как только "хвосты" доотладятся - скорее всего к концу месяца, то выложу программу с паролем от версии 31 января
23.02.2017 10:46
AndreyZh
 
Добрый день! Всех мужчин поздравляю с праздником!!!

Заранее извините за "активность" - просто в выходные дни можно спокойно работать, не отвлекаясь на всякую производственную "ерунду"... Вчера была переписка с одним из пользователей, которая "подбросила" ряд задачек и поставила ряд возможных, но глобальных вопросов, как по возможностям "УСЕга", так и по моему отношению к данному проекту.

Пока простое - что с 20 февраля сделано по программе:

1. Для "новичков" обычная заморочка. При первом входе в режим расходных накладных, как правило id пользователя нет в справочнике КА и программа об этом сообщает... и сразу вопрос - и что делать? Сейчас: программа в этом случае сама запрашивает атрибуты КА и прописывает их в таблицу КА, а после продолжает работу

2. Созданные "автоматы", а точнее "выправление минусов" и "трансфер со склада под ноль", как "выяснилось" конфликтовали в автомате "проверки проведения" из-за идентичности номеров - решена данная проблема. Теперь, как и задумывалось корректно отработается последовательный запуск автоматов, если таковой нужен:

- Передача под остаток АП со склада в зал (всего, пива или алкоголя). Затем через час;
- Выправление минусов в торговом зале через постановку на баланс, что 146% будет, если не проводить сплошной проверки всех приходов от поставщиков;
- Запуск поверки проведения операций в ЕГАИС и при желании посылка отчета на почту.

3. Отчет на почту, при наличии проблем с проведением. Тема письма сделана "бросающейся в глаза".

4. Сделано полным отражение номеров всех типов исходящих документов в строке-разделителе. Напомню, что максимальная длина исходящего может быть номера 19 знаков.

5. Сделан ещё один автомат - запуск сервиса ремонта и обновления структур баз программы. Вызов hle Repair. Предназначен для "ночного" обновления версии программы и профилактики состояния внутренней БД.

Например: В некотором каталоге сохраняете файлы обновления (hle.exe), а *.bat файл, запускаемый из планировщика заменяет "всё" и делает перевод структур.
24.02.2017 12:24
AndreyZh
 
"Праздники" продолжаются, хотя на сегодня достаточно. Сделано!

Весь цикл по отправке, анализу результатов (контролю прохождения) расходных накладных по v2 документооборота. Раннее были модифицированы режимы "подтверждения" накладных отправителей. Если Вы перешли на версию 2, то Вы можете принимать и отправлять документы, как по v1, так и по v2!

Визуально режим работы с расходными ТТН изменился только в нюансах:



1. При отправке кнопкой F4 программа Вас запрашивает по какой версии отправить ТТН;
2. У каждой ТТН в выделенной новой колонке отражается по какой версии отправлен документ. По умолчанию программа работает с v1.

Далее программа работает с версиями ХМЛ файлов неявно, т.е. Вам уже безразлично версионность документооборота!

Замечу: При отправке ТТН в v2 получателю, ещё не сменившему свою версию программа дважды ругнется:

1. Что нет кода регистрации ТТН
2. Выдаст отчетное подробное сообщение

Код:
Код регистрации: 
Накладная 42 от 24.02.17 ОТВЕРГНУТА ЕГАИСом 24.02/13:05

Дата ответа 2017-02-24T12:02:29.9880677
Грузополучатель с идентификатором "030000113645" не готов принимать накладные в формате "WayBill_v2".
Владелец ["030000113645"], накладная "42_24.02.17_13:00:38".
Напомню: Узнать какая у Вас или сменить версию документооборота можно в режиме: "Прочие задачи/Смена версии документооборота с ЕГАИС или справка по моей версии". Узнать версию документооборота у контрагента или действующая у него алкогольная лицензия можно в режиме: "Прочие задачи/Запрос-анализ ответов по id КА, АП, ШК АМ, движение по справ.Б sF2/выбираем запрос по КА по версии 2"
27.02.2017 16:39
AndreyZh
 
Реестр изменений «УС Лэнд:ЕГАИС» с 24 января 2017 по 06 марта 2017


Данная версия программы является плохо отлаженной, не документированной и выкладывается для грамотных пользователей для тестирования или использования новых возможностей программы. Пароль архива, как и в версии 31 января 2017 года. Обновление ИСКЛЮЧИТЕЛЬНО с версии 23.01.17 заменой программы и запуском «сервис/ремонт». Замечания, пожелания пожалуйста выкладывайте в данной теме: https://olegon.ru/showthread.php?t=26117 - постараюсь их реализовать в новых релизах. Документации пока нет, но большинство новшеств подробно описано в сообщениях: https://olegon.ru/showpost.php?p=275057&postcount=50 и https://olegon.ru/showpost.php?p=277463&postcount=7 а так же в данной теме со страницы: https://olegon.ru/showthread.php?t=26117&page=5

Напомню, что официальный, отлаженный, документированный - это релиз от 23 января 2017, который без паролей можно скачать из сообщения: https://olegon.ru/showthread.php?t=23281 Следующий официальный релиз планируется на конец марта 2017! Ниже приведен краткий реестр изменений:
  • Автоматы – запуск из командной строки (ярлыка, планировщика) обновления программы, автопогашение «минусов», передача под остаток (алкоголь, пиво, АП) со склада в торговый зал, контроль проведения данных операций через ЕГАИС, формирование и посылка, при необходимости отчета на электронный адрес, указанный (новый параметр) в настройке. В принципе «автоматы» имеют развитую «защиту от дурака», а посему врятли допустят появление некорректных данных в ЕГАИС – так по крайней мере предполагалось
  • Радикальная смена «интерфейса» работы «ключников» под технологические особенности работы торговых сетей. Подробнее: https://olegon.ru/showpost.php?p=277463&postcount=7
  • Переделаны все режимы на «подтверждение» ТТН по второй версии документооборота, если Вы смените свою версию. Включение возможности работы по v2 допускает возможность работы, как по v2, так и по v1 документооборота
  • Переделаны все режимы отправки и контроля проведения отгрузочных ТТН через ЕГАИС по v2 документооборота, что оставляет возможность работы по v1, установленной по умолчанию в программе «УСЕга»
  • В режиме перезапроса ТТН необходимо уточнять, по какой версии она была отправлена поставщиком – разные форматы «запроса»
  • Добавлен сервис отсылки подтверждения или отказа на акт расхождения от получателя, созданного, как в «УСЕга», так и в любой другой программе
  • Изменен алгоритм анализа приходных ТТН в режиме «подтверждения». Сейчас все атрибуты ТТН и раздела «Б»/«1» определяются на этапе открытия ТТН для просмотра, как следствие во всех формах режима отражается регистрационный код ТТН и «правильные» коды справок, а так же «правильно» экспортируется ТТН в реестр приходных накладных
  • В режиме подтверждения приходов программа «узнает» фасованная АП или нет и в зависимости от этого работает с целыми или дробными количествами, что, например позволяет отправлять акт расхождения по нефасованной АП
  • Сервис «приёмки» - контроль пересорта по алкокодам: все логии отражаются в форме отчета с «шапками» и разбиением на страницы; возможен режим прерывания приемки или импорта результатов предыдущего сканирования
  • Добавлен режим ведения в пуле акцизных марок атрибутов приходной ТТН и определения их атрибутов по ШК акцизной марки
  • Обработка дробных количеств при работе с нефасованной АП, а точнее «допустимый» обман – при импорте остатков ЕГАИС закачивается целая часть количества, что позволяет без ошибок работать в остальных режимах программы
  • В списаниях и постановке на баланс по «регистрам» программа предлагает по умолчанию и проставляет в «автоматах» причины «недостача» и «излишки» соответственно, что снимает «проблемы» с новыми контролами ЕГАИС
  • Во всех режимах, где не было - отражаются регистрационные коды и коды справок «А»/«Б»
  • Для ВСЕХ типов операций добавлен режим удаления, неотправленного в ЕГАИС документа по его дате и номеру, что упрощает чистку пакетно создаваемых операций или, например отказанных ЕГАИС (аннулируем, а затем удаляем)
  • Контроль на правильность акта расхождения на ТТН – исправление недокументированной ошибки ЕГАИС
  • Более правильный режим автодопроса остатков, когда сразу запрашивали остатки по складу и торговому залу
  • При входе в режим расходных ТТН, если «меня» нет в списке КА, то программа единожды будет запрашивать мои атрибуты и запишет из в справочнике
  • Во всех типах входящих и исходящих документов и операций в разделительной полосе на колонкой номера документа программа отражает его полностью – в колонке, как правило обрезалось до 5 первых знаков
  • При добавлении операций и документов по складу/ТЗ для одной даты и номера контролируется уникальность записи по алкокода + коду раздела «Б», что раннее было допустимо
  • В режиме «чистки запросов» добавлены и сделана обработка для новых, для программы типов документов и запросов ЕГАИС
  • и конечно исправления множества старых и добавление новых ошибок

P.S. Есть ещё «пара» заказных технологий, например импорт продаж «пива» из внешней УС и автоматическое проведение его списания через ЕГАИС, но, как бы я не являюсь «владельцем» данных технологий, а посему они не описаны... С разрешения владельца полное описание в сообщении: https://olegon.ru/showpost.php?p=277655&postcount=71

P.P.S. 28.02.2017 Исправлена небольшая логическая недоработка и заменён дистрибутив - при передаче со склада в зал "под ноль" на складе не остаются строк с АП, а посему при последующей правке минусов автомат останавливался, ожидая ответа пользователя на вопрос "что делать". Сейчас по умолчанию программа обнуляет остатки склада (ТЗ-если по нему)... ничего страшного, если этот пустой ответ - результат сбоя ЕГАИС... при следующем запросе остатков всё исправится

P.P.P.S. 05.03.2017 Произведены плановые доработки и исправления ошибок. Описания новшеств с картинками есть на странице данной темы и частично на предыдущих: https://olegon.ru/showthread.php?t=26117&page=10 - версия 6 марта 2017:
  • Автоматы – запуск из командной строки добавлен режим просто запросов остатков и обновления внутренних БД. Вызов так же возможен из меню сервиса
  • Исправлен вылет программы из сервиса приемки при обнаружении пересорта по алкокодам
  • Переделан текст лицензии - косметика и дана ссылка на форум
  • Добавлена технологии контроля уникальности по алкокоду и справке «Б» при ручном вводе операций с ЕГАИС
  • Добавлен текст сообщения в шапке формы, если дата текущей версии меньше текущей даты более, чем на 90 дней
  • и конечно исправления множества мелких ошибок
28.02.2017 03:22
winmasta
 
Цитата:
AndreyZh [B][CENTER][SIZE="3"]
P.S. Есть ещё «пара» заказных технологий, например импорт продаж «пива» из внешней УС и автоматическое проведение его списания через ЕГАИС, но, как бы я не являюсь «владельцем» данных технологий, а посему они не описаны.
Можно с этого места поподробнее ? ))) Очень хотелось бы внедрить у себя выгрузку из С+, что для этого нужно сделать с моей стороны ?
28.02.2017 04:41
smogamk
 
Текстовый файл в формате Алкокод;Количество и с именем pivo.txt в папке с УСЕГой. Запуск автомата hle pivo.txt.
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... и Вы можете их просматривать или переотправлять любым способом, по расписанию, например при помощи приведенного сценария. Однако, если в настройке программы указать электронный адрес, то программа так же отправит эти логи на указанный адрес по завершению процедуры... То есть - как изволите!
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, время: 00:20.

 

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