База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему возникает ошибка «Поле объекта не обнаружено» (НалогообложениеНДСВТабличн
- В этой теме 1 ответ, 2 участника, последнее обновление 29 минут назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
22 сентября 2026 в 7:38 #38690
Поле объекта не обнаружено (НалогообложениеНДСВТабличнойЧасти)
{ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(795)}:Если СтруктураПараметровДействия.НалогообложениеНДСВТабличнойЧасти Тогда
{(2)}:ПакетнаяОбработкаТабличнойЧастиСервер.ЗаполнитьСтавкуНДСВСтрокеТЧ(Параметры.ТекущаяСтрока,Параметры.СтруктураДействий,Параметры.КэшированныеЗначения);
{ОбщийМодуль.ОбщегоНазначения.Модуль(6692)}:Выполнить Алгоритм; // АПК:487 Код выполняется в безопасном режиме.
{ОбщийМодуль.ОбщегоНазначения.Модуль(6702)}:ВызватьИсключение(Уточнение.Текст, КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных ,,, ИнформацияОбОшибке);
{ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(4283)}:ОбщегоНазначения.ВыполнитьВБезопасномРежиме(Алгоритм, Параметры);
{ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(179)}:ВыполнитьКодОбработкиСтрок(Параметры, КэшированныеЗначения, КоличествоСтрокВПорции);
{ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервер.Модуль(244)}:ОбработатьСтрокиТЧ(СтрокаВМассиве, СтруктураДействий, ТЗСОднойСтрокой, КэшированныеЗначения);
{ДобавлениеДвухСтрок Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(685)}:ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка, СтруктураДействий, Неопределено);
{ДобавлениеДвухСтрок Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(757)}:ДобавитьУслугуПоДоставкеНаСервере(ТекущийОбъект);
{ДобавлениеДвухСтрок Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(694)}:ПроверитьУсловияВыполненияПоДоставке(ТекущийОбъект);
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1575)}:Результат = Форма.Записать(ПараметрыЗаписи);
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1500)}:ЗаписатьОбъект(Форма, ПараметрыЗаписи);
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(4050)}:ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка, ОшибкаВнешнегоИсточникаДанных]
по причине:
Поле объекта не обнаружено (НалогообложениеНДСВТабличнойЧасти)
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка] -
22 сентября 2026 в 7:38 #38691
Ошибка возникает не в регистре и не при проведении документа. Она появляется в вашей доработке «ДобавлениеДвухСтрок» при вызове:
1С (Код)1234ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка,СтруктураДействий,Неопределено);Типовой общий модуль при обработке действия «Заполнить ставку НДС» ожидает, что параметры действия содержат поле:
1С (Код)1НалогообложениеНДСВТабличнойЧастиВ переданной структуре этого поля нет, поэтому обращение:
1С (Код)1СтруктураПараметровДействия.НалогообложениеНДСВТабличнойЧастизавершается ошибкой:
1С (Код)1Поле объекта не обнаружено## Что нужно исправить
При формировании
СтруктураДействийдобавьте в параметры действия полеНалогообложениеНДСВТабличнойЧасти.Пример:
1С (Код)123456789СтруктураПараметровДействия = Новый Структура;СтруктураПараметровДействия.Вставить("НалогообложениеНДСВТабличнойЧасти",Истина);СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",СтруктураПараметровДействия);Если в вашей версии общего модуля действие называется иначе, нужно использовать фактическое имя, которое передается в
СтруктураДействий.Например, общий код может выглядеть так:
1С (Код)12345678910111213141516171819202122232425262728293031СтруктураДействий = Новый Структура;// Параметры для заполнения ставки НДСПараметрыЗаполненияСтавкиНДС = Новый Структура;ПараметрыЗаполненияСтавкиНДС.Вставить("НалогообложениеНДСВТабличнойЧасти",Истина);СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",ПараметрыЗаполненияСтавкиНДС);// Остальные действияСтруктураДействий.Вставить("ПересчитатьСуммуНДС",СтруктураПересчетаСуммы);СтруктураДействий.Вставить("ПересчитатьСуммуСНДС",СтруктураПересчетаСуммы);СтруктураДействий.Вставить("ПересчитатьСумму");СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки",Новый Структура("Очищать", Ложь));СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки",Новый Структура("Очищать", Истина));После этого вызов:
1С (Код)1234ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка,СтруктураДействий,Неопределено);получит необходимые параметры.
## Какое значение указывать
Для документа «Реализация товаров и услуг» значение должно соответствовать настройке налогообложения документа.
Если ставка НДС хранится в строках табличной части
Товары, обычно используется:1С (Код)1ИстинаЕсли НДС определяется не в строках, а на уровне документа или используется режим без налогообложения в табличной части, должно быть:
1С (Код)1ЛожьДля обычной реализации с колонками:
— Ставка НДС;
— Сумма НДС;
— Сумма с НДС;как правило, нужно передавать
Истина:1С (Код)123ПараметрыЗаполненияСтавкиНДС.Вставить("НалогообложениеНДСВТабличнойЧасти",Истина);Но лучше не задавать значение произвольно, а взять алгоритм из типовой формы документа.
## Более правильный вариант
Если в документе или форме уже рассчитывается этот признак, используйте именно типовой источник:
1С (Код)12НалогообложениеНДСВТабличнойЧасти =ПолучитьПризнакНалогообложенияНДСВТабличнойЧасти(ТекущийОбъект);Далее:
1С (Код)123456789ПараметрыЗаполненияСтавкиНДС = Новый Структура;ПараметрыЗаполненияСтавкиНДС.Вставить("НалогообложениеНДСВТабличнойЧасти",НалогообложениеНДСВТабличнойЧасти);СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",ПараметрыЗаполненияСтавкиНДС);Название функции в вашей конфигурации может отличаться. Нужно посмотреть типовой код формы документа в обработчиках:
— изменения ставки НДС;
— изменения номенклатуры;
— изменения вида операции;
— пересчета суммы НДС;
— заполнения строки товара или услуги.Ищите в типовой форме место, где формируется
СтруктураДействий, либо вызов:1С (Код)1ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧСкопируйте оттуда структуру параметров без изменений.
## Возможная ошибка в текущей доработке
Скорее всего, сейчас у вас примерно такой код:
1С (Код)12345678910СтруктураДействий = Новый Структура;СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",Новый Структура);ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка,СтруктураДействий,Неопределено);Или действие добавлено так:
1С (Код)123СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",Истина);Оба варианта некорректны для вашей версии общего модуля, поскольку внутри процедуры ожидается структура примерно такого вида:
1С (Код)12СтруктураПараметровДействия = Новый Структура;СтруктураПараметровДействия.НалогообложениеНДСВТабличнойЧасти = Истина;Исправьте на:
1С (Код)12345678ПараметрыЗаполненияСтавкиНДС = Новый Структура;ПараметрыЗаполненияСтавкиНДС.Вставить("НалогообложениеНДСВТабличнойЧасти",Истина);СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",ПараметрыЗаполненияСтавкиНДС);## Если вы не хотите автоматически заполнять ставку НДС
Если строка доставки уже содержит ставку НДС и вам не нужно запускать типовую обработку заполнения ставки, можно убрать действие
ЗаполнитьСтавкуНДСизСтруктураДействий.Например:
1С (Код)1234567891011121314151617СтруктураДействий = Новый Структура;СтруктураДействий.Вставить("ПересчитатьСуммуНДС",СтруктураПересчетаСуммы);СтруктураДействий.Вставить("ПересчитатьСуммуСНДС",СтруктураПересчетаСуммы);СтруктураДействий.Вставить("ПересчитатьСумму");ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка,СтруктураДействий,Неопределено);Но это допустимо только если:
—
СтрокаДоставка.СтавкаНДСуже заполнена;
—СтрокаДоставка.СуммаНДСрассчитывается другим кодом;
— типовая логика документа не должна заново определять ставку НДС.## Проверка в отладчике
Перед строкой 685 установите точку останова и проверьте:
1С (Код)1СтруктураДействийВ ней должен быть элемент:
1С (Код)1ЗаполнитьСтавкуНДСЗначение этого элемента должно быть структурой с полем:
1С (Код)1НалогообложениеНДСВТабличнойЧастиОжидаемая структура:
1С (Код)123СтруктураДействийЗаполнитьСтавкуНДСНалогообложениеНДСВТабличнойЧасти = ИстинаЕсли
ЗаполнитьСтавкуНДСотсутствует, но общий модуль всё равно его обрабатывает, значит структура действий формируется не в том формате, который ожидает конкретный релиз конфигурации. В этом случае нужно ориентироваться на типовой вызов из вашей версии УТ или КА, а не на пример из другой версии.## Что не нужно делать
Не исправляйте общий модуль:
1С (Код)1ОбщийМодуль.ПакетнаяОбработкаТабличнойЧастиСервери не добавляйте туда проверку:
1С (Код)12Если СтруктураПараметровДействия.Свойство("НалогообложениеНДСВТабличнойЧасти") ТогдаЭто скроет ошибку, но может нарушить типовой алгоритм пересчета НДС. Исправлять нужно формирование
СтруктураДействийв процедуре вашей доработки «ДобавлениеДвухСтрок».Наиболее вероятное рабочее исправление в вашем случае:
1С (Код)12345678ПараметрыЗаполненияСтавкиНДС = Новый Структура;ПараметрыЗаполненияСтавкиНДС.Вставить("НалогообложениеНДСВТабличнойЧасти",Истина);СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",ПараметрыЗаполненияСтавкиНДС);Разместить этот код нужно до вызова:
1С (Код)1234ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаДоставка,СтруктураДействий,Неопределено);
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.