|
Конвертация данных: Можно ли выгрузить несколько типов цен в один документ? | ☑ | ||
---|---|---|---|---|
0
breakthrough
23.01.13
✎
07:39
|
Здравствуйте!
Делаю выгрузку цен номенклатуры их ТиС пробегая по элементам, затем выгружаю все это в таблицу значений и передаю в ПКО документа "Установка цен номенклатуры". При этом для каждого типа цен вынужден создавать отдельный документ. Можно ли как-то запихать все в один? Типы цен - расчетные. Код выгрузки примерно такой: ТабЦены = СоздатьОбъект("ТаблицаЗначений"); ТабЦены.НоваяКолонка("Номенклатура"); ТабЦены.НоваяКолонка("Цена"); ТабЦены.НоваяКолонка("Валюта"); ТабЦены.НоваяКолонка("ЕдиницаИзмерения"); ТабЦены.НоваяКолонка("ТипЦен"); ТабЦены.НоваяКолонка("ПроцентСкидкиНаценки"); ТабЦены.НоваяКолонка("ИндексСтрокиТаблицыЦен"); ТабЦены.НоваяКолонка("СпособРасчетаЦены"); Сообщить("Выгрузка кр. оптовых цен"); ТипЦен= Перечисление.ТипыРасхЦен.КрупныйОпт; ТабТипЦен = СоздатьОбъект("ТаблицаЗначений"); ТабТипЦен.НоваяКолонка("ТипЦен"); ТабТипЦен.НоваяСтрока(); ТабТипЦен.ТипЦен = ТипЦен; НомерПоПорядку = 1; Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; Если Спр.КрупныйОпт.Получить(ДатаОстатков) = 0 Тогда Продолжить; КонецЕсли; Если Спр.ЦенаПриобретения.Получить(ДатаОстатков) = 0 Тогда Продолжить; КонецЕсли; ТабЦены.НоваяСтрока(); ТабЦены.Номенклатура = Спр.ТекущийЭлемент(); Если Спр.ВалютаПродажи <> Константа.БазоваяВалюта Тогда ВалютаТовара=Спр.ВалютаПродажи; Курс=КурсДляВалюты(Константа.БазоваяВалюта,ДатаОстатков); Цена = Спр.КрупныйОпт.Получить(ДатаОстатков); ТабЦены.Цена=Пересчет(Цена,ВалютаТовара,ДатаОстатков,Константа.БазоваяВалюта,Курс); Иначе ТабЦены.Цена = Спр.КрупныйОпт.Получить(ДатаОстатков); КонецЕсли; ТабЦены.ПроцентСкидкиНаценки = Окр((((ТабЦены.Цена/Спр.ЦенаПриобретения.Получить(ДатаОстатков))-1)*100),2,1); ТабЦены.Валюта = Константа.БазоваяВалюта; ТабЦены.ЕдиницаИзмерения = Спр.БазоваяЕдиницаИзмерения; ТабЦены.ТипЦен = ТипЦен; НомерПоПорядку = НомерПоПорядку+1; КонецЦикла; ВходящиеДанные = СоздатьОбъект("СписокЗначений"); ВходящиеДанные.Установить("ТипыЦен", ТабТипЦен); ВходящиеДанные.Установить("Товары", ТабЦены); ВходящиеДанные.Установить("Комментарий", (Строка(ТипЦен) + " выгрузка из 7-ки")); ВходящиеДанные.Установить("Дата", Параметры.ДатаВводаОстатков); ВыгрузитьПоПравилу(,, ВходящиеДанные,, "УстановкаЦенНоменклатуры"); ТабЦены.УдалитьСтроки(); ТабТипЦен.УдалитьСтроки(); |
|||
1
dk
23.01.13
✎
08:15
|
а в приемнике можно в одном документе хранить несколько типов цен?
Что сейчас останавливает засунуть в ТЗ несколько типов цен? |
|||
2
breakthrough
23.01.13
✎
08:20
|
(1) Да, в документе "Установка цен номенклатуры" в 8-ке УТ, УПП, КА можно устанавливать сразу несколько типов цен.
Мешает то, что я не знаю как это сделать. |
|||
3
dk
23.01.13
✎
08:23
|
возьми любой документ готовый в приемнике и погляди через консоль запросов что там где хранится при нескольких ценах в одном документе
|
|||
4
breakthrough
23.01.13
✎
08:32
|
(3) Интерактивно, я знаю как это делается. Вот как программно? Если знаешь - подскажи.
|
|||
5
dk
23.01.13
✎
08:35
|
что значит как программно? ты же в КД уже написал правило
|
|||
6
breakthrough
23.01.13
✎
08:44
|
(5) ну и что. Как это выглядит в коде? Либо нужно добавлять тип цен в таблицу ТабТипЦен, затем снова пробегать по номенклатуре и добавлять ее в ту же таблицу, либо создавать новую пото выгружать отдельным правилом с поиском по этому документу - но я не знаю как именно будет работать. пробовал и так и так - если бы знал не писал бы. Ты можешь конкретно подсказать?
|
|||
7
cw014
23.01.13
✎
08:47
|
Первая грубейшая ошибка: нет инициализации значения "ИндексСтрокиТаблицыЦен"
|
|||
8
cw014
23.01.13
✎
09:09
|
И нафига грузить через входящие данные?
|
|||
9
Godofsin
23.01.13
✎
09:13
|
(8) а как по-другому?
|
|||
10
cw014
23.01.13
✎
09:19
|
(9)
ВыгрузитьПоПравилу(Новый Структура("ТипыЦен,Товары,Комментарий, Дата", ТабТипЦен, ТабЦены, СокрЛП(ТипЦен) + " выгрузка из 7-ки"), Параметры.ДатаВводаОстатков),,,, "УстановкаЦенНоменклатуры"); |
|||
11
Godofsin
23.01.13
✎
09:20
|
(10) "Новый Структура" - это в 7-то?
|
|||
12
hhhh
23.01.13
✎
09:27
|
(6) а сейчас как работает у тебя без типа цен? Ведь должен же быть тип цен.
|
|||
13
cw014
23.01.13
✎
09:30
|
А, да точно... Чего то затупил
|
|||
14
cw014
23.01.13
✎
09:39
|
Тогда так:
ДанныеОбъекта = СоздатьОбъект("СписокЗначений"); ДанныеОбъекта.Установить("ТипыЦен", ТабТипЦен); ДанныеОбъекта.Установить("Товары", ТабЦены); ДанныеОбъекта.Установить("Комментарий", (Строка(ТипЦен) + " выгрузка из 7-ки")); ДанныеОбъекта.Установить("Дата", Параметры.ДатаВводаОстатков); ВыгрузитьПоПравилу(ДанныеОбъекта,,,, "УстановкаЦенНоменклатуры"); |
|||
15
breakthrough
23.01.13
✎
09:59
|
(14) И в чем разница? В том, что вы назвали "список значений" "ДаннымиОбъекта" и передаете его как источник?
|
|||
16
Godofsin
23.01.13
✎
10:11
|
Не тривиальная задачка. Может, не стоит она усилий? По одному доку на каждый тип цен по-моему удобней, не?
|
|||
17
breakthrough
23.01.13
✎
10:12
|
(16) По одному все работает) Просто удобней потом цены пересчитывать на основании базовой в одном документе, нежели заходить по отдельности по типу цен, добавлять закуп и пото пересчитывать. А так, я уже с вами согласен.
|
|||
18
Godofsin
23.01.13
✎
10:12
|
Или переписать код на получение всех цен на позиции, при загрузке обрабатывать... как то так... хз, короче
|
|||
19
breakthrough
23.01.13
✎
10:13
|
(7) К чему же ведет эта грубейшая ошибка? Мне о ней пока что ни разу ничего не напоминало.
|
|||
20
cw014
23.01.13
✎
10:16
|
(19) Он указывает, в какой строке на форме должна находиться текущая строка таблицы товаров
|
|||
21
ЧашкаЧая
23.01.13
✎
10:19
|
(19)К коду в (0) дописать чтобы в ТабТипЦен писались все нужные типы цен, в ТабЦены писать цену для каждой номенклатуры в для каждого типа цен (как уже сказали выше заполнять ИндексСтрокиТаблицыЦен). ИндексСтрокиТаблицыЦен - это связка между табличными частями типов цен и номенклатуры.
|
|||
22
breakthrough
23.01.13
✎
10:22
|
(21) Спасибо, теперь стало понятнее)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |