значение свойства в номенклатуре

1. Dushka 7 07.08.12 13:36 Сейчас в теме
Добрый день!
Подскажите, плиз, как можно получить значение свойства номенклатуры, если элемент еще не записан?
Надо как-то через табличное поле СвойстваИЗначения, а вот как никак придумать не могу.
Сегодня муза не со мной :(
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. olegka.ru 6 07.08.12 14:01 Сейчас в теме
2. insurgut 207 07.08.12 13:42 Сейчас в теме
Никак, вы его не назначите, т.к. ссылки на несуществующий объект - не существует, а она необходима для связки. Перед редактированием ТЧ просто проверяем на модифицированность и ЭтоНовый() - спрашиваем "Перед добавлением свойств необходимо записать номенклатуру - Продолжить?" ДаНет - в зависимости от ответа либо записываешь элемент либо нет.
3. SheremetevaValentina 07.08.12 13:45 Сейчас в теме
Табличное поле Свойства и значения отображает ссылки на совершенно другой объект конфигурации. К нему доступ получите только записав объект номенклатуры. И никак иначе
4. mymyka 07.08.12 13:46 Сейчас в теме
НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор());
Объект.УстановитьСсылкуНового(НоваяСсылка);

так можно получить будущую ссылку на текущий объект.
другое дело, что Свойства пишутся в момент записи элемента справочника, и единственный способ их получить перед записью это перебор строк ТЧ формы.
5. Dushka 7 07.08.12 13:47 Сейчас в теме
мне надо, чтобы при записи элемента номенклатуры сообщение было о том, что не заполнено свойство. Сделать его обязательным как-то надо.
И элемент нельзя записывать, пока не установят это свойство.
6. SheremetevaValentina 07.08.12 13:52 Сейчас в теме
(5) Dushka,
мне надо, чтобы при записи элемента номенклатуры сообщение было о том, что не заполнено свойство. Сделать его обязательным как-то надо.
И элемент нельзя записывать, пока не установят это свойство.

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

Т.е. такая мини-версия систему управления НСИ
8. Dushka 7 07.08.12 14:03 Сейчас в теме
Тип данных табличного поля СвойстваИЗначения - обработка. Как-то ведь туда эти значения передаются. Значит и я их смогу получить. Надо как-то позиционироваться на нужном свойстве. Или я не права?
9. SheremetevaValentina 07.08.12 14:08 Сейчас в теме
(8) Dushka, Нет, не правы. Это обработка ссылается на справочник Значения свойств объектов.
Если номенклатура создается интерактивно пользователем, то он даже задать свойство не сможет, пока не запишет объект номенклатуры, получит сообщение о необходимости записать объект. Если программно в принципе тоже самое, только ошибка получите не сообщение а ошибку
10. mymyka 07.08.12 14:20 Сейчас в теме
не понимаю в чем проблема вообще?
Процедура ПередЗаписью(Отказ)
ПроверяемоеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("КодТвоегоСвойства");
Если НеЗаполненоСвойство(ПроверяемоеСвойство) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Заполните значение свойства "+ПроверяемоеСвойство.Наименование);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры;

Процедура НеЗаполненоСвойство(ПроверяемоеСвойство)
Отказ = Ложь;
ТЧ = ЭтаФорма.ЭлементыФормы.СвойстваИЗначения.Значение.Выгрузить();
Для Каждого Стр из ТЧ Цикл
Если Стр.Свойство = ПроверяемоеСвойство и Не ЗначениеЗаполнено(Стр.Значение) Тогда
Отказ = Истина;
КонецЕсли;
КонецЦикла;
Возврат Отказ;
КонецПроцедуры;
пихаешь в модуль формы и все замечтательно работает.
12. Dushka 7 07.08.12 14:31 Сейчас в теме
13. olegka.ru 6 07.08.12 14:36 Сейчас в теме
(10) mymyka, (11) Dushka, Вопрос был "как можно получить значение свойства номенклатуры, если элемент еще не записан?"
Ответ был на вопрос "как можно получить значение из ЭлементыФормы?"
Это не одно и тоже ;)
Правильно поставленный вопрос поможет быстрее получить нужный ответ)))
15. Dushka 7 07.08.12 14:40 Сейчас в теме
(13) olegka.ru, mymyka женщин понимает ))
17. olegka.ru 6 07.08.12 15:02 Сейчас в теме
11. Dushka 7 07.08.12 14:31 Сейчас в теме
отлично! благодарю :) так и знала, что все элементарно, тупила сидела пол дня
спасибо спасибо
14. mymyka 07.08.12 14:39 Сейчас в теме
Анализировать элементы формы это логичный вывод из поставленной задачи, т.к. значения свойства для незаписанного элемента существовать не может, а контроль для записанного элемента противоречит исходным условиям)
16. insurgut 207 07.08.12 14:43 Сейчас в теме
Мда, со свойствами то попроще :) Интереснее было бы запрещать запись например контрагента при отсутствии контактных лиц
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот