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

Тема в разделе "1C и всё что с ней связано", создана пользователем Dzo, 20 ноя 2009.

  1. Dzo

    Dzo Active Member

    Регистрация:
    13 апр 2009
    Сообщения:
    38
    Симпатии:
    0
    Прошу прощения, возможно где то уже было, если так то ткните..

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

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

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

    1с7.7 ТиС
     
  2. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    ну во первых отладчик в руки и вперед! и каждую стоку смотреть
     
  3. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    После этой строки вставь цикл выборки из справочника СпрСН
    СпрСН.ВыбратьЭлементы();
    Пока СпрСН.ПолучитьЭлемент() = 1 цикл
    Производ=СпрСН.ЗначениеСвойства;
    Сообщить(Товар + " " + Производ);
    КонецЦикла
     
  4. Max 1C

    Max 1C Гость

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

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

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

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

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

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

Поделиться этой страницей