|
Загрузка из табличного документа, создание номенклатуры |
☑ |
0
enmelnik
14.08.15
✎
17:52
|
Необходимо добавить в документ из файла строки, встречаются дубли номенклатуры с разной ценой. Как создать номенклатуру не используя ее поиск по артикулу+наименование в цикле, иначе получается дубль?
|
|
1
igork1966
14.08.15
✎
17:54
|
(0) Использовать соответствие с кэшем или предварительную группировку не предлагать? ;-))))
|
|
2
enmelnik
14.08.15
✎
17:55
|
группировка не пойдет, цены разные могут быть на один и тот же товар
|
|
3
igork1966
14.08.15
✎
17:56
|
(2) Мда...
|
|
4
enmelnik
14.08.15
✎
18:09
|
(3) изложи подробнее
|
|
5
igork1966
14.08.15
✎
18:11
|
(4) Для (0) подробнее невозможно.
(4) => (0)
|
|
6
igork1966
14.08.15
✎
18:12
|
(5) + из (0) даже непонятно тебе код загрузки нужно написать или еще чего...
|
|
7
enmelnik
14.08.15
✎
18:12
|
(5) более доступным языком можно?
|
|
8
igork1966
14.08.15
✎
18:15
|
(7) http://www.forum.mista.ru/rules.php
http://www.forum.mista.ru/rules.php
5.Не ставьте "общих" вопросов. Если Вы даже не знаете, как подступиться к задаче, все равно скажите, какие у Вас есть идеи.
9.Чем полнее вы опишите свою проблему, тем быстрее Вам смогут помочь. Следующие пункты помогут Вам сориентироваться, какая информация наиболее важна.
|
|
9
enmelnik
14.08.15
✎
18:16
|
Номенклатура Количество Цена Сумма
товар1 1 100 100
товар2 1 150 150
товар1 2 200 400
|
|
10
Defender aka LINN
14.08.15
✎
18:16
|
(2) Ну так не группируй по цене, неужели так сложно межушным ганглием-то пошевелить?
|
|
11
enmelnik
14.08.15
✎
18:23
|
я не пойму как правильнее сделать:
- сначала найти всю номенклатуру, ненайденную создать, потом добавлять строку в документ;
или
- при добавлении строки искать номенклатуру?
|
|
12
igork1966
14.08.15
✎
18:28
|
Кэш = Новый Соответствие();
Внутри цикла по строкам
Ключ = ......
Найдено = Кэш.Получить(Ключ);
Если Найдено = Неопределено Тогда
Найдено = НайтиСоздатьНоменклатуру(....);
КонецЕсли;
|
|
13
igork1966
14.08.15
✎
18:28
|
(12) +
Кэш[Ключ] = Найдено;
|
|
14
enmelnik
14.08.15
✎
19:17
|
(13) спасибо разобрался))
вот так получилось:
Для Каждого Строка Из Результат Цикл
Ключ = Строка.Артикул + "___" + Строка.НаименованиеПолное;
Найдено = Кэш.Получить(Ключ);
Если Найдено = Неопределено Тогда
Найдено = СоздатьЭлементНоменклатуры(Строка);
КонецЕсли;
Кэш[Ключ] = Найдено;
КонецЦикла;
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший