7.7 округление цен

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем expobel, 23 окт 2013.

  1. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    кто может помоч как сделать чтобы цены и суммы во всех документах были с 4 знаками после запятой пример цена в долларах 0,235 пишет в учете 0,24 в списке округлений самое маленькое есть округлить до 0,01 может можно как то добавить цифру до 0,0001
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Конфигурация-то какая?
  3. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    торговля + склад 9,2 1с7,7
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Очень большая и трудоемкая работа. Ибо нужно переписывать ВСЮ конфигурацию. Реквизиты документов, ресурсы регистров, алгоритмы расчетов... Все имеет разрядность 2.
    Для чего вам это понадобилось и что именно не устраивает? Может в политике у вас просто не так настроено?
  5. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    пример цена за батарейку 0,235 две штуки это 0,47 в прайсе пишет 0,24 и в накладной тоже 2 штуки это 0,48 разница цент а на количестве представляете я в конфигурации везде исправил на 4 знака после запятой если накладную вручную набираю то все норм если через подбор то 0,24 все равно это к примеру то есть для начала самое малое это исправить в прайс листе чтоб правильно писало и через подбор спасибо что отвечаете
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    а не проще ли учитывать в рублях? К тому же 0.235 цента.... неужели такое возможно?
  7. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    так с прайс листом и подбором помоч можете?
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  9. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    так что мне надо сделать базу там скинуть или что
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Бесплатно могу только подсказать как сделать.
    В номенклатуре: форма списка для подбора тоже нужно добавить разрядность...
  11. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    конфигурация номенклатура в том то и дело что нет такого раздела форма списка для подбора
  12. SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    В номенклатуре нужно исправлять, в форме обработок вызов кол-ва и цены тоже нужно исправлять.
    Начнем, первое открываем номенклатуру, форма для подбора.
    Код:
    Процедура ОбработкаКликаПоТаблице()
    ........................
    Цен=ТаблицаПодбора.Цена;
    Если глПолучитьПолномочие("РазрешитьРедактированиеЦенВдокументах") = 0 Тогда
    Предупреждение("Редактирование цен запрещено в соответствии
    |с установленными полномочиями пользователя!", 60);
    Возврат;
    Иначе 
    ///Сергей
    Если ВвестиЧисло(Цен,"Введите цену",16,3, 60)=0 Тогда 
    // 16 длина, тройка это колво символов после запятой
    Возврат;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    ТаблицаПодбора.Цена=Цен;
    
    ПересчетСуммы();
    
    ИначеЕсли ТаблицаПодбора.ТекущаяКолонка()="Сумма" Тогда
    Если глПолучитьПолномочие("РазрешитьРедактированиеЦенВдокументах") = 0 Тогда
    Предупреждение("Редактирование цен запрещено в соответствии
    |с установленными полномочиями пользователя!", 60);
    Возврат;
    КонецЕсли;
    Сум=ТаблицаПодбора.Сумма;
    Если ВвестиЧисло(Сум,"Введите сумму",15,3, 60)=0 Тогда
    Возврат;
    КонецЕсли;			    
    Код:
     // инициализация таблицы значений отобранных товаров
    //Сергей
    ТаблицаПодбора.НоваяКолонка("Цена"	    ,"Число",16,3,"Цена"		   ,10,,2);
    ТаблицаПодбора.НоваяКолонка("Сумма"	   ,"Число",15,3,"Сумма"		  ,10,,2);
    В нужных документах меняем кол-во и сумму на то что нам нужно 3 символа после запятой

    Далее идем в обработки ищем ввод количества
    Там щелкаем на кол-во и сумму выбиравем тип изменям на точность 3
    Потом идем в справочники , ищем справочник цена, меням цена на точность 3 символа.
    Вроде все, если нужно что бы и розничнаяцена была с 3 цифрами, подумайте сначала сами а если не получится, тогда велком.
  13. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    я не программист нашел тока это
    глОбработкаПодбора(Конт, ВыбЗнач, ЕстьНДС, ЕстьНП, ЕстьСкидка)
    //
    // Параметры:
    // Конт - контекст документа, в котором произошло событие "Обработка подбора"
    // ВыбЗнач - выбранное значение (список параметров)
    // ЕстьНДС - нужно заполнять при подборе ставку и сумму НДС,
    // ЕстьНП - нужно заполнять при подборе ставку и сумму НП,
    // ЕстьСкидка - нужно заполнять при подборе сумму скидки,
    //
    // Возвращаемое значение:
    // Нет
    //
    // Вызывается из формул элементов диалога:
    //
    // Описание:
    // Производит заполнение табличной части документа переданными из формы подбора
    // данными.
    //
    Процедура глОбработкаПодбора(Конт, ВыбЗнач, ЕстьНДС, ЕстьНП, ЕстьСкидка) Экспорт

    Перем ТаблЧасть, ТаблицаПодбора;

    ТипЗнач = ТипЗначенияСтр(ВыбЗнач);
    Если ТипЗнач = "СписокЗначений" Тогда

    ЕстьВидТМЦ = ВыбЗнач.Получить("ЕстьВидТМЦ"); // нужно заполнять при подборе вид ТМЦ

    ЦенаВподборе = ВыбЗнач.Получить("ЦенаВподборе");
    Если (ЦенаВПодборе = "ИзСправочника") или (ЦенаВподборе = "Розница") Тогда
    ЕстьЦена = 1; // нужно заполнять при подборе цену ТМЦ
    Иначе

    // (ЦенаВподборе = "Нет") или (ПустоеЗначение(ЦенаВподборе) = 1)
    ЕстьЦена = 0;
    КонецЕсли;
    ТипЦен = ВыбЗнач.Получить("ТипЦен");

    ТаблицаПодбора = ВыбЗнач.Получить("ТаблицаПодбора");
    Иначе

    // если не список ничего не делаем
    Возврат;
    КонецЕсли;

    // Инициализация переменных
    ФлагиИзТипаЦен = 1;
    ЦенаВклНП = 1;
    ЦенаВклНДС = 1;
    УчитыватьНП = ЕстьНП;
    УчитыватьНДС = ЕстьНДС;

    Если ЕстьЦена = 1 Тогда

    // Флаги включения налогов в сумму определяеются типом цен,
    // кроме случая перемещения из розницы (цены в этом случае берутся из регистра с налогами)
    Если ЦенаВподборе = "Розница" Тогда
    ФлагиИзТипаЦен = 0;
    КонецЕсли;

    ФлагиИзТипаЦен = ФлагиИзТипаЦен * ?(ПустоеЗначение(ТипЦен) = 1, 0, 1);

    Если ФлагиИзТипаЦен = 1 Тогда

    // Подбирали по ценам с налогами, заданными в типе цен
    ЦенаВклНП = ТипЦен.ЦенаВклНП;
    ЦенаВклНДС = ТипЦен.ЦенаВклНДС;
    Иначе // считаем, что подбирали в соответствии с флагами в документе

    // По умолчанию считаем, что если нет в документе флагов учета налогов,
    // то цена со всеми налогами (как в рознице)
    Если глЕстьРеквизитШапки("СуммаВклНП", Конт.Вид()) = 1 Тогда
    ЦенаВклНП = Конт.СуммаВклНП;
    КонецЕсли;

    Если глЕстьРеквизитШапки("СуммаВклНДС", Конт.Вид()) = 1 Тогда
    ЦенаВклНДС = Конт.СуммаВклНДС;
    КонецЕсли;
    КонецЕсли;

    // Выкручивать или накручивать налоги надо только если они в документе учитываются
    Если глЕстьРеквизитШапки("УчитыватьНП", Конт.Вид()) = 1 Тогда
    УчитыватьНП = ЕстьНП * Конт.УчитыватьНП;
    КонецЕсли;

    Если глЕстьРеквизитШапки("УчитыватьНДС", Конт.Вид()) = 1 Тогда
    УчитыватьНДС = ЕстьНДС * Конт.УчитыватьНДС;
    КонецЕсли;

    КонецЕсли;

    ТипЗнач = ТипЗначенияСтр(ТаблицаПодбора);
    Если ТипЗнач = "ТаблицаЗначений" Тогда

    РеквизитыТаблЧастиСтрока = "Единица, НомерСтроки";
    Если (ЦенаВподборе = "Розница") И (глЕстьРеквизитМнЧ("Цена", Конт.Вид()) = 1) Тогда
    РеквизитыТаблЧастиСтрока = РеквизитыТаблЧастиСтрока + ", Цена";
    КонецЕсли;

    Конт.ВыгрузитьТабличнуюЧасть(ТаблЧасть, РеквизитыТаблЧастиСтрока);

    ТаблицаПодбора.ВыбратьСтроки();
    Пока ТаблицаПодбора.ПолучитьСтроку() <> 0 Цикл
    Номенклатура = ТаблицаПодбора.Номенклатура;
    Единица = ТаблицаПодбора.Единица;

    Если Номенклатура <> Единица.Владелец Тогда
    Сообщить("В подборе выбрана единица другого элемента справочника Номенклатура.
    |Проверьте правильность указания базовой и основной единицы для элемента
    |""" + СокрЛП(Номенклатура) + """, а также правильность указания единиц измерения
    |в справочниках единиц и цен для данной позиции номенклатуры." );
    Продолжить;
    КонецЕсли;

    // ищем номенклатуру среди подобранных
    Поз = 0;
    Если (ЦенаВподборе = "Розница") И (глЕстьРеквизитМнЧ("Цена", Конт.Вид()) = 1) Тогда

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

    Если Поз > 0 Тогда

    // нашли, увеличиваем количество
    Конт.ПолучитьСтрокуПоНомеру(Поз);
    Конт.Количество = Конт.Количество + ТаблицаПодбора.Количество;

    // Вызывать пересчет имеет смысл только если есть цена
    Если ЕстьЦена = 1 Тогда
    глПересчетТаблЧасти(Конт,"Количество");
    КонецЕсли;
    Иначе

    // не нашли, добавляем новую строку
    Конт.НоваяСтрока();
    Если ЕстьВидТМЦ = 1 Тогда
    Конт.ВидТМЦ = ТаблицаПодбора.ВидТМЦ;
    КонецЕсли;

    Конт.Номенклатура = Номенклатура;
    Конт.Количество = ТаблицаПодбора.Количество;
    Конт.Единица = Единица;
    Конт.Коэффициент = Единица.Коэффициент;

    Если ЕстьНДС = 1 Тогда
    Конт.СтавкаНДС = Номенклатура.СтавкаНДС;
    КонецЕсли;

    Если ЕстьНП= 1 Тогда
    Конт.СтавкаНП = Номенклатура.СтавкаНП;
    КонецЕсли;

    Если глЕстьРеквизитМнЧ("РозничнаяНаценка", Конт.Вид()) = 1 Тогда
    Если Конт.РозничнаяНаценка = 0 Тогда
    // получим наценку из розничной цены
    РознНаценка = 0;
    глВернутьЦену(Номенклатура, Константа.РозничныйТипЦен, Конт.ДатаДок, , , , РознНаценка, );
    Если РознНаценка = 0 Тогда
    Конт.РозничнаяНаценка = Константа.РозничныйТипЦен.Процент;
    Иначе
    Конт.РозничнаяНаценка = РознНаценка;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;

    Если ЕстьЦена = 1 Тогда
    глПересчитатьЦенуВДокументе(Конт, УчитыватьНП, УчитыватьНДС, ТаблицаПодбора.Цена, Конт.Валюта,
    ЦенаВклНП, ЦенаВклНДС);
    глПересчетТаблЧасти(Конт,"Цена");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    Конт.Форма.Обновить(0);
    Конт.Активизировать("Количество");
    Конт.АктивизироватьСтроку();

    КонецПроцедуры // глОбработкаПодбора()

    ////////////////////////////////////////////////////////////////////////////////
  14. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    в общем для танков с запуска 1с как открыть этот модуль там через конфигуратор или отладчик и что нажать чтоб исправить заранее спасибо
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Утопия... Сами вы все равно не сможете. Или растянется на месяц минимум.
    Не проще ли заказать доработку специалисту на месте?

    Форма подбора номенклатуры:
    В объекте номенклатура кн. форма списка "ДляПодбора"

    В ней ищите
    Код:
     ТаблицаПодбора.НоваяКолонка("Номенклатура",	   ,  , ,"Выбранный товар",20   );
    ТаблицаПодбора.НоваяКолонка("Единица"	 ,	   ,  , ,"Ед."			,4	);
    ТаблицаПодбора.НоваяКолонка("Количество"  ,"Число",14,3,"Количество"	 ,10,,2);
    ТаблицаПодбора.НоваяКолонка("Цена"		,"Число",15,2,"Цена"		   ,10,,2);
    ТаблицаПодбора.НоваяКолонка("Сумма"	   ,"Число",15,2,"Сумма"		  ,10,,2);
    
    замените разрядность числа........

    И это первая песня о Маугли.... Далее последует справочник цен, процедуры расчета в глобальном модуле, обработки ввода.
  16. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    dhjlt yfitk gjkexbkjcmddddvcxchfgdfsf
    gdgfdhfghgjhgjhkhjkljdfgdsfdslljlj

    вроде нашел получилось а с прайсом как его найти
  17. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    в нем выводится округленная цена а не та что стоит
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    причем тут прайс? вам же нужно получать цены в документе
  19. TopicStarter Overlay
    expobel
    Offline

    expobel

    Регистрация:
    23 окт 2013
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    людям то прайс давать надо а там неверная цена
  20. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    411
    Симпатии:
    72
    Баллы:
    54
    Здравствуйте.
    Если так все плохо с программированием, может сделать в программе новую валюту - центы, сотые цента, у.е. или др. на ваш вкус (в зависимости, сколько знаков после запятой критично) - и использовать ее без изменений в конфигурации? Останется только чуть изменить справочник Валюты, чтобы при обновлении курса доллара, автоматически проставлялся курс у.е.

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