8.х ОБМЕН Перенос цен из УТ в УПП

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Vadimok, 23 сен 2008.

  1. TopicStarter Overlay
    Vadimok
    Offline

    Vadimok

    Регистрация:
    23 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Создал ПВД произвольный алгоритм

    Код:
    //Документы формируем порциями
    МаксКоличествоСтрок = Параметры.МаксКоличествоСтрок;
    
    // На каждый тип цен будет сформирован отдельный документ
    ТабТипЦен = СоздатьОбъект("ТаблицаЗначений");
    ТабТипЦен.НоваяКолонка("ТипЦен");
    
    ТабЦены = СоздатьОбъект("ТаблицаЗначений");
    ТабЦены.НоваяКолонка("Номенклатура");
    ТабЦены.НоваяКолонка("Цена");
    ТабЦены.НоваяКолонка("Валюта");
    ТабЦены.НоваяКолонка("ЕдиницаИзмерения");
    ТабЦены.НоваяКолонка("ТипЦен");
    ТабЦены.НоваяКолонка("ПроцентСкидкиНаценки");
    ТабЦены.НоваяКолонка("ИндексСтрокиТаблицыЦен");
    ТабЦены.НоваяКолонка("СпособРасчетаЦены");
    
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |ТекущийЭлемент = Справочник.Цены.ТекущийЭлемент;
    |Валюта = Справочник.Цены.Валюта;
    |ТипЦен = Справочник.Цены.ТипЦен;
    |Единица = Справочник.Цены.Единица;
    |Процент = Справочник.Цены.Процент;
    |Цена = Справочник.Цены.Цена;
    |Функция Счётчик = Счётчик();
    |Группировка ТипЦен без групп;
    |Группировка ТекущийЭлемент без групп;
    |";
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Сообщить("Не удалось выполнить запрос по ценам");
    КонецЕсли;
    
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей ТипЦен
    
    КолСтрок = 0;
    
    ТабТипЦен.УдалитьСтроки();
    ТабЦены.УдалитьСтроки();
    
    ТабТипЦен.НоваяСтрока();
    ТабТипЦен.ТипЦен = Запрос.ТипЦен;
    
    ИндексСтрокиТаблицыЦен = 0;
    Пока Запрос.Группировка(2) = 1 Цикл
    
    Если КолСтрок >= МаксКоличествоСтрок Тогда
    ВходящиеДанные = СоздатьОбъект("СписокЗначений");
    ВходящиеДанные.Установить("ТипыЦен", ТабТипЦен);
    ВходящиеДанные.Установить("Товары", ТабЦены);
    ВходящиеДанные.Установить("Комментарий", Запрос.типЦен.Наименование);
    ВходящиеДанные.Установить("Дата", Параметры.ДатаВводаОстатков);
    
    ВыгрузитьПоПравилу(,, ВходящиеДанные,, "УстановкаЦенНоменклатуры");					
    
    ТабЦены.УдалитьСтроки();
    
    КолСтрок = 0;
    КонецЕсли;
    
    КолСтрок = КолСтрок + 1;
    
    // Заполнение полей цена
    ТабЦены.НоваяСтрока();
    ТабЦены.Номенклатура = Запрос.ТекущийЭлемент.Владелец;
    ТабЦены.Цена = Запрос.ТекущийЭлемент.Цена.Получить(Параметры.ДатаВводаОстатков);
    ТабЦены.Валюта = Запрос.ТекущийЭлемент.Валюта;
    ТабЦены.ЕдиницаИзмерения = Запрос.ТекущийЭлемент.Единица.Получить(Параметры.ДатаВводаОстатков);
    ТабЦены.типЦен = Запрос.ТипЦен;
    ТабЦены.ПроцентСкидкиНаценки = Запрос.ТекущийЭлемент.Процент;
    
    Если ПустоеЗначение(Запрос.ТипЦен.БазовыйТипЦен)=0 Тогда
    ТабЦены.СпособРасчетаЦены = "ПоПроцентнойНаценкеНаБазовыйТип";
    КонецЕсли;
    
    ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен + 1;
    ТабЦены.ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен;
    КонецЦикла;
    
    Если ТабЦены.КоличествоСтрок() > 0 Тогда
    ВходящиеДанные = СоздатьОбъект("СписокЗначений");
    ВходящиеДанные.Установить("ТипыЦен", ТабТипЦен);
    ВходящиеДанные.Установить("Товары", ТабЦены);
    ВходящиеДанные.Установить("Комментарий", Запрос.типЦен.Наименование);
    ВходящиеДанные.Установить("Дата", Параметры.ДатаВводаОстатков);
    
    ВыгрузитьПоПравилу(,, ВходящиеДанные,, "УстановкаЦенНоменклатуры");		
    КонецЕсли;
    КонецЦикла;
    
    
    Должен быть создан для каждого типа цен отдельный документ, а получается так, что создается один документ и уцны по очереди вынружаются в него.

    Подскажите что не так.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Посмотри с ИТС пример правил. Там как раз есть перенос цен
  3. TopicStarter Overlay
    Vadimok
    Offline

    Vadimok

    Регистрация:
    23 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Скинь правила если есть.

Поделиться этой страницей