![]() |
![]() |
![]() |
|
Штрихкод: уже имеет владельца! Как Можно проверить наличие Штрихкода у Владельца. | ☑ | ||
---|---|---|---|---|
0
prorokk
14.06.09
✎
22:52
|
Так записываю Штрих код...
ШК = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); ШК.Владелец = Справочники.Номенклатура.НайтиПоКоду(Элемент.Код); ШК.ЕдиницаИзмерения = Элемент.ЕдиницаХраненияОстатков; ШК.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; ШК.Штрихкод = Строкапоставщика.Штрих; ШК.Качество = Справочники.Качество.Новый; ШК.Записать(); При Повторной Записи... Ругается Штрихкод: 4605817123209 уже имеет владельца Как Можно проверить наличие Штрихкода у Владельца... и Заменить его...? Или если у Номенклатуры Есть Штрих код то пропустить Запись ШтрихКода.. И заверщить Процедуру. |
|||
1
ТелепатБот
гуру
14.06.09
✎
22:52
|
||||
2
prorokk
14.06.09
✎
22:59
|
(1) Неа...
|
|||
3
MishaSan
14.06.09
✎
23:12
|
ШК.Записать(Истина);
|
|||
4
prorokk
14.06.09
✎
23:50
|
(3) Неа...
Штрихкод: 4605817123209 уже имеет владельца |
|||
5
prorokk
14.06.09
✎
23:57
|
Варианты как победить.. Это разрешить неуникальные Штрих Коды
|
|||
6
prorokk
15.06.09
✎
00:02
|
Этот модуль и проверят на уникальность...
Перем мНеРазрешитьНеуникальныеШтрихкоды; // Обработчик события "ПередЗаписью". // Процедура ПередЗаписью(Отказ, Замещение) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл Если ТипЗнч(ТекущаяЗапись.Владелец) = Тип("СправочникСсылка.Номенклатура") И Не ЗначениеЗаполнено(ТекущаяЗапись.Качество) Тогда Сообщить("Для товара """ + СокрЛП(ТекущаяЗапись.Владелец) + """ со штрихкодом: " + ТекущаяЗапись.ШтрихКод + " не заполнено качество."); Отказ = Истина; КонецЕсли; КонецЦикла; Если мНеРазрешитьНеуникальныеШтрихкоды Тогда Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл Если ЗначениеЗаполнено(ТекущаяЗапись.ШтрихКод) Тогда Запрос = Новый Запрос(" |ВЫБРАТЬ ПЕРВЫЕ 1 | РегШтрихкоды.Владелец КАК Владелец, | РегШтрихкоды.ШтрихКод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК РегШтрихкоды |ГДЕ | РегШтрихкоды.ШтрихКод = &ШтрихКод |"); Запрос.УстановитьПараметр("ШтрихКод", ТекущаяЗапись.ШтрихКод); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Сообщить("Штрихкод: " + Выборка.ШтрихКод + " уже имеет владельца """ + СокрЛП(Выборка.Владелец) + """."); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры // ПередЗаписью() мНеРазрешитьНеуникальныеШтрихкоды = Не Константы.РазрешитьНеуникальныеШтрихкоды.Получить(); |
|||
7
prorokk
15.06.09
✎
00:24
|
UP
|
|||
8
prorokk
15.06.09
✎
01:42
|
Должно работать... А не Хочет(((
ЗаписьШК = Истина; РегСведШК = РегистрыСведений.Штрихкоды; ВыборкаРегСведШК = РегистрыСведений.Штрихкоды.Выбрать(); Пока ВыборкаРегСведШК.Следующий() Цикл Если ВыборкаРегСведШК.Штрихкод = СтрокаПоставщика.ШтрихКод Тогда ЗаписьШК = Ложь; КонецЕсли; КонецЦикла; ЗаписьВРегистрСвед = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); ЗаписьВРегистрСвед.Владелец = Элемент.Ссылка; ЗаписьВРегистрСвед.ЕдиницаИзмерения = Элемент.ЕдиницаХраненияОстатков; ЗаписьВРегистрСвед.Штрихкод = Строкапоставщика.ШтрихКод; ЗаписьВРегистрСвед.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; ЗаписьВРегистрСвед.Качество = Справочники.Качество.Новый; ЗаписьВРегистрСвед.Записать(); |
|||
9
prorokk
15.06.09
✎
01:45
|
Вот так Работает))))))))))))))!!!!!!!!!!!!!!! РЕСПЕКТ ВСЕМ))))))))))))))
ЗаписьШК = Истина; РегСведШК = РегистрыСведений.Штрихкоды; ВыборкаРегСведШК = РегистрыСведений.Штрихкоды.Выбрать(); Пока ВыборкаРегСведШК.Следующий() Цикл Если ВыборкаРегСведШК.Штрихкод = СтрокаПоставщика.ШтрихКод Тогда ЗаписьШК = Ложь; Возврат; КонецЕсли; КонецЦикла; ЗаписьВРегистрСвед = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); ЗаписьВРегистрСвед.Владелец = Элемент.Ссылка; ЗаписьВРегистрСвед.ЕдиницаИзмерения = Элемент.ЕдиницаХраненияОстатков; ЗаписьВРегистрСвед.Штрихкод = Строкапоставщика.ШтрихКод; ЗаписьВРегистрСвед.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; ЗаписьВРегистрСвед.Качество = Справочники.Качество.Новый; ЗаписьВРегистрСвед.Записать(); |
|||
10
Бусидо
15.06.09
✎
01:48
|
Сегодня день дебилов?
|
|||
12
prorokk
15.06.09
✎
02:09
|
(10) Судя по твое Анкете
Род занятий: Каждое утро приводить волосы в порядок и правильно брить лоб не только Сегодня))) и.т.д.... Есть предложеия, критика? Рад выслушать))) Можешь написать Лучше??!! Так и напиши... (11) что-то трудно... Утром подумаю))) |
|||
13
prorokk
15.06.09
✎
02:11
|
(11) Не похоже что Это в эту тему написано...
|
|||
14
H A D G E H O G s
15.06.09
✎
02:24
|
Можно лучше - запросом.
|
|||
16
prorokk
16.06.09
✎
00:01
|
Буду Думать)))
|
|||
17
prorokk
17.06.09
✎
18:50
|
Подскажите)))
|
|||
18
prorokk
17.06.09
✎
22:25
|
Уважаемые Гуру... Подскажите пожалуйста...
Код в (9) Слишком медленный Обработка с ним работает на 40минут дольше над обработкой 10.000 позиций...(((( без нее за 8минут обрабатывает...)))) Как сделать запросом??? На сколько быстрее будет? |
|||
19
alxbzm
17.06.09
✎
22:41
|
(18) если вкратце, то чтобы совсем было быстро, алгоритм такой:
1. Готовишь ТЗ с ШК поставщиков которые надо загрузить. 2. Делаешь запрос, в котором левое с ТЗ регистром сведений "Штрихкоды" по всем нужным полям ПЛЮС условие "Штрихкод Есть NULL". 3. В результате получаешь все записи в ТЗ, для которых нет ШК в твоей базе. 4. Ну а потом просто обход результатов запроса и просто запись ШК в базу данных без всяких проверок. Работает намного быстрее чем простой обход ТЗ с проверкой каждой строчки на существование ШК в базе данных. |
|||
20
alxbzm
17.06.09
✎
22:43
|
+(19): в п. 2 недописал: ЛЕВОЕ СОЕДИНЕНИЕ имелось ввиду.
|
|||
21
prorokk
17.06.09
✎
22:57
|
(19)(20) Большое спасибо))) Пойду изучать Запросы и Левое соединение )))
Алгоритм действий понятен))) По мере появления "кусков" кода буду публиковать))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |