Имя: Пароль:
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
Программист всегда исправляет последнюю ошибку.