Имя: Пароль:
1C
1С v8
Не записывается объект через COM-соединение
0 Kurai
 
09.12.15
13:31
Здравствуйте! Возникла такая проблема: пытаюсь выгрузить документы из самописной конфы в SQL-ную базу бухгалтерии.

//выгрузка физ.лиц
    Для каждого документ Из ТаблицаФизЛиц Цикл
        Отказ = ПроверкаНаличияДокументаФизЛица(документ.Ссылка);
        Если Отказ Тогда
            продолжить;    
        КонецЕсли;
        РеализацияНовый = Соединение.Документы.РеализацияТоваровУслуг.СоздатьДокумент();    
        СтруктураОсновныхРеквизитов = ПолучитьСтруктуруОсновныхРеквизитов(Соединение);
        
     СсылкаАкт = документ.Ссылка;     
     СтруктураОтбора = Новый Структура("Ссылка, Номер, Дата", СсылкаАкт, СсылкаАкт.Номер, СсылкаАкт.Дата);
     МассивСтрокТаблицыАкта = ТаблицаФизЛиц.НайтиСтроки(СтруктураОтбора);
     Комментарий = "Создан выгрузкой из Отеля: " + документ.Ссылка;
    
     ЗаполнитьДанныеДокументаРеализации(РеализацияНовый, СтруктураОсновныхРеквизитов, СсылкаАкт, МассивСтрокТаблицыАкта, Комментарий);    
                    
        Попытка
            РеализацияНовый.Write(Соединение.РежимЗаписиДокумента.Write);
            ДокументАкт = Документ.Ссылка.ПолучитьОбъект();            
            Строка_GUID_Бухгалтерия = Соединение.String(РеализацияНовый.ref.УникальныйИдентификатор());
            Новый_GUID_Бухгалтерия = новый УникальныйИдентификатор(Строка_GUID_Бухгалтерия);
            ДокументАкт.GUID_Бухгалтерия = Новый_GUID_Бухгалтерия;
            ДокументАкт.Записать();
        исключение
            Сообщить("Не удалось записать документ! " + Документ.Ссылка);
        КонецПопытки;    
        
КонецЦикла;


Почему то именно в рабочей базе бухни объект не записывается. В демо версии все проходит, а в рабочей не хочет. Причем в предыдущие месяцы в рабочую базу все нормально выгружалось.
1 Kurai
 
09.12.15
14:07
Версия платформы 8.3.7.1759, конфа рабочая Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.42.46). Демо конфа Бухгалтерия предприятия, редакция 3.0 (3.0.37.25). Если выгружать с клиента то процесс выгрузки прерывается ошибкой ОС "программа 1с не отвечает, будет прекращена ее работа". Если на сервере выгружать (естественно класс V83COMСonnector я зарегистрировал) то просто обработка вываливается с ошибкой {Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Write): Неизвестная ошибка. Пробовал через Application делать, но возникает гемор с подписками на события при записи документа (вызываются процедуры общих модулей, у них вызов на клиенте не стоит), в итоге забил.
2 Kurai
 
09.12.15
14:15
Мне кажется что это связано как-то с обновлением бухни, потому как доки за октябрь, сентябрь и т.д. все замечательно выгружались
3 aleks_default
 
09.12.15
14:20
мда...
СтруктураОтбора = Новый Структура("Ссылка, Номер, Дата", СсылкаАкт, СсылкаАкт.Номер, СсылкаАкт.Дата);
     МассивСтрокТаблицыАкта = ТаблицаФизЛиц.НайтиСтроки(СтруктураОтбора);
4 aleks_default
 
09.12.15
14:26
Ну сравни конфигурации и посмотри что изменилось по документу "Реализация товаров и услуг".
5 Kurai
 
09.12.15
14:36
(3) а что здесь не так?
6 aleks_default
 
09.12.15
14:42
(5) Не веришь фирме 1с с ее заверениями об уникальности гуидов? Ну че, прально, доверяй но проверяй...
7 Kurai
 
09.12.15
14:43
(6) Конструктивная критика приветствуется))
8 aleks_default
 
09.12.15
14:44
А по теме... Я бы все-таки обратил внимание на подписки с которыми у тебя геммор...
9 Kurai
 
09.12.15
17:08
Сравнил конфигурации и обновил демо версию до версии рабочей, в демо все норм выгружается. Даже не знаю куда копать :(. Наверное надо рабочую потестировать на ошибки.
10 Гёдза
 
09.12.15
17:20
Исключение
Сообщить(ОписаниеОшибки())
11 Kurai
 
09.12.15
17:26
(10) Все верно, просто в этом коде не указано, ОписаниеОшибки() возвращает: {Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Write): Неизвестная ошибка
12 Гёдза
 
09.12.15
17:32
Просто сделай для проверки:
КомСсылка = Соединение...НайтиСсылкуПоНомеру...
ДокументРеализация = КомСсылка.ПолучитьОбъект();
ДокументРеализация.Записать();
13 ptiz
 
09.12.15
17:33
Нет прав или подписки срабатывают (например, период закрыт).
14 Kurai
 
10.12.15
00:15
(12) Не, нифига, документ находит, а записать - не записывает, ошибка даже
15 Kurai
 
10.12.15
00:16
(13) да нет, права полные
16 hhhh
 
10.12.15
03:23
(15) НаКлиенте и НаСервере копай. В файловой базе у тебя всё на клиенте работает. А в sql?
17 ЧеловекДуши
 
10.12.15
06:30
Права, проверь права :)
18 ЧеловекДуши
 
10.12.15
06:34
(0)Код не полный, где та часть, где ты инициируешь подключение к другой БД?

Что за вакханалия?

Строка_GUID_Бухгалтерия = Соединение.String(РеализацияНовый.ref.УникальныйИдентификатор());
Новый_GUID_Бухгалтерия = новый УникальныйИдентификатор(Строка_GUID_Бухгалтерия);

Почему ты пытаешь "УникальныйИдентификатор" получить на стороне клиента, а не на стороне Сом соединения? :)
19 Kurai
 
10.12.15
11:05
(16) Демо база тоже в Скульная
20 cw014
 
10.12.15
11:10
Я поражаюсь людям. Ну сколько тем уже было, но нет - упорно игнорируют ОписаниеОшибки() в Исключении
21 hhhh
 
10.12.15
11:15
никогда не пиши

Соединение.String(

нужно

Соединение.XMLString(
22 Kurai
 
10.12.15
11:20
(20) ОписаниеОшибки() - описание ошибки там есть, просто в этом коде не указал, оно выдает {Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Write): Неизвестная ошибка.
23 Kurai
 
10.12.15
11:30
(18) С quid'ами может действительно что-то напутал, задача была проконтролировать, чтобы не создавались дубликаты документов в бухгалтерии, если документы уже созданы там
24 Гёдза
 
10.12.15
11:32
попробуй на примере (12) поставить точку останова в базе com
25 Гёдза
 
10.12.15
11:32
в событии перед записью
26 Kurai
 
10.12.15
11:33
Сейчас выгрузил скульную рабочую базу бухни, сделал из нее файловую, и туда все нормально выгрузилось, а в эту же но SQL версию не хочет гад :(
27 Kurai
 
10.12.15
11:34
На всякий случай прогнал рабочую базу на ошибки и через chkdbf, не помогло
28 Гёдза
 
10.12.15
11:34
(26) значит проблема с клиент серверным взаимодействием.
Возможно подписки не находятся в режиме внешнего соединения
29 Гёдза
 
10.12.15
11:35
Проверь галки на модулях
30 Гёдза
 
10.12.15
11:35
кстати посмотри журнал регистрации в базе ком
31 Гёдза
 
10.12.15
11:35
там возможно есть подробное описание ошибки
32 Kurai
 
11.12.15
12:21
Самое интересное, что если я сейчас старые бэкапы рабочей базы ставлю на сервер (а в них я точно помню, что все нормально выгружалось), то даже в них почему-то теперь не выгружается, а в демо версию тоже SQL-ную с конфой идентичной рабочей все выгружается...
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший