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

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Конвертация данных периодические реквизиты (цены номенклатуры) из 7.7 в 7.7

v7: Конвертация данных периодические реквизиты (цены номенклатуры) из 7.7 в 7.7
Я
   KSergey1C
 
03.10.16 - 08:07
Не получается выгрзить периодические значения справочников.

Создаю ПВД, помещаю измененные цены в ВыборкаДанных

Картинка: https://yadi.sk/i/IH_3lUKcw6zpV

Создал ПКС

Картинка: https://yadi.sk/i/DIt-b7Z-w6zpK

Для каждого ПКС описываю выбор значений из источника:

https://yadi.sk/i/Ps344Ea0w6zpT


В результате выгружается только ОДНА цена.


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


В Функции  ПКС_ПередВыгрузкой_ЦеныЗаПериод_Валюта_Реквизит1(
            Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, НомерПКС, НомерПКО, ОбъектКоллекции, Значение, ТипПриемника, ИмяПКО, ИмяПКОВидСубконто, Пусто, Выражение, НеЗамещать, УзелКоллекцииСвойств)


ЗНачения содержит только реквизит Источник, в ВходящиеДанные, ОбъектКоллекции - вроде как нет ничего.

Подскажите куда крестьянину деваться.
 
 
   KSergey1C
 
1 - 03.10.16 - 09:07
код выборки данных:

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



СправочникНомен = СоздатьОбъект("Справочник.Номенклатура");
СправочникНомен.ВыбратьЭлементы();
Пока СправочникНомен.ПолучитьЭлемент() > 0 Цикл


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

КоллекцияОбъектов = ВыборкаДанных;
   KSergey1C
 
2 - 03.10.16 - 11:31
ап
   Господин ПЖ
 
3 - 03.10.16 - 11:37
поставь "не запоминать" чего-то там...

КД по дефалту кэширует значение для убыстрения работы - отсюда глюк
   KSergey1C
 
4 - 03.10.16 - 11:48
(3) Похоже оно. Вроде как работаеет, по позже проверю до конца.

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