Почему возникает ошибка «Поле объекта не обнаружено» (НалогообложениеНДСВТабличн

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Почему возникает ошибка «Поле объекта не обнаружено» (НалогообложениеНДСВТабличн

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38690
      Фото аватараOdineski
      Участник

        Поле объекта не обнаружено (НалогообложениеНДСВТабличнойЧасти)
        {ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(795)}:Если СтруктураПараметровДействия.НалогообложениеНДСВТабличнойЧасти Тогда
        {(2)}:ПакетнаяОбработкаТабличнойЧастиСервер.ЗаполнитьСтавкуНДСВСтрокеТЧ(Параметры.ТекущаяСтрока,Параметры.СтруктураДействий,Параметры.КэшированныеЗначения);
        {ОбщийМодуль.ОбщегоНазначения.Модуль(6692)}:Выполнить Алгоритм; // АПК:487 Код выполняется в безопасном режиме.
        {ОбщийМодуль.ОбщегоНазначения.Модуль(6702)}:ВызватьИсключение(Уточнение.Текст, КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных ,,, ИнформацияОбОшибке);
        {ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(4283)}:ОбщегоНазначения.ВыполнитьВБезопасномРежиме(Алгоритм, Параметры);
        {ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(179)}:ВыполнитьКодОбработкиСтрок(Параметры, КэшированныеЗначения, КоличествоСтрокВПорции);
        {ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(244)}:ОбработатьСтрокиТЧ(СтрокаВМассиве, СтруктураДействий, ТЗСОднойСтрокой, КэшированныеЗначения);
        {ДобавлениеДвухСтрок Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(685)}:ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка, СтруктураДействий, Неопределено);
        {ДобавлениеДвухСтрок Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(757)}:ДобавитьУслугуПоДоставкеНаСервере(ТекущийОбъект);
        {ДобавлениеДвухСтрок Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(694)}:ПроверитьУсловияВыполненияПоДоставке(ТекущийОбъект);
        {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1575)}:Результат = Форма.Записать(ПараметрыЗаписи);
        {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1500)}:ЗаписатьОбъект(Форма, ПараметрыЗаписи);
        {Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(4050)}:ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);

        [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка, ОшибкаВнешнегоИсточникаДанных]
        по причине:
        Поле объекта не обнаружено (НалогообложениеНДСВТабличнойЧасти)
        [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]

      • #38691
        bot_avaOdin — Одинэсник
        Участник

          Ошибка возникает не в регистре и не при проведении документа. Она появляется в вашей доработке «ДобавлениеДвухСтрок» при вызове:

          Типовой общий модуль при обработке действия «Заполнить ставку НДС» ожидает, что параметры действия содержат поле:

          В переданной структуре этого поля нет, поэтому обращение:

          завершается ошибкой:

          ## Что нужно исправить

          При формировании СтруктураДействий добавьте в параметры действия поле НалогообложениеНДСВТабличнойЧасти.

          Пример:

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

          Например, общий код может выглядеть так:

          После этого вызов:

          получит необходимые параметры.

          ## Какое значение указывать

          Для документа «Реализация товаров и услуг» значение должно соответствовать настройке налогообложения документа.

          Если ставка НДС хранится в строках табличной части Товары, обычно используется:

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

          Для обычной реализации с колонками:

          — Ставка НДС;
          — Сумма НДС;
          — Сумма с НДС;

          как правило, нужно передавать Истина:

          Но лучше не задавать значение произвольно, а взять алгоритм из типовой формы документа.

          ## Более правильный вариант

          Если в документе или форме уже рассчитывается этот признак, используйте именно типовой источник:

          Далее:

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

          — изменения ставки НДС;
          — изменения номенклатуры;
          — изменения вида операции;
          — пересчета суммы НДС;
          — заполнения строки товара или услуги.

          Ищите в типовой форме место, где формируется СтруктураДействий, либо вызов:

          Скопируйте оттуда структуру параметров без изменений.

          ## Возможная ошибка в текущей доработке

          Скорее всего, сейчас у вас примерно такой код:

          Или действие добавлено так:

          Оба варианта некорректны для вашей версии общего модуля, поскольку внутри процедуры ожидается структура примерно такого вида:

          Исправьте на:

          ## Если вы не хотите автоматически заполнять ставку НДС

          Если строка доставки уже содержит ставку НДС и вам не нужно запускать типовую обработку заполнения ставки, можно убрать действие ЗаполнитьСтавкуНДС из СтруктураДействий.

          Например:

          Но это допустимо только если:

          СтрокаДоставка.СтавкаНДС уже заполнена;
          СтрокаДоставка.СуммаНДС рассчитывается другим кодом;
          — типовая логика документа не должна заново определять ставку НДС.

          ## Проверка в отладчике

          Перед строкой 685 установите точку останова и проверьте:

          В ней должен быть элемент:

          Значение этого элемента должно быть структурой с полем:

          Ожидаемая структура:

          Если ЗаполнитьСтавкуНДС отсутствует, но общий модуль всё равно его обрабатывает, значит структура действий формируется не в том формате, который ожидает конкретный релиз конфигурации. В этом случае нужно ориентироваться на типовой вызов из вашей версии УТ или КА, а не на пример из другой версии.

          ## Что не нужно делать

          Не исправляйте общий модуль:

          и не добавляйте туда проверку:

          Это скроет ошибку, но может нарушить типовой алгоритм пересчета НДС. Исправлять нужно формирование СтруктураДействий в процедуре вашей доработки «ДобавлениеДвухСтрок».

          Наиболее вероятное рабочее исправление в вашем случае:

          Разместить этот код нужно до вызова:

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С