Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Проблемв с коныертацией, выгрузка из 1го запроса в несколько документов (http://forums.kuban.ru/f1040/problemv_s_konyertaciej_vygruzka_iz_1go_zaprosa_v_neskol-ko_dokumentov-3246254.html)

Sany81 31.10.2012 09:42

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

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

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

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

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

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

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

qweqwe123123 31.10.2012 11:03

[em]ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "ЦеныНоменклатуры");[/em]
где это правило и что о нём известно?

Sany81 31.10.2012 11:29

правила описаны выше:
ПВД_ЦеныНоменклатуры_ПередОбработкойПравила

Есть подозрение что надо было просто в правилах поставить галку не запоминать выгруженные объекты.
Сейчас эту галку поставил и пробую перевыгрузить данные, посмотрю что получится.

Sany81 31.10.2012 13:14

Нет, к сожалению галка эта не помогла мне :-(


Текущее время: 16:42. Часовой пояс GMT +3.