Форум для людей связанных с ЕГАИС

  • Ноября 21, 2018, 09:11:32 am
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Выгрузка кода фиксации ТТН из ЕГАИС в учетную систему  (Прочитано 5138 раз)

JK

  • Профи
  • ****
  • Сообщений: 491
  • Производитель пива и пивных напитков
    • Просмотр профиля

поделились бы решением  ::)

Решение уже было тут озвучено, могу предложить свою, немножко подкорректированную рабочую версию:

--------------- Файл Script_now.sql (в 866 кодировке!) ---------------
USE [RFTS-ALCO]
GO

select
wb.ID,
dt.SHORT_DESC,
wb.serial,
dfo.DOC_NUMBER,
dfo.CREATE_DATE,
dfo.FIX_NOTIFICATION_DATE,
dfo.FIX_NOTIFICATION_ID
FROM  DBO.WRH_WAYBILL WB
    INNER JOIN DOCFLOW_OBJECT DFO ON WB.[ID] = DFO.ID
    INNER JOIN DBO.REF_LIST_DATA DT ON DT.ID = 36
    AND DT.DATA_ID = DFO.REF_DATA_ID36
where
    CAST(CONVERT(varchar( 8 ), dfo.FIX_NOTIFICATION_DATE, 112) AS datetime) = CAST(CONVERT(varchar( 8 ), GETDATE(), 112) AS datetime) and
    dfo.FIX_NOTIFICATION_DATE IS NOT NULL
    and FIX_NOTIFICATION_ID IS NOT NULL
    and dt.SHORT_DESC ='Сведения об отгрузке'
GO

--------------- Файл  req.cmd ---------------
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\OSQL.EXE" -S localhost -E -i .\Script_now.sql -h -s "," -o .\out.txt


Оба файла положить в какой-нибудь каталог на Сервере БД под юзером, имеющим доступ к MS SQL.
Запустить req.cmd.
Результат: в файле out.txt должна выгрузиться информация по кодам к ТТН за текущие сутки, поля разделены запятой.
Можно импортировать в 1С (или другую учетную систему), предварительно состряпав программку импорта из этой текстухи.

Ну а можно сгенерить XML, по предложенному ЦентрИнформом формату и загружать в учетную систему из него:

<NewDataSet>
<Table>
    <idTTN>177207000001453942</idTTN>
    <doctype>Сведения об отгрузке</doctype>
    <serial>АГ</serial>
    <doc_number> № 00000005</doc_number>
    <dateTTN>12.01.2010</dateTTN>
    <FIX_NOTIFICATION_DATE>12.01.2010</FIX_NOTIFICATION_DATE>
    <FIX_NOTIFICATION_num>77000002132575</FIX_NOTIFICATION_num>
  </Table>
</NewDataSet>



Но это только сам запрос.

У меня же стоит более сложный комплекс, который отслеживает изменения в файле выгрузки (чтобы не перегружать учетную систему повторяющимися данными) и выгружает только новые данные, которые еще не предлагались учетной системе. Помимо этого формируется XML (по предложенной выше схеме) - для более универсального подхода. Ну и есть возможность динамически менять периодичность опроса БД ЕГАИС, а также параметры самого SQL-запроса (например если потребуется выгрузить за несколько дней). Все это делается автоматически через запросы HTTP по внутренней сетке - для удобства (типа свой УТМ  8) ).
В связи с тем, что система получилась распределенной, завязанной на другие локальные http и sql сервера, и заточенной под мои конкретные условия - предложить ее Вам целиком в таком виде не представляется возможным...
Но общий подход именно такой.
Записан
Производитель пива и пивных напитков более 300 тыс. дал в год

req

  • Гуру
  • *****
  • Сообщений: 861
    • ICQ клиент - 406406260
    • Просмотр профиля
    • E-mail

вот спасибо! попробую прицепить к себе  ;)
Начал с помощью планировщика скуль и xpcmdshell но ч то до конца не добил.
Записан

JK

  • Профи
  • ****
  • Сообщений: 491
  • Производитель пива и пивных напитков
    • Просмотр профиля

req, а какое расписание запуска выгрузки Вы планируете сделать?
Я вот думаю, как бы оптимальней (с наименьшей нагрузкой для оборудования) это сделать:
- типа в рабочее время запрос делать каждые 3-10 минут;
- в нерабочее время (на всякий случай) - раз в час.
Рабочее/нерабочее/выходные/праздники на раз определяются по активности операторского оборудования  ;)  - чтоб не выгружать зря когда никого нет на работе...
А Вы как?
Записан
Производитель пива и пивных напитков более 300 тыс. дал в год

req

  • Гуру
  • *****
  • Сообщений: 861
    • ICQ клиент - 406406260
    • Просмотр профиля
    • E-mail

ч то я так скрупулезно и не собирался подходить к этому вопросу)) жутко времени не хватает что бы сделать как следует.
думал для начала в планировщике запускать раз в 5 минут - запрос не тяжелый, файл перезаписывается (файл сделать простым: серия ТТН, номер ТТН, номер фиксации, дата фиксации), а дальше этот файл через регламентное задание подтягивать в 1С и все разруливать ей. А можно и вообще - инициировать запуск cmd-шника из 1С - тогда и контроль на пользаков можно навесить  ;)
Имхо, идеально делать сейчас не вариант... скоро чую утм надо будет ставить
п.с. надо запрос скуль доработать и добавить туда сведения о получении) а в идеале - в конце рабочего дня делать сверки 1С и ЕГАИС - т.е. еще и таб. часть надо)))

ах да, забыл: http://egaisa.net/forum/index.php?topic=795.0
так что скоро надо будет не только фиксацию запросами вытягивать)))) готовьтесь  :D
« Последнее редактирование: Октября 09, 2015, 12:25:30 pm от req »
Записан

req

  • Гуру
  • *****
  • Сообщений: 861
    • ICQ клиент - 406406260
    • Просмотр профиля
    • E-mail

я пока вплотную не стал заниматься этим вопросом из за своей структуры - у меня завод и 5 складов. Следовательно 6 баз егаис, а 1С - одна (работают по рдп) так что 1С надо сначала научить что делать)))
+ к тому у меня на всех о.п. сети егаис и 1С разделены((( придется все делать через сетевые хранилища(((
Записан

JK

  • Профи
  • ****
  • Сообщений: 491
  • Производитель пива и пивных напитков
    • Просмотр профиля

а в идеале - в конце рабочего дня делать сверки 1С и ЕГАИС - т.е. еще и таб. часть надо)))

Тоже про это думаю "думу тяжелую"... 

Чувствую, что при моих отгрузках в сутки более 150 накладных - наверняка будут косяки...
Но если даже и сверить в конце дня - что потом делать в случае обнаружения не схождения?
Ладно, если просто не выгрузилась ТТН - найти и выгрузить.
А если не выгрузилась из 1С или не загрузилась в ЕГАИС какая-либо позиция внутри какой-нибудь накладной?
Пытаться оперативно искать ошибку и исправлять зафиксированную ТТН в ЕГАИС?
Застрелиться!   >:(
Записан
Производитель пива и пивных напитков более 300 тыс. дал в год

req

  • Гуру
  • *****
  • Сообщений: 861
    • ICQ клиент - 406406260
    • Просмотр профиля
    • E-mail

зато у вас остается время на новую версию!  можно же попробовать собрать итого по ттн в дкл, сохранить в том же файле и сравнивать с ттн 1с  ;)
Записан

JK

  • Профи
  • ****
  • Сообщений: 491
  • Производитель пива и пивных напитков
    • Просмотр профиля

Начал с помощью планировщика скуль и xpcmdshell но ч то до конца не добил.

Я себе накидал планировщик под эту задачу на С (короче exe-шник) - работает вот уже несколько дней нормально, без вылетов...  :)
Он попутно еще и рабочий/нерабочий день определяет по активности машин операторов (если не нужно - можно этим и не пользоваться).
Короче - могу предложить.   ;)
Записан
Производитель пива и пивных напитков более 300 тыс. дал в год

req

  • Гуру
  • *****
  • Сообщений: 861
    • ICQ клиент - 406406260
    • Просмотр профиля
    • E-mail

было б прекрасно! мне интересно  ;)
а путь сохранения результатов можно выставлять?  ::)
Записан

JK

  • Профи
  • ****
  • Сообщений: 491
  • Производитель пива и пивных напитков
    • Просмотр профиля

было б прекрасно! мне интересно  ;)
а путь сохранения результатов можно выставлять?  ::)

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

Напишите мне в личку Ваш e-mail, я вышлю программку и пояснения к ней. Там все элементарно просто... 
Записан
Производитель пива и пивных напитков более 300 тыс. дал в год
 

Яндекс.Метрика