Имя: Пароль:
1C
1C 7.7
v7: Помогите с правильной формулой округления копеек ☑
0 Georg68
 
10.03.17
✎
05:42
Делаю двойной ценник, где одна цена со скидкой 2% и эту цену надо округлить до 50коп в меньшую сторону. А округляется только до рубля.

Цел((Число(Печрубли) + Число(Печкопейки)/100)*0.98)   - это рубли
?((((число(Печрубли) + число(печкопейки)/100)*0.98) %1)*100 >= 50, "50", "00")    - это копейки

Что не так?
82 Fedor-1971
 
10.03.17
✎
10:19
81+ макет который в (69), если там формулы пиши их
83 Масянька
 
10.03.17
✎
10:20
(80) Бэкап надо делать.
84 Georg68
 
10.03.17
✎
10:23
Итак.
Первая цена, которая без скидки.
Свойства рубли  -  ПечРубли
Свойства копейки  - ПечКопейки

Копейки сейчас не округляются
85 Georg68
 
10.03.17
✎
10:25
Может у меня нет глОкруглить , конфигурация очень древняя и переписанная вся
86 Fedor-1971
 
10.03.17
✎
10:25
(84) не так по каждой строке, что-бы было понимание, просто дополни мои строки данными (тут формула из макета): назначение
87 Fedor-1971
 
10.03.17
✎
10:26
(85) ты бы получил ошибку, типа "такой функции нету"
88 Fedor-1971
 
10.03.17
✎
10:27
86+ только пиши текущее состояние из макета
89 Georg68
 
10.03.17
✎
10:27
ну да
90 Fedor-1971
 
10.03.17
✎
10:28
(89) что ну да? дополни строки из (81)
91 se85
 
10.03.17
✎
10:28
Хех это уже анекдот какой то получается, может кто нибудь подключится к нему удаленно да сделает?!
92 Fedor-1971
 
10.03.17
✎
10:29
(91) а смысл? Он и дальше будет непонимать, что делает. Раз записался в ученики будет насильно учиться
93 Georg68
 
10.03.17
✎
10:32
Нет, ну делов то в принципе на копейку. Только упорядочить надо этот мозговой штурм.

1. Что правим в модуле?
2. Что пишем в Свойствах.
94 se85
 
10.03.17
✎
10:32
(92) Что б чему то обучить, обучаемый должен хотя бы что то понимать!!! Наш же клиент не понимает что и как работает ибо ни когда с этим не сталкивался :(
95 Georg68
 
10.03.17
✎
10:33
Согласен, в формулах я не понимаю, я ценники сам делаю, размеры и простые выражения.
Но это сложная формула.
96 Georg68
 
10.03.17
✎
10:34
Потому и прошу помощи. Форум же для этого и придумали или я не прав? Погнобить тупых юзеров придумали форум?)) Ну так с этим нормально.)
97 Fedor-1971
 
10.03.17
✎
10:35
(93) блин, вежливо, матом тебя прошу, дополни строки из (81)
потом до модуля доберёмся
(94) вот и разберётся и станет аксакалом и будет других учить
98 Georg68
 
10.03.17
✎
10:38
Первая цена, которая без скидки.
Свойства рубли  -  ПечРубли
Свойства копейки  - ПечКопейки


Вторая
Рубли   -    (число(Печрубли) + число(печкопейки))
Копейки свою вставил обратно
?((((число(Печрубли) + число(печкопейки)/100)*0.98) %1)*100 >= 50, "50", "00")
99 Georg68
 
10.03.17
✎
10:40
В ценнике сейчас такая фигня
https://dl.dropboxusercontent.com/u/80917909/Безымянный.jpg

Поменялись местами цены, так как переменную в первой цене мы не трогали
100 Fedor-1971
 
10.03.17
✎
10:40
(98) ну просил же, оставь начало потом - потом в () формула из макета, потом словами назначение. что бы получилось одной строкой привязка ячейки макета и её смысла
101 Georg68
 
10.03.17
✎
10:41
))) ваще понятно
а написать просто выражение не проще
102 Fedor-1971
 
10.03.17
✎
10:43
(101) нет, ты потом запутаешься при изменении и сколь нибудь сложная логика заполнения ячейки окончится вешалкой при реализации
103 Fedor-1971
 
10.03.17
✎
10:43
102+ давай как-то ускорься, мне тоже работать надо
104 Georg68
 
10.03.17
✎
10:47
Так затык полный уже
105 Georg68
 
10.03.17
✎
10:47
если до того была какая-то смутная картинка, теперь нет совсем
106 Fedor-1971
 
10.03.17
✎
10:48
(104) Ещё нет, так движемся самым простым путём:
Устанавлиай в макете:
ечРуб - ЦенаПродажи
Копе - КопейкиПродажи
Числ - СкидкаЦена
ечК - СкидкаКопейки

Поясни:
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена); - это цена со скидкой или продажи
107 Georg68
 
10.03.17
✎
10:49
Это цена продажи была
108 Это_mike
 
10.03.17
✎
10:50
(93) это не "мозговой штурм". это какой-то "безмозглый"
109 se85
 
10.03.17
✎
10:51
(107) Не скромный вопрос, а ты все эти операции делаешь на тестовой базе или рабочей?!
110 Georg68
 
10.03.17
✎
10:52
это какой-то "безмозглый"
Не спорю. В каждом деле должны быть профессионалы.
Вы в моем деле тоже наверняка не шарите, а я ас ))
Я и прошу помочь с формулой, а вы от меня много ожидаете просто ))
111 Georg68
 
10.03.17
✎
10:52
Макет ценника то можно на любой править
112 Fedor-1971
 
10.03.17
✎
11:09
(107) замечтательно:
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);
ЦенаПродажи=глОкруглить(ВремЦена , 1);
КопейкиПродажи=Прав(Строка(ЦенаПродажи-Цел(ЦенаПродажи)),2); // на случай если  вздумаешь оставить копейки в Цене продажи
СкидкаЦена=глОкруглить(Окр(ВремЦена-(ВремЦена*0.05)),2,1), 0.5); //отняли 5% и округлили до 50 коп.
СкидкаКопейки=Прав(Строка(СкидкаЦена-Цел(СкидкаЦена)),2); // твои копейки
Теперь соотноси в голове: в макете ты указал выражение в ячейке (не длинную формулу, а именно переменную, которую можешь заполнять любым способом, хоть двумя экранами кода). В процедуре заполнения макета просто вычисляешь нужное тебе значение

(110) Нескромный вопрос: ас в чём? (торговля? металлообработка (зубофрезерные станки? Электроэррозионные станки? компрессорное оборудование?), экспедирование?, документооборот? - конфигурации делал, компрессоры - до уровня конструктора)
Это типа я похвастался
113 Fedor-1971
 
10.03.17
✎
11:14
112+ Хотя немного не так, вот так

ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);
ЦенаПродажи=глОкруглить(ВремЦена , 1);
КопейкиПродажи=Прав(Строка(ЦенаПродажи-Цел(ЦенаПродажи)),2);// на случай если  вздумаешь оставить копейки в Цене продажи
ЦенаПродажи=Цел(ЦенаПродажи);
СкидкаЦена=глОкруглить(Окр(ВремЦена-(ВремЦена*0.05),2,1), 0.5);//отняли 5% и округлили до 50 коп.
СкидкаКопейки=Прав(Строка(СкидкаЦена-Цел(СкидкаЦена)),2); // твои копейки
СкидкаЦена=Цел(СкидкаЦена);
114 Georg68
 
10.03.17
✎
11:22
Это в Модуль ставим? В начале можно?
А в Свойствах всё таки что оставляем?
115 Fedor-1971
 
10.03.17
✎
11:34
(114) код ставим после
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена); - если процедура глобальная, то ничего не заменяем, просто добавляем код.
В свойствах ячейки макета как в (106) или по смыслу, где какая цифра должна быть - название заполненной переменной
116 Georg68
 
10.03.17
✎
12:04
Не могу понять я Вас , Федор. Переоцениваете мои способности всё же.
117 Fedor-1971
 
10.03.17
✎
12:12
(116) Которая часть непонятна?
По макету: открываем свойства ячейки и вместо "бла-бла" пишем наименование переменной, например, открываем свойства ячейки, где должна быть цена продажи, всё чистим и пишем "ЦенаПродажи" и т.д. имена переменных известны из (113)

По коду: ищем строку ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена); и после неё вставляем (113)
118 Georg68
 
10.03.17
✎
12:17
ЦенаПродажи<<?>>
Переменная не определена (ЦенаПродажи)
119 Fedor-1971
 
10.03.17
✎
12:21
(118) информативно, это откуда?
120 Georg68
 
10.03.17
✎
12:21
Это после изменений выдает при попытке вывести ценник
121 Georg68
 
10.03.17
✎
12:22
В Свойствах пишу СкидкаКопейки  ?
122 Georg68
 
10.03.17
✎
12:24
Докум.ВыбратьСтроки();
    Пока Докум.ПолучитьСтроку() = 1 Цикл
        Если ДокумВид = "ПереоценкаРозница" Тогда // пропускаем ТМЦ, где цена не менялась
             Если Докум.ЦенаСтарая = Докум.ЦенаНовая Тогда
                 Продолжить;    
             КонецЕсли;
        КонецЕсли;
         ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);    
         
ЦенаПродажи=глОкруглить(ВремЦена , 1);
КопейкиПродажи=Прав(Строка(ЦенаПродажи-Цел(ЦенаПродажи)),2); // на случай если  вздумаешь оставить копейки в Цене продажи

ЦенаПродажи=Цел(ЦенаПродажи);
СкидкаЦена=глОкруглить(Окр(ВремЦена-(ВремЦена*0.02),2,1), 0.5); //отняли 5% и округлили до 50 коп.

СкидкаКопейки=Прав(Строка(СкидкаЦена-Цел(СкидкаЦена)),2); // твои копейки

СкидкаЦена=Цел(СкидкаЦена);
         
         
         
         
         
        ПечРозн    = глФРМ(ВремЦена); // печатаем по розничным ценам - поэтому глРубли
123 Fedor-1971
 
10.03.17
✎
12:27
(120) понятно, глФРМ(ВремЦена) - вот это выводит ценник или делает нечто другое?
где реализован вывод ценника? Вылаживай всю процедуру печати из модуля
(121) Да для ячейки, где должны быть скидочные копейки
124 Georg68
 
10.03.17
✎
12:28
Перем ПечФирма;
Перем ПечРубли, ПечКопейки;
//******************************************************************************
// ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
//
// Параметры:
//  Таб             - таблица, в которую выполняется вывод ценника
//  ПечНаименование - наименование ТМЦ
//  ПечЕдиница      - единица измерения ТМЦ
//  ПечРозн         - цена ТМЦ
//  Столбик         - номер столбика.
//  Ряд             - номер ряда
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Добавляет ценник в таблицу.
//
Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд,Производитель, ПечКод="") Экспорт
    
     Столбик = Столбик + 1;
    
     Колонка     = ((Столбик - 1) % 3) + 1;
     Ряд          = Цел(((Столбик - 1) % 5)/1) + 1;
    
     Если (Колонка = 1) И (Ряд = 1) И (Столбик > 1) Тогда
          Таб.НоваяСтраница();
     КонецЕсли;
    
     Если Колонка = 1 Тогда
          Таб.ВывестиСекцию("Товар|Ценник");
     Иначе
          Таб.ПрисоединитьСекцию("Товар|Ценник");
     КонецЕсли;
    
КонецПроцедуры // ДобавитьЦенник()

//******************************************************************************
// Печать(Докум, Устройство=0, КолвоКопий=1)
//
// Параметры:
//  Докум      - контекст выводимого документа (ПереоценкаРозница, ПоступлениеТМЦРозница),
//  Устройство - если 0, то вывод на экран, иначе - на принтер,
//               необязателен, по умолчанию - на экран,
//  КолвоКопий - количество копий, по умолчанию - 1.
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Формирует таблицу с ценниками.
//
Процедура Печать(Докум, Устройство=0, КолвоКопий=1)
    
    ДокумВид = Докум.Вид();
    Если ДокумВид = "ПереоценкаРозница" Тогда
        ИдРознЦена = "ЦенаНовая";
    ИначеЕсли ДокумВид = "ПоступлениеТМЦРозница" Тогда
        ИдРознЦена = "РозничнаяЦена";
    ИначеЕсли ДокумВид = "РеализацияРозница" Тогда
        ИдРознЦена = "Цена";
    ИначеЕсли ДокумВид = "ПеремещениеТМЦ" Тогда
        Если Докум.СкладПолучатель.РозничныйСклад = 1 Тогда
            ИдРознЦена = "Цена";
        Иначе
            Предупреждение("Нельзя печатать ценники при перемещении
                           |ТМЦ на оптовый склад!", 60);
            Возврат;    
        КонецЕсли;
    Иначе
        Возврат;    
    КонецЕсли;
    
    //  Создание Таблицы для выходного отчета
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    
    ПечФирма = СокрЛП(Докум.Фирма.ЮрЛицо.ПолнНаименование);
    
    Столбик = 0;
    Ряд     = 0;
    
    Докум.ВыбратьСтроки();
    Пока Докум.ПолучитьСтроку() = 1 Цикл
        Если ДокумВид = "ПереоценкаРозница" Тогда // пропускаем ТМЦ, где цена не менялась
             Если Докум.ЦенаСтарая = Докум.ЦенаНовая Тогда
                 Продолжить;    
             КонецЕсли;
        КонецЕсли;
         ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);    
         
ЦенаПродажи=глОкруглить(ВремЦена , 1);
КопейкиПродажи=Прав(Строка(ЦенаПродажи-Цел(ЦенаПродажи)),2); // на случай если  вздумаешь оставить копейки в Цене продажи

ЦенаПродажи=Цел(ЦенаПродажи);
СкидкаЦена=глОкруглить(Окр(ВремЦена-(ВремЦена*0.02),2,1), 0.5); //отняли 5% и округлили до 50 коп.

СкидкаКопейки=Прав(Строка(СкидкаЦена-Цел(СкидкаЦена)),2); // твои копейки

СкидкаЦена=Цел(СкидкаЦена);
         
         
         
         
         
        ПечРозн    = глФРМ(ВремЦена); // печатаем по розничным ценам - поэтому глРубли
            // ((( dk 16/04/2013
        ПечРубли    = Цел(ВремЦена);
        ПечКопейки  = Прав("00" + ((ВремЦена*100) % 100), 2);
        //сообщить("--------------------------------------------------------------------------------");
    //    Сообщить(ВремЦена);
        //сообщить(ПечКопейки);
        // dk )))
        
        
        
        ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "")+"/"+Докум.Номенклатура.Код+"/";
        ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд,СокрЛП(Докум.Номенклатура.СтранаПроисхождения));
        глОживить(1);
    КонецЦикла;
    
    Если Устройство = 0 Тогда
        Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
        Таб.ТолькоПросмотр(1);
        Таб.Показать("Товарные ценники","");
    Иначе    
        Таб.ПараметрыСтраницы(,,,,,,,,,1,,);
        Таб.КоличествоЭкземпляров(КолвоКопий);
        Таб.Напечатать(0);
    КонецЕсли;
    
КонецПроцедуры // Печать()

//******************************************************************************
// ПоКнопкеПечать()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога:
//  Кнопка "Печать"
//
// Описание:
//
Процедура ПоКнопкеПечать()
    
    Если Док.Выбран() = 0 Тогда
        Предупреждение("Не выбран документ!", 60);
        Возврат;
    КонецЕсли;
    
    Печать(Док);
    
КонецПроцедуры // ПоКнопкеПечать()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
    
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
        
        Докум      = Форма.Параметр.Получить("Контекст");
        Устройство = Форма.Параметр.Получить("Устройство");
        КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");
    
        Печать(Докум, Устройство, КолвоКопий);
        Статусвозврата(0);
        Возврат;
    КонецЕсли;
    
КонецПроцедуры // ПриОткрытии()
125 Злопчинский
 
10.03.17
✎
12:28
помедленнее, я записываю!
126 Fedor-1971
 
10.03.17
✎
12:40
(124)измени:
глФРМ(ВремЦена) - если это вычисление цены со скидкой, то
СкидкаЦена=глОкруглить(глФРМ(ВремЦена),2,1), 0.5);

Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд,Производитель, ПечКод="", ЦенаПродажи="", КопейкиПродажи="", СкидкаЦена="", СкидкаКопейки="") Экспорт

ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд,СокрЛП(Докум.Номенклатура.СтранаПроисхождения), ЦенаПродажи, КопейкиПродажи, СкидкаЦена, СкидкаКопейки);

и будет тебе счасце
127 Fedor-1971
 
10.03.17
✎
12:44
(125) стенограмма заседания совета профилактики безграмотности?
ТС реально далёк от программирования, круто вляпался пытаясь что-то исправить
128 Fedor-1971
 
10.03.17
✎
12:47
126+ вот так: СкидкаЦена=глОкруглить(глФРМ(ВремЦена), 0.5); Остались лишние параметры. Пока можешь не менять, отладь то что сейчас есть
129 Georg68
 
10.03.17
✎
12:56
Нет счастья

{G:\1CBASES\DB\EXTFORMS\PRNFORMS\___ЦЕНА_6ШТ_2_СМЕСИ.ERT(127)}: Переменная не определена (Таб)
Таб<<?>>.Напечатать(0);
{G:\1CBASES\DB\EXTFORMS\PRNFORMS\___ЦЕНА_6ШТ_2_СМЕСИ.ERT(128)}: Переменная не определена (Таб)
КонецЕсли;<<?>>
{G:\1CBASES\DB\EXTFORMS\PRNFORMS\___ЦЕНА_6ШТ_2_СМЕСИ.ERT(129)}: Обнаружено логическое завершение исходного текста модуля
130 Fedor-1971
 
10.03.17
✎
12:59
(129) показывай код, что у тебя получилось
131 Georg68
 
10.03.17
✎
12:59
А вот так
СкидкаЦена=глОкруглить(глФРМ(ВремЦена), 0.5);

вот так
КолвоИнтервал    = Числ / Порядок;
{Глобальный модуль(243)}: Операция деления не определена для строковых величин
132 Fedor-1971
 
10.03.17
✎
12:59
130+ опять где-то не поставил ";"
133 Georg68
 
10.03.17
✎
13:00
Перем ПечФирма;
Перем ПечРубли, ПечКопейки;
//******************************************************************************
// ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
//
// Параметры:
//  Таб             - таблица, в которую выполняется вывод ценника
//  ПечНаименование - наименование ТМЦ
//  ПечЕдиница      - единица измерения ТМЦ
//  ПечРозн         - цена ТМЦ
//  Столбик         - номер столбика.
//  Ряд             - номер ряда
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Добавляет ценник в таблицу.
//

      Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд,Производитель, ПечКод="", ЦенаПродажи="", КопейкиПродажи="", СкидкаЦена="", СкидкаКопейки="") Экспорт
     Столбик = Столбик + 1;
    
     Колонка     = ((Столбик - 1) % 3) + 1;
     Ряд          = Цел(((Столбик - 1) % 5)/1) + 1;
    
     Если (Колонка = 1) И (Ряд = 1) И (Столбик > 1) Тогда
          Таб.НоваяСтраница();
     КонецЕсли;
    
     Если Колонка = 1 Тогда
          Таб.ВывестиСекцию("Товар|Ценник");
     Иначе
          Таб.ПрисоединитьСекцию("Товар|Ценник");
     КонецЕсли;
    
КонецПроцедуры // ДобавитьЦенник()

//******************************************************************************
// Печать(Докум, Устройство=0, КолвоКопий=1)
//
// Параметры:
//  Докум      - контекст выводимого документа (ПереоценкаРозница, ПоступлениеТМЦРозница),
//  Устройство - если 0, то вывод на экран, иначе - на принтер,
//               необязателен, по умолчанию - на экран,
//  КолвоКопий - количество копий, по умолчанию - 1.
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Формирует таблицу с ценниками.
//
Процедура Печать(Докум, Устройство=0, КолвоКопий=1)
    
    ДокумВид = Докум.Вид();
    Если ДокумВид = "ПереоценкаРозница" Тогда
        ИдРознЦена = "ЦенаНовая";
    ИначеЕсли ДокумВид = "ПоступлениеТМЦРозница" Тогда
        ИдРознЦена = "РозничнаяЦена";
    ИначеЕсли ДокумВид = "РеализацияРозница" Тогда
        ИдРознЦена = "Цена";
    ИначеЕсли ДокумВид = "ПеремещениеТМЦ" Тогда
        Если Докум.СкладПолучатель.РозничныйСклад = 1 Тогда
            ИдРознЦена = "Цена";
        Иначе
            Предупреждение("Нельзя печатать ценники при перемещении
                           |ТМЦ на оптовый склад!", 60);
            Возврат;    
        КонецЕсли;
    Иначе
        Возврат;    
    КонецЕсли;
    
    //  Создание Таблицы для выходного отчета
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    
    ПечФирма = СокрЛП(Докум.Фирма.ЮрЛицо.ПолнНаименование);
    
    Столбик = 0;
    Ряд     = 0;
    
    Докум.ВыбратьСтроки();
    Пока Докум.ПолучитьСтроку() = 1 Цикл
        Если ДокумВид = "ПереоценкаРозница" Тогда // пропускаем ТМЦ, где цена не менялась
             Если Докум.ЦенаСтарая = Докум.ЦенаНовая Тогда
                 Продолжить;    
             КонецЕсли;
        КонецЕсли;
         ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);    
         
ЦенаПродажи=глОкруглить(ВремЦена , 1);
КопейкиПродажи=Прав(Строка(ЦенаПродажи-Цел(ЦенаПродажи)),2); // на случай если  вздумаешь оставить копейки в Цене продажи

ЦенаПродажи=Цел(ЦенаПродажи);
СкидкаЦена=глОкруглить(глФРМ(ВремЦена), 0.2); //отняли 5% и округлили до 50 коп.

СкидкаКопейки=Прав(Строка(СкидкаЦена-Цел(СкидкаЦена)),2); // твои копейки

СкидкаЦена=Цел(СкидкаЦена);
                             
         
        ПечРозн    = глФРМ(ВремЦена); // печатаем по розничным ценам - поэтому глРубли
            // ((( dk 16/04/2013
        ПечРубли    = Цел(ВремЦена);
        ПечКопейки  = Прав("00" + ((ВремЦена*100) % 100), 2);
        //сообщить("--------------------------------------------------------------------------------");
    //    Сообщить(ВремЦена);
        //сообщить(ПечКопейки);
        // dk )))
        
        
        
        ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "")+"/"+Докум.Номенклатура.Код+"/";
        ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд,СокрЛП(Докум.Номенклатура.СтранаПроисхождения), ЦенаПродажи, КопейкиПродажи, СкидкаЦена, СкидкаКопейки);

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

//******************************************************************************
// ПоКнопкеПечать()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога:
//  Кнопка "Печать"
//
// Описание:
//
Процедура ПоКнопкеПечать()
    
    Если Док.Выбран() = 0 Тогда
        Предупреждение("Не выбран документ!", 60);
        Возврат;
    КонецЕсли;
    
    Печать(Док);
    
КонецПроцедуры // ПоКнопкеПечать()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
    
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
        
        Докум      = Форма.Параметр.Получить("Контекст");
        Устройство = Форма.Параметр.Получить("Устройство");
        КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");
    
        Печать(Докум, Устройство, КолвоКопий);
        Статусвозврата(0);
        Возврат;
    КонецЕсли;
    
КонецПроцедуры // ПриОткрытии()
134 Fedor-1971
 
10.03.17
✎
14:40
(131) тогда засада,
делай так СкидкаЦена=глОкруглить(Число(глФРМ(ВремЦена)), 0.5);
или верни назад то что было

(133) по коду ошибки не видно, кликни в конфигураторе по тексту ошибки и увидишь где она
135 Georg68
 
10.03.17
✎
14:44
Вооот. Пальцев то было у всех, а уж если профи умывают руки, нефиг на простого юзера наезжать ))
136 Масянька
 
10.03.17
✎
14:46
Я-то думала, что уже всё работает...
137 Fedor-1971
 
10.03.17
✎
14:47
(135) о как простой юзер, ты откуда взял текст ошибки?
138 Fedor-1971
 
10.03.17
✎
14:48
137+ или предлагаешь угадать что в твоём коде строка 127?
139 Georg68
 
10.03.17
✎
14:50
Чего уж я ошибку скопировать не могу.
140 Georg68
 
10.03.17
✎
14:51
Ничего не работает, возвращаюсь первоначальному варианту, там хоть до рубля округлял.
141 Fedor-1971
 
10.03.17
✎
14:52
(140) ну это как знаешь. Так и не ответил где вылезла ошибка в конфигураторе или в пользовательском режиме
142 Georg68
 
10.03.17
✎
14:53
В пользовательском, когда на печать вывожу
143 Масянька
 
10.03.17
✎
14:55
(135) Профи (это не про меня) - не умывают руки. Просто сложно "на пальцах" объяснять.
Если есть TeamViewer - давай, пока есть время.
144 Fedor-1971
 
10.03.17
✎
14:55
(142) и не даёт возможности щёлкнуть по ошибке? Чай обманываешь, ученик.
145 Georg68
 
10.03.17
✎
14:57
Есть ТИМ
146 Georg68
 
10.03.17
✎
14:57
Готовы?
147 Fedor-1971
 
10.03.17
✎
14:59
(146) давай ID и Пароль
148 Fedor-1971
 
10.03.17
✎
15:00
(147) есть 10 минут
149 Georg68
 
10.03.17
✎
15:03
477 396 503
150 Georg68
 
10.03.17
✎
15:03
a4k3m4
151 Georg68
 
10.03.17
✎
15:04
2 монитора
152 Fedor-1971
 
10.03.17
✎
15:04
(151) ща обновлюсь
153 Fedor-1971
 
10.03.17
✎
15:06
869 320 753 добавь в белый список
154 Georg68
 
10.03.17
✎
15:07
и так пройдет
155 Fedor-1971
 
10.03.17
✎
15:08
(154) "Вы находитесь в чёрном списке этого партнёра или не входите в белый список"
156 Fedor-1971
 
10.03.17
✎
15:10
уже вернул?
157 Georg68
 
10.03.17
✎
15:10
угу
158 Fedor-1971
 
10.03.17
✎
15:11
ладно, чего не хватает в таком раскладе?
159 Georg68
 
10.03.17
✎
15:12
округление в минус до рубля
хот елось бы до 50коп
160 Масянька
 
10.03.17
✎
15:15
(147) Вот чего раньше молчал?
161 Fedor-1971
 
10.03.17
✎
15:18
тут надо копейки?
162 Georg68
 
10.03.17
✎
15:18
до 50коп
163 Fedor-1971
 
10.03.17
✎
15:25
пробуй
164 Fedor-1971
 
10.03.17
✎
15:40
Держи и радуйся, 15 минут
165 Fedor-1971
 
10.03.17
✎
15:40
с наведением красоты
166 Georg68
 
10.03.17
✎
15:41
Математически округляет сейчас.
Ну фиг с ним
167 Fedor-1971
 
10.03.17
✎
15:42
(166) а как тебе нужно?
168 Georg68
 
10.03.17
✎
15:42
в меньшую сторону
169 Georg68
 
10.03.17
✎
15:43
в первом топике написал
170 Georg68
 
10.03.17
✎
15:43
да ладно
171 Georg68
 
10.03.17
✎
15:44
номер телефона или карточку для дотации можно?
172 Fedor-1971
 
10.03.17
✎
15:46
(171) В РБ тебе золотой платёж будет
тогда так
СкидкаКопейки=?(СкидкаКопейки > 50, 50, 0);
173 Fedor-1971
 
10.03.17
✎
15:47
Сам модернизируешь или показать?
174 Fedor-1971
 
10.03.17
✎
16:03
173 Только, Бога ради, в модуле, а не в ячейке печатной формы
175 Georg68
 
10.03.17
✎
16:05
вот эту строку изменить?

СкидкаКопейки=?(СкидкаКопейки=0,"00",Строка(СкидкаКопейки));
176 Fedor-1971
 
10.03.17
✎
16:07
(175) да, СкидкаКопейки=?(СкидкаКопейки >= 50, "50", "00");
177 Georg68
 
10.03.17
✎
16:13
только <= надо знак
178 Georg68
 
10.03.17
✎
16:15
Всё равно он непонятно считает, но с процентами всегда так
179 azernot
 
10.03.17
✎
16:25
Функция ОкруглитьДО(ИсходноеЧисло, РазрядОкругления = 0.5, РежимОкругления = 3);
    
    ОстатокОтДеления = ИсходноеЧисло % РазрядОкругления;
    Если РежимОкругления = 1 Тогда
        //Обычный по мат. правилам
        Результат = ИсходноеЧисло - ?(ОстатокОТДеления>=(РазрядОкругления/2), -РазрядОкругления + ОстатокОТДеления, ОстатокОТДеления);
    ИначеЕсли РежимОкругления = 2 Тогда
        //Обычный по мат. правилам, 0.5 округляется в меньшую сторону
        Результат = ИсходноеЧисло - ?(ОстатокОТДеления>(РазрядОкругления/2), -РазрядОкругления + ОстатокОТДеления, ОстатокОТДеления);
    ИначеЕсли РежимОкругления = 3 Тогда
        //В меньшую сторону
        Результат = ИсходноеЧисло - ОстатокОтДеления;
    ИначеЕсли РежимОкругления = 4 Тогда
        //В большую сторону
        Результат = ИсходноеЧисло - ОстатокОтДеления + РазрядОкругления;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции
180 Fedor-1971
 
10.03.17
✎
16:48
(177) в таком варианте 205,2 = 205,50, а 205,52 = 205,00 как-то гнутенько и даже близко на округление не похоже.
Там где идёт вычисление СкидкаКопейки замени 0,5 на 0,01 и получишь цену округлённую до копеек, дальше строка из (176)
181 Fedor-1971
 
10.03.17
✎
16:55
180 не, исправляй в вычислении СкидкаЦена, там есть округление до 0,5
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший