Точный расчет пропорционально зависимых значений в спецификации.

Публикация № 14693

Разработка - Практика программирования

9
Больше статья, чем программа. Прилагаемая внешняя обработка - пример расчета на таблице значений.

Точный расчет пропорционально зависимых значений в спецификации.
(Пример на сумме накладной и НДС)

Проблема возникает при округлении значений в расчетных колонках спецификации.
Накопление этих округлений приводит иногда к ощутимой погрешности расчетного итогового значения:

Итог по расчетной колонке <> Расчетное значение по итогу "колонки-основания" для расчета (1)

(проще говоря)

Итог("НДС") <> СтавкаНДС * Итог("Сумма") 




Погрешность в 1-2 копейки возникает очень часто, если количество строк в документе большое,
может достигать 10-20 копеек.

На первый взгляд проблема надуманна или несущественна.
Она имеет организационное решение: выверять сумму построчно в накладных;
расставаться с поставщиками, которые присылают такие документы;
в силу несущественности оставить как есть.

Исключения всегда есть:

- Валютная накладная с курсом, - пересчет спецификации на момент ввода в "рублевую" учетную систему,
- Необходимость распространения общей скидки / надбавки от суммы документа на его спецификацию (скидка, бонус, доп. расходы).
- Документы перепродажи между собственными юрлицами с небольшой наценкой (десятые доли процента), -
разница между "исходящим" и "входящим" НДС может сильно отличаться от нормативной по ставке от наценки.

Идея точного расчета состоит в том, чтобы условие (1) выполнялось на любой момент пересчета спецификации.
Таким образом, на примере НДС для позиции i спецификации (единая ставка для всей спецификации):

НДС_i = Окр(СтавкаНДС * Сумма_i,2); // по старому
    
НДС_i = Окр(СтавкаНДС * ПромИтог("Сумма",1,i),2) -
                                           ПромИтог("НДС",1,i-1); // по новому

 

ПромИтог(<Колонка>,<ГраницаОтВкл>,<ГраницаДоВкл>) - промежуточный итог по указанной колонке
по диапазону строк с указанными границами.

Или, словами: НДС для позиции это разница между ставкой НДС от накопленной суммы на данную позицию
минус накопленный НДС на предыдущую позицию.

Пример для НДС условный, таким же образом могут сводиться в ноль любые процентные расчеты.

Реализация метода - в прилагающейся внешней обработке.

9

Скачать файлы

Наименование Файл Версия Размер
PinPointCalc
.1174486780 6,59Kb
25.09.09
79
.1174486780 6,59Kb 79 Скачать бесплатно

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. корум 311 25.04.07 11:58 Сейчас в теме
Есть ли пример встраивания в "типовые" процедуры? (глПересчетТабличнойЧасти и т.п.)
перелопачивать весь глобальник+все документы как-то сильно не хочется...
2. Shaman100M 1191 25.04.07 13:18 Сейчас в теме
Если говорить о ТиС, взять реквизит ТЧ "СуммаНДС" (или "СуммаНП"), то можно поискать обращение к процедуре глРасчетНалога(),
встречается не так часто:

глПересчетТаблЧасти()
глПересчитатьСтрокиДокумента()
глПересчитатьСкидки()

Описанная метода может отработать там, где осуществляется полный перебор строк и полный пересчет, т.е. в
глПересчитатьСтрокиДокумента и глПересчитатьСкидки.

Получается, она не применима для изменения и пересчета одной строки документа, что делается в глПересчетТаблЧасти() и глРасчетНалога() :( . Ну, можно попробовать считать значение СуммыНДС для текущей строки как "последнее дополняющее до точного итогового", но стремно это.

Сам использовал данный пересчет в нетиповой конфиге при программном создании документов. В формах документов добавлял кнопку и доп. диалог для "сведения" суммы и НДС. Можно пересчитывать при сохранении.
3. Shaman100M 1191 25.04.07 13:49 Сейчас в теме
...хотя... "последнее дополняющее до точного итогового" + итоговый пересчет при сохранении потянет
4. CheBurator 14.08.07 05:39 Сейчас в теме
возьмем 8-ую строку... типа НДС..
пришел я вот такой злостный налоговый инспектор... ткнул пальцем в первичку.. что у нас тут.. ага... НДСик д.б. 0.435045 = 0.44, а у вас что = 0.43.. ОПС! на цугундер!!! утаили копеечку от государства!!!
6. poppy 3353 14.08.07 12:21 Сейчас в теме
(4)
Если инспектор никогда не читал НК, то это не злостный, но беспредельщик. Такие обычно не тычут в первичку, а сразу предлагают разобраться по-хорошему.
8. Shaman100M 1191 14.08.07 13:07 Сейчас в теме
(4) А мож он сначала в итоги посмотрит? Ну, можно, конечно, начать разбирать не работающий системник, не убедившись , что просто не включен "пилот". :)

(5) можно бы проверить это алгоритм, т.к. при последнем проходе
[code] ТЗ1.РасчетПоНовому = Окр(ТЗ1.СуммаЭталон * ПромИтогРасчет / ПромИтогСумма ,2); [code]
тоже идет округление результата деления, - не факт, что ТЗ1.Итог("РасчетПоНовому") будет равен первичному ПромИтогРасчет , а это - основная цель разработки.

Реализация сделана сложнее, т.к. предполагает универсальность и минимум дополнительного кода в основной цикл пересчета (одна строка в цикле, одна до него)

Спасибо за комменты.
9. poppy 3353 14.08.07 13:45 Сейчас в теме
(8) >тоже идет округление результата деления, - не факт, что ТЗ1.Итог("РасчетПоНовому") будет равен первичному ПромИтогРасчет , а это - основная цель разработки.

В том то и дело, что на последнем проходе ТЗ1.СуммаЭталон тождественно равно ПромИтогСумма. Это значит, что ТЗ1.РасчетПоНовому = ПромИтогРасчет. Никакого округления не будет, т.к. ПромИтогРасчет всегда округлен.

По окончании цикла, ПромИтогРасчет всегда будет равен нулю. А значит, ТЗ1.Итог("РасчетПоНовому") будет равен первичному ПромИтогРасчет.
10. Shaman100M 1191 14.08.07 14:44 Сейчас в теме
(9) Да, согласен. От перестановки мест множителей произведение не меняется, но знак деления уже не смущает:

code] ТЗ1.РасчетПоНовому = Окр(ПромИтогРасчет * ТЗ1.СуммаЭталон / ПромИтогСумма ,2);
[/code]
5. poppy 3353 14.08.07 12:15 Сейчас в теме
Алгоритм правильный, но реализация уж больно мудреная. Предлагаю более простой вариант:

Код
Процедура Сформировать()
   
   ПромИтогСумма = ТЗ1.Итог("СуммаЭталон");
   ПромИтогРасчет = ПримерРасчета(ТЗ1.Итог("СуммаЭталон"));

   ТЗ1.ВыбратьСтроки();
   Пока ТЗ1.ПолучитьСтроку()=1 Цикл
      
      ТЗ1.РасчетПоНовому = Окр(ТЗ1.СуммаЭталон * ПромИтогРасчет / ПромИтогСумма ,2);
      
      ПромИтогСумма = ПромИтогСумма - ТЗ1.СуммаЭталон;
      ПромИтогРасчет = ПромИтогРасчет - ТЗ1.РасчетПоНовому;
      
      ТЗ1.РасчетПоСтарому=ПримерРасчета(ТЗ1.СуммаЭталон); // по старому
   КонецЦикла;
   
КонецПроцедуры //Сформировать()

Показать полностью
7. poppy 3353 14.08.07 12:25 Сейчас в теме
Применение рассматриваемого алгоритма не ограничивается пересчетом НДС в документах.

Например, при закрытии затратных счетов 44, 26, 25, 23, 20 без такого алгоритма = никуда.
Оставьте свое сообщение

См. также

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре 0

Статья Программист Нет файла v77::ОУ 1С7:ТиС Россия БУ Внешнеэкономическая деятельность (ВЭД) НДС Бесплатно (free) Практика программирования

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    8819    AndKovalchuk    0       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция 111

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования WEB

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    49811    Serginio    33       

Вакансия Автор новостных обзоров на тему 1С и бухучета, По совместительству Промо

Редакция Infostart.ru будет рада сотрудничеству с 1С-специалистом, умеющим и любящим излагать свои мысли в письменной форме. Если вы работали в IT-изданиях или имеете опыт ведения технологического блога/канала/группы, если сможете сделать обзор обработок из каталога infostart.ru/public/all/, то у вас большое преимущество.

Использование классов .Net в 1С для новичков 148

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    64651    Serginio    104       

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним 78

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    73542    shmellevich    35       

Подготовка сведений для ПФР ЗиК 339. СЗВ-6-4 две незначительные ошибки. 3

Статья Системный администратор Программист Бухгалтер Нет файла v77::Расчет 1С7:ЗиК Россия БУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Практика программирования

Подготовка сведений для ПФР ЗиК 339. СЗВ-6-4 две незначительные ошибки: 1.При переносе сотрудника из одной пачки в другую у него теряются сведения о выплатах. 2.Неактивна кнопка сортировки сотрудников.

11.10.2013    11029    Cvetic    7       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо

Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.

29700 руб.

Скрытие помеченных на удаление в справочнике 5

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Практика программирования

Корректно скрываем помеченных на удаление в справочнике, с иерархией и без. Вроде простая и нужная вещь, но почему-то нигде не встречалась

08.08.2012    11653    mikukrnet    7       

Исправление и проведение документов 5

Статья Программист Нет файла v77::БУ 1С7:ПУБ Россия Бесплатно (free) Практика программирования

Исправление и проведение документов, например, счетов-фактур, введенных на основании документов реализации, можно организовать многими способами. Описан сравнительно простой подход, реализованный и работающий несколько лет в реальной бухгалтерии 1Cv7.7. Без внешних компонентов.

23.07.2012    11811    BorisBelov    11       

Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.127.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.

29700 руб.

Продажа собственной фирме (интеркомпани) - заполнение отрицательными остатками 9

Статья Программист Нет файла v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Учет ТМЦ Бесплатно (free) Практика программирования

В документе "Продажа собственной фирме" приходится добавлять номенклатуру вручную через подбор. А ведь можно сэкономить время и заполнить спецификацию документа на основании отрицательных остатков фирмы. Все просто...

06.05.2012    11505    2sw    4       

С 2020 года сервис «Продление поддержки конфигурации 1С:УПП» подорожает вдвое Промо

Успейте продлить поддержку УПП до повышения цен! Фирма «1С» предупредила об изменении цен на сервис «Продление поддержки конфигурации "1С:Управление производственным предприятием"». С 1 января 2020 года сервис подорожает в два раза.

Ввод остатков по 76.ВА в 1С ПУБ 2

Статья Программист Нет файла v77::ОУ v77::БУ 1С7:ПУБ Россия БУ Бесплатно (free) Практика программирования

Статья посвящена найденному мной недостатку в конфигурации 1С 7.7 "Производство-услуги-бухгалтерия", связанному с вводом начальных остатков по 76.ВА.

29.04.2012    8300    Пользователь 1С    0       

Обновление базы 1с 7.7. с помощью движка 1с 8.х 92

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования Администрирование данных 1С

Если Вас угораздило в стандартную типовую конфу внести правки, причем в самый большой модуль, а именно глобальный. Если к тому же Вы внесли изменение в какую-то стандартную функцию, в которой 1с сама регулярно чего-то меняет, то любое обновление начинает доставать. Используя возможности движка платформы 1с 8.х можно существенно сэкономить себе время и нервы.

28.04.2012    16425    Valerich    31       

1С:Предприятие через Интернет. 1С:Fresh Промо

Ведение бухгалтерского и налогового учет, сдача отчетности, управление бизнесом из любой точки мира. Привычные программы «1С» через Интернет без приобретения коробочных программ.

Ошибка при формировании отчета Авансы по налогу на имущество. В 1С:Предприятие 7.7. Регламентированная отчетность за I квартал 2012 года Обновление 12q1009 от 18.04.2012 г. 18

Статья Программист Нет файла v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free) Практика программирования

При формировании отчета NIMAVP1.ERT Авансы по налогу на имущество (версия 5.03) в разделе № 1-3 не сохраняет номера Страниц при выборе, что ведет к не сохранению и выводу печати двухмерного кода.

24.04.2012    7596    leo072    7       

Ошибка при формировании отчета 4-ФСС для УСН 7,7 12q1007 6

Статья Программист Нет файла v77::БУ 1С7:Бух Россия НУ Бесплатно (free) Практика программирования

При формировании таблицы 6,7 раздела 2 возникает ошибка ИтАн.ИспользоватьСубконто(ВидыСубконто.ВидыПлатежейВФонды, Перечисление.ВидыПлатежей.Штраф); {C:\PROGRAM FILES\1CV77\SSTDEMO\EXTFORMS\RP12Q1.GRP\FSS4_1212.ERT(2330)}: Поле агрегатного объекта не обнаружено (ВидыПлатежейВФонды)

11.04.2012    9537    *Zed*    1       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

v77. Паинт 53

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

v77. 1С:Паинт :) Такая вот игрушка. Без внешних компонент.

06.03.2012    12574    81    item    38       

Быстрый отбор в журнале на конкретную дату 7

Статья Программист Нет файла v77::ОУ 1cv7.md Россия Бесплатно (free) Практика программирования

Лень - двигатель прогресса. Полезная фича для быстрого отбора документов в любом журнале на конкретную дату.

27.02.2012    9496    avers007    16       

Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо

Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).

от 11000 до 29000 рублей

ЗиК 321, в отчетах пропадает проводка по ПФР_страховая 25

Статья Программист Нет файла v77::ОУ v77::Расчет 1С7:ЗиК Россия ФОМС, ПФ, ФСС Бесплатно (free) Практика программирования

При формировании отчета "Свод проводок" с галкой "Учет начисления налогов с ФОТ, включаемых в состав расходов" в отчет не выходит ПФР_страх

10.02.2012    5081    filh    19       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Ошибка в 1С:Бух77 ред.533 Начисление ФФОМС при ЕНВД 11

Статья Программист Нет файла v77::БУ 1С7:Бух Россия Зарплата Бесплатно (free) Практика программирования

При начислении налогов с ФОТ (док.ЗакрытиеМесяца) не расчитываются налоги ФФОМС, если начисление зарплаты проводится как "облагаемые ЕНВД".

22.01.2012    8309    lelbraun    3       

Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо

Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!

29700 руб.

Как уменьшить количество заблокированных объектов 26

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    13676    ShEvOvIcH    18       

Медленное формирование отчета в ФСС. Ошибка в алгоритме файл: ESN_GET.ERT 6

Статья Системный администратор Программист Нет файла v77::БУ 1С7:Бух Россия Бесплатно (free) Практика программирования

Достаточно старая ошибка 1С (исправляю уже пару лет) в файле ESN_GET.ERT (1С7.7 бухгалтерский учет). Проявляется в том, что очень медленно формируются регламентные отчеты в фонды ФСС и ПФР, если в типовой бухгалтерии ведётся начисление зарплаты сотрудникам и количество сотрудников превышает определённое количество (в моём примере 90, но замедление скорости видно и на 20)

11.01.2012    5725    Digo65    2