Имя: Пароль:
1C
1С v8
Ошибка при чтении изменений из файла обмена. УТ для Укр
,
0 Boudybuilder
 
05.10.12
15:49
Сейчас часто после создания новой номенклатуры с характеристикой при обмене выдает такую ошибку а базе приемнике:


Ошибка при чтении изменений из файла обмена.
Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - 'ПриЗаписи': {ОбщийМодуль.ПроцедурыОбменаССайтом.Модуль(47)}: Ошибка при вызове метода контекста (ЗарегистрироватьИзменения): Недопустимое значение параметра (параметр номер '2')
Чтение данных из файла обмена завершено с ошибками!


Вот в этом месте:


   Если ТипДанных = Тип("СправочникСсылка.Номенклатура") Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект);
           ИначеЕсли ТипДанных = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
           КонецЕсли;    


Вычислил Запись :

Свойство    Значение    Тип
Запись    РегистрСведенийЗапись.ЗначенияСвойствОбъектов    РегистрСведенийЗапись.ЗначенияСвойствОбъектов
Активность    Истина    Булево
Значение    Silver    СправочникСсылка.ЗначенияСвойствОбъектов
НомерСтроки    0    Число
Объект    <Объект не найден> (82:830ab1f84635d0d211e20ec5c9166304)    СправочникСсылка.ХарактеристикиНоменклатуры
Период    01.01.0001 0:00:00    Дата
Регистратор        Неопределено
Свойство    Колір    ПланВидовХарактеристикСсылка.СвойстваОбъектов


Объект    <Объект не найден> (82:830ab1f84635d0d211e20ec5c9166304) .... ???? Что за фигня?

Решается эта ошибка удалением характеристики из базы.
1 Kashemir
 
05.10.12
16:00
Запись.Объект.Владелец - это кто такой ?
2 Boudybuilder
 
05.10.12
16:03
(1) Вычислил

Свойство    Значение    Тип
Запись.Объект.Владелец        СправочникСсылка.Номенклатура
3 Kashemir
 
05.10.12
16:03
+(1) запись регистра за значением характеристики уже пришла, а сама характеристика еще нет, а ты пытаешся обратиться к свойству еще не приплывшей характеристики и зарегистрировать его значение
4 Boudybuilder
 
05.10.12
16:03
(2) Это обмен типовой...
5 Kashemir
 
05.10.12
16:04
(4) Не боги горшки обжигают...
6 Boudybuilder
 
05.10.12
16:06
(3) Понял. Надо бы как то запись изменений исправлять?
7 Kashemir
 
05.10.12
16:07
(6) Можешь и регистрацию поправить

Типа
Если ЗначениеЗаполнено(Запись.Объект.Владелец) Тогда
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
8 Boudybuilder
 
05.10.12
16:08
(7) Этим особо ничего не нарушу?
9 Kashemir
 
05.10.12
16:10
(8) Возможно и нарушишь - номенклатура-владелец в данном куске кода не зарегистрируется. Но есть подозрение что она сама по себе регистрируется - без привязки к характеристикам - тогда это не страшно
10 Boudybuilder
 
05.10.12
16:29
И еще одна проблема.


Раньше если в главный узел риб вносились изменения в конфигурации , то при обмене в РиБ приемнике был настроено автоматическое обновление ИБ. 1С Предприятие закрывалась , запускался Бат-файл , и заново запускалась от имени того же пользователя. А щас , этого всего не происходит. Бат -файл запускается , 1С не закрывается , открывается еще одо окно в режиме предприятия , но без внесенных изменений...

Что может быть не так?
11 Kashemir
 
05.10.12
16:59
(10) Надо отладчиком смотреть. Скорее всего где-то в плоскости обработки по приему изменения - начать с того почему не закрывается сеанс 1С хотя бы у текущего пользователя.
12 Boudybuilder
 
05.10.12
20:09
Вот это текст получившийся автоматически при заполнении параметров обработки обновления в 1С.



set v8exe="C:\Program Files\1cv82\8.2.14.540\bin\1cv8.exe"
set DataBaseName="D:\1С\ПРТ_Вопак"
set DataBase=/F%DataBaseName%
set User=/N"Андрей" /WA-

REM Логин администратора системы
set AdminUser=/N"Admin" /WA-



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

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

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

rem Запуск самой программы
start "" %v8exe% ENTERPRISE %DataBase% %User%  /DisableStartupMessages




А это бат-файл:


set v8exe="C:\Program Files\1cv82\8.2.14.540\bin\1cv8.exe"
set DataBaseName="D:\1‘\Џђ’_‚®Ї Є"
set DataBase=/F%DataBaseName%
set User=/N"Ђ­¤аҐ©" /WA-

REM ‹®ЈЁ­  ¤¬Ё­Ёбва в®а  бЁб⥬л
set AdminUser=/N"Admin" /WA-



rem ‡ ўҐа襭ЁҐ а Ў®вл Ї®«м§®ў вҐ«Ґ© (®вЄ«о祭® ў Є«ЁҐ­в-д ©«®ў®¬ ०Ё¬Ґ)
rem start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /C‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©    /UCЏ ЄҐв­®ҐЋЎ­®ў«Ґ­ЁҐЉ®­дЁЈга жЁЁ€Ѓ     /DisableStartupMessages

start "" /wait %v8exe% CONFIG     %DataBase% %AdminUser% /UpdateDBCfg /UCЏ ЄҐв­®ҐЋЎ­®ў«Ґ­ЁҐЉ®­дЁЈга жЁЁ€Ѓ    

rem ђ §аҐиҐ­ЁҐ а Ў®вл Ї®«м§®ў вҐ«Ґ© (®вЄ«о祭® ў Є«ЁҐ­в-д ©«®ў®¬ ०Ё¬Ґ)
rem start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /Cђ §аҐиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©    /UCЏ ЄҐв­®ҐЋЎ­®ў«Ґ­ЁҐЉ®­дЁЈга жЁЁ€Ѓ     /DisableStartupMessages

rem ‡ ЇгбЄ б ¬®© Їа®Ја ¬¬л
start "" %v8exe% ENTERPRISE %DataBase% %User%  /DisableStartupMessages
13 Boudybuilder
 
05.10.12
20:10
Чтот с кодировкой что ли?!
14 Boudybuilder
 
05.10.12
20:37
ТДок = Новый ТекстовыйДокумент();
   ТДок.УстановитьТекст(ТекстБатФайла);
   ТДок.Вывод = ИспользованиеВывода.Разрешить;
   
   ИмяБАТФайла = РаботаСФайлами.ПолучитьИмяФайла(КаталогВременныхФайлов(), "Upd1C.bat");

   ТДок.Записать(ИмяБАТФайла, КодировкаТекста.OEM);

Вроде все ок... но почему не фурычит...?
15 Boudybuilder
 
05.10.12
21:15
Ничего найти не могу. Не понимаю почему не закрывается.

ТекстЗавершенияРаботыПользователей = "start """" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей    /UCПакетноеОбновлениеКонфигурацииИБ    " + СтрокаДляВыводаДанныхВФайл + " /DisableStartupMessages";
   

Что в этом тексте что ? )))

Бат файл исполнчется , но предприятие не закрывается дальше.
А в базе приемнике эту процедуру какраз проверить не могу , так как при обновлении предупреждает , что открыт конфигуратор. как тогда вычислить?
16 Boudybuilder
 
06.10.12
00:41
НЕ могу понять , как работает завершение работы пользователей при запуске Бат-файла? Сам бат-файл всех выгоняет этим "/CЗавершитьРаботуПользователей" , или при этом запускается какая то процедура и уже она завершает работу?

Ведь сам то текст вроде правильно написан... ???

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

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

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

rem Запуск самой программы
start "" %v8exe% ENTERPRISE %DataBase% %User%  /DisableStartupMessages
17 Boudybuilder
 
06.10.12
09:34
Очень хотелось бы знать ответ на это (16)
18 Boudybuilder
 
08.10.12
11:34
Друзья , очень нужна помощь по этому поводу , а то каждый раз звонить ответственному за РИБ и просить его нажать Ф7 в конфигураторе изрядно зае...
А ведь раньше то все так классно было.

Хочу знать , в чем же дело?
Все таки бат-файл нужно проверять или же за это /CЗавершитьРаботуПользователей какой то код в модуле отвечает ? Где и как рыть?
19 Kashemir
 
08.10.12
11:42
(18) Да - ключ /C позволяет передавать произвольную строку. Обрабатывается уже в предприятии
20 Kashemir
 
08.10.12
11:45
(18) p.s rem - от слова remark - комментарий. Судя по тексту строки с запуском платформы с параметром у тебя закомментированы.
21 Kashemir
 
08.10.12
11:47
(18) Обработчик ключа запуска обычно висит на "ПередНачаломРаботыСистемы" / "ПриНачалеРаботыСистемы" модуля приложения
22 Boudybuilder
 
08.10.12
12:15
start "" /wait %v8exe% ENTERPRISE %DataBase% %AdminUser% /CЗавершитьРаботуПользователей    /UCПакетноеОбновлениеКонфигурацииИБ     /DisableStartupMessages

Убрал уже в самом файле rem в этой строке , но так закрытия и не произошло...
23 Boudybuilder
 
08.10.12
12:17
(21) Запуска.
А мне бы надо завершения работы пользователей
24 Kashemir
 
08.10.12
12:24
(23) Не путай - для чистой платформы исключительно безразлично что идет в строке после ключа /C - данные параметры обрабатываются программно.
25 Boudybuilder
 
09.10.12
22:27
/CЗавершитьРаботуПользователей
Тогда это параметр напрямую вызывает процедуру из ГлобальногоМодуля "ЗавершитьРаботуПользователей" ?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший