Имя: Пароль:
1C
1С v8
РИБ. Подскажите с настройкой.
0 mzelensky
 
06.11.13
17:00
Доброго всем!
Создал новый план обмена РИБ (на подобие "По организациям" + доп. параметры и условия). Правила регистрации писал свои (для доков, части справочников и части регистров). Хочу чтобы обмен был односторонним (из главного узла в подчиненный). Проблема в том, что если я так делаю, то у меня не снимается регистрация объектов в главном узле (после выгрузки). Почитал, нашел что регистрация снимается при приеме ответных данных.

Вопрос правильно ли я понял, что нужно все-таки кидать данные в ответ (из подчиненного в родительский элемент) чтобы снять регистрацию?
1 mzelensky
 
06.11.13
17:02
(0) + Либо в ручную сбивать регистрацию объектов сразу после их выгрузки
2 mzelensky
 
13.11.13
07:46
Теме ап, т.к. вопрос все еще актуален.

Сейчас делается так: Выгрузка из ЦБ в подчиненный узел. Подчиненный все загружает и сразу выгружает информацию о загруженных объектах. При следующем обмене ЦБ загружает информацию о загруженных объектах из подчиненного узла (обновляет данные регистрации) и выгружает опять новые объекты.

Это несколько КРИВО! Как лучше сделать, чтобы обходиться только односторонним обменом?
3 kosts
 
13.11.13
07:52
(2) >Это несколько КРИВО! Как лучше сделать, чтобы обходиться только односторонним обменом?

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

Отсылка ответного файла самое то...
4 mzelensky
 
13.11.13
09:21
(3) Ок, предположим такую ситуацию:

Если у узла стоит настройка "выгружать" и "загружать", то он сперва пытается ЗАГРУЗИТЬ, а потом "ВЫГРУЗИТЬ". Получаем следующее:

1) ЦБ выгружает данные (регистрация изменений не снимается, а новые объекты ставятся на регитсрацию далее). ПБ загружает данные и выгружает информацию о загруженных объектах.

2) За время интервала обменов ранее выгруженный документ (который уже выгрузился в ПБ, но подтверждение его загрузки еще не было) опять изменился (ну подправили в нем что-то).ЦБ загружает данные от ПБ (с теми объектами ,которые нужно снять с регистрации) и этот документ снимается с регистрации (тот, который изменился еще раз). Далее идет выгрузка из ЦБ, но этого дока уже там нет.

Правильно я все понял? Или Система привязывается еще и к номеру информационного сообщения при снятии регистрации???
5 Холодильник
 
13.11.13
09:28
совсем одностронний не получится. ответ о принятии должен быть.
иначе ты выгрузишь в файл, удалишь регистрацию, а файл потеряется и данные не вернутся.

Правильно делается так: данные регистрируются(подпиской) только в ЦБ. обмен - выгрузка+загрузка
6 kosts
 
13.11.13
09:32
(4) > Далее идет выгрузка из ЦБ, но этого дока уже там нет.

Напротив, будет в выгрузке.
7 mzelensky
 
13.11.13
09:33
(5) НУ так и делается:

Данные регистрируются(подпиской) только в ЦБ
обмен - Загрузка, а потом ВЫГРУЗКА - так делает стандарный механизм.
8 mzelensky
 
13.11.13
09:34
(6) Почему будет ,если ты до выгрузки загрузил принятые изменения в числе которых числился этот док и регистрация для него снялась ?
9 Kamas
 
13.11.13
09:55
Почитай про планы обмена там есть такая вещь как номер если не ошибаюсь пакета(не помню как точно называется)когда проходит загрузка от подчиненного то снимается регистрация под номером который был отгружен. То есть ты создал документ ему пристроился номер выгрузки в плане обмена 559,потом выгрузили , потом отредактировали и перезаписали док он заново зарегистрировался под номером 560 когда приходит квитанция от выгрузки он снимает с регистрации объект под номером 559 и выгружает под номером 560.Так получается что, твой документ повторно попадет в выгрузку. Механизм описан не точно прошу не придираться но суть примерно такая.
10 Serg_1960
 
13.11.13
10:05
(4) "Правильно я все понял?"  - нет, не правильно.

(9)
"Непосредственно после выполнения регистрации изменения, в каждой новой записи изменений номер сообщения имеет значение NULL. При первой отправке изменения в составе сообщения, он заменяется номером сообщения, в котором изменение отправлено."

Источник: http://v8.1c.ru/overview/ExchangePlans.htm
11 Kamas
 
13.11.13
10:17
(10) я же вроде писал что точно не помню давно последний раз читал гуглить не хотелось)) а так спасибо за поправку ибо время назначения номера сообщения может быть принципиально в некоторых моментах (но не в данном случае)
12 mzelensky
 
13.11.13
10:25
(9) (10) Я знаю про номера сообщений (их установку), но не знал учитываются они при снятии с регистрации (ответными данными) или нет. Если учитываются, то эт конечно хорошо.
13 mzelensky
 
13.11.13
10:38
Еще кстати вопрос по этому обмену. В ручном режиме (если запускать выполнение нажатием кнопочки "Выполнить обмен") обмены проходят нормально, даже автоматический перезапуск конфигуратора наладить удалось. Но почему-то никак не ужается запустить автоматический обмен через регламентное задание.

Ситуация такая (немного утрируя, но общий смысл такой):

Имеется одна локальная сеть и 2 компьютера в ней (С1 и С2). На С1 крутится центральная база, на С2 подчиненная. Базы серверные (на скуле). В настройках подчиненной базы работа регламентных заданий РАЗРЕШЕНА (отключение ненужных производится в самой конфе). В планах обмена настраиваю "обмен через файловый ресурс" по расписанию (каждые 10 минут). С чем столкнулся:

1) Система затыкается при попытке копировать файлы по сети. Точно еще не капал, но подозреваю что преблема в том, что она коряво понимает сетевой путь к каталогу. Выгрузка файла ведь проходит за 2 этапа - сперв во временный файл на локальном компьютере, затем этот временный файл копируется в место назначения. Ошибка возникает именно в момент копирования.

2) Система на отрез отказывается выгружать файлы из ЦБ (именно через регламентное задание) выдавая всяческие ошибки. Основные из них - она лезет в модуль объекта документа (не знаю зачем) и натыкается на использование "клиентских модулей". Разумеется на этом выполнение работы рушится. Зачем она лезет в модуль так и не понял.
14 Lev292
 
13.11.13
10:42
Если ошибка при копировании файлов, смотри права пользователя на чтение-запись каталогов под которыми работает сервер 1с.
15 mzelensky
 
13.11.13
11:10
(14) Пользователь Админ. Да и доступ там полный (для всех и на все).
16 mzelensky
 
13.11.13
11:10
Думаю может сделать через FTP-ку. Чтобы уйти от этих косяков с копированием по сети.
17 Kamas
 
13.11.13
11:24
попробуй ради прикола завести пользователя гостя на компе с шарой и дай ему права на чтение запись из папочки и посмотри что будет))
18 mzelensky
 
13.11.13
11:28
(17) а причем тут гость? Действия выполняются 1С сервером. А 1С сервер (служба) запущена далеко не под "пользователем-гостем".
19 Kamas
 
13.11.13
11:33
(18) да, а вот вопрос в том что кто есть админ на сервере на удаленном компе,хотя я не знаю что там у вас за настройки по сети
20 mzelensky
 
13.11.13
11:38
(19) Хорошо, проверим.

А по второму пункту из (13) что скажешь?
21 Kamas
 
13.11.13
11:51
(20) Здесь я тебе не чего сказать не могу ибо смотреть надо что за конфа и что там понаписано
22 mzelensky
 
13.11.13
11:54
(21) Ладно, еше немного помучаюсь, потом отпишусь.
23 kosts
 
13.11.13
12:00
(13) >всяческие ошибки. Основные из них - она лезет в модуль объекта документа (не знаю зачем) и натыкается на использование "клиентских модулей"

Это не ошибка обмена. Это ошибка конструкции модуля объекта вообще.
В модуле объекта не должно быть клиентских конструкций, либо они должны быть экранированы, например

24 kosts
 
13.11.13
12:00
Например:

    
    #Если ТолстыйКлиентОбычноеПриложение Тогда
        ОбработкаКомментариев = глЗначениеПеременной("глОбработкаСообщений");
        ОбработкаКомментариев.УдалитьСообщения();
        СтрокаВерхнегоУровняСообщений = ОбработкаКомментариев.ДобавитьСообщение("Автозаполнение документа", Перечисления.ВидыСообщений.Раздел);
        СтрокаВерхнегоУровняСообщений = Неопределено;
    #КонецЕсли
25 mzelensky
 
13.11.13
12:06
(23) Это я прекрасно понимаю. Я не пойму - почему при выгрузке она вообще лезет в модуль объекта ?
26 kosts
 
13.11.13
12:12
(25) Она лезет туда не при выгрузке, а при получении объекта. Всегда. Так работает платформа. Просто надо как-то принять это и жить дальше.
27 mzelensky
 
13.11.13
12:18
(26) Спасибо.

Буду править с учетом "#Клиент" "#Сервер"
28 mzelensky
 
14.11.13
15:17
В общем, отписываюсь о том, что получилось:

1) Настроил обмен файлами через FTP. Теперь все замечательно выгружается\загружается по сети без каких либо проблем с сетевыми путями, доступами и так далее.
2) Подправил нужные модули объектов - теперь регламентное задание (серверное) не вываливается с ошибкой и нормально отрабатывает автоматическую загрузку\выгрузку файлов
3) Обмен оставил таки двухсторонним (из ЦБ в ПБ данные, а обратно сведения о загруженных объектах)

ЧТО НЕ ПОЛУЧИЛОСЬ ПОКА ПОБЕДИТЬ:

Пока так и не работает автоматическое принятие изменений в подчиненной базе (т.е. когда конфигурация ЦБ отличается от конфигурации ПБ). Если запускать обмен ручками, то нужный мне батник благополучно запускается и в результате выполнения обновляет конфигурацию. Если же все происходит автоматически (через регламентные задания), то измененения в конфигурацию вносятся, но перезапуска НЕ ПРОИСХОДИТ. Почему не происходит пока не понял...
29 Kamas
 
14.11.13
15:31
ех проблема всех рибов что все равно лучше ручками все обновления накатывать(мое мнение) а то может обмен упасть а ты не заметиш как у тебя вдруг не "неожиданные" пакеты пойдут. А что у тебя батник запускает какое событие??
30 hhhh
 
14.11.13
15:49
(28) там трудно автоматически. Ты должен снять предприятие, потом запустить конфигуратор с какой-то задержкой. Если сразу запустить, предприятие не успеет закончиться.
31 mzelensky
 
18.11.13
07:38
(29) Я взял типовой файл из Ут 10.3 и немного подправил его. Это не конкрено то, что сейчас запускается, но по тому же принципу:

set v8exe="C:\Program Files (x86)\1cv82\8.2.17.143\bin\1cv8.exe"
set DataBaseName="IPсервера1с(с учетом кластера)/ИмяИБ"
set DataBase=/S%DataBaseName%

REM Логин администратора системы
set AdminUser=/N"Пользователь" /P"Пароль" /WA-


rem Завершение работы пользователей
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей;;;Пользователь;Пароль    /UCПакетноеОбновлениеКонфигурацииИБ    /DisableStartupMessages

start "" /wait %v8exe% CONFIG     %DataBase% %AdminUser% /UpdateDBCfg /UCПакетноеОбновлениеКонфигурацииИБ    

rem Разрешение работы пользователей
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CРазрешитьРаботуПользователей;;;Пользователь;Пароль    /UCПакетноеОбновлениеКонфигурацииИБ    /DisableStartupMessages
32 mzelensky
 
18.11.13
07:40
(30) Типовым файлом делаю. См (31).

Там происходит выгон пользователей, блокировка базы, а потом ее перезапуск под определенным пользователем.

Если запускать ручками, то работает. Косяк, что регламентное задание не могу пропарсить в отладчике - приходится тыкать на угад.
33 mistеr
 
18.11.13
13:41
(32) Видимо не хватает прав тому, от имени кого рег. задание выполняется.
34 mzelensky
 
18.11.13
13:44
(33) Там "Админ" с полными правами
Ошибка? Это не ошибка, это системная функция.