Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 19:03

ДЕлаю выбрузку из dbf, не передается дробная часть

Автор Dobrolubov, 27 сен 2012, 12:27

0 Пользователей и 1 гость просматривают эту тему.

Dobrolubov

Доброго дня, подскажите, как  мне сделать так чтобы дробная часть передавалась в том значении в котором имеется, а не округлялась?(((((

mixqn

опишите подробнее, как вы делаете. можно с куском кода.

Dobrolubov

  дбф1 = новый XBASe;
дбф1.Кодировка = КодировкаXBase.OEM;
дбф1.ОткрытьФайл("D:\dBase\kZ(prob)\kkorm.dbf");

дбфР = новый XBASe;
дбфР.Кодировка = КодировкаXBase.OEM;
дбфР.ОткрытьФайл("D:\dBase\kZ(prob)\recept.dbf");


    пока дбфр.Следующая() цикл
       НовыйРецепт = Справочники.Рецептов.СоздатьЭлемент();
НовыйРецепт.Наименование=дбфр.kkorm;
НовыйРецепт.Сырье=дбфр.syryo;
НовыйРецепт.Процент=дбфр.procent;
          НовыйРецепт.Записать();
                   конеццикла;
=======================
дбфр.procent - он округляет проценты, пример(в DBF 0,821  а в 1с он пишет 1)

mixqn

НовыйРецепт.Процент тип значения какой? сколько знаков после запятой?

Slin

Цитата: Dobrolubov от 27 сен 2012, 12:58
дбфр.procent - он округляет проценты, пример(в DBF 0,821  а в 1с он пишет 1)
Означает ли это, что в dbf уже округлено?
Выбор то невелик: либо в dbf уже так, либо НовыйРецепт.Процент - тип без дробной части
skype: slin-dev

Dobrolubov

а,чет я затупил, думал, что там 3 знака после запятой. а сам не поставил)) спасибо.

А есть еще вопрос изложу чуть ниже

Dobrolubov

В общем, в справочнике номенклатура, содержится, и корм и сырье. мне даны 2 таблицы dbf. (таб.1-сырье, таб.2-рецепт) структруа 1ой таблицы: syryo: N,3 ; syryoname: C,15 структура 2ой таблицы: kkorm:C,12; syryo:N,3;procent:R,5
обе таблицы я перетаскиваю в номенклатуру. с 1ой проблем вообще никаких. а для я делаю табличную часть в которой у меня размещается рецепт (Рецепт состоит из 2х колонок это : наименование сырья, то бишь берётся из номенклатуры, и процент который я тащу из 2ой таблицы)
ну вообщем гляньте код и задайте вопросы я не могу сформулировать вопроса))


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ДБФ = Новый XBase;
ДБФ.Кодировка = КодировкаXBase.OEM;
ДБФ.ОткрытьФайл("D:\dBase\kZ(prob)\SYRYO.dbf");
РодительТМЦ = Справочники.Номенклатура.СоздатьГруппу();
         РодительТМЦ.Наименование = "Сырье";
         РодительТМЦ.Записать();
         РодительСсылка = РодительТМЦ.Ссылка;
Пока ДБФ.Следующая() Цикл
    НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
НоваяНоменклатура.Код = ДБФ.SYRYO;
НоваяНоменклатура.Наименование = ДБФ.syryonam;
НоваяНоменклатура.Признак = перечисления.Признак_корм_сырье.Сырье;
НоваяНоменклатура.Родитель = РодительСсылка;
НоваяНоменклатура.Записать();
КонецЦикла;
ДБФ.ЗакрытьФайл();      
  дбф1 = новый XBASe;
дбф1.Кодировка = КодировкаXBase.OEM;
дбф1.ОткрытьФайл("D:\dBase\kZ(prob)\kkorm.dbf");

дбфР = новый XBASe;
дбфР.Кодировка = КодировкаXBase.OEM;
дбфР.ОткрытьФайл("D:\dBase\kZ(prob)\recept.dbf");


    пока дбфр.Следующая() цикл
       НовыйРецепт = Справочники.Рецептов.СоздатьЭлемент();
НовыйРецепт.Наименование=дбфр.kkorm;
НовыйРецепт.Сырье=дбфр.syryo;
НовыйРецепт.Процент=дбфр.procent;
          НовыйРецепт.Записать();
       
                   конеццикла;


РодительТМЦ1 = Справочники.Номенклатура.СоздатьГруппу();
         РодительТМЦ1.Наименование = "КомбиКорм";
         РодительТМЦ1.Записать();
         РодительСсылка1 = РодительТМЦ1.Ссылка;
   колзап = дбфр.КоличествоЗаписей();      
к = 1000;         
     Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   Рецептов.Наименование КАК Наименование,
      |   Рецептов.Сырье,
      |   Рецептов.Процент
      |ИЗ
      |   Справочник.Рецептов КАК Рецептов
      |
      |СГРУППИРОВАТЬ ПО
      |   Рецептов.Наименование,
      |   Рецептов.Сырье,
      |   Рецептов.Процент
      |ИТОГИ ПО
      |   Наименование";

   Результат = Запрос.Выполнить();

   ВыборкаНаименование = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    спрн=справочники.Номенклатура.Выбрать();
   Пока ВыборкаНаименование.Следующий() Цикл
   к = к + 1;
    
   новрец = Справочники.Номенклатура.СоздатьЭлемент();
   новрец.Код = к;
   новрец.Наименование = выборканаименование.наименование;
   новрец.Признак = перечисления.Признак_корм_сырье.КомбиКорм;
   новрец.Родитель = РодительСсылка1;

       ВыборкаДетальныеЗаписи = ВыборкаНаименование.Выбрать();

      Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   НоваяСтрокаТЧ =новрец.ТабличнаяЧасть1.Добавить();
   НоваяСтрокаТЧ.НаименованиеСырья = ВыборкаДетальныеЗаписи.     //вот тут я хз что написать, так то это поле выбора из номенклатуры
//надо наверное вроде ссылки что то сделать или запрос помучать
   НоваяСтрокаТЧ.ПроцентВвода = ВыборкаДетальныеЗаписи.Процент;
         КонецЦикла;
   новрец.Записать();    
   КонецЦикла;


дбфР.ЗакрытьФайл();
дбф1.ЗакрытьФайл();
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск