|
Проверка подч элем-та спр через выбор или запрос? Учусь. | ☑ | ||
---|---|---|---|---|
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) почему? откуда взялось это тупое ограничение?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |