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