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

Приспичило перегнать накладные из 1с 7.7 в супермаг : Супермаг Плюс (Супермаг 2000)

20.04.2024 2:32


13.09.2012 16:17
whitewizard
 
Обработка в 1с формирует текстовый файл с готовым скриптом для запихивания в SQL Navigator
Без критики, пожалуйста. Задача ставилась элементарная, поэтому обошлось без нумерации документов с префиксами СМ.
--------------------------------------------
Функция ДД(Д1)
Д1=Дата(Д1);
ДМ=ДатаМесяц(Д1);
Если ДМ=1 Тогда
ДМ1="-янв-";
ИначеЕсли ДМ=2 Тогда
ДМ1="-фев-";
ИначеЕсли ДМ=3 Тогда
ДМ1="-мар-";
ИначеЕсли ДМ=4 Тогда
ДМ1="-апр-";
ИначеЕсли ДМ=5 Тогда
ДМ1="-май-";
ИначеЕсли ДМ=6 Тогда
ДМ1="-июн-";
ИначеЕсли ДМ=7 Тогда
ДМ1="-июл-";
ИначеЕсли ДМ=8 Тогда
ДМ1="-авг-";
ИначеЕсли ДМ=9 Тогда
ДМ1="-сен-";
ИначеЕсли ДМ=10 Тогда
ДМ1="-окт-";
ИначеЕсли ДМ=11 Тогда
ДМ1="-ноя-";
ИначеЕсли ДМ=12 Тогда
ДМ1="-дек-";
КонецЕсли;
Д0=Строка(ДатаЧисло(Д1))+Строка(ДМ1)+Строка(ДатаГод(Д1));
Возврат Д0;
КонецФункции

//*******************************************
//ДатаНач - Начало периода
//ДатаКон - Дата конца периода
//К1 - Контрагент, по которому отбираются документы
//0B791C164B0D4D6C961C0A314C8ED769 - Идентификатор базы
//23 - код места хранения
Процедура Сформировать()
Т=СоздатьОбъект("Текст");
Док=СоздатьОбъект("Документ");
СпрЕд = СоздатьОбъект("Справочник.Единицы");
Док.ВыбратьПоЗначению(ДатаНач, ДатаКон,"Контрагент", К1);
Пока Док.ПолучитьДокумент()=1 Цикл
Ккод=СокрЛП(Док.Контрагент.ЭлПочта);
НДВ=СокрЛП(Док.НомерДокВходящий);
Т.ДобавитьСтроку("INSERT INTO smdocuments VALUES ('WI','"+НДВ+"','0B791C164B0D4D6C961C0A314C8ED769','"+ДД(Док.ДатаДокВходящий)+"',1,0,NULL,"+ККод+",NULL,23,NULL,1,1,0,0,0,3,'1',NULL);");
Пока Док.ПолучитьСтроку()=1 Цикл
Номенклатура=Док.Номенклатура;
СпрЕд.ИспользоватьВладельца(Номенклатура);
СпрЕд.ВыбратьЭлементы();
Пока СпрЕд.ПолучитьЭлемент() = 1 Цикл
ШКод = СокрЛП(СпрЕд.ШтрихКод);
Если ПустоеЗначение(ШКод)=0 Тогда
ШК=ШКод;
КонецЕсли;
КонецЦикла;
//выбирается последний заведённый штрихкод в 1с. По нему потом и будет происходить поиск артикула в СМ
Т.ДобавитьСтроку("INSERT INTO smspec VALUES ('WI','"+НДВ+"',"+Док.НомерСтроки+","+Док.НомерСтроки+",(select article from smstoreunits where barcode='"+ШК+"'),"+Док.Количество+","+Док.Цена+","+Док.Сумма+","+Док.Цена+","+Док.Сумма+","+Док.Цена+","+Док.Сумма+",NULL,NULL,NULL);");
КонецЦикла;
КонецЦикла;
Т.Записать("C:\Download\sql.txt");
КонецПроцедуры
------------------------------------------------------
ДатаНач="01.01.2012";
ДатаКон="30.06.2012";
Часовой пояс GMT +3, время: 02:32.

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