Переключение на Главную Страницу Страницы: 1 2 3 [4]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Расширение возможностей УРБД (число прочтений - 39122 )
Leierkastenmann
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 114
Зарегистрирован: 30. Марта 2007
Re: Расширение возможностей УРБД
Ответ #45 - 20. Января 2010 :: 12:35
Печать  
Yukimir писал(а) 20. Января 2010 :: 11:42:
TypeId имеет 36-ричной формат. Проблема скорей всего в 1SDWNLDS.DBF.

В 1SUPDTS поле DWNLDID имеет код выгрузки, для этого кода обязательно должна быть запись в 1SDWNLDS в поле DWNLDID. Поля в данной строке должны быть заполнены так чтобы 1С при выгрузке видела что это еще не выгружалась. Какие конкретно значения должны быть не скажу, попробуй экспериментальным образом выяснить. У него должно  быть несколько состояний, что то типа "не выгружалось/выгружалось, подтверждение не пришло/выгружалось и пришло подтверждение".

Вот если кому поможет: я создавал обработку которая выкидывает некоторые документы по значению реквизитов из файла регистрации. Я давно отказался от этой затеи поэтому уже толком не помню что нужно доработать в конфигураторе, но думаю кому надо можно разобраться что к чему. Сейчас я занимаюсь доведением до ума обработки которая обрабатывает файл выгрузки.


Не соглашусь, что проблема в 1sdwnlds. Она занимается только фиксацией и подтверждением пакетов обмена и больше ничем. Если вы запустили выгрузку для какой-то периферийной базы, то в нее попадет все, что находится в 1supdts для базы с этим кодом, неважно какие там dwnldid стоят. По полю dwnldid происходит удаление записей, которые были успешно загружены периферийной базой и происходит это при загрузке файла обмена от периферийной базы.
  
Наверх
 
IP записан
 
Yukimir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 15
Зарегистрирован: 28. Мая 2009
Re: Расширение возможностей УРБД
Ответ #46 - 20. Января 2010 :: 12:40
Печать  
Тогда остается копаться в индексном файле, больше просто негде.
  
Наверх
 
IP записан
 
newbas
Junior Member
**
Отсутствует



Сообщений: 32
Местоположение: Краснодар
Зарегистрирован: 29. Августа 2008
Пол: Мужской
Re: Расширение возможностей УРБД
Ответ #47 - 20. Января 2010 :: 14:22
Печать  
Alex_Bob писал(а) 20. Января 2010 :: 10:20:
Скорее всего вставленные таким образом записи не попадают в индексный файл.

Именно это и было, обнаружил случайно, а потом увидел уже тут запись. Привожу кусок кода, который помечает к выгрузке документ в периферийные базы:
Код
Выбрать все
	глОлеДБ = СоздатьОбъект("OLEDBData");
	Рез		= глОлеДБ.Соединение("
		|Provider=VFPOLEDB.1;
		|Null = Yes;
		|Exclusive = No;
		|SourceType = DBF;
		|Data Source=" + КаталогИБ() + ";
		|Mode=ReadWrite;
		|Extended Properties="""";
		|User ID="""";
		|Password="""";
		|Mask Password=False;
		|Collating Sequence=MACHINE;
		|DSN=""""");

	Запрос = глОлеДБ.СоздатьКоманду();
	Выборка		= СоздатьОбъект("ТаблицаЗначений");
	Записи		= СоздатьОбъект("ТаблицаЗначений");
	МетаИмена	= СоздатьОбъект("MetaDataWork");

	Запрос.ВыполнитьИнструкцию("SELECT * FROM 1SDBSET WHERE DBSTATUS = ""C""", Выборка);
	Выборка.ВыбратьСтроки();
	Пока Выборка.ПолучитьСтроку() = 1 Цикл
		ИдБазы	= Выборка.DBSIGN;
		ИдБазы	= глДополнитьСтрокуП(ИдБазы," ", 3);

		// С начала проверим наличие текущего документа в выгрузке
		Стр			= МетаИмена.ЗначениеВДлиннуюСтрокуБД(ТекущийДокумент());
		ИдТипа		= Лев(Стр,4);
		ИдОбъекта	= Прав(Стр,9);

		ТекстЗапроса="SELECT *
			|FROM 1SUPDTS
			|WHERE (
			|((DBSIGN)  ="""+ИдБазы+""") AND
			|((TYPEID)  ="""+ИдТипа+""") AND
			|((OBJID)   ="""+ИдОбъекта+""") AND
			|((DWNLDID) =""     0"")
			|)
			|";

		Запрос.ВыполнитьИнструкцию(ТекстЗапроса, Записи);

		Если Записи.КоличествоСтрок() = 0 Тогда
			Запрос.ВыполнитьИнструкцию("
			|INSERT INTO 1SUPDTS (DBSIGN, TYPEID, OBJID, DWNLDID, DELETED)
			|VALUES("""+ИдБазы+""","""+ИдТипа+""","""+ИдОбъекта+""",""     0"", "" ""
			|)");
		КонецЕсли;
	КонецЦикла;
 


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 
ОтправитьПечать