7.7 Запись штрих-кода

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем mazza, 5 авг 2010.

  1. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Как программно загрузить штрих-код в справочник Номенклатура? Я так понимаю это реквизит подчиненного справочника Единицы. Как загрузить штрих-код в справочник единицы?
    Если пытаюсь так
    Код:
    Процедура ШтрихКод()
    Excel = СоздатьОбъект("Excel.Application");  
    Excel.Workbooks.Open("D:\Книга1.xls"); 
    Книга = Excel.ActiveWorkbook;
    Строк = Excel.Cells.CurrentRegion.Rows.Count;
    СпрЕд = СоздатьОбъект("Справочник.Единицы"); 
    Для х = 1 По Строк Цикл
    ШтрихКод = СокрЛП(Строка(Excel.Cells(х, 3).Value));
    СпрЕд.Новый();
    СпрЕд.ШтрихКод  = ШтрихКод;
    СпрЕд.Записать();
    Конеццикла;
    Excel.Workbooks.Close();
    КонецПроцедуры
    
    
    То естественно пишет ошибку. Не выбран элемент справочника-хозяина! Элемент не может быть записан!
    Куда и как в этот код дописать поиск элемента справочника-хозяина
    [warn=Убедительная просьба]
    Пользуемся тегами. Уважайте коллег
    [/warn]
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вы не выбрали ВЛАДЕЛЬЦА - единицы это подчиненный справочник
  3. светлана....
    Offline

    светлана....

    Регистрация:
    5 авг 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    не могу разабраться как сделать чтоб у меня была написанна наменклатура а ниже ее цена а потом код...что то вроде ценников только чтоб там были еще и коды номенкл. помогите....
    как мне это сделать????
  4. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Вот я и спрашиваю как правильно выбрать владельца.
  5. dedalx7
    Offline

    dedalx7 Опытный в 1С

    Регистрация:
    20 май 2009
    Сообщения:
    97
    Симпатии:
    0
    Баллы:
    26
    Создаете объект СпрТМЦ, им выбираете ту позицию номенклатуры к которой применяется штрих-код, а потом:

    Код:
    СпрЕд.ИспользоватьВладельца(СпрТМЦ.ТекущийЭлемент());
    
  6. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    А можно примерчик. Я 1С недавно начал изучать.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Сначала нудно импортировать (или получить в диалоговой форме) элемент справочника номенклатура. Если импортируем ассоциация производится по коду или наименованию для этого применяем код
    Код:
    //для поиска по наименованию
    СпрТМЦ = СоздатьОбъект("Справочник.Номенклатура");   
    СпрЕд = СоздатьОбъект("Справочник.Единицы");   
    Для х = 1 По Строк Цикл    
    Имя = СокрЛП(Строка(Excel.Cells(х, НужнаяКолонка).Value));     
    Если СпрТМЦ.НайтиПоНаименованию(Имя,0,1)=0 Тогда
    Сообщить("Не удалось найти "+Имя);
    Продолжить;
    КонецЕсли;
    Если СпрТМЦ.ЭтоГруппа()=1 Тогда
    Сообщить("Ошибка при ассоциации "+Имя);
    Продолжить;
    КонецЕсли;
    
    
    ШтрихКод = СокрЛП(Строка(Excel.Cells(х, 3).Value));     
    СпрЕд.Новый();         
    Спр.Ед.Владелец=СпрТМЦ.ТекущийЭлемент();
    СпрЕд.ШтрихКод  = ШтрихКод;      
    //не забываем что помимо ШК существуют и другие реквизиты
    //справочника. Они также жизненно необходимы для нормальной работы
    СпрЕд.Записать();
    КонецЦикла;
    
    
    //для поиска по коду
    СпрТМЦ = СоздатьОбъект("Справочник.Номенклатура");   
    СпрЕд = СоздатьОбъект("Справочник.Единицы");   
    Для х = 1 По Строк Цикл    
    Имя = СокрЛП(Строка(Excel.Cells(х, НужнаяКолонка).Value));     
    Если СпрТМЦ.НайтиПоКоду(Имя,0)=0 Тогда
    Сообщить("Не удалось найти элемент с кодом "+Имя);
    Продолжить;
    КонецЕсли;
    Если СпрТМЦ.ЭтоГруппа()=1 Тогда
    Сообщить("Ошибка при ассоциации кода "+Имя);
    Продолжить;
    КонецЕсли;
    
    ШтрихКод = СокрЛП(Строка(Excel.Cells(х, 3).Value));     
    СпрЕд.Новый();         
    Спр.Ед.Владелец=СпрТМЦ.ТекущийЭлемент();
    СпрЕд.ШтрихКод  = ШтрихКод;      
    //не забываем что помимо ШК существуют и другие реквизиты
    //справочника. Они также жизненно необходимы для нормальной работы
    СпрЕд.Записать();
    КонецЦикла;
    
    
    
    

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