• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Простая обработка не работает

  • Автор темы Dzo
  • Дата начала
D

Dzo

Прошу прощения, возможно где то уже было, если так то ткните..

Есть простая обработка (писал сам)

Процедура Сформировать()

Таб=СоздатьОбъект("Таблица");

СпрСН=СоздатьОбъект("Справочник.СвойстваНоменклатуры");
СпрВС=СоздатьОбъект("Справочник.ВидыСвойств");
СпрН=СоздатьОбъект("Справочник.Номенклатура");

СпрН.ВыбратьЭлементы();
Пока СпрН.ПолучитьЭлемент()=1 Цикл
Товар=СпрН.ТекущийЭлемент();
Если Товар.ЭтоГруппа()=1 Тогда
Продолжить
КонецЕсли;
СпрВС.ИспользоватьРодителя(Товар);
СпрВС.НайтиПоНаименованию("Производитель");
Производитель=СпрВС.ТекущийЭлемент();
СпрСН.ИспользоватьРодителя(Производитель);
Производ=СпрСН.ЗначениеСвойства;
Сообщить(Товар + " " + Производ);
КонецЦикла;
КонецПроцедуры

Нужно что бы отобразился товар и рядом соответствующий производитель.

ошибок никаких нет. При запуске ertшки снизу написано. Выполняется обработка, однако сообщений не выводится, подскажите в чем может быть проблема? Заранее благодарен.

1с7.7 ТиС
 
K

KiR

ну во первых отладчик в руки и вперед! и каждую стоку смотреть
 
V

vbs

СпрСН.ИспользоватьРодителя(Производитель);
После этой строки вставь цикл выборки из справочника СпрСН
СпрСН.ВыбратьЭлементы();
Пока СпрСН.ПолучитьЭлемент() = 1 цикл
Производ=СпрСН.ЗначениеСвойства;
Сообщить(Товар + " " + Производ);
КонецЦикла
 
M

Max 1C

1.Для выборки из подчиненного справочника нужно применять ИспользоватьВладельца(), ИспользоватьРодителя() применяется для выбора элементов внутри группы одного справочника
2.Справочник "СвойстваНоменклатуры" подчинен справочнику "Номенклатура"
3.Справочник "СвойстваНоменклатуры" не имеет ни кода, ни наименования=>ищем по реквизиту, или делаем выборку по реквизиту
4.При выводе сообщения необходимо либо явное преобразование товара в тип "Строка": Строка(Товар), т.к. за ним следует строковое выражение, либо вывод наименования Товар.Наименование
Рабочий код:

Процедура Сформировать()
Таб=СоздатьОбъект("Таблица");

СпрСН=СоздатьОбъект("Справочник.СвойстваНоменклатуры");
СпрВС=СоздатьОбъект("Справочник.ВидыСвойств");
СпрН=СоздатьОбъект("Справочник.Номенклатура");

//СпрВС.ИспользоватьРодителя(Товар);
//Выносим из цикла, т.к. вид свойства для всех товаров общий - производитель
СпрВС.НайтиПоНаименованию("Производитель",0,1);
Производитель=СпрВС.ТекущийЭлемент();

СпрН.ВыбратьЭлементы();
Пока СпрН.ПолучитьЭлемент()=1 Цикл
Товар=СпрН.ТекущийЭлемент();
Если Товар.ЭтоГруппа()=1 Тогда
Продолжить
КонецЕсли;

//СпрСН.ИспользоватьРодителя(Производитель);
//Производ=СпрСН.ЗначениеСвойства;
СпрСН.ИспользоватьВладельца(Товар);
СпрСН.ВыбратьЭлементыПоРеквизиту("ВидСвойства",Производитель,1,0);
Пока СпрСН.ПолучитьЭлемент()=1 Цикл
Производ=СпрСН.ЗначениеСвойства;
Сообщить(Товар.Наименование + " " + Производ);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!