![]() |
![]() |
![]() |
|
Как правильно ??? Ø (Волшебник 18.10.2004 23:19) |
☑ | ||
---|---|---|---|---|
0
Sh_s
18.10.04
✎
18:04
|
вопрос вот в чем
Дано: Номенклатура, список товара в накладной. Задача: Однозначно определить каждый элемент из накладной в номенклатуре. Дополнительно: В номенклатуре есть помеченные на удаление элементы. Решалось: ВыбраттьСтроки(); // из текста Пока ПолучитьСтроку()>0 Цикл Ном.НайтиПоНаименованию("Текст",0,0): // вот тут то и косяк, // так как если встречается элемент с тем же наименованием, // но помеченный на удаление, то нас он не устраивает. Как сделать? Следует учесть что товара больее 100 единиц, следовательно через запрос не катит, или я гоню? Помогите! |
|||
1
Антон ORIGINAL
18.10.04
✎
18:05
|
Тема не отвечает содержимому сабжа и будет закрыта...
Если такое повторится ещё раз - обратитесь к... Волшебнику... |
|||
2
Мулька
18.10.04
✎
18:06
|
Накладная совсем левая ? В смысле ссылок нет на справочник ?
|
|||
3
Фольшепник
18.10.04
✎
18:18
|
0. Ищи не по имени, а по уникальному коду, одно проверяй наличие пометки на удаление.
|
|||
4
Фольшепник
18.10.04
✎
18:20
|
+3. "одно проверяй" читай как "заодно проверяй"
2. Не понял мысли, как может не быть ссылок на справочник, если есть пометки на удаление? |
|||
5
Dirty boy
18.10.04
✎
18:24
|
Док = СоздатьОбъект("Документ.Накладная");
Спр = СоздатьОбъект("Справочник.Номенклатура"); Док.ВыбратьСтроки() Пока Док.ПолучитьСтроку = 1 Цикл Если Спр.НайтиПоНаименованию(Док.Наименование,0,1) = 1 Тогда Если Спр.ТекущийЭлемент().ПометкаНаУдаление = 1 Тогда Продолжить; |
|||
6
Фольшепник
18.10.04
✎
18:30
|
5. Раз так подробно расписал, дай-ка в эфир описание метода ПометкаНаУдаление :))
|
|||
7
Sh_s
18.10.04
✎
18:33
|
Спасибо (5) попробую (фишка в том что коды не участвуют по любому, а наименования могут быть одинаковые и не помечены на удаление вот такой косячный справочник).
Для (1) уточни по поводу не соответствия. |
|||
8
Archon
18.10.04
✎
18:34
|
Вместо "НайтиПоНаименованию()" используй "НайтиЭлемент()".
|
|||
9
Sh_s
18.10.04
✎
18:38
|
Элемент не участвует, из текстовика берется его наименование.
|
|||
10
bsg
18.10.04
✎
18:39
|
(3) Чего чудить-то? Если Наименование - реквизит документа (номенклатура), то Док.Наименование и есть ссылка элемент (однозначная).
|
|||
11
Фольшепник
18.10.04
✎
18:43
|
9. Тогда однозначно определить не получится
|
|||
12
miki
18.10.04
✎
19:04
|
(0). Что-то не понятно. Судя по коду, ты обращаещься к методам напрямую, т. е.уже находишься в модуле формы/документа. Тогда должно прокатить "НайтиЭлемент()".
Если только загружаешь из текстовика, то можно создать в номенклатуре реквизит, дублирующий Наименование с признаком сортировки. А потом как (5), но чуть иначе: Спр = СоздатьОбъект("Справочник.Номенклатура"); Док.ВыбратьСтроки() Пока Док.ПолучитьСтроку = 1 Цикл Если Спр.ВыбратьЭлементыПоРеквизиту(<ДубльНаим>,"Текст",<РежИер>,<РежГрупп>)=1 Тогда Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.ПометкаУдаления() = 1 Тогда Продолжить; Иначе Док.Номенклатура=Спр.ТекущийЭлемент(); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; ... КонецЦикла; ... |
|||
13
Sh_s
18.10.04
✎
23:15
|
Спасибо всем!!! Заработало и (12) и (5). Удовлетворен обоими (вариантами).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |