![]() |
|
При выгрузке из 1с в дбф уменьшить разрядность числа после запятой | ☑ | ||
---|---|---|---|---|
0
sergqwert
08.10.19
✎
00:24
|
Как при выгрузке из 1с в дбф уменьшить разрядность числа после запятой:
Если Не ЗначениеЗаполнено(Дата) Тогда Дата = ТекущаяДата(); КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА ЗакупкиОбороты.НДСОборот = 0 | ТОГДА 0 | ИНАЧЕ 20 | КОНЕЦ КАК СтавкаНДС, | ЗначенияСвойствОбъектов.Значение КАК Код, | СУММА((ЗакупкиОбороты.СтоимостьОборот + ЗакупкиОбороты.НДСОборот) / ЗакупкиОбороты.КоличествоОборот) КАК Цена, | СУММА(ВЫБОР | КОГДА ЗакупкиОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг | ТОГДА 1 | ИНАЧЕ -1 | КОНЕЦ * ЗакупкиОбороты.КоличествоОборот) КАК Количество, | ЗакупкиОбороты.Регистратор.Номер КАК НомерДок, | ЗакупкиОбороты.Регистратор.Дата КАК Дата, | 2 КАК Статус |ИЗ | РегистрНакопления.Закупки.Обороты(&НачалоПериода, &Дата, Регистратор, Номенклатура В (&МасСплат)) КАК ЗакупкиОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО ЗакупкиОбороты.Номенклатура = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &Свойство) | |СГРУППИРОВАТЬ ПО | ЗакупкиОбороты.Регистратор.Дата, | ЗакупкиОбороты.Регистратор.Номер, | ВЫБОР | КОГДА ЗакупкиОбороты.НДСОборот = 0 | ТОГДА 0 | ИНАЧЕ 20 | КОНЕЦ, | ЗначенияСвойствОбъектов.Значение" ; Запрос.УстановитьПараметр("Дата",КонецДня(Дата)); Если Не ЗначениеЗаполнено(НачалоПериода) Тогда НачалоПериода = Дата-3600*24*45; // 45 днейй КонецЕсли; Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода); Контрагент = Справочники.Контрагенты.НайтиПоКоду("000004764");// СЛ Дистрибьюшн ТОВ Запрос.УстановитьПараметр("Контрагент",Контрагент); Запрос.УстановитьПараметр("Контрагент2",Справочники.Контрагенты.НайтиПоКоду("000003826")); ВнешнийКод = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00117 "); // артикул внешний Запрос.УстановитьПараметр("Свойство",ВнешнийКод); МасСплат = ПолучитьМасСплат();//массив номенклатуры сплат. думаю, что так будет быстрее, чем связывать в запросе Запрос.УстановитьПараметр("МасСплат",МасСплат); КВФ= КаталогВременныхФайлов(); Макет = ПолучитьМакет("SALIND"); ИмяФайла = "SALIND.dbf"; Путь1 = КВФ+ИмяФайла; Макет.Записать(Путь1); ДБФ = Новый XBase; ДБФ.ОткрытьФайл(Путь1,,Ложь); ДБФ.ОчиститьФайл(); Рез = Запрос.Выполнить(); Выборка = Рез.Выбрать(); ДатаВыгрузки = Формат(ТекущаяДата(),"ДФ='yyyyMMdd ЧЧ:ММ'"); Пока Выборка.Следующий() Цикл ДБФ.Добавить(); ДБФ.VAT = Выборка.СтавкаНДС; // ДБФ.Code = Выборка.Код; // ДБФ.Price = СокрЛП(Формат(Выборка.Цена),"ЧДЦ =2; ЧГ =0")); // ДБФ.Qty = СокрЛП(Формат(Выборка.Количество),"ЧЦ=15; ЧДЦ=0; ЧГ =0")); // ДБФ.Invoice_No = Выборка.НомерДок; // ДБФ.Lot_id = Выборка.НомерДок; // номер партии ДБФ.DTLM = ДатаВыгрузки; ДБФ.Status = Выборка.Статус; ДБФ.Записать(); КонецЦикла; ДБФ.ЗакрытьФайл(); Если ЗначениеЗаполнено(Путь) Тогда ПереместитьФайл(Путь1,Путь+"\"+ИмяФайла); ЗагрузитьНаФТП(Путь+"\"+ИмяФайла,ИмяФайла); Иначе ЗагрузитьНаФТП(Путь1,ИмяФайла); КонецЕсли; Так не получается. |
|||
1
Chameleon1980
08.10.19
✎
02:43
|
Где твоя попытка?
Решение: создать поля нужного типа |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |