|
Перебор характеристики номенклатуры | ☑ | ||
---|---|---|---|---|
0
Tumakota
20.01.13
✎
18:53
|
Всем доброго времени суток, возникла проблема с перебором характеристики номенклатуры. Есть пустая база Розница 2.0, создал обработку куда из Екселя загоняю все нужные мне данные, чтобы потом уже создавать документы справочники и все остальное из нее, так вот все хорошо складывается, кроме характеристик! Создается характеристика с определенным номером серии, но такой же номеров может быть еще штук 5-6, сказали что если есть такой же номер серии, то прибавить точку или запятую, ну так вот как мне этос делать
Хар = Справочники.ХарактеристикиНоменклатуры.Выбрать(НайтиПоРеквизиту("ор_СерияПроизводителя", СтрокаТаб.Серия); Если Хар.ор_СерияПроизводителя = СтрокаТаб.Серия тогда Хар = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент(); Хар.Владелец = СтрокаТовара.Номенклатура.Ссылка; Хар.ор_СрокГодности = Дата(СтрокаТаб.Срок); Хар.ор_СерияПроизводителя = СтрокаТаб.Серия+"."; Хар.ор_Производитель = СтрокаТаб.Производитель; СтрокаНаименованиеСерий=ор_ОтраслевоеРешениеКлиентСервер.СформироватьНаименованиеСерии(Хар.ор_СерияПроизводителя, Хар.ор_СрокГодности)+ "," + Хар.ор_Производитель ; Хар.Наименование = СтрокаНаименованиеСерий; Хар.Записать(); СтрокаТовара.Характеристика = Хар.Ссылка; Иначе Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент(); Характеристика.Владелец = СтрокаТовара.Номенклатура.Ссылка; Характеристика.ор_СрокГодности = Дата(СтрокаТаб.Срок); Характеристика.ор_СерияПроизводителя = СтрокаТаб.Серия; Характеристика.ор_Производитель = СтрокаТаб.Производитель; СтрокаНаименованиеСерии=ор_ОтраслевоеРешениеКлиентСервер.СформироватьНаименованиеСерии(Характеристика.ор_СерияПроизводителя, Характеристика.ор_СрокГодности)+ "," + Характеристика.ор_Производитель ; Характеристика.Наименование = СтрокаНаименованиеСерии; Характеристика.Записать(); СтрокаТовара.Характеристика = Характеристика.Ссылка; КонецЕсли; я делаю так, но это предполагаю что не правильно так как он только один раз прибавляет точку, ну т.е первая без точки а остальные с одной точкой а надо, чтобы 2 была с одной точкой, 3 с 2 и так далее. Заранее благодарен |
|||
1
Tumakota
20.01.13
✎
19:13
|
Что ни кто не может помочь?
|
|||
2
vicof
20.01.13
✎
19:17
|
Прибавлять все время по точке, после всех прибавлений в получившейся строке удалить последний символ
|
|||
3
Tumakota
20.01.13
✎
19:26
|
(2) Маленько не понял, у меня загружена таблица там есть 3 серии к примеру по 1. Я создаю перкую серию он создает 1 все нормально, создаю вторую он создает с точкой, тоже нормально, но дальше он опять создает с одной точкой, т.к он смотрит по таблице значений и оттуда берет, а как мне вычислить теперь с точкой, и к ней прибавить еще 1 точку и такдалее
|
|||
4
DirecTwiX
20.01.13
✎
19:30
|
Можно создать структуру:
[серия]->сколько уже добавили серий При добавлении прибавлять структура[серия] точек и делать инкремент |
|||
5
Tumakota
20.01.13
✎
19:53
|
(5) А кроме сткрутуры как нить еще делать?
|
|||
6
DirecTwiX
20.01.13
✎
19:58
|
А чем структура не устраивает? Быстрее навряд ли придумаешь.
Пока ЗначениеЗаполнено(НайтиПоНаименованию(Стр1)) Цикл Стр1=Стр1+"."; КонецЦикла |
|||
7
Tumakota
20.01.13
✎
20:44
|
(6) Не могу сделать через структуру, а если попробовать при загрузки из екселя если одинаковая серия то добавлять точку, только вот пока не могу понять как это сделать
|
|||
8
Tumakota
20.01.13
✎
20:47
|
Пока СокрЛП(Конец) <> "" Цикл
стрТЗ = Объект.ТЗ.Добавить(); стрТЗ.НоменклатураД = Лист.Cells(СчСтроки,3).Value; стрТЗ.ПроизводительД = Лист.Cells(СчСтроки,4).Value; стрТЗ.Серия = Строка(Лист.Cells(СчСтроки,5).Value); стрТЗ.Срок = Лист.Cells(СчСтроки,16).Value; стрТЗ.Ставка = Лист.Cells(СчСтроки,11).Value; стрТЗ.Сумма = Лист.Cells(СчСтроки,10).Value; стрТЗ.СуммаНДС = Лист.Cells(СчСтроки,12).Value; стрТЗ.СуммаРозн = Лист.Cells(СчСтроки,15).Value; стрТЗ.ЦенаПри = Лист.Cells(СчСтроки,9).Value; стрТЗ.ЦенаПро = Лист.Cells(СчСтроки,8).Value; стрТЗ.ЦенаРозн = Лист.Cells(СчСтроки,14).Value; стрТЗ.Ед = Лист.Cells(СчСтроки,6).Value; стрТЗ.Количество = Лист.Cells(СчСтроки,7).Value; стрТЗ.ИтогоНДС = Лист.Cells(СчСтроки,13).Value; стрТЗ.Штрихкод = Лист.Cells(СчСтроки,17).Value; стрТЗ.ЖВС = Лист.Cells(СчСтроки,18).Value; СтрТЗ.Булево = истина; Состояние(Строка(счСтроки)); счСтроки = счСтроки + 1; Конец = Лист.Cells(счСтроки,17).Value; КонецЦикла; Вот код загрузки из Екселя, если прям тут сделать проверку на одинаковые значения в сериях то добавлять, только вот пока не могу понять как |
|||
9
DirecTwiX
20.01.13
✎
20:51
|
>Не могу сделать через структуру
В чём проблема? |
|||
10
Tumakota
20.01.13
✎
20:53
|
(9) Да в принципе в том что не работал со структурой, если подскажешь как попробую и буду очень благодарен
|
|||
11
DirecTwiX
21.01.13
✎
00:32
|
Структура = Новый Структура;
... Стр="Серия"; Если Не Структура.Найти(Стр) Тогда Структура.Вставить(Стр); Структура[Стр]=0; Иначе Для Сч=0 По Структура[Стр] Стр=Стр+"."; Структура[Стр]+=1; КонецЕсли; Суть, я думаю, ясна =) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |