[ОТВЕТИТЬ]
Опции темы
02.08.2011 15:42  
CrazyWolf
Приветствую! Возник очередной вопрос по СМ+
У нас в организации используется внешняя система ценообразования (на основе 1с 8.1.). При выгрузке сформированных ею актов переоценки, для получения очередного порядкого номера накорябал следующую обработку:
Код:
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Соединение;
Command.CommandText = "declare "
			"core_result pls_integer; "
			"vDocTypeID varchar2(2) := :vDocTypeID; "
			"nLocationID number(3,0) := :nLocationID; "
			"vDocID varchar2(50); "
			"begin "
				"if supermag.core.getproc is null then "
					"core_result := supermag.Core.StartSMApp(); "
				"end if; "
				"vDocID := SUPERMAG.DOCUMENTS.GENERATEDOCNO(ADOCTYPE => vDocTypeID, ALOCATION => nLocationID); "
				"SUPERMAG.DOCUMENTS.UNLOCKDOC(vDocTypeID, vDocID); " 
				":vDocID := vDocID; "
				"end;";
Command.Prepared = True;
Command.Parameters.Append(Command.CreateParameter(":vDocTypeID", 200, 1, 2, ТипДокумента ) );
Command.Parameters.Append(Command.CreateParameter(":nLocationID", 139, 1, 5, МестоХраненияКод ) );
Command.Parameters.Append(Command.CreateParameter(":vDocID", 200, 2, 15, "" ) );
Command.Prepared 			= True;
Попытка
	Command.Execute();
	НомерДокумента			= Command.Parameters.Item(2).Value;
Исключение
	Сообщить("Невозможно получить номер документа с системы СМ+." + ОписаниеОшибки(), СтатусСообщения.Важное);
	НомерДокумента			= Неопределено;
КонецПопытки;
В общем все работает прекрасно, за исключением момента "затупа" почтового модуля (либо очень большой очереди в нем). Тогда номер документа может быть присвоен новому документу создаваемого пользователем в базе. Можно ли как-нибудь "застолбить" номер документа? Попытка удалить
Код:
SUPERMAG.DOCUMENTS.UNLOCKDOC(vDocTypeID, vDocID);
приводит к тому что при приемке почтовый модуль начинает ругатся на блокировку документа пользователем.
 
02.08.2011 16:35  
OlegON
А тупо воткнуть что-то в supermag.smdocuments чем не вариант?
 
02.08.2011 16:40  
Little
А зачем резервировать номер !? Не проще развести номера СМ и 1С по префиксам ?! То что передаешь из 1с никак не пересечется между собой (номерами заведует), а в СМ будут создаваться акты со своей нумерацией.
Или я не понял корень проблемы?!
 
02.08.2011 16:42  
Mtirt
Поддерживаю Little. Кстати мы это на форуме уже обсуждали...
 
02.08.2011 16:44  
OlegON
Присоединяюсь к предложению разделить по префиксам.
 
02.08.2011 20:45  
konst
В свое время делали загрузку накладных из внешней 1С торговля и склад
тоже разруливали префиксами.
Но все-таки существует ли технология резервирования текущих номеров документов, например Центрального склада?
 
03.08.2011 04:23  
OlegON
Технология одна. Поскольку счетчики номеров игнорируются почтовиком, то единственный способ застолбить номер - создать запись в smdocuments с соответствующим bornin, чтобы приезжающие доки не поправили и в целом вставка обламывалась на ограничении уникальности.
 
27.12.2013 07:28  
CrazyWolf
Я таки поменял место работы и теперь мне мозг выносит не СМ+ а некая ERP Галактика, однако общаясь с бывшими коллегами узнал что есть оказывается еще и функция
generatedocnosrv
которая как раз позволяет "столбить" номера документов. Если таки вышлют кусок кода - запощу.
 
27.12.2013 08:43  
OlegON
проблема в данном случае в том, что на разных версиях СМ процедуры могут не совпадать, т.е. шансы изменения базовой структуры куда меньше, чем изменения процедур и всякой новой мелочи. Поэтому воткнуть в smdocuments запись быстрее, правильнее и надежнее. Ее уже трудно будет обойти.
 
27.12.2013 09:37  
mighty
Мы и заказы и АП и даже ПН создаем в других системах, выгружаем в СМ через XML, номера генерируем свои с префиксами. Например у тех же АП префикс РОЗ_XXXX - АП на розничную цену, ЗАК_XXX - АП на закупочную цену.
Процедуры СМ думаю вообще не стоит использовать(как Олег сказал может возникнуть проблема версионности, и тогда надо будет переписывать исходный внешний код), абсолютно все можно делать через XML обмен.
 
 
Опции темы



Часовой пояс GMT +3, время: 11:30.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.