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

Ошибка при программном проведении документа "Деление на 0 значения типа Numeric"

Ошибка при программном проведении документа "Деление на 0 значения типа Numeric"
Я
   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/

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.