Имя: Пароль:
1C
1С v8
Получение справочника для изменения данных
0 Валидатор
 
28.08.13
16:58
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Артикул,
                   |    Номенклатура.Наименование
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Артикул <> """"";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();
    
    Для Каждого Строка из Выборка Цикл
    Код = Строка.Артикул;
    ПоискАртикула = Справочники.КодыОКДП.НайтиПоКоду(Код);
    Если НЕ ПоискАртикула = Справочники.КодыОКДП.ПустаяСсылка() Тогда    
        
        
        
    КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
в условие где ЕСЛИ хочу получить номенклатуру, все действия с получитьобъект не прокатывают, как по другому сделать?
1 Валидатор
 
28.08.13
17:00
а во, получилсоь
2 YF
 
28.08.13
17:01
(0) Где ПолучитьОбъект()? Не вижу
3 Валидатор
 
28.08.13
17:02
(2) удалял я его от туда, потому что не давал он мне у номенклатуры этого метода, а потом я его нашел, и заработало)
4 Rovan
 
гуру
28.08.13
17:03
(1) иди с миром, добрый человек
5 Валидатор
 
28.08.13
17:03
хотя нет,

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Артикул,
                   |    Номенклатура.Наименование
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Артикул <> """"";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();
    
    Для Каждого Строка из Выборка Цикл
    Код = Строка.Артикул;
    ПоискАртикула = Справочники.КодыОКДП.НайтиПоКоду(Код);
    Если НЕ ПоискАртикула = Справочники.КодыОКДП.ПустаяСсылка() Тогда        
        Номенклатура = Справочник.ПолучитьОбъект();    
        Номенклатура.Артикул = ПоискАртикула;
        Попытка
            Номенклатура.Записать();
        Исключение
            Сообщить(ОписаниеОшибки());
            КонецПопытки;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

теперь пишет элемент не выбран, когда запускаю обработку
6 Валидатор
 
28.08.13
17:03
{Форма.Форма.Форма(18)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
        Номенклатура = Справочник.ПолучитьОбъект();    
по причине:
Элемент не выбран!
7 Basilio
 
28.08.13
17:04
у тя там пустая ссылка
8 Валидатор
 
28.08.13
17:05
Справочник - реквизит с типом справочники.Номенклатура
9 Basilio
 
28.08.13
17:06
надо

   ПоискАртикула = Справочники.КодыОКДП.НайтиПоКоду(Код);
    Если НЕ ПоискАртикула = Справочники.КодыОКДП.ПустаяСсылка() Тогда        
        Номенклатура = ПоискАртикула.ПолучитьОбъект();
10 Basilio
 
28.08.13
17:07
(8) этот реквизит у тебя не заполнен. Для пустой ссылки нельзя Объект получить.
11 Валидатор
 
28.08.13
17:08
(9) так мне нужно получить объект номенклатуры, чтобы в номенклатуре в поле артикул приписать мое значение которое в переменной ПоискАртикула
12 Maxus43
 
28.08.13
17:08
НайтиПоКоду же, а не НайтиПоАртикулу. По русски написано... не находит ничего
13 Валидатор
 
28.08.13
17:08
(9) а в (9) я получаю справочник коды окдп
14 Maxus43
 
28.08.13
17:08
(11) Объясни смысл этих строк:

    Код = Строка.Артикул;
    ПоискАртикула = Справочники.КодыОКДП.НайтиПоКоду(Код);
15 Maxus43
 
28.08.13
17:10
что-то запутал всех.
Какой номенклатуре ты хочешь присвоить что-либо? где в коде поиск номенклатуры этой?
16 Валидатор
 
28.08.13
17:10
суть такая:
1.Если в номенклатуре у элемента есть Артикул, то мы его получаем
2.ищем этот артикул по справочнику КОДыОКДП
3. Если артикул найден в справочнике(причем в справочнике кодыОКДП поиск по полю код(он же есть артикул справочника номенклатуры), то мы пишем этот артикул в реквизит Код ОКДП карточки номенклатуры
17 Basilio
 
28.08.13
17:10
вот так напиши:



   ПоискАртикула = Справочники.КодыОКДП.НайтиПоКоду(Код);
    Если НЕ ПоискАртикула = Справочники.КодыОКДП.ПустаяСсылка() Тогда
        Справочник = ПоискАртикула.Ссылка;
        Номенклатура = Справочник.ПолучитьОбъект();
18 Maxus43
 
28.08.13
17:12
у тебя запрос по всему справочнику, а писать ты хочешь в одну номенклатуру какую-то

(17) не, не в этот справочник писать надо
19 Maxus43
 
28.08.13
17:12
сам туплю, пойду отсюда)
20 Валидатор
 
28.08.13
17:13
(18) ну я же ищу все позиции, а потом перебираю каждую из них, для этого ведь и пишу условие, что если артикул из номенклатуры совпадает с кодом из справочника, тогда берем этот артикул, и пишем его в соответствующий реквизит номенклатуры
21 Basilio
 
28.08.13
17:13
(18_ а че у него другой есть?)
22 Валидатор
 
28.08.13
17:14
(21) 2 справочника: Номенклатура и КодыОКВЭД
1. в номенклатуре ищем артикул
2. этот артикул ищем в справочнике КодыОКВЭД
3. если находим артикул из номенклатуры в справочнике КодыОКВЭД, то пишем его в номенклатуру в реквизит специальный
23 Валидатор
 
28.08.13
17:15
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Артикул,
                   |    Номенклатура.Наименование
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Артикул <> """"";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();
    
    Для Каждого Строка из Выборка Цикл
    Код = Строка.Артикул;
    ПоискАртикула = Справочники.КодыОКДП.НайтиПоКоду(Код);
    
    Если НЕ ПоискАртикула = Справочники.КодыОКДП.ПустаяСсылка() Тогда

вот до этого момента он находит соответствующий реквизит, потом мне нужно получить справочник номенклатура, что собственно я и с прашиваю как сделать)
24 Maxus43
 
28.08.13
17:16
"ВЫБРАТЬ
                   |    Номенклатура.Ссылка,
                   |    Номенклатура.Артикул,
                   |    Номенклатура.Наименование
........

Номенклатура = Строка.Ссылка.ПолучитьОбъект();
Номенклатура.СпецРеквизит = ПоискАртикула;
Номенклатура.Записать();
25 Basilio
 
28.08.13
17:17
Какую номенклатуру надо?
26 Basilio
 
28.08.13
17:19
(23) что значит "получить справочник номенклатура" ? ВЕСЬ ?
27 Basilio
 
28.08.13
17:20
(26)+1 Соберись. Попробуй сформулировать мысль и все сможешь сделать сам.
28 Валидатор
 
28.08.13
17:28
все, сделал, спасибо
29 Infsams654
 
28.08.13
17:28
(23) тебе уже 2 раза Basilio объяснял в (9) и (17)
30 Basilio
 
28.08.13
17:31
(28) тебе (27) помогло?
Программист всегда исправляет последнюю ошибку.