Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

ЗиК, "Свод по зарплате" и "Свод проводок" - копеечная разница

Ягода
читатель
офлайн
Дата регистрации: 23.05.2003
Сообщений: 9
Пост №1
 
10.04.2006 05:37

"ЗиК, 265, хозрасчетная.
Свод начислений и удержаний - Всего начислено
Свод проводок - Итого начислено в 70-й
Не совпадают! Разница 1-2 копейки. Разница появилась после того, как стали распределять затраты документом "Бухгалтерский и налоговый учет начислений и удержаний", и только по сотрудникам с этим распределением.
Залез в глобальный модуль, процедура "глПолучитьРаспределениеРезультата".

Если Результат<>ТаблицаБухУчета.Итог("Сумма") Тогда
ОшибкаРазница=Результат-ТаблицаБухУчета.Итог("Сумма");
Сообщить("Ошибка у "+ЗаписьИзЖурнала.Объект+" на "+ОшибкаРазница);
.............

Выдала много-много. Выходит, что за счет округления распределяемая сумма может оказаться не равной "Итого распределено". Ошибка в плюс или минус, в общем может компенсироваться, а может и нет. Да и вообще, какие могут быть округления - копейку разницы надо кидать на любую статью!

Сделал так (Это в самом конце процедуры глПолучитьРаспределениеРезультата):
Если Результат<>ТаблицаБухУчета.Итог("Сумма") Тогда
КосякРазница=Результат-ТаблицаБухУчета.Итог("Сумма");
ТаблицаБухУчета.ВыбратьСтроки();
Пока ТаблицаБухУчета.ПолучитьСтроку()=1 Цикл
Если ТаблицаБухУчета.Сумма=0 Тогда
       Продолжить;
КонецЕсли;
Если (ТаблицаБухУчета.Сумма+КосякРазница)<0 Тогда
Продолжить;
КонецЕсли;
ТаблицаБухУчета.Сумма=ТаблицаБухУчета.Сумма+КосякРазница;
            Прервать;
КонецЦикла;
Если Результат<>ТаблицаБухУчета.Итог("Сумма") Тогда
КосякРазница=Результат-ТаблицаБухУчета.Итог("Сумма");
Сообщить("Все равно косяк у "+ЗаписьИзЖурнала.Объект+" на "+КосякРазница);
КонецЕсли;
КонецЕсли;

Теперь стабильно имею разницу в 1 копейку. И не могу найти, почему.
Может кто сталкивался, подскажите плизз..."

andrew_am
читатель
офлайн
Дата регистрации: 01.08.2005
Сообщений: 86
Пост №2
 
10.04.2006 16:46

Скорее всего где-то идет округление суммы
либо просто нехватает точности при расчете, короче найти это не получиться помоему
у нас давно на это забили

Serg_Smi
читатель
офлайн
Дата регистрации: 02.06.2005
Сообщений: 83
Пост №3
 
10.04.2006 20:57

"Попробуй не через "ВыбратьСтроки()", а так
Для сч=1 По ТаблицаБухУчета.КоличествоСтрок() Цикл
<<...>>
КонецЦикла;

<<...>> - через получить и установить значение."

Ягода
читатель
офлайн
Дата регистрации: 23.05.2003
Сообщений: 9
Пост №4
 
11.04.2006 02:04

"Да нет, в ЭТОМ месте теперь все ОК. Я там специально оставил:

Если Результат<>ТаблицаБухУчета.Итог("Сумма") Тогда
КосякРазница=Результат-ТаблицаБухУчета.Итог("Сумма");
Сообщить("Все равно косяк у "+ЗаписьИзЖурнала.Объект+" на "+КосякРазница);
КонецЕсли;

Где-то еще копейка набегает. Вот сижу - ищу."

Ягода
читатель
офлайн
Дата регистрации: 23.05.2003
Сообщений: 9
Пост №5
 
12.04.2006 08:22

"Ну все, нашол решение:

В функции "глПроводкиЗаПериод" точность полей "Сумма" в таблицах значений "ТаблицаРаспределения", "ТаблицаРаспределенияННП" и "ТаблицаРаспределенияЕСН" сделал 2 знака. Была 10 знаков после запятой.

Не понятно, зачем в бухгалтерских расчетах точность 10 знаков от зпт. ведь это не промежуточные значения, они выгружаются в бухралтерию, т.е. это суммы проводок!

В принципе, после этого все пошло нормально, но дополнительно сделал контроль:

//КонтрольРаспределения
//
//Параметры
// Сумма - распределяемая сумма
// ТабЗн - таблица значений с распределением в поле "Сумма"
//
//Возвращаемое значение.
// Нет
//
//Описание
// Процедура проверяет, равна ли сумма распределенного исходной
// (может получиться в результате округления) и, в случае необходимости, изменяет распределение
// предварительно делается контроль, чтобы изменяемая сумма не стала отрицательной.
// При разнице больше 0,01 ничего не изменяется (причина отличия - другая)
//
Процедура КонтрольРаспределения(Сумма, ТабЗн)
Перем Разница, Итог;
Если ПустоеЗначение(ТабЗн)=1 Тогда
Возврат;
КонецЕсли;
Разница=Сумма-ТабЗн.Итог("Сумма");
Разница=Сумма-Итог;
Если (Разница<0.01) И (Разница>-0.01) Тогда
ТабЗн.ВыбратьСтроки();
Пока ТабЗн.ПолучитьСтроку()=1 Цикл
Если (ТабЗн.Сумма+Разница)<0 Тогда
Продолжить;
КонецЕсли;
ТабЗн.Сумма=ТабЗн.Сумма+Разница;
Прервать;
КонецЦикла;
Если Сумма<>ТабЗн.Итог("Сумма") Тогда
Сообщить("Ошибка округления.","!!!");
КонецЕсли;
КонецЕсли;
КонецПроцедуры

И в конце "глПроводкиЗаПериод" вставил строки

КонтрольРаспределения(Результат, ТаблицаРаспределения);
КонтрольРаспределения(Результат, ТаблицаРаспределенияЕСН);
КонтрольРаспределения(Результат, ТаблицаУчетаНалогаНаПрибыль);

Так что все решаемо!"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация
Предложения партнеров
Обучение пользователей продуктов 1С

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги