Имя: Пароль:
1C
1С v8
Падение платформы при записи объекта по COM (8.3)
, , ,
0 grum01
 
03.05.16
10:46
Всех с праздниками!
Помогите разобраться: Подключаюсь по com из УТ_10.3 к БП_3.0. Создаю документ, наполняю его. Но при попытки записи платформа вылетает. Платформа 8.3.7.1805; клиент-сервер.
-------------------------------
    cntr = Новый COMObject("V83.COMConnector");
    СоединениеБП = cntr.Connect("Srvr=""localhost""; Ref=""Buh""; Usr=""Пользователь""; Pwd=""Пароль""; ");

    ДокОстатков = СоединениеБП.Документы.ВводНачальныхОстатков.СоздатьДокумент();
........
заполняем документ
........
ДокОстатков.Записать(СоединениеБП.РежимЗаписиДокумента.Запись);
-------------------------------
Вылетает именно на последней строке (при записи). Уже по всякому пробовал. Есть идеи?
1 ДенисЧ
 
03.05.16
11:00
Молча вылетает? В жр той базы есть что?
2 Джордж1
 
03.05.16
11:01
Вылетает или штатно выходит?
3 grum01
 
03.05.16
11:16
(1) Ну как молча.. Винда выдает "Запись дампа, бла-бла"; "Завершена работа программы 1С".
В базе БП остается висеть сеанс com. В журналах обеих баз пусто.
4 grum01
 
03.05.16
11:21
(0) Причем такая тема с любым документом при соединении по com. Пробовал уже с разными.
5 КМ155
 
03.05.16
11:25
(3) что-то мешает окаймить записать Попыткой и выложить сюда ошибку ?
6 EvgeniuXP
 
03.05.16
11:29
Создай в конфигураторе новый документ с пустыми модулями и опробуй егр - для начала
7 grum01
 
03.05.16
11:32
(5) Пробовал. Чтобы отработала попытка, надо чтобы платформа не закрывалась. А она падает. Соответственно - где увидеть ошибку, если платформа закрылась?
8 grum01
 
03.05.16
11:32
(6) Для этого надо снять конфу с поддержки - как-то не айс.
9 grum01
 
03.05.16
11:33
Смена версии платформы удачи не приносит.
10 ДенисЧ
 
03.05.16
11:38
(8) Сделать копию и попробовать на ней - Иегова запретил?
11 hhhh
 
03.05.16
11:40
(9) проверь все ли поля заполнил в документе. Там порядка 96 полей.

и права проверь у пользователя. есть ли права на запись.
12 grum01
 
03.05.16
11:45
(10) Сейчас как раз и создаю копию; при чем файловую. Попробую, отпишусь. Просто это занимает порядочно времени. (11) Права админские полные.Для записи их необязательно все заполнять. Более того, тоже самое происходит с уже существующим в базе БП документом (т.е. дело не в полях документа)
13 zak555
 
03.05.16
11:52
(9) а какую?
14 grum01
 
03.05.16
13:38
ну вот наконец-то: файловая копия готова (6 часов!).
результат: с файловой базой БП com отрабатывает нормально - документ записывается.
куда копать?
15 hhhh
 
03.05.16
15:11
(14) права копайте. Админские, то что у вас - это туфта, только бекап сделать и то через раз получается. В базу с ними вообще лезть не рекомендуется.
16 grum01
 
04.05.16
03:56
(15) WTF?
При чем тут права? Откуда мнение, что через раз получается? Почему не рекомендуется? Сам-то понял, что пишешь??
17 grum01
 
04.05.16
04:12
(14) Как продолжение - попробовал данную обработку на другой базе БП: все отрабатывает.
Значит проблема именно в этой конкретной базе. Все тестирования и исправления выполнены, все нормально (самой платформой). База обновляется, тестируется, индексируется, обменивается с УТ штатным обменом.
Получается, скорее всего, ошибка где-то в структуре метаданных именно SQL (т.к. файловая отрабатывает)
Есть предложения, что можно еще сделать? Как разрулить? Пересоздать базу в SQL?
18 lubitelxml
 
04.05.16
08:40
ДокОстатков.Записать() - если попробовать так, без параметра - ошибка сохраняется?
19 grum01
 
04.05.16
10:56
(18) Да, то же самое.
20 boss1c
 
04.05.16
11:03
(1) Попробуй файловую базу, сто ты сделал, залить dt- ником на SQL
21 ptiz
 
04.05.16
11:06
(0) Запись объект в XML. В базе, куда надо записать, обработкой прочитать этот XML и ловить ошибки уже там отладчиком.
22 boss1c
 
04.05.16
11:08
По хорошему обнови платформу до последней.
23 grum01
 
04.05.16
11:18
(21) ну как-то заморочно совсем туда еще xml вживлять, потом парсить...
24 grum01
 
04.05.16
11:19
(22) согласно (17) дело не в платформе.
А обновлять сервак пока охоты нет - в предыдущее обновление уже один пин-код потерял.
25 grum01
 
04.05.16
11:20
(20) да, к этому и склоняюсь - пересоздать базу на SQL.
Только это ждать выхи надо - для нашего сервака в рабочее время очень проблемно такое запускать.
26 ptiz
 
04.05.16
11:26
(23) Да не надо парсить, одной командой записывается объект.
Запись = СоединениеБП.NewObject("ЗаписьXML");
Запись.ОткрытьФайл(ИмяВременногоФайла);
СоединениеБП.ЗаписатьXML(Запись, ДокОстатков);
Запись.Закрыть();

Ну и чтение:
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(Файлик.ПолноеИмя);
Объект = ПрочитатьXML(Чтение);
Объект.Записать();
27 grum01
 
05.05.16
13:02
В общем, все решилось пересозданием базы. Выгрузка-загрузка.
Спасибо всем!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн