Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 13:39

Поле объекта не обнаружено (Упаковка)

Автор fruitella, 24 апр 2023, 12:00

0 Пользователей и 1 гость просматривают эту тему.

fruitella

Привет.

Пытаюсь разобраться в текущей архитектуре.
При создании новой потребности появляется ошибка только у одного поля "Количество". При выборе кол-во неких товаров, либо когда пользователь меняет кол-во уже имеющихся товаров, появляется данная ошибка:

Поле объекта не обнаружено (Упаковка)
{ОбщийМодуль.ОбработкаТабличнойЧастиКлиентСервер.Модуль(2265)}:      Упаковка       = ТекущаяСтрока.Упаковка;
{ОбщийМодуль.ОбработкаТабличнойЧастиКлиент.Модуль(398)}:      ПараметрыПересчета = ОбработкаТабличнойЧастиКлиентСервер.НормализоватьПараметрыПересчетаЕдиниц(ТекущаяСтрока, УпаковкаНоменклатура);
{ОбщийМодуль.ОбработкаТабличнойЧастиКлиент.Модуль(51)}:   Если НеобходимВызовСервера(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) Тогда
{Документ.Форма1.Форма.ФормаДокумента.Форма(2151)}:   ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, Неопределено);


Открыл данный модуль, он указан только для чтения, соответственно редактировать его не могу. У меня есть подозрения, что это уже готовые/зарезервированные функции самой 1С. Если я правильно понимаю, где-то в коде вызывается данная функция, в связи с чем появляется данная ошибка?

Функция НормализоватьПараметрыПересчетаЕдиниц(ТекущаяСтрока, УпаковкаНоменклатура) Экспорт

Если УпаковкаНоменклатура = Неопределено Тогда

Номенклатура   = ТекущаяСтрока.Номенклатура;
Упаковка       = ТекущаяСтрока.Упаковка;
НужноОкруглять = Истина;

ИначеЕсли ТипЗнч(УпаковкаНоменклатура) = Тип("Структура") Тогда

Если УпаковкаНоменклатура.Свойство("Упаковка") Тогда
Упаковка = УпаковкаНоменклатура.Упаковка;
ИначеЕсли УпаковкаНоменклатура.Свойство("ЕдиницаИзмеренияВЕТИС") Тогда
Если ЗначениеЗаполнено(УпаковкаНоменклатура.ЕдиницаИзмеренияВЕТИС) Тогда
Упаковка = УпаковкаНоменклатура.ЕдиницаИзмеренияВЕТИС;
Иначе
Упаковка = ТекущаяСтрока.ЕдиницаИзмеренияВЕТИС;
КонецЕсли;
Иначе
Упаковка = ТекущаяСтрока.Упаковка;
КонецЕсли;

Если УпаковкаНоменклатура.Свойство("Номенклатура") Тогда
Номенклатура = УпаковкаНоменклатура.Номенклатура;
Иначе
Номенклатура = ТекущаяСтрока.Номенклатура;
КонецЕсли;

Если УпаковкаНоменклатура.Свойство("НужноОкруглять") Тогда
Если ТекущаяСтрока.Свойство("НужноОкруглять") Тогда
НужноОкруглять = ТекущаяСтрока.НужноОкруглять;
Иначе
НужноОкруглять = УпаковкаНоменклатура.НужноОкруглять;
КонецЕсли;
Иначе
НужноОкруглять = Истина;
КонецЕсли;

Иначе
Упаковка       = УпаковкаНоменклатура;
Номенклатура   = ТекущаяСтрока.Номенклатура;
НужноОкруглять = Истина;
КонецЕсли;

Возврат Новый Структура("Номенклатура,Упаковка,НужноОкруглять", Номенклатура, Упаковка, НужноОкруглять);

КонецФункции



LexaK

а у вас вообще Упаковки используются?
ошибка в этой строке:
Упаковка = ТекущаяСтрока.Упаковка; //нет такого реквизита упаковка
поставьте точку останова и отладчиком посмотрите что у вас в ТекущаяСтрока ?
если помогло нажмите: Спасибо!

fruitella

LexaK, Там Упаковка - не определено . Только сам модуль я менять не могу, он указан только чтения.
Есть процедура к примеру при изменении, она в самой форме.

&НаКлиенте
Процедура ДеревоТоваров1КоличествоУпаковокПриИзменении(Элемент)
   
    ТекущаяСтрока = Элементы.ДеревоТоваров1.ТекущиеДанные;
   
    СтруктураДействий = Новый Структура;   
    СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
    СтруктураДействий.Вставить("ПересчитатьСумму");
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
    ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, Неопределено);

    ПриИзмененииПосле();   
КонецПроцедуры


Сам реквизит, название: Потребность1КоличествоУпаковок, путь к нему: Объект.Потребность.КоличествоУпаковок. Но обратиться я нему почему-то не могу через создание обычной переменной, либо я что-то делаю не так.

LexaK

вы не ответили на вопрос
Цитироватьу вас вообще Упаковки используются?
возможно у вас они отключены функциональными опциями! попробуйте включить, а Администрирование - Настройки ...

а еще, в каждом товаре происходит такая ошибка?
возможно в товаре включено использование упаковок, а их - нет
если помогло нажмите: Спасибо!

fruitella

LexaK, Да, упаковки используются. Можно выбрать кол-во и оно выбирается, и даже меняется во время редактирования. Но перед каждым созданием или изменением именно поля "Количество" появляется та ошибка, которую я описал выше.




LexaK

Цитата: fruitella от 24 апр 2023, 16:10LexaK, Да, упаковки используются. Можно выбрать кол-во и оно выбирается, и даже меняется во время редактирования. Но перед каждым созданием или изменением именно поля "Количество" появляется та ошибка, которую я описал выше.
Упаковки - это не Кол-во!!!
Упаковки это СправочникСсылка.УпаковкиЕдиницыИзмерения

так если все работает при выборе "Кол-ва" - то его и заполняйте!
НЕ ИЗМЕНЯЙТЕ поля "Количество" и ошибки не будет!
(вроде все просто не делать того что приводит к ошибке)
если помогло нажмите: Спасибо!

LexaK

посмотрите что у вас в
Константа.ИспользоватьУпаковкиНоменклатуры ?
если помогло нажмите: Спасибо!

fruitella


LexaK

fruitella, то что вы выложили это не значение константы!
это описание/структура этой константы в конфигураторе!

(как все плохо-то)
и вы не ответили если заполнять "другие" количества - ошибка есть или нет?
если помогло нажмите: Спасибо!

fruitella

LexaK, значение - истина
Ошибка только у кол-ва, ну других полей нет ошибки. Как говорил выше, кол-во корректно выбирается и оно редактируется, все сохраняется. Просто перед каждым новым внесением или редактированием появляется неприятная ошибка, пользователь видит эту ошибку. Соответственно в этом то и косяк, пользователь не должен видеть подобных ошибок.

По дебагеру проваливаюсь в модуль, который только для чтения.
Извиняюсь заранее, если что-то ответил не так, т.к. имею не много опыта.

 

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск