Меню

Ошибка при проведении документа деление на 0

Деление на 0: как исправить ошибку в программах 1С?

Опубликовано 25.01.2022 16:09
Автор: Administrator
Просмотров: 10928

Совсем скоро предстоит начислять зарплату за январь в программах 1С. И большинство расчетчиков и бухгалтеров столкнутся с такой ошибкой в базах как «Деление на 0». Почему это происходит и как самостоятельно, не прибегая к помощи программистов, исправить самую частую ошибку января любого года расскажем в данной публикации. 

 Итак, ошибка выглядит следующим образом:

Возникает она потому, что не указана норма дней на новый календарный год.

Есть несколько причин почему так происходит:

1. Не заполнены графики работы на новый календарный год – это самая популярная ситуация.

В 1С: ЗУП ред. 3.1 они находятся в разделе «Настройка» – «Предприятие» — «Графики работы сотрудников», в 1С: Бухгалтерии предприятия ред. 3.0 — в разделе «Зарплата и кадры» — «Справочники и настройки» — «Графики работы».

По кнопке «Заполнить» сформируется график и ошибка уйдет.

Такие манипуляции необходимо сделать со всеми введенными графиками, в том числе индивидуальными.

2. Неверно заполнен производственный календарь

В вышеуказанных разделах 1С есть производственные календари. Редко, но бывает, что ошибка деления на 0 происходит из-за некорректно заполненного календаря.

На скриншоте приведен календарь на следующий 2023 год. Видите, он полностью красный? Именно так и выглядит эта ошибка. Разработчики к концу 2022 года ее поправят, и норма дней будет считаться корректно.

3. В графике работ все дни помечены как выходные

Да, такое тоже бывает. Иногда пользователи вводят индивидуальные графики сотрудникам, «играются» с их заполнением, но не всегда программа это понимает и порой выдает ошибку деления на 0.

4. Ошибка в формуле расчета

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

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

5. В редких случаях такая ошибка возникает в следствие экстренного отключения электроэнергии, аварийного завершения 1С. В этом случае необходимо почистить кэш и прибегнуть к тестированию базы 1С.

Автор статьи: Ирина Плотникова

Text.ru - 100.00%

Понравилась статья? Подпишитесь на рассылку новых материалов

Добавить комментарий

1

2

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

Новая тема

Ответить

АленаКачаева

Дата регистрации: 19.01.2009
Сообщений: 48

Добрый день! При проведении авансового отчета программа пишет Деление на 0 и не проводит док-т.Однако при проведении той же самой операции в демо версии все в порядке.1С:Предприятие 8.1 (8.1.12.101)Бухгалтерия предприятия, редакция 1.6 (1.6.11.7). Подскажите, пожалуйста, в чем может быть причина? Спасибо

Vladko

Дата регистрации: 27.08.2007
Сообщений: 2643

это значит, что число в знаменателе у деления равно нулю. Это всё что можно сказать по данной информации.<br>А если напишите подробнее ошибку(всё что пишет комп), то можно и по-конкретнее сказать где смотреть

EAX88

Дата регистрации: 23.06.2008
Сообщений: 159

Советую в посике сообщений набрать «ошибка деления на ноль» совсем недавно эта тема очень-очень подробно разбиралась и были найдены решения! В итоге это ошибка 1С-ников, в следующем релизе, который уже не за горами, обещали поправить!!!

Prikum

активный пользователь

онлайн

Дата регистрации: 18.02.2002
Сообщений: 20834

Тут другая ошибка, тут авансовый отчет, а не декларации

АленаКачаева

Дата регистрации: 19.01.2009
Сообщений: 48

При проведении док-та так и пишет «Деление на 0». Подробно:Ошибка при выполнении обработчика — ‘{Документ.АвансовыйОтчет(856)}: Деление на 0′<br>по причине:<br>{Документ.АвансовыйОтчет(856)}: Деление на 0<br>Спасибо!

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Там происходит пересчет по курсу — либо курс валюты равен нулю, либо кратность валюты документа равна нулю.

АленаКачаева

Дата регистрации: 19.01.2009
Сообщений: 48

Спасибо огромное! Получилось!

Bezimyashka

Дата регистрации: 15.06.2010
Сообщений: 4

«При формировании отчета «Накопительная ведомость по расходу продуктов питания» выдает ошибку: Деление на 0.<br>Подробно:<br>{Отчет.НакопительнаяВедомостьПоРасходуПродуктовПитания0504038.МодульОбъекта(816)}: Деление на 0<br>Макет.Параметры.пЦена = Данные.Сумма / Данные.Количество;<br><br>Подскажите, что делать. Заранее спасибо»

Prikum

активный пользователь

онлайн

Дата регистрации: 18.02.2002
Сообщений: 20834

Конфигурация какая? Хотя судя по отчету, это бюджетка!?

Bezimyashka

Дата регистрации: 15.06.2010
Сообщений: 4

Бухгалтерия бюджетного учреждения, редакция 1.0 (1.0.15.5)

   falselight

11.06.20 — 10:50

Создаю программно документ ПриходнаяНакладная. При записи происходит ошибка, на строке, —

ДокПриходнаяНакладная.Записать(РежимЗаписиДокумента.Проведение);

http://joxi.ru/8AnQDeGs74Ky72

ИЗ ЗА ЧЕГО ПРОИСХОДИТ ДАННАЯ ОШИБКА ПРИ ПРОВЕДЕНИИ ДОКУМЕНТА И КАК ЕЕ УСТРАНИТЬ? Подскажите пожалуйста.

Деление на 0 значения типа Numeric

{ВнешняяОбработка.ВыгрузкаЗагрузкаWildBerries.Форма.Форма.Форма(802)}:        ДокПриходнаяНакладная.Записать(РежимЗаписиДокумента.Проведение);

{ВнешняяОбработка.ВыгрузкаЗагрузкаWildBerries.Форма.Форма.Форма(616)}:        СоздатьДокумент(ТипЗагрузки,СумЛогистика);

{ВнешняяОбработка.ВыгрузкаЗагрузкаWildBerries.Форма.Форма.Форма(809)}:    ЗагрузитьОтчетВайлдберризНаСервере(«Комиссия»);

по причине:

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

по причине:

Деление на 0 значения типа Numeric

{Документ.ПриходнаяНакладная.МодульМенеджера(3962)}:    Запрос.ВыполнитьПакет();

{Документ.ПриходнаяНакладная.МодульОбъекта(1834)}:    Документы.ПриходнаяНакладная.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);

{ВнешняяОбработка.ВыгрузкаЗагрузкаWildBerries.Форма.Форма.Форма(802)}:        ДокПриходнаяНакладная.Записать(РежимЗаписиДокумента.Проведение);

{ВнешняяОбработка.ВыгрузкаЗагрузкаWildBerries.Форма.Форма.Форма(616)}:        СоздатьДокумент(ТипЗагрузки,СумЛогистика);

{ВнешняяОбработка.ВыгрузкаЗагрузкаWildBerries.Форма.Форма.Форма(809)}:    ЗагрузитьОтчетВайлдберризНаСервере(«Комиссия»);

по причине:

Ошибка выполнения запроса

по причине:

Ошибка при выполнении операции над данными:

Ошибка SQL: Деление на 0

по причине:

Ошибка SQL: Деление на 0

по причине:

Деление на 0 значения типа Numeric

   ДенисЧ

1 — 11.06.20 — 10:53

ПОТОМУ ЧТО У ТЕБЯ В ЗАПРОСЕ ВОЗНИКАЕТ ДЕЛЕНИЕ НА 0!

Так понятно? )))

Заходи в модуль, лови запрос и смотри его результаты…

   Ненавижу 1С

2 — 11.06.20 — 10:56

вот этот запрос анализировать:

{Документ.ПриходнаяНакладная.МодульМенеджера(3962)}:    Запрос.ВыполнитьПакет();

смотреть где есть деления и в каком случае в знаменателе появляется 0

   falselight

3 — 11.06.20 — 10:56

(1) Да вот не понятно где оно возникает!

Сейчас изменил проведение на запись. Документ записался но при проведении выдал что не заполнены ряд полей.

Поле «Валюта документа» не заполнено

Поле «Дата вх. документа» не заполнено

Поле «Налогообложение» не заполнено

Поле «№ вх. документа» не заполнено

Постараюсь программно их заполнить.

Я проверял свой код создания. Там нет деления на 0. Он происходит не понятно где и из за чего!

   fisher

4 — 11.06.20 — 10:56

Если при интерактивном проведении такого нет, значит чего-то ты недозаполняешь.

Сравни заполнение реквизитов у штатно созданного документа и у программно созданного.

   falselight

5 — 11.06.20 — 10:56

(2) Может есть какое то радикальное решение?

Я же правильно заполняю документ и провожу его. делаю приход.

   falselight

6 — 11.06.20 — 10:57

(4) Сейчас буду программно дозаполнять реквизиты что выдались при проведении документа.

   ДенисЧ

7 — 11.06.20 — 10:57

(5) Радикальное решение есть. Я тебе предлагал его, если мне эклер не изменяет, ещё с год назад, а то и больше…

   fisher

8 — 11.06.20 — 10:58

(7) Т.е. стаж уже больше года?

   NorthWind

9 — 11.06.20 — 11:01

(5) канеш есть. Бросить заниматься этой фигней и заняться чем-то, с чем есть хотя бы минимальное желание разбираться.

   fisher

10 — 11.06.20 — 11:07

(3) Что угодно может быть. Например, какой-нить курс пересчета у тебя не заполнен при программном создании, а алгоритм расчета этого не ожидает (потому что при штатном вводе его заполнение гарантируется) и ничтоже сумняшеся на него делит.

   falselight

11 — 11.06.20 — 11:07

У меня температура второй день держится (((( Кое что не усмотрел.

Такой код. нормально отработал:

            Если ШапкаЗаполнена = 0 Тогда

                ДокПриходнаяНакладная                          = Документы.ПриходнаяНакладная.СоздатьДокумент();

                ДокПриходнаяНакладная.Дата                     = ТекущаяДата();

                ДокПриходнаяНакладная.ВидОперации              = Перечисления.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика;

                ДокПриходнаяНакладная.Контрагент               = Контрагент;

                ДокПриходнаяНакладная.Договор                  = Договор;

                ДокПриходнаяНакладная.Организация              = Организация;

                ДокПриходнаяНакладная.СтруктурнаяЕдиница       = ВиртуальныйСклад;

                ДокПриходнаяНакладная.Подразделение            = Подразделение;

                ДокПриходнаяНакладная.Ответственный            = Справочники.Сотрудники.НайтиПоНаименованию(«Склад», 1);

                ДокПриходнаяНакладная.Курс                    = 1;

                ДокПриходнаяНакладная.Кратность               = 1;

                ДокПриходнаяНакладная.СуммаВключаетНДС        = Истина;

                ДокПриходнаяНакладная.НалогообложениеНДС      = Перечисления.ТипыНалогообложенияНДС.ОблагаетсяНДС;

                ДокПриходнаяНакладная.ВалютаДокумента         = Константы.ВалютаУчета.Получить();

                ДокПриходнаяНакладная.НомерВходящегоДокумента = «—«;

                ДокПриходнаяНакладная.ДатаВходящегоДокумента  = ТекущаяДата();

                //                

                ШапкаЗаполнена                             = 1;

                //

                НоваяСтрока                  = ДокПриходнаяНакладная.Запасы.Добавить();

                НоваяСтрока.Номенклатура     = Стр.Номенклатура2;

                НоваяСтрока.Характеристика   = Стр.Характеристика2;

                НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номенклатура.ЕдиницаИзмерения;

                НоваяСтрока.Количество       = Стр.Количество;

                НоваяСтрока.Цена             = Стр.ЦенаРозничная;

                НоваяСтрока.Сумма            = Стр.Количество * Стр.ЦенаРозничная;

                НоваяСтрока.СтавкаНДС        = Справочники.СтавкиНДС.НайтиПоНаименованию(«20%», Истина);

                НоваяСтрока.СуммаНДС         = НоваяСтрока.Сумма — НоваяСтрока.Сумма / 1.2;

                НоваяСтрока.Всего            = НоваяСтрока.Сумма;

            Иначе

                НоваяСтрока                  = ДокПриходнаяНакладная.Запасы.Добавить();

                НоваяСтрока.Номенклатура     = Стр.Номенклатура2;

                НоваяСтрока.Характеристика   = Стр.Характеристика2;

                НоваяСтрока.ЕдиницаИзмерения = НоваяСтрока.Номенклатура.ЕдиницаИзмерения;

                НоваяСтрока.Количество       = Стр.Количество;

                НоваяСтрока.Цена             = Стр.ЦенаРозничная;

                НоваяСтрока.Сумма            = Стр.Количество * Стр.ЦенаРозничная;

                НоваяСтрока.СтавкаНДС        = Справочники.СтавкиНДС.НайтиПоНаименованию(«20%», Истина);

                НоваяСтрока.СуммаНДС         = НоваяСтрока.Сумма — НоваяСтрока.Сумма / 1.2;

                НоваяСтрока.Всего            = НоваяСтрока.Сумма;

            КонецЕсли;

   Ненавижу 1С

12 — 11.06.20 — 11:15

(11) за что я люблю незамутненный разум:

НоваяСтрока.СтавкаНДС        = Справочники.СтавкиНДС.НайтиПоНаименованию(«20%», Истина);

НоваяСтрока.СуммаНДС         = НоваяСтрока.Сумма — НоваяСтрока.Сумма / 1.2;

   такт

13 — 11.06.20 — 11:18

(11) чувствуется рука семерошника )

  

fisher

14 — 11.06.20 — 11:47

(13) Не надо грязи. Эти заветы универсальны: http://catalog.mista.ru/public/966234/

Хочу сделать чтобы системы при отсутствии какого либо товара выдавала ошибку и запрещала проведение документа Расходная,  а так же при проведении формировала движение документа и рассчитывала стоимость по этой формуле


Движение.Стоимость = Выборка.Количество / Выборка.КоличествоОстаток * Выборка.СтоимостьОстаток;

Сам код модуля объекта документ расходная


Процедура ОбработкаПроведения(Отказ, РежимПроведения)



Движения.ОстаткиТоваров.Записывать = Истина;
Движения.ОстаткиТоваров.Очистить(); // очищать при перепроведении
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДокТЧ.Номенклатура КАК Номенклатура,
| СУММА(ДокТЧ.Количество) КАК Количество,
| МАКСИМУМ(ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0)) КАК КоличествоОстаток,
| МАКСИМУМ(ЕСТЬNULL(ОстаткиТоваровОстатки.СтоимостьОстаток, 0)) КАК СтоимостьОстаток
|ИЗ
| Документ.Расходная.Товары КАК ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, ) КАК ОстаткиТоваровОстатки
| ПО ДокТЧ.Ссылка = ОстаткиТоваровОстатки.Номенклатура
|ГДЕ
| (НЕ ДокТЧ.Номенклатура.Услуга)
| И ДокТЧ.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ДокТЧ.Номенклатура";

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл

Если Выборка.Количество > Выборка.КоличествоОстаток Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не хватает товара" + Выборка.Номенклатура + """, из необходимых " + Выборка.КоличествоОстаток;
Сообщение.Сообщить();

Отказ = Истина;
Движения.ОстаткиТоваров.Записывать = Ложь;

КонецЕсли;

Движение = Движения.ОстаткиТоваров.ДобавитьРасход();
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Количество = Выборка.Количество;
Движение.Стоимость = Выборка.Количество / Выборка.КоличествоОстаток * Выборка.СтоимостьОстаток;

КонецЦикла;

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


КонецПроцедуры

В итоге при проведении документа расходная вылезает ошибка «Деление на 0»
До этого в приходной сделал поступление товара с количеством 1000шт, в расходной пытаюсь списать 1 и вылетает ошибка. В регистре остатков есть запись по приходной, что пришло 1000шт.
В чем может быть проблема?

Ошибка при проведении строки выписки банка

Добрый день. Работаю в 1С Предприятие, Конфигурация: Бухгалтерия предприятия 2.0 (2.0.49.10). ИП на ОСНО, Помогите пожалуйста в решении следующей проблемы: при проведении строки выписки банка (оплата поставщику) выходит ошибка «Деление на 0». Служебное сообщение:

{ОбщийМодуль.ДоходыИРасходыПредпринимателя.Модуль(1789)}: Деление на 0
Оплачено.Количество = Окр(ПартияМПЗ.Количество * (Оплачено.Сумма + Оплачено.НДС) / (ПартияМПЗ.Сумма + ПартияМПЗ.НДС), 3, 1);

Причем это происходит при перечислении поставщикам, товар которых используется в недавно начатом производстве продукции. Данная продукция в основном используется для СМР (хозспособ) и не наблюдается как таковых доходов по ней. Может ли это стать причиной выдаваемой ошибки? На закладке Учет доходов и расходов Уч. политики стоит галочка «Для признания расходов не требуется получение дохода».
Почитала много в интернете, но ничего похожего не нашла.Очень сильно надеюсь на Вашу помощь. Заранее спасибо.

Доброго времени суток!
Причина , конечно, не в том, что вы оплату проводите поставщикам, товары которых где-то используете. А скорее, в какой-то неточности в заполнении документа выписки банка (в пр-ме). Скажите, вы случайно, не на основании документов поступления (от поставщиков) вносите строки выписки-банка?
Расчетный счет -рублевый или в валюте?

Заполнить и подать уведомление об исчисленных суммах налогов и взносов

Добрый день, Алена. Вношу строку выписки банка НЕ на основании документов поступления. Сама несколько раз проверяла, может где, что не так делаю, но увы…. Когда меняю контрагента по той же сумме все нормально проводится, единственное когда выбираю второго контрагента по поставке материала для производства той же продукции, опять появляется «Деление на 0». Производим бетон, именно не проводится строка выписки банка по оплате щебня, песка одному контрагенту и цемента — второму. Расчетный счет рублевый…Не понимаю, в чем может быть причина….

Да, причина пока не ясна…
Скажите: 1.вид операции «оплата поставщику» в «списании с р/сч», верно же..? 2. вид договора укажите подробно, все заполненные поля.
Я жду про «договор» по контрагенту в пр-ме подробной информации.

Да, все верно:
1.вид операции «оплата поставщику» в «списании с р/сч»
2.Договор: контрагент — …….
наименование -Договор поставки № 100
вид договора — С поставщииком
валюта расчетов — руб.
ничего более не заполнено.
Дело в том, что я ранее уже несколько раз проводила перечисления контрагенту в 1С, все было замечательно. Просто странно, почему именно по этим контрагентам программа «не хочет» производить оплату.

Заполняйте платежки с актуальными на сегодня КБК, кодами дохода и другими обязательными реквизитами

Сюда на форум частенько заглядывают программисты. Особенно просматривают темы технического толка, в том числе и про ошибки.
Может, вам напишут.

Если ждать не можете, то советую вам обратится в специалистам фирм-партнеров 1с.

Цитата (Гая):Добрый день. Работаю в 1С Предприятие, Конфигурация: Бухгалтерия предприятия 2.0 (2.0.49.10). ИП на ОСНО, Помогите пожалуйста в решении следующей проблемы: при проведении строки выписки банка (оплата поставщику) выходит ошибка «Деление на 0». Служебное сообщение:

{ОбщийМодуль.ДоходыИРасходыПредпринимателя.Модуль(1789)}: Деление на 0
Оплачено.Количество = Окр(ПартияМПЗ.Количество * (Оплачено.Сумма + Оплачено.НДС) / (ПартияМПЗ.Сумма + ПартияМПЗ.НДС), 3, 1);

Причем это происходит при перечислении поставщикам, товар которых используется в недавно начатом производстве продукции. Данная продукция в основном используется для СМР (хозспособ) и не наблюдается как таковых доходов по ней. Может ли это стать причиной выдаваемой ошибки? На закладке Учет доходов и расходов Уч. политики стоит галочка «Для признания расходов не требуется получение дохода».
Почитала много в интернете, но ничего похожего не нашла.Очень сильно надеюсь на Вашу помощь. Заранее спасибо.

Добрый день!
А Вы когда в последний раз делали обновление? Если я не ошибаюсь, то версия последняя 52. Попробуйте обновить базу. У меня программа как-то выдавала ошибки, но стоило обновиться и всё стало работать нормально.
Соглашусь с Аленой, что помощь следует ждать от программистов.

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

Сформировать платежки на уплату НДФЛ и взносов с актуальными реквизитами

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при проведении 3ds аутентификации что это значит
  • Ошибка при проведении 3ds аутентификации мой налог