Банковская выписка из 7-ки в 8-ку

  • Автор темы Aidjek
  • Дата начала
A

Aidjek

#1
Доброе время суток люди, которые явно больше понимают меня в программирования и особенно на 1с.

Есть такая вот ситуация: стоят 2 сервака с 1с: 7.7-нелицензионный и 8.1-лицензионный. На 7-ке работают в основном бухи, на 8-ке все остальные: люди которые продают товары, магазины - относящиеся к некой фирме N. Каждый день происходят 2 вещи:

1) в 11 часов ночи - происходит перезакачка всего что было продано за день из 8-ки в 7-ку: всё это происходит автоматом, настроено ребятами из 1с, стоит в списках запланированных задач Windows и работает эта штука как часы, правда иногда бывают сбои - но меня это не касается.

2) в 11 часов следующего дня - требуется сделать банковскую выписку из 7-ки в 8-ку за весь прошлый день - и тут уже вступает в ход грубая ручная сила, т.е. делать это надо ручками, причём каждый день. Действия сами по себе несложные - подробнее опишу ниже в скринах и комментариях.

Делать требуется поэтапно: заходим удалённо на 1с-7-ку под ником root с соответствующим паролем и запускаем файл "ВыгрузкаВыписок.ert"



Проставляем в появивщемся окне дату (вчерашнего дня) в обоих позициях, указываем папку куда всё это нужно сохранять (по умолчанию я сделал расшаренную папку на серваке с 1с-7-кой) и нажимаем "Сформировать" или Ctrl+Enter



Теперь заходим удалённо на 1с-8-ки также с правами админ и естественно с незамысловатым паролем, заходим в меню Файл и выбираем файлик "ЗагрузкабанковскихВыписок.epf"



В появившемся окне указываем папку и файл, который нам сделал 1с-7ка и также жмём "Сформировать" или Ctrl+Enter



вот в принципе и всё - через 2-3 минуты главбух радостно сообщает что выписка прошла.

И всё было бы хорошо - но встала задача - а почему бы и это не автоматизировать, как в 1 случае, но ребятам из 1с ничё про это не говорили - решили сделать всё своими силами.

Вот теперь можно сформулировать задачу: сделать чтобы эта выписка делалась самостоятельно в 11 часов каждого дня, причём за прошлый день, и запускалось всё это сначало на 7-ке, потом проверялось если файл был создан и после этого запускалось на 8-ке. Процедура занимает не больше 1 минуты(по максимуму, если не делались выписки за 3-4 дня). Расшаренная папка и оба файла могут находится где-угодно по желанию(никаких ограничений).


К сожалению, я программированием занимался в университете и то только в Паскале и в Делфи, но алгоритм сих действий могу предложить - точнее не алгоритм, а просто моё представление о том, как это можно сделать.

Алгоритм: моё понимание этой проги такое: состоит из 2-х частей:
1-часть:

1. запускаем 1с-7ку - под юзером root с паролем *************
2. запускаем файл: "ВыгрузкаВыписок.ert" (проверял - запуск файл с помощью C:/program files/1cv77/bin/1cv77.exe - не даёт результата, кроме как входа и авторизации в 1с)
3. выбираем дату (!!!вчерашнюю!!!) в обоих колонках и указываем путь сохранения файла: какой нам захочется!
4. Сформировать или Ctrl+Enter.

через 1-2 минуты запускается 2-ая часть:

1. проверка наличия файла в папке, в которую мы его сохранили и проверка даты последнего изменения (по идее можно даже сделать так, чтобы каждый день создавалась новая папка такого формата bank_чч.мм.гггг или текущая дата)
2. запуск 1с-8ки под юзером admin с паролем *************
3. Запускаем файл: "ЗагрузкабанковскихВыписок.epf" (проверял - запуск файл с помощью C:/program files/1cv8/bin/1cv8.exe - не даёт результата, кроме как входа и авторизации в 1с)
4. Выбираем файл для загрузки.
5. Сформировать или Ctrl+Enter.

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

Буду рад любым предложениям по выбору языка программирования и метода написания, а если можно будет обойтись стандартными средствами 1с и Винды будет вообще Супер !
Исходника пока нету - буду рад если он общими усилиями появится.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
ну как бы ничего сложного, если уметь это делать)
1.создается батник в котором прописывается запуск 1Ски от определенного пользователя.
2. в 1С в глобальной процедуре ПриЗапускеСистемы() (врде так она называется, но точно надо посмотреть) прописывается вызов формы внешней обработки и передаются параметры.
3. во внешней обработке пишеться проверка - к примеру если вызванно от такого-то пользоватьеля делать вызов процедуры, которая висит на кнопке Сформировать
4. в батничке также прописать проверку - на запущенность 1С7. если она завершилась - запускать 1С8
5. для 1С8 повторить процедуру похожую на пункт 2 и 3
вроде все.

P.S. но я не стал бы автоматизировать данный процесс. весь процес занимает совсем мало усилий юзера и я не вижу смысла из-за этого менять глобальный модуль программ, а также внешнюю обработку, чтобы не брать на себя лишнюю отвественность
 
A

Aidjek

#3
ну как бы ничего сложного, если уметь это делать)
1.создается батник в котором прописывается запуск 1Ски от определенного пользователя.
2. в 1С в глобальной процедуре ПриЗапускеСистемы() (врде так она называется, но точно надо посмотреть) прописывается вызов формы внешней обработки и передаются параметры.
3. во внешней обработке пишеться проверка - к примеру если вызванно от такого-то пользоватьеля делать вызов процедуры, которая висит на кнопке Сформировать
4. в батничке также прописать проверку - на запущенность 1С7. если она завершилась - запускать 1С8
5. для 1С8 повторить процедуру похожую на пункт 2 и 3
вроде все.

P.S. но я не стал бы автоматизировать данный процесс. весь процес занимает совсем мало усилий юзера и я не вижу смысла из-за этого менять глобальный модуль программ, а также внешнюю обработку, чтобы не брать на себя лишнюю отвественность


хох как все легко и просто попробуем-с этот вариант - но как мне кажется простой батник по сравнению с языком программирования очень сильно уступает - особенно если нужно описывать процедуры или я не прав ?*

Насчёт ответственность - процедура сама по себе действительно лёгкая и проводить её может даже сам глав бух - но для этого требуется дать ему админский пасс от сервака - там я думаю ответственность намного выше поднимется - а вообще то об этой услуге сам главбух и попросила!
 
P

perfomance

#4
1.Быть может именно в Вашей ситуации я бы псмотрел в сторону вот такой штуки - http://www.gentee.com/perfect-automation/ru/automate-windows.html
http://www.gentee.com/perfect-automation/r...te-windows.html
2.Рассуждая:"По сути если 1С 7,7 делает сброс банковских выписок автоматически, то здесь осталось только заставить делать 1С8.х загрузку этого самого dbf. При том в определенное время. В 1С77 я бы стал смотреть в сторону предопределенной процедуры ОбработкаОжидания(Имя процедуры,Время) - как будут звучать аналоги в 1С8.х не знаю - с языком 8-ки не знаком. И по сути дальше разбираться уже с кодом. В модуле обработчика загрузчика надо попробовать указать путь прямо "В лоб" (т.е. именно тот каталог, куда ложится файл). Ну и впр-пе Все. А вот как раз наверное на кнопке "Сформировать/Загрузить" и висит вся эта процедура. И эту самую процедуру можно вставить как параметр в предопределенную процедуру(аналог в 7.7- как в 8-ке к сож. не знаю) ОбработкаОжидания(ИмяПроцедурыЗагрузки,Время) где Время - указывается в секундах. Но опять же надо смотреть все ньюансы самого модуля ЗАГРУЗЧИКА.
3. А можно попробовать эту операцию скинуть на главбуха :) (Сказать ей , че, я мол прогрммист Одноэсник Вам барышня?!!!) и всетаки попробовать разрулить права на эту обработку загрузки. Если к примеру обычным юзерам не разрешено пользоваться внешними обработчиками, то можно поробовать этот обработчик "прикрепить" к самой конфигурации (т.е. пристроить как объект ""Метаданные"" именно в 8-ке) и уже поробовать разрешить в самом конфигураторе обычному юзеру использовать этот обработчик. Я думаю что это реально!!! Но все же просим "просвещения" от спецов по 8-ке

а если можно будет обойтись стандартными средствами 1с и Винды будет вообще Супер !
Помните!!! Наличие Буха - это тоже стандартное средство :) Внешняя компонента так сказать :)
 

puh14

Well-known member
11.07.2008
1 412
0
#5
можно так - из семерки после выгрузки запустить восьмерку как com объект и вызвать процедуру загрузки. наоборот вроде тоже можно- но могу ошибаться.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#6
а если можно будет обойтись стандартными средствами 1с и Винды будет вообще Супер !
я вообще-то об этом и говорил. батник нужен исключительно для вызова программы под определенным юзером и проверкой ее состояния - запущена или уже завершилась
все остальное дописывается в самих 1Сках и внешних обработках
 
A

Aidjek

#7
1.Быть может именно в Вашей ситуации я бы псмотрел в сторону вот такой штуки - http://www.gentee.com/perfect-automation/ru/automate-windows.html
http://www.gentee.com/perfect-automation/r...te-windows.html
как мне кажется для меня это 1 из самых наилучших вариантов - единственное что - это как заставить этот умный модуль выбирать правильную дату !! - но думаю походу изучения этой проги - чё нить да придумается !

2.Рассуждая:"По сути если 1С 7,7 делает сброс банковских выписок автоматически, то здесь осталось только заставить делать 1С8.х загрузку этого самого dbf. При том в определенное время. В 1С77 я бы стал смотреть в сторону предопределенной процедуры ОбработкаОжидания(Имя процедуры,Время) - как будут звучать аналоги в 1С8.х не знаю - с языком 8-ки не знаком. И по сути дальше разбираться уже с кодом. В модуле обработчика загрузчика надо попробовать указать путь прямо "В лоб" (т.е. именно тот каталог, куда ложится файл). Ну и впр-пе Все. А вот как раз наверное на кнопке "Сформировать/Загрузить" и висит вся эта процедура. И эту самую процедуру можно вставить как параметр в предопределенную процедуру(аналог в 7.7- как в 8-ке к сож. не знаю) ОбработкаОжидания(ИмяПроцедурыЗагрузки,Время) где Время - указывается в секундах. Но опять же надо смотреть все ньюансы самого модуля ЗАГРУЗЧИКА.
вот именно тут - я точно запутаюсь - потому что не знаком в программировании ни с 7-кой ни с 8-кой
3. А можно попробовать эту операцию скинуть на главбуха :) (Сказать ей , че, я мол прогрммист Одноэсник Вам барышня?!!!) и всетаки попробовать разрулить права на эту обработку загрузки. Если к примеру обычным юзерам не разрешено пользоваться внешними обработчиками, то можно поробовать этот обработчик "прикрепить" к самой конфигурации (т.е. пристроить как объект ""Метаданные"" именно в 8-ке) и уже поробовать разрешить в самом конфигураторе обычному юзеру использовать этот обработчик. Я думаю что это реально!!! Но все же просим "просвещения" от спецов по 8-ке


Помните!!! Наличие Буха - это тоже стандартное средство :) Внешняя компонента так сказать :)

Да вот я уже пытался и не тока на главбуха - но честно говоря всем по барабану - и мне уже самому хочется чё-нить этакой

можно так - из семерки после выгрузки запустить восьмерку как com объект и вызвать процедуру загрузки. наоборот вроде тоже можно- но могу ошибаться.

7-ка и 8-ка на 2-х разных серваках - думаю много писанины будет)



тока что прочитал про com объекты - а ведь может получится! :)