| 
    
            
         
         | 
    
  | 
Проверка подч элем-та спр через выбор или запрос? Учусь. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        temsa    
     03.11.12 
            ✎
    09:42 
 | 
         
        Задача: Загрузить из трех ексель файлов коробочные штрихкода.
  
        в файлах 360 2600 и 2040 строк. Написал обработку грузится все ок. Но вот при создании у номенклатуры хотелось бы проверить если у нее соотв ед измерения. Как это организвать учитывая что это разово важно не скорость обработки а точность нахождения. Вот кусок кода в цикле : ШтрихкодКоробочного = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 3).Text); КоличествоВКоробкеСтрока = СокрЛП(ExcelЛист.Cells(ТекущаяСтрока, 6).Text); КоличествоВКоробке = Число(Прав(КоличествоВКоробкеСтрока,2)); НовыйЕдИзмНом = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НовыйЕдИзмНом.Наименование = "Кор"; НовыйЕдИзмНом.Владелец = Номенклатура; НовыйЕдИзмНом.ЕдиницаПоКлассификатору = Ед; НовыйЕдИзмНом.Коэффициент = КоличествоВКоробке; НовыйЕдИзмНом.Записать(); НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Владелец.Установить(Номенклатура); НаборЗаписей.Отбор.Штрихкод.Установить(ШтрихкодКоробочного); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Владелец = Номенклатура; НоваяЗапись.Штрихкод = ШтрихкодКоробочного; НоваяЗапись.ТипШтрихкода = EAN13; НоваяЗапись.ЕдиницаИзмерения = НовыйЕдИзмНом.Ссылка; НоваяЗапись.Качество = Качество; НаборЗаписей.Записать(); Сообщить("Найден и создан для " + НаименованиеТовара);  | 
|||
| 
    1
    
        temsa    
     03.11.12 
            ✎
    09:43 
 | 
         
        Вот нашел v8: Как перебрать элементы подчиненного справочника?
  
        там пишут про: СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>) Выбрать (Select) Синтаксис: Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>) Параметры: <Родитель> (необязательный) Подойдет мне это? Или все же таки запрос? А если запрос то какой?  | 
|||
| 
    2
    
        temsa    
     03.11.12 
            ✎
    09:45 
 | 
         
        Хочу проверить перед:
  
        НовыйЕдИзмНом = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НовыйЕдИзмНом.Наименование = "Кор"; Есть ли ед изм у ном-ры чтоб не дублировать...  | 
|||
| 
    3
    
        ДенисЧ    
     03.11.12 
            ✎
    09:46 
 | 
         
        Если одноразовость - то поф. Что выборка, что запрос...     
         | 
|||
| 
    4
    
        temsa    
     03.11.12 
            ✎
    09:51 
 | 
         
        (3) По идее если внутри цикла будет выбрать или там же запрос то кто выиграет по скорости?     
         | 
|||
| 
    5
    
        ДенисЧ    
     03.11.12 
            ✎
    09:52 
 | 
         
        (4) сам же сказал, что одноразовый... Да и на таких условиях - практически одинаково     
         | 
|||
| 
    6
    
        H A D G E H O G s    
     03.11.12 
            ✎
    09:54 
 | 
         
        В принципе - пофиг, еденице измерения - маленький справочник (по реквизитам), основной провал будет в
  
        ExcelЛист.Cells(ТекущаяСтрока, 3).Text  | 
|||
| 
    7
    
        temsa    
     03.11.12 
            ✎
    09:54 
 | 
         
        (5) Я бы даже не проверял бы это условие потому что оно создается впервые. Но мало ли вдруг где-то что уже создавалось.
  
        Просто хочу более грамотно сделать это.  | 
|||
| 
    8
    
        ДенисЧ    
     03.11.12 
            ✎
    09:56 
 | 
         
        (7) грамотно в этом случае - так, как написать быстрее. Ибо больше на оптимизацию потратишь, чем она работать будет.
  
        И вообще, не мной сказано - "Преждевременная оптимизация - одно из зол (злов)" (Preliminary optimisation - is a root of a evil)  | 
|||
| 
    9
    
        H A D G E H O G s    
     03.11.12 
            ✎
    09:57 
 | 
||||
| 
    10
    
        H A D G E H O G s    
     03.11.12 
            ✎
    09:59 
 | 
         
        UsedRange конечно же.. Пардонте.
  
        Мы, русские, должны помогать друг другу.  | 
|||
| 
    11
    
        temsa    
     03.11.12 
            ✎
    10:02 
 | 
         
        (10) Спасибо за ссылку. В будущем пригодится. Но в тестовой базе я загрузил данные из трех файлов за 3-5 минут. :)
  
        Тему создал чтоб услышать пример красивого предварительного отбора запросом и потом по ней проверку :)  | 
|||
| 
    12
    
        ДенисЧ    
     03.11.12 
            ✎
    10:03 
 | 
         
        (10) Ми таки знаем, как ви, rусские, помогаете.. :-)     
         | 
|||
| 
    13
    
        Живой Ископаемый    
     03.11.12 
            ✎
    10:05 
 | 
         
        (11) выбирай запросом. всяко пригодится привыкать к земле.     
         | 
|||
| 
    14
    
        shuhard    
     03.11.12 
            ✎
    10:12 
 | 
         
        (0) запросом 
  
        однозначно  | 
|||
| 
    15
    
        temsa    
     03.11.12 
            ✎
    10:13 
 | 
         
        (13) (14) И как же мне запросом выбрать за пределами цикла предварительно.
  
        отбор всех ед измерений с наименованием "Короб" и с владельцем а уже в цикле выбирать из запроса так?  | 
|||
| 
    16
    
        ДенисЧ    
     03.11.12 
            ✎
    10:13 
 | 
         
        (13) Ты ещё посоветуй селёдку молоком запить...     
         | 
|||
| 
    17
    
        shuhard    
     03.11.12 
            ✎
    10:16 
 | 
         
        (15) [отбор всех ед измерений с наименованием "Короб" и с владельцем]
  
        и чё ?  | 
|||
| 
    18
    
        temsa    
     03.11.12 
            ✎
    10:31 
 | 
         
        (17) Перед циклом:
  
        Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЕдиницыИзмерения.Ссылка, | ЕдиницыИзмерения.ЕдиницаПоКлассификатору, | ЕдиницыИзмерения.Коэффициент |ИЗ | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения |ГДЕ | ЕдиницыИзмерения.ЕдиницаПоКлассификатору = &ВыбЕдКоробка"; Запрос.УстановитьПараметр("ВыбЕдКоробка", ВыбЕдКоробка); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); А далее в цикле провряем есть ли в запросе Номенклатура и ед имзерение  | 
|||
| 
    19
    
        shuhard    
     03.11.12 
            ✎
    10:33 
 | 
         
        (18) не удачный запрос:
  
        нет в нём главного - владельца  | 
|||
| 
    20
    
        Живой Ископаемый    
     03.11.12 
            ✎
    10:34 
 | 
         
        (16) я же запиваю. почему бы не посоветовать... только потому что я скромный, и не привык навязывать свои ценности всем вокруг.     
         | 
|||
| 
    21
    
        Живой Ископаемый    
     03.11.12 
            ✎
    10:36 
 | 
         
        2(18) порвал шаблон.. Лучше вернись к (1) Чтобы перебрать элементы подчиненного справочника, нужно их выбрать. И для этого наложить условие на владельца.
  
        Ну или не накладывать, если для многих владельцев, а просто группировать по нему.  | 
|||
| 
    22
    
        shuhard    
     03.11.12 
            ✎
    10:36 
 | 
         
        (20) допьёшься до СРК     
         | 
|||
| 
    23
    
        temsa    
     03.11.12 
            ✎
    10:37 
 | 
         
        (19) ой, точно тупанул....     
         | 
|||
| 
    24
    
        Живой Ископаемый    
     03.11.12 
            ✎
    10:37 
 | 
         
        (22)мне все так с детства говорят, и где они теперь?     
         | 
|||
| 
    25
    
        shuhard    
     03.11.12 
            ✎
    11:01 
 | 
         
        (24) не спорь со старшими (с)     
         | 
|||
| 
    26
    
        Живой Ископаемый    
     03.11.12 
            ✎
    11:22 
 | 
         
        (25) почему? откуда взялось это тупое ограничение?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |