ОСВ по счету, номенклатура, обработка

Новая тема
Показывать по сообщений
"<pre>Запрос = Новый Запрос;<br>    Запрос.Текст = <br>        "ВЫБРАТЬ<br>        |    СпрНоменклатура.ссылка КАК НоменклатураЭлемент,        <br>        |    ЦеныНоменклатуры.Цена КАК Цена        <br>        |ИЗ<br>        |    Справочник.Номенклатура КАК СпрНоменклатура<br>        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры<br>        |        ПО ЦеныНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка";<br><br>    Результат = Запрос.Выполнить();<br><br>    ВыборкаДетальныеЗаписи = Результат.Выбрать();<br><br>    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл<br>         // Бегаем по всей номенклатуре у которой установлены цены<br>         Сообщение = Новый СообщениеПользователю();<br>         // получим объект справочника<br>         Номенклатура = ВыборкаДетальныеЗаписи.НоменклатураЭлемент.ПолучитьОбъект();<br>         // присвоим нужную цену<br>         Номенклатура.ЦенаДляОСВ = ВыборкаДетальныеЗаписи.Цена;<br>         Номенклатура.записать();<br>         // вуаля, бестолковая обработка готова, но над ней еще нужно работать, <br>         // потому как не задана дата, на которую выбирать цены<br>         // и еще много вопросов возникает в ходе анализа этого кода.<br>         Сообщение.Текст ="У номенклатуры - "+ВыборкаДетальныеЗаписи.НоменклатураЭлемент+" стоит цена "+ Строка(ВыборкаДетальныеЗаписи.Цена)+"   "+Строка(ТипЗНЧ(ВыборкаДетальныеЗаписи.Цена));<br>         Сообщение.Сообщить();<br>    //Справочники.Номенклатура.Выбрать().ЦенаДляОСВ=ВыборкаДетальныеЗаписи.Цена;<br>    КонецЦикла; </pre><br><br><br><pre> </pre>"
Спасибо. Буду дорабатывать.
Измерение "ТипЦен" нам не важен?
"а зачем? ;) дата ведь не требуется?<br>> // вуаля, бестолковая обработка готова, но над ней еще нужно работать,"
"Могу предложить такое решение.<br><br>  - Для справочника "Номенклатура" заводите доп.реквизит "Учетная цена".<br>  - С помощью обработки с диска ИТС "Универсальные подбор и обработка объектов" устанавливаете значение этого свойства по последним данным из регистра сведений "Цены номенклатуры" по определенному типу цен.<br>  - Действие обработки:<br><br>  - Объект поиска - справочник "Номенклатура"<br>  - В отборе устанавливаете "Объект.ЭтоГруппа - Равно - Нет"<br>  - Запускаете "Найти объекты"<br>  - Найденные объекты сортируете по коду<br>  - В "Обработках" создаете "Произвольный алгоритм"<br>Код произвольного алгоритма "Установка учетной цены":<br> <br><pre>Состояние("Обработка номенклатуры: " + СокрЛП(Объект.Код) + " «" + СокрЛП(Объект.Наименование) + "»...");<br>// определяем исходные настройки обработки<br>ИмяСвойства = "Учетная цена";<br>ИмяТипаЦен  = "Оптовая";<br>СвойствоУчетнаяЦена = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(ИмяСвойства, Истина);<br>ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(ИмяТипаЦен, Истина);<br>Если ЗначениеЗаполнено(СвойствоУчетнаяЦена) И ЗначениеЗаполнено(ТипЦен) Тогда<br> <br> // получаем значение цены для номенклатуры<br> Запрос = Новый Запрос;<br> Запрос.Текст =<br> "ВЫБРАТЬ ПЕРВЫЕ 1<br> | ЦеныНоменклатурыСрезПоследних.Цена<br> |ИЗ<br> | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(<br> |   ,<br> |   Номенклатура = &Номенклатура<br> |    И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних"<br> ;<br> Запрос.УстановитьПараметр("Номенклатура", Объект.Ссылка);<br> Запрос.УстановитьПараметр("ТипЦен", ТипЦен);<br> Результат = Запрос.Выполнить();<br> // записываем полученное значение цены в доп.реквизит<br> Если НЕ Результат.Пустой() Тогда<br>  Выборка = Результат.Выбрать();<br>  <br>  Выборка.Следующий();<br>  <br>  ЗаписьСвойства = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();<br>  <br>  ЗаписьСвойства.Объект   = Объект.Ссылка;<br>  ЗаписьСвойства.Свойство = СвойствоУчетнаяЦена;<br>  ЗаписьСвойства.Значение = Выборка.Цена;<br>  <br>  ЗаписьСвойства.Записать();<br> КонецЕсли;<br> <br>Иначе<br> <br> Сообщить("Ошибка настроек: доп.реквизит номенклатуры - " + ИмяСвойства + "; тип цен номенклатуры - " + ИмяТипаЦен, СтатусСообщения.Важное);<br> <br>КонецЕсли; </pre>"
Приблизительно такая идея и родилась. Но с исполнением у меня проблемы.
Показал бухам остались не довольны. Сказали, чтобы было как в 7.7, притензии чисто к оформлению, покопал в эту сторону  и в сторону обновления конфы, понял, что буду делать внешний отчет. Спасибо, огромное всем принявшим участие в дискуссии.
> притензии чисто к оформлению<br>наклон не в ту сторону?
Та я вообще хз.  Сказали не не айс. И все привет внешняя обработка)))
"Всегда при переходе возникают, такие вопросы: хочу как в старой.<br>На самом деле сначала нужно выяснить зачем это потом используется и что вообще они хотят с этим делать?<br>Может быть достаточно найти и правильно настроить типовой отчет или использовать универсальный прежде чем ломать конфу или париться с внешней обработкой.<br>У вас материалы<br>1. могут приходить разными партиями соответственно и цены у них могут быть разные в зависимости от партии, это если установлен партионный учет<br>2. при перемещении, списании в зависимости от учетной политики опять же стоимость зависит от партии<br>Так какую цену хотят видеть в отчете, а самое главное для чего????<br>Это в 1С бухгалтерии 7.7 не было партий(или они как-то работали не так. Я уже не помню) и каждый полученный материал приходилось вводить новой строкой, а в 8.2 все работает замечательно;) и не надо раздувать огромный справочник номенклатуры.<br>В любом случае как в 1С 7.7 не будет."
Читают тему
(гостей: 1)

Быстрый переход