Имя: Пароль:
1C
1С v8
Регистр Сведений Штрихкоды
0 fleur
 
12.10.12
15:10
Как можно проще всего узнать, есть ли уже штрихкод, если известна номенклатура и характеристика номенклатуры?
1 kotletka
 
12.10.12
15:11
Выборкой
2 kotletka
 
12.10.12
15:12
можно и запросом
3 rs_trade
 
12.10.12
15:21
РезультатЗапроса.Пустой()
4 fleur
 
12.10.12
15:29
Отказ = Истина;
РезНом = Справочники.Номенклатура.НайтиПоНаименованию(ТекстыЯчеек[7]);                
Если РезНом =  Справочники.Номенклатура.ПустаяСсылка() Тогда                
   Сообщить  ("Не найдена номенклатура" +  ТекстыЯчеек[7]);            
КонецЕсли;                
РезХар = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ТекстыЯчеек[4],,,РезНом);                
Если РезХар =  Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда                
    Сообщить  (" Не найдена характеристика номенклатуры"+ТекстыЯчеек[4]);            
КонецЕсли;                

Штрих = РегистрыСведений.Штрихкоды;
ОтборШтрих = Новый Структура("Владелец,ХарактеристикаНоменклатуры");
ОтборШтрих.Владелец = РезНом;
ОтборШтрих.ХарактеристикаНоменклатуры = РезХар;
ВыборкаШтрих = Штрих.Выбрать(ОтборШтрих.Владелец,,ОтборШтрих.ХарактеристикаНоменклатуры);
Пока ВыборкаШтрих.Следующий() Цикл
   Сообщить("Штрихкода " + ВыборкаШтрих.Штрихкод);
КонецЦикла;

Пишет - слишком много параметров
5 fleur
 
12.10.12
15:46
Подскажите, как сделать выборку по двум параметрам,по одному:

Штрих = РегистрыСведений.Штрихкоды;
ОтборШтрих = Новый Структура("Владелец");
ОтборШтрих.Владелец = РезНом;
ВыборкаШтрих = Штрих.Выбрать(ОтборШтрих);
Пока ВыборкаШтрих.Следующий() Цикл
Если ВыборкаШтрих.ХарактеристикаНоменклатуры = РезХар Тогда
   Сообщить("Штрихкода " + ВыборкаШтрих.Штрихкод);
КонецЕсли;
КонецЦикла;
6 zoom_4x
 
12.10.12
16:00
Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    Штрихкоды.Штрихкод
       |ИЗ
       |    РегистрСведений.Штрихкоды КАК Штрихкоды
       |ГДЕ
       |    Штрихкоды.Владелец = &Владелец
       |    И Штрихкоды.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры";

   Запрос.УстановитьПараметр("Владелец", РезНом);
   Запрос.УстановитьПараметр("ХарактеристикаНоменклатуры", РезХар);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Сообщить("Штрихкод " + ВыборкаДетальныеЗаписи.Штрихкод);    
   КонецЦикла;
7 Snorkler
 
12.10.12
16:01
(4) Ежели не запросом, то вместо:
ВыборкаШтрих = Штрих.Выбрать(ОтборШтрих.Владелец,,ОтборШтрих.ХарактеристикаНоменклатуры);

стоит написать:
ВыборкаШтрих = Штрих.Выбрать(ОтборШтрих);

Только в ОтборШтрих в качестве полей должны присутствовать исключительно "измерения или реквизиты, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или установлен признак "Ведущее"".
8 kotletka
 
12.10.12
16:08
(4)в выбрать должен быть 1 параметр, если хочешь с 2 мя, то  пиши все тоже самое но вместо выбрать , поставь получить( отбор)
9 kotletka
 
12.10.12
16:09
ОтборШтрих.Владелец = РезНом;
ОтборШтрих.ХарактеристикаНоменклатуры = РезХар;
ВыборкаШтрих = Штрих.Получить(ОтборШтрих);
10 fleur
 
21.10.12
14:46
(9) Пишет:
Ошибка при вызове метода контекста (Получить): Недопустимое значение параметра (параметр номер '1')