Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация данных: Можно ли выгрузить несколько типов цен в один документ?

Конвертация данных: Можно ли выгрузить несколько типов цен в один документ?
Я
   breakthrough
 
23.01.13 - 07:39
Здравствуйте!
Делаю выгрузку цен номенклатуры их ТиС пробегая по элементам, затем выгружаю все это в таблицу значений и передаю в ПКО документа "Установка цен номенклатуры". При этом для каждого типа цен вынужден создавать отдельный документ. Можно ли как-то запихать все в один?
Типы цен - расчетные.
Код выгрузки примерно такой:

ТабЦены = СоздатьОбъект("ТаблицаЗначений");
ТабЦены.НоваяКолонка("Номенклатура");
ТабЦены.НоваяКолонка("Цена");
ТабЦены.НоваяКолонка("Валюта");
ТабЦены.НоваяКолонка("ЕдиницаИзмерения");
ТабЦены.НоваяКолонка("ТипЦен");
ТабЦены.НоваяКолонка("ПроцентСкидкиНаценки");
ТабЦены.НоваяКолонка("ИндексСтрокиТаблицыЦен");
ТабЦены.НоваяКолонка("СпособРасчетаЦены");
 
Сообщить("Выгрузка кр. оптовых цен");
ТипЦен=  Перечисление.ТипыРасхЦен.КрупныйОпт;

ТабТипЦен = СоздатьОбъект("ТаблицаЗначений");
ТабТипЦен.НоваяКолонка("ТипЦен");
ТабТипЦен.НоваяСтрока();
ТабТипЦен.ТипЦен = ТипЦен;

НомерПоПорядку = 1;
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
    Если Спр.ЭтоГруппа()=1 Тогда
        Продолжить;
    КонецЕсли;
    Если  Спр.КрупныйОпт.Получить(ДатаОстатков) = 0 Тогда 
        Продолжить;
    КонецЕсли;
    Если  Спр.ЦенаПриобретения.Получить(ДатаОстатков) = 0 Тогда 
        Продолжить;
    КонецЕсли;

        ТабЦены.НоваяСтрока();
        ТабЦены.Номенклатура = Спр.ТекущийЭлемент();
        
        
        Если Спр.ВалютаПродажи <> Константа.БазоваяВалюта Тогда
            ВалютаТовара=Спр.ВалютаПродажи;
            Курс=КурсДляВалюты(Константа.БазоваяВалюта,ДатаОстатков);
            Цена =  Спр.КрупныйОпт.Получить(ДатаОстатков);
            ТабЦены.Цена=Пересчет(Цена,ВалютаТовара,ДатаОстатков,Константа.БазоваяВалюта,Курс);
        Иначе
            ТабЦены.Цена =  Спр.КрупныйОпт.Получить(ДатаОстатков);
          КонецЕсли;
        ТабЦены.ПроцентСкидкиНаценки =  Окр((((ТабЦены.Цена/Спр.ЦенаПриобретения.Получить(ДатаОстатков))-1)*100),2,1);
        ТабЦены.Валюта                = Константа.БазоваяВалюта;
        ТабЦены.ЕдиницаИзмерения    = Спр.БазоваяЕдиницаИзмерения;
        ТабЦены.ТипЦен                = ТипЦен;
        НомерПоПорядку = НомерПоПорядку+1;

        
    КонецЦикла;
                

        ВходящиеДанные = СоздатьОбъект("СписокЗначений");
        ВходящиеДанные.Установить("ТипыЦен",        ТабТипЦен);
        ВходящиеДанные.Установить("Товары",            ТабЦены);
    ВходящиеДанные.Установить("Комментарий",    (Строка(ТипЦен) + " выгрузка из 7-ки"));
        ВходящиеДанные.Установить("Дата",            Параметры.ДатаВводаОстатков);
        ВыгрузитьПоПравилу(,, ВходящиеДанные,, "УстановкаЦенНоменклатуры");                    
        
        ТабЦены.УдалитьСтроки();
           ТабТипЦен.УдалитьСтроки();
 
 
   dk
 
1 - 23.01.13 - 08:15
а в приемнике можно в одном документе хранить несколько типов цен?
Что сейчас останавливает засунуть в ТЗ несколько типов цен?
   breakthrough
 
2 - 23.01.13 - 08:20
(1) Да, в документе "Установка цен номенклатуры" в 8-ке УТ, УПП, КА можно устанавливать сразу несколько типов цен.
Мешает то, что я не знаю как это сделать.
   dk
 
3 - 23.01.13 - 08:23
возьми любой документ готовый в приемнике и погляди через консоль запросов что там где хранится при нескольких ценах в одном документе
   breakthrough
 
4 - 23.01.13 - 08:32
(3) Интерактивно, я знаю как это делается. Вот как программно?  Если знаешь - подскажи.
   dk
 
5 - 23.01.13 - 08:35
что значит как программно? ты же в КД уже написал правило
   breakthrough
 
6 - 23.01.13 - 08:44
(5) ну и что. Как это выглядит в коде? Либо нужно добавлять тип цен в таблицу ТабТипЦен, затем снова пробегать по номенклатуре и добавлять ее в ту же таблицу, либо создавать новую пото выгружать отдельным правилом с поиском по этому документу - но я не знаю как именно будет работать. пробовал и так и так - если бы знал не писал бы. Ты можешь конкретно подсказать?
   cw014
 
7 - 23.01.13 - 08:47
Первая грубейшая ошибка: нет инициализации значения "ИндексСтрокиТаблицыЦен"
   cw014
 
8 - 23.01.13 - 09:09
И нафига грузить через входящие данные?
   Godofsin
 
9 - 23.01.13 - 09:13
(8) а как по-другому?
   cw014
 
10 - 23.01.13 - 09:19
(9)

        ВыгрузитьПоПравилу(Новый Структура("ТипыЦен,Товары,Комментарий, Дата", ТабТипЦен, ТабЦены, СокрЛП(ТипЦен) + " выгрузка из 7-ки"), Параметры.ДатаВводаОстатков),,,, "УстановкаЦенНоменклатуры");
 
 Рекламное место пустует
   Godofsin
 
11 - 23.01.13 - 09:20
(10) "Новый Структура" - это в 7-то?
   hhhh
 
12 - 23.01.13 - 09:27
(6) а сейчас как работает у тебя без типа цен? Ведь должен же быть тип цен.
   cw014
 
13 - 23.01.13 - 09:30
А, да точно... Чего то затупил
   cw014
 
14 - 23.01.13 - 09:39
Тогда так:
        ДанныеОбъекта = СоздатьОбъект("СписокЗначений");
        ДанныеОбъекта.Установить("ТипыЦен",        ТабТипЦен);
        ДанныеОбъекта.Установить("Товары",            ТабЦены);
        ДанныеОбъекта.Установить("Комментарий",    (Строка(ТипЦен) + " выгрузка из 7-ки"));
        ДанныеОбъекта.Установить("Дата",            Параметры.ДатаВводаОстатков);
        ВыгрузитьПоПравилу(ДанныеОбъекта,,,, "УстановкаЦенНоменклатуры");
   breakthrough
 
15 - 23.01.13 - 09:59
(14) И в чем разница? В том, что вы назвали "список значений" "ДаннымиОбъекта" и передаете его как источник?
   Godofsin
 
16 - 23.01.13 - 10:11
Не тривиальная задачка. Может, не стоит она усилий? По одному доку на каждый тип цен по-моему удобней, не?
   breakthrough
 
17 - 23.01.13 - 10:12
(16) По одному все работает) Просто удобней потом цены пересчитывать на основании базовой в одном документе, нежели заходить по отдельности по типу цен, добавлять закуп и пото пересчитывать. А так, я уже с вами согласен.
   Godofsin
 
18 - 23.01.13 - 10:12
Или переписать код на получение всех цен на позиции, при загрузке обрабатывать... как то так... хз, короче
   breakthrough
 
19 - 23.01.13 - 10:13
(7) К чему же ведет эта грубейшая ошибка? Мне о ней пока что ни разу ничего не напоминало.
   cw014
 
20 - 23.01.13 - 10:16
(19) Он указывает, в какой строке на форме должна находиться текущая строка таблицы товаров
   ЧашкаЧая
 
21 - 23.01.13 - 10:19
(19)К коду в (0) дописать чтобы в ТабТипЦен писались все нужные типы цен, в ТабЦены писать цену для каждой номенклатуры в для каждого типа цен (как уже сказали выше заполнять ИндексСтрокиТаблицыЦен). ИндексСтрокиТаблицыЦен - это связка между табличными частями типов цен и номенклатуры.
   breakthrough
 
22 - 23.01.13 - 10:22
(21) Спасибо, теперь стало понятнее)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует