Помогите разобраться где ошибка.
{Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(270)}: Поле объекта недоступно для записи (Владелец)
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
ВОТ КОД:
{Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(270)}: Поле объекта недоступно для записи (Владелец)
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
ВОТ КОД:
Запрос.Текст = "ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Наименование
|ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|ГДЕ
| ХарактеристикиНоменклатуры.Владелец = &Владелец
| И ХарактеристикиНоменклатуры.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", Значение);
Запрос.УстановитьПараметр("Владелец", МодельМатраса);
Если Запрос.Выполнить().Выбрать().Количество()<=0 Тогда //Если нет, то задаем характеристику номенклатуре
Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
Характеристика.Наименование = Значение;
Характеристика.Записать();
РегистрЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); //Записываем запись в регистр сведений
РегистрЗначенияСвойствОбъектов.Значение = СвойствоСсылка;
РегистрЗначенияСвойствОбъектов.Объект = Характеристика.Ссылка;
РегистрЗначенияСвойствОбъектов.Свойство = ВладелецРазмер;
РегистрЗначенияСвойствОбъектов.Записать();
КонецЕсли;
ПоказатьПо теме из базы знаний
- Автоматизированная проверка конфигураций… и пара слов о стандартах разработки
- Дополнительные функции для 1С:Документооборот
- Ошибка при обновлении: Записи регистра сведений стали неуникальными: Двоичные данные файлов
- Защита объектов от изменения обменом
- Типичные ошибки при совершенствовании бизнес-процессов, или Почему автоматизация не всегда помогает достичь реальной эффективности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
вот так пробую, таже самая ошибка:
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
Отладчиком остановитесь на строке и посмотрите что тут:
ЭлементыФормы.МодельМатраса.Значение.Ссылка
(выделяем и жмем Шифт+F9)
ЭлементыФормы.МодельМатраса.Значение.Ссылка
(выделяем и жмем Шифт+F9)
(17) config, еще попробуйте переименовать переменную Характеристика
НоваяХарактеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
НоваяХарактеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
НоваяХарактеристика.Наименование = Значение;
НоваяХарактеристика.Записать();
(26) tendercement, скорее всего в этом куске кода
Всегда идет попадание в Иначе
Если Выборка.Количество()<=0 Тогда //А если нет, то создаем
Свойство = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
Свойство.Наименование = Значение;
Свойство.Владелец = ВладелецРазмер;
Свойство.Записать();
СвойствоСсылка = Свойство.Ссылка;
Иначе
Выборка.Следующий();
СвойствоСсылка = Выборка.Ссылка;
КонецЕсли;
ПоказатьВсегда идет попадание в Иначе
Вот полный код:
Процедура ОсновныеДействияФормыСоздатьХар(Кнопка)
Значение = Формат(ЭлементыФормы.Ширина.Значение*10, "ЧГ=0") + "×" + Формат(ЭлементыФормы.Длина.Значение*10, "ЧГ=0") + "×" + Формат(Прав(ЭлементыФормы.Характеристика.Значение.Наименование,3), "ЧГ=0"); //(?(Прав(ЭлементыФормы.Характеристика.Значение.Наименование,3) = "000", 4, 3))); //Считываем характеристику из файла
ВладелецРазмер = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("УТ0000011");
Если ЭлементыФормы.Ширина.Значение > 0 И ЭлементыФормы.Длина.Значение > 0 Тогда // Если характеристика есть
Запрос = Новый Запрос; // то запросом ищем, есть ли такая характеристика в справочнике. Если есть, то не будем ее по новой создавать
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Ссылка
|ИЗ
| Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", Значение);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество()<=0 Тогда //А если нет, то создаем
Свойство = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
Свойство.Наименование = Значение;
Свойство.Владелец = ВладелецРазмер;
Свойство.Записать();
СвойствоСсылка = Свойство.Ссылка;
Иначе
Выборка.Следующий();
СвойствоСсылка = Выборка.Ссылка;
КонецЕсли;
//Следующим запросом ищем, может для данной номенклатуры уже задавалась такая характеристика
Запрос.Текст = "ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Наименование
|ИЗ
| Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|ГДЕ
| ХарактеристикиНоменклатуры.Владелец = &Владелец
| И ХарактеристикиНоменклатуры.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", Значение);
Запрос.УстановитьПараметр("Владелец", ЭлементыФормы.МодельМатраса.Значение.Ссылка);
Если Запрос.Выполнить().Выбрать().Количество()<=0 Тогда //Если нет, то задаем характеристику номенклатуре
Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
Характеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
Характеристика.Наименование = Значение;
Характеристика.Записать();
РегистрЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); //Записываем запись в регистр сведений
РегистрЗначенияСвойствОбъектов.Значение = СвойствоСсылка;
РегистрЗначенияСвойствОбъектов.Объект = Характеристика.Ссылка;
РегистрЗначенияСвойствОбъектов.Свойство = ВладелецРазмер;
РегистрЗначенияСвойствОбъектов.Записать();
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Нашел ошибку:
Вот как надо: РегистрЗначенияСвойствОбъектов.Объект = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
Но теперь он создает Характеристику, но не заполняет Значение
Вот как надо: РегистрЗначенияСвойствОбъектов.Объект = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
Но теперь он создает Характеристику, но не заполняет Значение
(28) tendercement,
кажется тут путанница. Может
РегистрЗначенияСвойствОбъектов.Значение = СвойствоСсылка;
РегистрЗначенияСвойствОбъектов.Объект = Характеристика.Ссылка;
РегистрЗначенияСвойствОбъектов.Свойство = ВладелецРазмер;
кажется тут путанница. Может
РегистрЗначенияСвойствОбъектов.Значение = Значение; //Значение, а не СвойствоСсылка
РегистрЗначенияСвойствОбъектов.Объект = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
РегистрЗначенияСвойствОбъектов.Свойство = СвойствоСсылка; //СвойствоСсылка а не ВладелецРазмер
(29) config, во что:
{Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(278)}: Ошибка при вызове метода контекста (Записать)
РегистрЗначенияСвойствОбъектов.Записать();
по причине:
Запись не верна! Значение поля "Свойство" не может быть пустым!: ЗначенияСвойствОбъектов: Discovery (Дискавери) Sleep Style Askona Матрас, (Регистр сведений: Значения свойств объектов)
{Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(278)}: Ошибка при вызове метода контекста (Записать)
РегистрЗначенияСвойствОбъектов.Записать();
по причине:
Запись не верна! Значение поля "Свойство" не может быть пустым!: ЗначенияСвойствОбъектов: Discovery (Дискавери) Sleep Style Askona Матрас, (Регистр сведений: Значения свойств объектов)
блин не могу найти,
Свойство найдено!
ЗначениеСвойтства - создано
Характеристика - создано
В характеристике не выбрано значение свойства
что те так, нужно выбрать как-то значение свойства в характеристике номенклатуры
Свойство найдено!
ЗначениеСвойтства - создано
Характеристика - создано
В характеристике не выбрано значение свойства
что те так, нужно выбрать как-то значение свойства в характеристике номенклатуры
Значение поля "Свойство" не может быть пустым!
Ну тут уж куда яснее-то.
Что говорит отладчик на этой строчке?
Ошибка поменялась с
Так где сейчас ошибка?
Ошибка при вызове метода контекста (Записать)
на Процедура или Функция не определена Записать()
Так где сейчас ошибка?
(36) config, (36) config,
на отладчике по строке Записать(): ошибка на фото
после продолжения ошибка в приложении:
{Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(277)}: Ошибка при вызове метода контекста (Записать)
РегистрЗначенияСвойствОбъектов.Записать();
по причине:
Запись не верна! Значение поля "Свойство" не может быть пустым!: ЗначенияСвойствОбъектов: Discovery (Дискавери) Sleep Style Askona Матрас, (Регистр сведений: Значения свойств объектов)
на отладчике по строке Записать(): ошибка на фото
после продолжения ошибка в приложении:
{Обработка.РасчетМатрасаПоНестандарту.Форма.Форма.Форма(277)}: Ошибка при вызове метода контекста (Записать)
РегистрЗначенияСвойствОбъектов.Записать();
по причине:
Запись не верна! Значение поля "Свойство" не может быть пустым!: ЗначенияСвойствОбъектов: Discovery (Дискавери) Sleep Style Askona Матрас, (Регистр сведений: Значения свойств объектов)
Прикрепленные файлы:
У Свойства должен быть тип ПланыВидовХарактеристик.СвойстваОбъектов
У Значения должен быть тип Справочники.ЗначенияСвойствОбъектов
У Значения должен быть тип Справочники.ЗначенияСвойствОбъектов
У Свойства должен быть тип ПланыВидовХарактеристик.СвойстваОбъектов
У тебя это переменная ВладелецРазмер
Попробуй поменять
В ИТОГЕ РАБОТАЕТ по КОДУ:
Если Запрос.Выполнить().Выбрать().Количество()<=0 Тогда //Если нет, то задаем характеристику номенклатуре
НоваяХарактеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
НоваяХарактеристика.Владелец = ЭлементыФормы.МодельМатраса.Значение.Ссылка;
НоваяХарактеристика.Наименование = Значение;
НоваяХарактеристика.Записать();
нНоменклатура = ЭлементыФормы.МодельМатраса.Значение;
РегистрЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи(); //Записываем запись в регистр сведений
РегистрЗначенияСвойствОбъектов.Объект = НоваяХарактеристика.Ссылка;
РегистрЗначенияСвойствОбъектов.Свойство = ВладелецРазмер;
РегистрЗначенияСвойствОбъектов.Значение = СвойствоСсылка;
РегистрЗначенияСвойствОбъектов.Записать();
КонецЕсли;
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот