Имя: Пароль:
1C
1С v8
Автоматический обмен в РИБ
,
0 Alex1979rak
 
13.10.11
08:48
Тема, конечно, баян. Но все же...
Есть у меня собственная задача по организации автоматизации обмена данными в РИБ.
Сама база - БП 2.0
Настроен интерактивный обмен - т.е. человек (теперь я), работающий БД - главный узел, делаю обмен ручками, и бухгалтера в других городах делают то же самое у себя. Обмен через ftp.
Подскажите, пожалуйста, концепцию решения моей задачи.
1 TarasKa
 
13.10.11
09:00
сделать расписание обмена?
2 BuHu
 
13.10.11
09:06
(0)1с клиент-сервер ?
3 Alex1979rak
 
13.10.11
09:08
(1) Про расписание знаю. Но...
Насколько я понимаю:
- если задано расписание, то соответственно 1С-ка в этот период времени должна быть запущена (а если нет, то как?)
- есть такой справочник "Настройки обмена данными" и в каждом элементе его есть закладка "Автоматический обмен", на которой сказано, что автообмен будет происходить, если эта настройка будет входить в некий список-справочник Настройки выполнения обмена (так вот, именно в нем надо все настраивать?)
4 Alex1979rak
 
13.10.11
09:08
(2) Файловый вариант работы БД
5 tridog
 
13.10.11
09:12
(4) Либо держать отдельный сеанс открытым, либо батники/скрипты/самописный демон, работающий как служба NT - в зависимости от того, насколько ломает прогонять ручками.
6 Alex1979rak
 
13.10.11
09:21
А возможен ли такой вариант настройки:
- на удаленном узле при запуске 1С-ки происходит автоматический запуск обмена.
Если да, то какие настройки я должен сделать у себя чтобы все это заработало?
7 BuHu
 
13.10.11
09:32
(6) написать батник запуска 1с под определенным пользователем , настройках обмена указать что запускать обмен при начале работы для этого пользователя
8 BuHu
 
13.10.11
09:33
+(7) в батнике указать что б открывалась внешняя обработка в которой будет одна строчка в ПриОткрытии ЗавершитьРаботуСистемы(), тогда после обмена 1с будет сразу закрываться
9 BuHu
 
13.10.11
09:36
+(8) в батнике должно быть что о такое
"C:\Program Files\1cv82\common\1cestart.exe" enterprise /F"D:\Путь к базе" /NПользователь /PПароль /Execute"C:\Путь к обработке\Обработка.epf"
10 xilonen
 
13.10.11
09:42
(6) Меню: сервис - прочие обмены данными - все настройки. Там все настраивается. Никаких батников не надо.
11 BuHu
 
13.10.11
09:43
(10) если без батников то надо держать всегда сеанс пользователя открытым . или я что то не понимаю
12 Alex1979rak
 
13.10.11
09:44
Насколько я понимаю этот батник будет запускаться без участия человека. Но что его будет запускать?
Я пока предполагаю на первое время, чтобы бухи запускали свою 1С-ку и видели автоматический обмен перед тем как начать свою работу.
13 xilonen
 
13.10.11
09:45
в (6) автор хочет запускать обмен при запуске 1с-ки. делаем условие выгрузки "при закрытии", условие загрузки "при открытии". 2 настройки
14 BuHu
 
13.10.11
09:50
(12) в виндосе есть назначенные задания , они успешно с этим справляются.
(13)когда речь идет о автоматическом обмене я понимаю это как без участия человека , иначе это не авто обмен
15 БибиГон
 
13.10.11
09:51
(12) обмен часто нужен или 1 раз в день? Самое главное и непонятно. :)
16 xilonen
 
13.10.11
09:58
(14) автообменом можно назвать т.к. юзеры о нем не вспоминают :) при закрытой файловой с настройками по расписанию только батник...
17 БибиГон
 
13.10.11
10:00
(16) а если открытая файловая и при работе все время идет обмен? ;) мешает ведь.
18 Alex1979rak
 
13.10.11
10:38
Я предполагаю ситуация, когда удаленный бух запускает 1С и в этот момент происходит обмен. И сколько раз он запустит 1С-ку за день столько и будет обменов. Если здесь есть ошибки, то прошу подсказать как лучше этот обмен организовать.
19 БибиГон
 
13.10.11
10:42
ошибок нет, если вас это устраивает.
20 Alex1979rak
 
13.10.11
10:46
Все просто. Хочется и себя избавить от лишних телодвижений по обмену, да и бухов на удаленке тоже.
21 Alex1979rak
 
13.10.11
10:48
+18 Плюс ко всему очень хочется чтобы база была всегда актуальной у всех пользователей 1С-ки. Вот думаю ещё обмен делать и при завершении работы 1С-ки.
22 Alex1979rak
 
14.10.11
08:26
up

В процессе исследования задачи появились дополнительные вопросы.
Сегодня в процессе ручного обмена произошло следующее:
- сначала я (главный узел) произвел обмен (на удаленном узле в этот момент обмена не было)
- потом когда я увидел, что с удаленного узла обмена не было, я напомнил, что эту операцию надо сделать
- на удаленном узле сделали обмен
- после этого я повторил обмен у себя

Через некоторое время мне звонят с удаленного узла и говорят, что они вчера делали отчет и он после обмена не обнаружился.
Вот.
Я немного подумал. И кажется нашел ответ на вопрос "а почему так произошло". Наверное, потому что мой узле главный и он своими изменениями затер данные удаленного узла.

Ну а раз ситуация такая (а может я и не прав) то как тогда правильно делается обмен?
23 Alex1979rak
 
14.10.11
08:46
+22 Про коллизии читал.
24 Alex1979rak
 
14.10.11
09:11
Помогите, пожалуйста, разобраться с ситуацией.
25 Alex1979rak
 
14.10.11
09:32
ап
26 БибиГон
 
14.10.11
10:07
какие данные затер, какой отчет? оО  раньше проблем с обменом не было значит? ;)
27 Alex1979rak
 
14.10.11
10:16
(26) С этой базой я работаю 3-ий день. Раньше с обменами не работал. Разбираюсь по информации с форумов, плюс инфа с ИТСа. Отчет, который исчез - 4-ФСС.
Дело в принципе. Как правильно делать обмен. Автоматом я могу сделать обмен у себя, ну и удаленщики также все делают. Я пока все нюансы обмена не изучил. Знаю только, что приоритет у главного узла. Может потому и затерся отчет.
28 hhhh
 
14.10.11
10:19
эти отчеты вообще через пень-колоду грузятся. Видимо 1С решила, что отчеты делаются всегда в одном месте.
29 Alex1979rak
 
14.10.11
10:24
(28) Я вообще имею малое представление об этом отчете. Опыта все таки маловато.
Но все таки... Что можете подсказать про ситуацию с организацией обмена: порядок-то какой должен быть?
30 Alex1979rak
 
14.10.11
12:26
вверх
31 Повелитель
 
16.10.11
12:22
У меня сделано так.
1. В 1с завел пользователя Root. Пароль = 1.
2. Написал обработку Close1c.epf.
Ее код:
Перем Тайм;

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   ПодключитьОбработчикОжидания("Таймер",1);
КонецПроцедуры

Процедура Таймер()
   Тайм = Тайм - 1;
   Если Тайм = 0 Тогда
       ЗавершитьРаботуСистемы(Ложь);
   КонецЕсли;
   
   ЭлементыФормы.Надпись1.Заголовок = "1с будет закрыта через: " + Строка(Тайм) + " секунд";
КонецПроцедуры

Процедура ОсновныеДействияФормыОтменитьЗакрытие(Кнопка)
   ОтключитьОбработчикОжидания("Таймер");
   ЭлементыФормы.Надпись1.Заголовок = "";
КонецПроцедуры

Тайм = 60; //Секунд

3. Поставил программу: xStarter(бесплатная) можно скачать с сайта. Можно было пользоваться и планировщиком Windows, но xStarter многое умеет, одна из моих любимых программ. xStarter запускает bat-файл по расписанию.

4.Написал бат файл, это его полный текст:
"C:\Program Files\1cv82\8.2.14.533\bin\1cv8.exe" ENTERPRISE /S SERVAK2\mybd /NRoot /P1 /Execute "C:\Close1c.epf" /DisableStartupMessages
/DisableStartupMessages - этот параметр очень важный, я первые полгода без него работал, приходилось удалено заходить на клиента и открывать конфигуратор и обновлять конфигурацию, каждый раз после ее изменения в центре. Потом как включил этот параметр, забыл все свои проблемы.

5. В штатной "Обмен данными", настроил чтобы обмен данными начинался при запуске пользователя Root, потом программа 1с закрывается обработкой Close1c.epf.

6. Настроил расписание xStarter, он запускает bat-файл в 7:00,18:00,19:00,20:00.
7. Настроил расписание xStarter на удаленной базе, он запускает bat-файл в 8:00,18:30,19:30,20:30
Сделал 4 раза чтобы решить вопрос, очередность обмена, плюс фактор сбоев интернета.
1с после запуска закрывается.

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