7.7 Валится ошибка при работе обработки

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем Vertex, 27 май 2015.

  1. TopicStarter Overlay
    Vertex
    Offline

    Vertex Опытный в 1С

    Регистрация:
    14 июн 2011
    Сообщения:
    468
    Симпатии:
    4
    Баллы:
    29
    Всем привет, обработка создает документы ВводОстатковТМЦ
    стала валиться такая ошибка.
    Как найти дубликат из за которого меня посылают?
    [
    CODE]
    Цикл
    .....
    ДокВвод.НоваяСтрока(); // Заполним табличную часть документа
    ДокВвод.Номенклатура = Ном.ТекущийЭлемент();

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

    Если (СокрЛП(ЕдиницаS) = "тонн") Тогда
    Если (Ном.ОсновнаяЕдиница <> Ном.БазоваяЕдиница) И (СокрЛП(Ном.ОсновнаяЕдиница)="тонн") Тогда
    ДокВвод.Единица = Ном.ОсновнаяЕдиница;
    ДокВвод.Коэффициент = 1;//Ном.ОсновнаяЕдиница.Коэффициент;
    ДокВвод.Количество = 1;//Число(ТЗ.КолВо) / Ном.ОсновнаяЕдиница.Коэффициент;
    ДокВвод.КоличествоФакт = 1;//ТЗ.КолВо;
    ДокВвод.Цена = Число(ТЗ.ЦенаЗ) / Ном.ОсновнаяЕдиница.Коэффициент;

    Сообщить(" основная ц/тонна "+ДокВвод.Номенклатура+" "+ДокВвод.Единица+" коэфф "+ДокВвод.Коэффициент+" в основных "+ДокВвод.Количество+" в базовых "+ДокВвод.КоличествоФакт+" "+ДокВвод.Цена);
    ИначеЕсли (Ном.ОсновнаяЕдиница <> Ном.БазоваяЕдиница) И (СокрЛП(Ном.БазоваяЕдиница)="тонн")Тогда
    ДокВвод.Единица = Ном.БазоваяЕдиница;
    ДокВвод.Коэффициент = Ном.БазоваяЕдиница.Коэффициент;
    ДокВвод.Количество = ТЗ.КолВо;
    Сообщить(" базовая ц/тонна "+ДокВвод.Номенклатура+" "+ДокВвод.Единица+" коэфф "+ДокВвод.Коэффициент+" в основных "+ДокВвод.Количество+" в базовых "+ДокВвод.КоличествоФакт+" "+ДокВвод.Цена);
    КонецЕсли;

    ДокВвод.Единица = Ном.БазоваяЕдиница;
    ДокВвод.Коэффициент = Ном.БазоваяЕдиница.Коэффициент;
    ДокВвод.Количество = ТЗ.КолВо;
    ДокВвод.КоличествоФакт = ТЗ.КолВо;
    Сообщить(" не ц/тонна "+ДокВвод.Номенклатура+" "+ДокВвод.Единица+" коэфф "+ДокВвод.Коэффициент+" в основных "+ДокВвод.Количество+" в базовых "+ДокВвод.КоличествоФакт+" "+ДокВвод.Цена);
    КонецЕсли;


    ДокВвод.СтавкаНДС = ЭтСтавкаНДС;
    ДокВвод.СтавкаНП = НП.ТекущийЭлемент();

    СуммаСНДС = Число(ТЗ.ЦенаЗ) * ДокВвод.Количество;

    НДС = (СуммаСНДС * 18)/118;

    ДокВвод.Сумма = СуммаСНДС-НДС;



    ДокВвод.СуммаРуб = СуммаСНДС;
    ДокВвод.СуммаУпр = ДокВвод.СуммаРуб;

    ДокВвод.Записать();


    Сообщить(" Добавили");

    КонецЦикла;

    Если Флаг = 1 Тогда
    ДокВвод.Записать();
    ДокВвод.Провести(0);
    СозданиеПартии(ДокВвод);
    Сообщить(" Записали послединиц документ № "+ДокВвод.НомерДок);
    КонецЕсли;[/CODE]

    Так же вылазит ошибка деления на ноль и отсылает в модуль документа ВводОстатков:
    УстановитьЗначениеАтрибута(РегПартии, "ЦенаПрод" , ПродЦена/ВремКоэффициент);
    Хотя проверял на ноль, Да и руками уже поставил значение 1

    В кратце: алгоритм проверяет: если закупочная цена у товара за тонну, тогда высчитываем количество в основных единицах и добавляем в "Количество" многострочной части документа, а в количество фактическое вставляем значение из файлы выгрузки в базовых единицах.
    Также если цена закупа за тонну, расчитаем закупочную цену за 1 базовую единицу

    Вложения:

    Последнее редактирование: 27 май 2015
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    а вот так не пробовал?
    УстановитьЗначениеАтрибута(РегПартии, "ЦенаПрод" , ПродЦена/?(ВремКоэффициент=0,1,ВремКоэффициент));
    Vertex нравится это.
  3. TopicStarter Overlay
    Vertex
    Offline

    Vertex Опытный в 1С

    Регистрация:
    14 июн 2011
    Сообщения:
    468
    Симпатии:
    4
    Баллы:
    29
    Работает, спасибо.
    Сейчас попытаюсь выяснить что "проваливается с 0 значением".
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не за что... Обращайтесь
  5. TopicStarter Overlay
    Vertex
    Offline

    Vertex Опытный в 1С

    Регистрация:
    14 июн 2011
    Сообщения:
    468
    Симпатии:
    4
    Баллы:
    29
    Все всем спасибо тему можно закрыть "виновник криво забивающий позиции номенклатуры найден и "жестоко" наказан -Wideyed-"
    зы:
    У меня в алгоритме не было описано поведение на такую ситуацию с единицами измерений, коэффициентами и ценами.
    Но и позиция создана не правильно, одна единственная......одним единственным криворуким юзером , или кривоголовым хз...
    Последнее редактирование: 27 май 2015
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Всегда нужно стараться проверять действия юзера на ввод недопустимых значений при записи элемента.
    Это хоть как-то обезопасит вас от подобных казусов..
    Хотя, закон Мерфи гласит "Какую бы сложную систему проверок не установил разработчик, всегда найдется изобретательный идиот, который сможет обойти эту систему"

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