Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) 1с вылетает при груповом проведении документов (число прочтений - 5598 )
SSSnake
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 18. Сентября 2007
1с вылетает при груповом проведении документов
11. Августа 2008 :: 10:24
Печать  
Посоветуйте в чем загвоздка...

Windows 2003 r2 + 1С 7.7 (027) + SQL 2005.
1С++ (2.5.0.5 Night Build 2007-11-12 пробовал и с более свежим билдом).

Вылетает 1С при груповом проведении документов:

State 42000, native 924, message [Microsoft][ODBC SQL Driver][SQL Server]Database '' is already open and can only have one user at a time.

SQL State: 23000
Native: 2627
Message: [Microsoft][ODBC SQL Driver][SQL Server]Violation of PRIMARY KEY constraint 'PK_RA****'. Cannot insert duplicated key in object 'dbo.RA****'

вылетает на разных документах... в ручном режиме документы проводяться без проблем

Проблема описана и тут: http://www.sql.ru/forum/actualthread.aspx?tid=311997
BkEnd.dll пропатчено...

Если кто встречался и справился - посоветуйте, пожалуйста, что делать.

Спасибо!
  
Наверх
 
IP записан
 
mixsture
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 14
Зарегистрирован: 17. Июня 2008
Re: 1с вылетает при груповом проведении документов
Ответ #1 - 11. Августа 2008 :: 10:56
Печать  
Да. Проблема в небольшом нарушении целостности базы )
Обычно, когда распроводим документ - 1с удаляет движения из регистра. В данной ситуации скорее всего остались движения в регистре, а при попытке проведения - 1с пытается заново добавить записи - и вылетает по уникальности ключа.
У меня это наблюдалось при большом количестве падений 1с на периферийных базах (центр был на SQL, а периферийные на DBF - вот из них косые записи и приходили) - и ошибка при процедуре обмена

Толкового решения я не нашел - я удалил все записи того регистра и перепровел базу. Теоретически, можно получить идентификатор документа и удалить только его записи.
  
Наверх
 
IP записан
 
SSSnake
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 18. Сентября 2007
Re: 1с вылетает при груповом проведении документов
Ответ #2 - 11. Августа 2008 :: 12:46
Печать  
База не распределенная.

1с вылетает только при монопольном режиме работы. При обычном входе документы проводяться как в транзакциях так и без транзакций.
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: 1с вылетает при груповом проведении документов
Ответ #3 - 11. Августа 2008 :: 13:18
Печать  
Вызывает сомнение фраза: "Database '' is already open and can only have one user at a time. "
Может у тебя для проведения  идет еще одно подключение, которое не в монопольном режиме проходит, а в монопольном выдает это сообщение.
Проверь, на каком документе выдает сообщение и посмотри на модуль проведения.
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
SSSnake
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 18. Сентября 2007
Re: 1с вылетает при груповом проведении документов
Ответ #4 - 11. Августа 2008 :: 13:32
Печать  
Запись движений проводиться в модуле проведения штатными методами. Получение данных прямими запросами по разным регистрам (4 запроса идущих подряд).
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: 1с вылетает при груповом проведении документов
Ответ #5 - 11. Августа 2008 :: 13:43
Печать  
SSSnake писал(а) 11. Августа 2008 :: 13:32:
Получение данных прямими запросами по разным регистрам (4 запроса идущих подряд).

Вот в этом и вопрос! Подключение к базе, для выполнения запросов, через OLE?
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
SSSnake
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 18. Сентября 2007
Re: 1с вылетает при груповом проведении документов
Ответ #6 - 12. Августа 2008 :: 07:55
Печать  
Подключения по OLE нету...
работает одна 1с в монопольном режиме, на отдельном сервере, вылетает примерно на 150-170 документе ...
не в монопольном режиме проводиться без вылетаний (тестил проведение порядка 5000 документов)
  
Наверх
 
IP записан
 
SSSnake
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 18. Сентября 2007
Re: 1с вылетает при груповом проведении документов
Ответ #7 - 13. Августа 2008 :: 06:06
Печать  
Небольшое уточнение... вылетает на "УложитьСписокОбъектов"

Код
Выбрать все
//--{ Остатки с Партиями
		Сообщить("---01--");
		ЗапросПР_1 = СоздатьОбъект("ODBCRecordSet");
		Если ФлагИтогиАктуальны=1 Тогда
			стрДат="";
		Иначе        
			meta1 = СоздатьОбъект("MetaDataWork");
			ЗапросПР_1.УстановитьТекстовыйПараметр("ВыбДата", );
			стрДат=":ВыбДата"
		КонецЕсли;

		Сообщить("---02--");

		ЗапросПР_1.УложитьСписокОбъектов(СписокТМЦ, "#ГруппаТ_РН_ПР1", "ТМЦ");

		Сообщить("---03--");

		ЗапросПР_1.УстановитьТекстовыйПараметр("Складп", Склад.ТекущийЭлемент());
		ЗапросПР_1.УстановитьТекстовыйПараметр("ВыбФирма", ПустаяФирма);

		Сообщить("---04--");


		ТекстЗапросаПР_1 = "
		|SELECT
		|  Max(Рег.Фирма) [Фирма $Справочник.Фирмы]
		|, Рег.ТМЦ [ТМЦ $Справочник.ТМЦ]
		|, Max(Рег.Склад) [Склад $Справочник.Склады]
		|, Рег.Партия [Партия $Справочник.Партии]
		|, Рег.Сномер СНомер
		|, SUM(Рег.КвоОстаток) Кво
		|, SUM(Рег.СуммаГрнОстаток) СуммаГрн
		|, SUM(Рег.СуммаБезНДСОстаток) СуммаБезНДС
		|, SUM(Рег.СуммаОснОстаток) СуммаОсн
		|, SUM(Рег.НаценкаОстаток) Наценка
		|FROM
		|  $РегистрОстатки.Остатки("+стрДат+",,
		|  		Фирма = :ВыбФирма AND Склад = :Складп AND ТМЦ IN (SELECT Val FROM #ГруппаТ_РН_ПР1),
		|		(Фирма,ТМЦ,Склад,Партия,СНомер),) as Рег
		|GROUP BY Рег.ТМЦ, Рег.Партия, Рег.Сномер
		|";

		Сообщить("---05--");

		ЗапросПР_1.РежимRPC(1);
		ТаблОст = ЗапросПР_1.ВыполнитьИнструкцию(ТекстЗапросаПР_1);
		ЗапросПР_1=0;
		meta1=0;

		Сообщить("---06--");
 



выдает следующее:

Код
Выбрать все
---01--
---02--
Internal error:
State 42000, native 924, message [Microsoft][ODBC SQL Server Driver][SQL Server]Database '...' is already open and can only have one user at a time.
---03--
---04--
---05--
ТаблОст = ЗапросПР_1.ВыполнитьИнструкцию(ТекстЗапросаПР_1);
{Документ.РасходнаяНакладная.Модуль Документа(1061)}: State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#ГруппаТ_РН_ПР1'.
Документ не проведен!
 


  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: 1с вылетает при груповом проведении документов
Ответ #8 - 13. Августа 2008 :: 09:58
Печать  
попробуй два варианта
первый вариант
без строки
Запрос.RPC(1)

второй вариант  режим rpc включаем сразу после создания объекта
Код
Выбрать все
ЗапросПР_1 = СоздатьОбъект("ODBCRecordSet");
ЗапросПР_1.РежимRPC(1);
 

  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: 1с вылетает при груповом проведении документов
Ответ #9 - 13. Августа 2008 :: 10:01
Печать  
Нафига укладывать если можно соединиться с ТЧ документа (при необходимости предварительно сгруппировать в подзапросе)?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
SSSnake
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Зарегистрирован: 18. Сентября 2007
Re: 1с вылетает при груповом проведении документов
Ответ #10 - 13. Августа 2008 :: 12:53
Печать  
Цитата:
Нафига укладывать если можно соединиться с ТЧ документа (при необходимости предварительно сгруппировать в подзапросе)?


Спасибо так и сделал... группировать в подзапросе пришлось из-за Серийных Номеров (тоесть в табличной части есть одинаковые ТМЦ)

Все работает!
Спасибо!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать