К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Проблемв с коныертацией, выгрузка из 1го запроса в несколько документов

Гость
0 - 31.10.2012 - 09:42
Добрый день.
Столкнулся с проблемой при переходе с ТиС на УТ.
В типовые правила что есть в УТ закралась одна ошибка, при выгрузке цен номенклатуры в УТ попадает первый документ установки цен с первым типом цен. Потом должен попадать второй со вторым типом цен, но вместо этого переписывается предыдущий. В итоге после загрузки цен я имею всего 1 документ с номером 10, в котором всего несколько строк по одному из типов цен.

Вот правила выгрузки:
__________________________________________
ПКО_ЦеныНоменклатуры_ПередВыгрузкойОбъекта
ПередВыгрузкой:
Если ТипЗначенияСтр(ВходящиеДанные) = "СписокЗначений" Тогда
Номер = ВходящиеДанные.Получить("Номер");
КлючВыгружаемыхДанных = ИмяПКО + Номер;
КонецЕсли;
ПОслеЗагрузки:
Объект.УстановитьНовыйНомер();
_________________________________________
ПКО_ЦеныНоменклатуры_ПослеЗагрузкиОбъекта
Объект.Информация = "";
Для Каждого ТекущийТип Из Объект.ТипыЦен Цикл
Если Объект.Информация <> "" Тогда
Объект.Информация = Объект.Информация + ", ";
КонецЕсли;
Объект.Информация = Объект.Информация + СокрЛП(ТекущийТип.ТипЦен);
КонецЦикла;
____________________________________________
ПВД_ЦеныНоменклатуры_ПередОбработкойПравила
Товары = СоздатьОбъект("ТаблицаЗначений");
Товары.НоваяКолонка("Номенклатура");
Товары.НоваяКолонка("Цена");
Товары.НоваяКолонка("ТипЦен");
Товары.НоваяКолонка("ЕдиницаИзмерения");
Товары.НоваяКолонка("ПроцентСкидкиНаценки");
Товары.НоваяКолонка("ИндексСтрокиТаблицыЦен");
Товары.НоваяКолонка("Валюта");
Товары.НоваяКолонка("СпособРасчетаЦены");

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

ДатаТА = ПолучитьДатуТА();
ДатаНач = ?((ПустоеЗначение(ДатаНачала) = 0) И (ДатаНачала < ДатаТА), ДатаНачала,ДатаТА);

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//**{ЗАПРОС(ОтборЦен)
|Период с ДатаНач по ДатаНач;
|Номенклатура = Справочник.Цены.Владелец;
|ТипЦен = Справочник.Цены.ТипЦен;
|Рассчитывается = Справочник.Цены.ТипЦен.Рассчитывается;
|БазовыйТипЦен = Справочник.Цены.ТипЦен.БазовыйТипЦен;
|Цена = Справочник.Цены.Цена;
|Единица = Справочник.Цены.Единица;
|Валюта = Справочник.Цены.Валюта;
|Процент = Справочник.Цены.Процент;
|Функция ЦенаСумма = Сумма(Цена);
|Группировка ТипЦен;
|Группировка Номенклатура без групп;
|Условие((Номенклатура.ЭтоГруппа() = 0) И (Цена <> 0));
|";

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

Подскажите, где подправить, что бы документы создавались новые а не перезаписывался один и тот же документ.



Гость
1 - 31.10.2012 - 11:03
ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "ЦеныНоменклатуры");
где это правило и что о нём известно?
Гость
2 - 31.10.2012 - 11:29
правила описаны выше:
ПВД_ЦеныНоменклатуры_ПередОбработкойПравила

Есть подозрение что надо было просто в правилах поставить галку не запоминать выгруженные объекты.
Сейчас эту галку поставил и пробую перевыгрузить данные, посмотрю что получится.
Гость
3 - 31.10.2012 - 13:14
Нет, к сожалению галка эта не помогла мне :-(


К списку вопросов






Copyright ©, Все права защищены