всё правильно, но за один день можно несколько раз изменить значения проведение разных доков
всё правильно, но за один день можно несколько раз изменить значения проведение разных доков
"Чета не получается<br>Делаю так<br><br>Процедура глVBAЦеныПериод(кодтовара) Экспорт <br> Excel=СоздатьОбъект("Excel.Application");<br> РабочаяКнига=Excel.Workbooks("Прайс лист.xls");<br> Лист=РабочаяКнига.Sheets("baza"); <br> СпрНом=СоздатьОбъект("Справочник.Номенклатура");<br> Цены=СоздатьОбъект("Справочник.Цены");<br> Пер=СоздатьОбъект("Периодический"); <br> СпрТЦ= СоздатьОбъект("Справочник.КатегорииЦен");<br> СпрТЦ.НайтиПоНаименованию("Розничная");<br> СпрНом.НайтиПоКоду(кодтовара);<br> Цены.ИспользоватьВладельца(СпрНом.ТекущийЭлемент());<br> Цены.ВыбратьЭлементыПоРеквизиту("КатегорииЦен", "Розничная",1,);<br> Пока Цены.ПолучитьЭлемент()=1 Цикл<br> Пер.ИспользоватьОбъект("Цена",Цены.ТекущийЭлемент());<br> Пер.ВыбратьЗначения(,); <br> строкан=20;<br> Пока Пер.ПолучитьЗначение()=1 Цикл <br> Лист.Cells(строкан,1).value = Пер.Значение;<br> Лист.Cells(строкан,2).value = Пер.ДатаЗнач;<br> строкан=строкан+1;<br> КонецЦикла; <br> КонецЦикла; <br>КонецПроцедуры <br><br>ошибок нет, но таблица пустая ((<br>"
Документами цены не изменяются
"> Цены.ВыбратьЭлементыПоРеквизиту("КатегорииЦен", "Розничная",1,);<br><br>это проблемная строка. С чего вы взяли, что туда можено написать "Розничная" строкой и оно заработает? Ссылку на элемент надо указывать"
Ага, точно. Ну пусть туда несколько значений и вывалится, раз они все таки были.
"Цены.ВыбратьЭлементыПоРеквизиту("КатегорииЦен", Константа.ЦенаРеализации,1,);<br>{Глобальный модуль(466)}: Неверное имя реквизита!<br><br>Цены.ВыбратьЭлементыПоРеквизиту("КатегорииЦен", СпрТЦ,1,);<br>{Глобальный модуль(466)}: Неверное имя реквизита!<br><br>Цены.ВыбратьЭлементыПоРеквизиту("КатегорииЦен", СпрТЦ.ТекущийЭлемент(),1,);<br>{Глобальный модуль(466)}: Неверное имя реквизита!<br>"
"У меня нет "ТиС для Украины". Я написал пример относительно "ТиС для России". Не думаю, что они фундаментально отличаются. В моей ТиС есть реквизит "ТипЦен", а не "КатегорииЦен" в справочнике "Цены" и это видно в моей строке:<br>Цены.ВыбратьЭлементыПоРеквизиту("ТипЦен",Константа.РозничныйТипЦен,1,0);<br>Кроме того, для получения именно розничного типа цен я использую Константа.РозничныйТипЦен, в моей ТиС она есть и в ней хранится ссылка на элемент справочника "ТипыЦен", если у вас сделано как то иначе, надо смотреть и видоизменять предложенный алгоритм. Но основа в нем заложена корректная. Там, собственно, есть все. Просто надо внимательно посмотреть и разобраться в том зачем нужна каждая строчка"
теперь я понял<br>заработало!<br>Просто у меня справочник "категории цен" а в справочнике "цены" у него идентефикатор "категория цены"
Вопрос в догонку<br>А как можно из выборки справочника номенклатура получить элементы в которых дата значения пер.реквизита цены меньше текущей даты например более чем на год?
"ТекДата=ТекущаяДата();<br>ПограничнаяДата=ДобавитьМесяц(ТекДата,-12);<br>Номенклатура=СоздатьОбъект("Справочник.Номенклатура");<br>Цены=СоздатьОбъект("Справочник.Цены");<br>История=СоздатьОбъект("Периодический");<br>Если Номенклатура.НайтиПоКоду(КодТовара)=1 Тогда<br> Цены.ИспользоватьВладельца(Номенклатура.ТекущийЭлемент());<br> Цены.ВыбратьЭлементыПоРеквизиту("ТипЦен",Константа.РозничныйТипЦен,1,0);<br> Пока Цены.ПолучитьЭлемент()=1 Цикл<br> История.ИспользоватьОбъект("Цена",Цены.ТекущийЭлемент());<br> История.ОбратныйПорядок(1);<br> История.ВыбратьЗначения(,ТекДата);<br> Если История.ПолучитьЗначение()=1 Тогда<br> Если История.ДатаЗнач<ПограничнаяДата Тогда<br> //в Номенклатура.ТекущийЭлемент() позиция на нужный элемент<br> ...<br> КонецЕсли;<br> КонецЕсли;<br> КонецЦикла;<br>КонецЕсли;"