|
v8: падает обмен... (куплю клаву без капслока, дорого) | ☑ | ||
---|---|---|---|---|
0
Sasha_H
21.12.11
✎
12:41
|
В базе никого кроме меня нету. Фоновые обмены все отрубаны жостко на сервере 1С блокировка фоновых.
И падает с такой вот ошибкой, что может быть такого раньше не было. Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции: Microsoft OLE DB Provider for SQL Server: Lock request time out period exceeded. HRESULT=80040E31, SQLSrvr: Error state=33, Severity=10, native=1222, line=1 Техническая информация: {ПланОбмена.ОбменУТСМагазинами(706)}: Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции: |
|||
1
Axel2009
21.12.11
✎
12:41
|
при обмене лочится таблица изменений. и любые регистрации изменений лягут медным тазом
|
|||
2
Sasha_H
21.12.11
✎
12:43
|
а где м.б. ошибочка? щас модуль в студию дам
|
|||
3
rs_trade
21.12.11
✎
12:44
|
(2) не надо.
|
|||
4
Живой Ископаемый
21.12.11
✎
12:45
|
2(2) но только заглавными буквами, ок?
|
|||
5
Axel2009
21.12.11
✎
12:47
|
(2) ошибочка в том, что ктото еще работает с базулькой
|
|||
6
Axel2009
21.12.11
✎
12:48
|
(2) ошибочка еще в переключениях с кода клиента на сервера. обслуживать могут разные коннекты к скулю, что вешает взаимные блокировки.
|
|||
7
Sasha_H
21.12.11
✎
12:49
|
Кому не интересно желательно вообще сюда не заходить. С базой никто не работает, монитор пуст и на сервере 1С соединеие только я.
Функция ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакцииНаЗагрузкуДанных, ЧтениеXML,СтруктураНастроекОбменаДанными) Экспорт // Создаем чтение сообщения, и читаем из файла его инфу ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); Попытка ЧтениеСообщения.НачатьЧтение(ЧтениеXML); Исключение #Если Клиент Тогда Сообщить("Не удалось создать чтение сообщения: " + ОписаниеОшибки()); #КонецЕсли Возврат Ложь; КонецПопытки; // Проверяем отправителя сообещния, если он не соответствует данному узлу отправляем "куда по-дальше" Если ЧтениеСообщения.Отправитель <> УзелОбмена.Ссылка Тогда #Если Клиент Тогда Сообщить("Отправитель сообщения не соответствует текущему."); #КонецЕсли Возврат Ложь; КонецЕсли; //Удаляем регистрацию изменений для узла отправителя сообщения //*** Служба регистрации изменений ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель ,ЧтениеСообщения.НомерПринятого); ИнициализацияРеквизитовИМодульныхПеременных(); // Теперь читаем данные из файла по очереди и записываем какие нужны Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл //Читаем очередное значение Данные = ПрочитатьXML(ЧтениеXML); #Если Клиент Тогда ОбработкаПрерыванияПользователя(); #КонецЕсли //**операции с удаленными объектами** //ТипЗнч(Данные) = Тип("УдалениеОбъекта") //**обработка заполнения родителей** Если Не ТипЗнч(Данные) = Тип("УдалениеОбъекта") И ОбщегоНазначения.ПринадлежностьКлассуМетаданных("Справочники",Данные.Метаданные()) и УзелОбмена.ГруппыСправочников.Количество() > 0 Тогда Для Каждого СтрОбъект Из УзелОбмена.ГруппыСправочников Цикл мСсылкаОбъекта = Данные.Ссылка; Если ТипЗнч(СтрОбъект.ТекущаяГруппа) = ТипЗнч(мСсылкаОбъекта) и Данные.Родитель.Пустая() и Не СтрОбъект.ТекущаяГруппа.Пустая() Тогда Данные.Родитель = СтрОбъект.ТекущаяГруппа; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; Если Не ТипЗнч(Данные) = Тип("УдалениеОбъекта") И ОбщегоНазначения.ПринадлежностьКлассуМетаданных("Документы",Данные.Метаданные()) и ТипЗнч(Данные.Ссылка) = Тип("ДокументСсылка.УстановкаЦенНоменклатуры") и УзелОбмена.Цены.Количество() > 0 Тогда ТипыЦен = Данные.ТипыЦен; Товары = Данные.Товары; Для Каждого СтрокаЦен Из УзелОбмена.Цены Цикл ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("ТипЦен", СтрокаЦен.ТипЦены); НайденныеСтроки = ТипыЦен.НайтиСтроки(ПараметрыОтбора); Для Каждого СтрокаУдаления Из НайденныеСтроки Цикл ТипыЦен.Удалить(СтрокаУдаления); КонецЦикла; НайденныеСтроки = Товары.НайтиСтроки(ПараметрыОтбора); Для Каждого СтрокаУдаления Из НайденныеСтроки Цикл Товары.Удалить(СтрокаУдаления); КонецЦикла; КонецЦикла; КонецЕсли; Если Не ТипЗнч(Данные) = Тип("УдалениеОбъекта") И ОбщегоНазначения.ПринадлежностьКлассуМетаданных("Документы",Данные.Метаданные()) И Не Данные.Проведен И Не Данные.ЭтоНовый() Тогда ДвиженияДокумента = Данные.Метаданные().Движения; Для Каждого СвойстваОбъекта из ДвиженияДокумента Цикл НаборЗаписей = Данные.Движения[СвойстваОбъекта.Имя]; //НаборЗаписей.Отбор.Регистратор.Установить(Данные.Ссылка); НаборЗаписей.Записать(); КонецЦикла; КонецЕсли; //Записать полученные данные Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; Данные.ОбменДанными.Загрузка = Истина; Данные.Записать(); Если Не ТипЗнч(Данные) = Тип("УдалениеОбъекта") И ОбщегоНазначения.ПринадлежностьКлассуМетаданных("Документы",Данные.Метаданные()) и Данные.Ссылка.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить и Данные.Ссылка.Проведен Тогда ЗаписатьИнформациюОбОтложенныхДвижениях(Данные.Ссылка,Данные.Дата,УзелОбмена); КонецЕсли; КонецЦикла; ЧтениеСообщения.ЗакончитьЧтение(); ЧтениеXML.Закрыть(); ОбменДаннымиXML = Обработки.ОбменДаннымиXML.Создать(); ОбменДаннымиXML.УзелДляОбмена = УзелОбмена; ОбменДаннымиXML.УзелОбменаЗагрузкаДанных = УзелОбмена; ОбменДаннымиXML.ИнициализироватьВедениеПротоколаОбмена(); РезультатВыполненияОтложенныхДвижений = ОбменДаннымиXML.ВыполнитьОтложенныеОперацииСДокументами(,, 1000, Неопределено); ОбменДаннымиXML.ЗавершитьВедениеПротоколаОбмена(); ОбменДаннымиXML.РезультатВыполненияОтложенныхДвижений = РезультатВыполненияОтложенныхДвижений; СтруктураНастроекОбменаДанными.Вставить("РезультатОтложенныхДвиженийДокументов", ОбменДаннымиXML.РезультатВыполненияОтложенныхДвижений); СтруктураНастроекОбменаДанными.Вставить("КоличествоВыполненныхОтложенныхДвиженийДокументов", ОбменДаннымиXML.мКоличествоВыполненныхОтложенныхДвиженийДокументов); Возврат Истина КонецФункции Эта загрузка может призвести к регистрации в других планах обмена?! |
|||
8
Живой Ископаемый
21.12.11
✎
12:51
|
безусловно, когда пишешь НаборЗаписей.Записать(); этот набор регистрируется для других узлов. если регистр входит в план обмена
|
|||
9
Sasha_H
21.12.11
✎
12:54
|
(8) да -да. я перечитал колд и сделал выводы (1) пробую изменить.
просто этот обмен кривой мы его переделали на более правильный. |
|||
10
Sasha_H
21.12.11
✎
12:56
|
просто надо протолкнуть старые документы и все ))
|
|||
11
Sasha_H
21.12.11
✎
13:08
|
я думаю там достаточно написать так: НаборЗаписей.ОбменДанными.Загрузка = Истина;
|
|||
12
Живой Ископаемый
21.12.11
✎
13:14
|
2(11) м.... может быть
|
|||
13
Sasha_H
21.12.11
✎
13:37
|
Собственно проблема изкоренна. Спс.
Отдельное спасибо (1),(8). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |