Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Выгрузка остатков, товаров и ШК к ним... : Супермаг Плюс (Супермаг 2000)

22.11.2024 18:15


06.06.2010 20:59
Цитата:
Mtirt А можно проще.
Сделать расходную накладную. Заполнить положительными остатками. Выгрузить этот документ через разделы - Экспорт.
не уверен что так можно получить ШК к товару...
06.06.2010 21:32
можно 2-мя этапами - выгрузка номенклатуры со штрихкодами, потом как предложила Mtirt.
07.06.2010 05:38
Мой способ хорош тем, что проставив основание в накладной можно получить псевдо-ФИФО. Причем без больших усилий...
Ну а карточки и штрих-кода - в той же задаче, но отдельным файлом.
07.06.2010 05:58
Ребята, всем огромное спасибо :connie_mini_dance-1
С остатками я как раз так и решил поступить, сделать отчет в HTML-е, только думал что его просто отпарсить в 1Ске

2Mirt - про расходную накладную мысль принял, можно сделать и так, может быть так даже будет правильнее.

Единственное на чем туплю после прочитанного - как html в xls конвертнуть - натолкните на мысль, а ? *122
07.06.2010 06:39
Поищи по форуму - где-то была ссылка на конвертер из HTML в XLS.
Только потом будешь долго и нудно удалять заголовки отчета.
07.06.2010 08:15
Цитата:
АлександерK Ребята, всем огромное спасибо :connie_mini_dance-1
С остатками я как раз так и решил поступить, сделать отчет в HTML-е, только думал что его просто отпарсить в 1Ске

2Mirt - про расходную накладную мысль принял, можно сделать и так, может быть так даже будет правильнее.

Единственное на чем туплю после прочитанного - как html в xls конвертнуть - натолкните на мысль, а ? *122
Слушай Mtirt и Dim. Время потратишь меньше, т.к. обрабатывать данные гораздо проще.
08.06.2010 07:02
Цитата:
Mtirt Поищи по форуму - где-то была ссылка на конвертер из HTML в XLS.
Только потом будешь долго и нудно удалять заголовки отчета.
Спасибо, конвертор нашел. Буду сегодня пробовать выгружать все что нужно для импорта в 1Ску.
09.06.2010 00:30
как вариант, если найдется добрый человек, который найдет время остатки прикрутить (у меня доступа к живой базе сейчас нет):

Код:
DECLARE

-- выгрузка на кассы Штрих miniPOS
	k_outF	UTL_FILE.FILE_TYPE;
	k_outD	VARCHAR2(10) := 'd:\sql'; 	-- каталог выгрузки на 
	-- СЕРВЕРЕ должен быть описан в параметре UTL_FILE_DIR в pfile
	k_outN	VARCHAR2(10) := 'goods1.txt';	-- имя файла

	-- выборка из базы
	cursor cash is 
		select c.ARTICLE, c.NAME, b.barcode, b.quantity, p.PRICE
		from SMCard c, SMStoreUnits b, SMPrices p
		where 
		  c.ARTICLE=b.ARTICLE and 
		  c.ARTICLE = p.ARTICLE and
		  c.ACCEPTED = 1 and
		  c.CASHLOAD = 1 and
		  p.STORELOC = 2;


	ca	VARCHAR2(50);		--	артикул
	cn	VARCHAR2(255);		--	наименование
	cnn	VARCHAR2(255);		--	наименование без табуляций
	bc      VARCHAR2(50);		--	штрихкод
	bq	NUMBER(14);		--	количество по штрихкоду
	pp	NUMBER(19,4);		--	цена
	tab	char(1) := CHR(9);	--	разделитель полей шаблона см2000
	dd	char(1) := ';';		--	разделитель для кассы


BEGIN
	-- открываем файл
	k_outF := UTL_FILE.FOPEN(k_outD,k_outN,'w');
	-- формируем заголовок
	UTL_FILE.PUTF(k_outF,'##@@&&'||'\n'||'#'||'\n');
	UTL_FILE.FFLUSH(k_outF);                

	OPEN cash;				-- открываем выборку
  	LOOP
    	FETCH cash INTO ca, cn, bc, bq, pp;	-- считываем записи
    	EXIT WHEN cash%NOTFOUND;		-- пока не кончится выборка

-- отладочный выход после строки № 100
--    	EXIT WHEN cash%ROWCOUNT > 100;

		cnn := REPLACE(cn,tab,' ');	-- выкидываем лишние табуляции
		cnn := REPLACE(cnn,dd,' ');	-- выкидываем из названий разделители
		-- выводим в буфер
		UTL_FILE.PUTF(k_outF,ca||dd||bc||dd||cnn||dd||cnn||dd||pp||dd||'0'||dd||'0'||dd||'0'||dd||'0'||dd||'0'||dd||'0'||dd||'0'||dd||'0'||dd||'1'||dd||'0'||dd||'0'||dd||'1'||dd||'2'||dd||'0'||dd||dd||dd||'\n');
		-- буфер иногда сбрасываем в файл, чтобы не переполнялся
		IF MOD(cash%ROWCOUNT,100)=0 then 
			UTL_FILE.FFLUSH(k_outF);
		END IF;
	END LOOP;
	CLOSE cash;				-- закрываем выборку
	UTL_FILE.FCLOSE(k_outF);		-- закрываем файл

EXCEPTION					-- обработчики ошибок 
  WHEN UTL_FILE.INVALID_PATH THEN 
		RAISE_APPLICATION_ERROR(-20100, 'Invalid Path');
  WHEN UTL_FILE.INVALID_MODE THEN 
		RAISE_APPLICATION_ERROR(-20101, 'Invalid Mode');
  WHEN UTL_FILE.INVALID_OPERATION THEN 
		RAISE_APPLICATION_ERROR(-20101, 'Invalid Operation');
  WHEN UTL_FILE.INVALID_FILEHANDLE THEN 
		RAISE_APPLICATION_ERROR(-20300,'Invalid File Handle');
  WHEN UTL_FILE.WRITE_ERROR THEN 
		RAISE_APPLICATION_ERROR(-20301,'Write Error');
  WHEN UTL_FILE.INTERNAL_ERROR THEN 
		RAISE_APPLICATION_ERROR(-20302,'Internal Error');
END;
/
exit;
Часовой пояс GMT +3, время: 18:15.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.