7.7 Кнопки и переключатели в обработке

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Kirill_NN, 4 дек 2007.

  1. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Есть простенькая обработка "Округление цен"

    Код:
    //*******************************************
    Процедура Поехали()
    СпрЦен = СоздатьОбъект("Справочник.Цены");
    СпрЦен.ИспользоватьДату(ВыбДата);
    СпрЦен.ИспользоватьВладельца("Справочник.Номенклатура");
    Режим = 0;
    СпрЦен.ВыбратьЭлементы(Режим);
    Пока СпрЦен.ПолучитьЭлемент() = 1 Цикл
    //Начинаем обработку
    Если СпрЦен.Валюта = ВыбВалюта Тогда
    СпрЦен.Цена = Окр(СпрЦен.Цена,1,1);
    СпрЦен.Записать();
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    Как в нее правельно добавить кнопки вида "Округлять до десятой" "Округлять до рубля"
    И "использовать правила математики" (0,05 в 0,1), "просто обнулить"

    Заренее благодарен
    Саму обработку тоже прикрепил

    Вложения:

    • Test.ert
      Размер файла:
      29,5 КБ
      Просмотров:
      70
  2. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    Раздел "Процедуры и функции форматирования".
    Код:
    Формат
    
    тебе поможет, только не винт форматируй.
  3. AndreySc
    Offline

    AndreySc

    Регистрация:
    11 окт 2007
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    А разве Формат возвращает не текстовое представление числа???? Я не понял надо округление или форматирование?
  4. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    Дано:
    "реквизит диалога" идентификатор "деньга", тип "число" длина 10 точность 2, (для денег).
    кнопка "Округлить до десятых" - формула: деньга=Формат(деньга,"Ч10.1")
    кнопка "Округлить до рубля" - формула: деньга=Формат(деньга,"Ч10.0")

    вводим 12.56

    Результат:
    кнопка 1 даст 12.60
    кнопка 2 даст 13.00

    В коде человек уже использовал округление
    Код:
    СпрЦен.Цена = Окр(СпрЦен.Цена,1,1);
    
    Видать, не получается. Альтернатива -формат, мож с ним будет проще :)
  5. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    А, дошло. (извините, болею, туго соображаю...)
    Нужно, чтобы в зависимости от выбранной кнопочки округляло до десятых или до целых..
    Дык добавь 2 переключателя на форму ("до 10 коп" и "до рубля", добавь переменную "Округление"", при выборе присваивай ей 1 или 0 соответственно, а в коде измени
    Код:
    СпрЦен.Цена = Окр(СпрЦен.Цена,1,1);
    
    на
    Код:
    СпрЦен.Цена = Окр(СпрЦен.Цена,Округление,1);
    
    Вроде так...

    Или тебе сделать? :)

    P.S А если еще добавить выбор "правила округления" (3 параметр) - будет ваще круто.
  6. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Вабще я так и хотел...

    Тока как мне их правильно записать
    Я вабще только учусь работе с 1С, а с кнопками туго как то получается...

    Допустим я делаю переключатели: "до рубля" и до "10 копеек" - объединяю их в группу "ВыбДеньги"
    и делаю так:
    Код:
    //*******************************************
    Перем Округление; 
    Перем ВыбДеньги;
    Процедура Поехали()
    Если ВыбДеньги = 1
    Тогда Округление = 0
    Иначе Округление = 1
    КонецЕсли;
    СпрЦен = СоздатьОбъект("Справочник.Цены");
    СпрЦен.ИспользоватьДату(ВыбДата);
    СпрЦен.ИспользоватьВладельца("Справочник.Номенклатура");
    Режим = 0;
    СпрЦен.ВыбратьЭлементы(Режим);
    Пока СпрЦен.ПолучитьЭлемент() = 1 Цикл
    //Начинаем обработку
    Если СпрЦен.Валюта = ВыбВалюта Тогда
    СпрЦен.Цена = Окр(СпрЦен.Цена,Округление,1);
    СпрЦен.Записать();
    КонецЕсли;
    КонецЦикла;
    
    Используйте тэг
    Код:
    [/color]
  7. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Ерунда какая то...
    все вроде правильно, но кнопки почему то "заедают"
    Посмотрите, поправьте что не так...

    Заренее благодарен!

    Вложения:

    • NPrise_.ert
      Размер файла:
      31 КБ
      Просмотров:
      61
  8. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    Немного не понял про "заедают кнопки"...
    Что касается кода:
    Код:
     Если Округление = 1 Тогда     //Запускаем проверку на переключателе Округление
    ОкрЦен = 0
    ИначеЕсли   Округление = 2 Тогда
    ОкрЦен = 1
    КонецЕсли;
    
    
    ИМХО, Округление или 0 или 1, но никак не 1 или 2 (выбран=1, не выбран=0)
    то же с переключателем "Правила"....
  9. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Попробуй понажимай эти переключатели...

    Хм... это вроде "Флажок" либо нажат = 1, либо нет = 0
    А с переключателями может быть неск-ко значений...
  10. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Держи и не парься
    В форме исправлен порядок обхода элементов, модуль переписан весь.

    Вся работа заняла чуть более 5 мин.

    ВНИМАТЕЛЬНО ЧИТАЙ КРАСНО-ЖЕЛТЫЕ-КНИГИ.

    Вложения:

    • NPrise_.ert
      Размер файла:
      39 КБ
      Просмотров:
      99
  11. TopicStarter Overlay
    Kirill_NN
    Offline

    Kirill_NN Опытный в 1С

    Регистрация:
    2 фев 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Пасиб большое...
    я правда хотел разобраться почему не так...

    буду читать внимательнее...

Поделиться этой страницей