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

Новая тема
Показывать по 10 20 40 сообщений
"
Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    СпрНоменклатура.ссылка КАК НоменклатураЭлемент,        
       |    ЦеныНоменклатуры.Цена КАК Цена        
       |ИЗ
       |    Справочник.Номенклатура КАК СпрНоменклатура
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
       |        ПО ЦеныНоменклатуры.Номенклатура = СпрНоменклатура.Ссылка";

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Бегаем по всей номенклатуре у которой установлены цены
        Сообщение = Новый СообщениеПользователю();
        // получим объект справочника
        Номенклатура = ВыборкаДетальныеЗаписи.НоменклатураЭлемент.ПолучитьОбъект();
        // присвоим нужную цену
        Номенклатура.ЦенаДляОСВ = ВыборкаДетальныеЗаписи.Цена;
        Номенклатура.записать();
        // вуаля, бестолковая обработка готова, но над ней еще нужно работать,
        // потому как не задана дата, на которую выбирать цены
        // и еще много вопросов возникает в ходе анализа этого кода.
        Сообщение.Текст ="У номенклатуры - "+ВыборкаДетальныеЗаписи.НоменклатураЭлемент+" стоит цена "+ Строка(ВыборкаДетальныеЗаписи.Цена)+"   "+Строка(ТипЗНЧ(ВыборкаДетальныеЗаписи.Цена));
        Сообщение.Сообщить();
   //Справочники.Номенклатура.Выбрать().ЦенаДляОСВ=ВыборкаДетальныеЗаписи.Цена;
   КонецЦикла;



 
"
Спасибо. Буду дорабатывать.
Измерение "ТипЦен" нам не важен?
"а зачем? ;) дата ведь не требуется?
> // вуаля, бестолковая обработка готова, но над ней еще нужно работать,"
"Могу предложить такое решение.

 - Для справочника "Номенклатура" заводите доп.реквизит "Учетная цена".
 - С помощью обработки с диска ИТС "Универсальные подбор и обработка объектов" устанавливаете значение этого свойства по последним данным из регистра сведений "Цены номенклатуры" по определенному типу цен.
 - Действие обработки:

 - Объект поиска - справочник "Номенклатура"
 - В отборе устанавливаете "Объект.ЭтоГруппа - Равно - Нет"
 - Запускаете "Найти объекты"
 - Найденные объекты сортируете по коду
 - В "Обработках" создаете "Произвольный алгоритм"
Код произвольного алгоритма "Установка учетной цены":

Состояние("Обработка номенклатуры: " + СокрЛП(Объект.Код) + " «" + СокрЛП(Объект.Наименование) + "»...");
// определяем исходные настройки обработки
ИмяСвойства = "Учетная цена";
ИмяТипаЦен  = "Оптовая";
СвойствоУчетнаяЦена = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(ИмяСвойства, Истина);
ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(ИмяТипаЦен, Истина);
Если ЗначениеЗаполнено(СвойствоУчетнаяЦена) И ЗначениеЗаполнено(ТипЦен) Тогда

// получаем значение цены для номенклатуры
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
|   ,
|   Номенклатура = &Номенклатура
|    И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних"
;
Запрос.УстановитьПараметр("Номенклатура", Объект.Ссылка);
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
Результат = Запрос.Выполнить();
// записываем полученное значение цены в доп.реквизит
Если НЕ Результат.Пустой() Тогда
 Выборка = Результат.Выбрать();
 
 Выборка.Следующий();
 
 ЗаписьСвойства = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
 
 ЗаписьСвойства.Объект   = Объект.Ссылка;
 ЗаписьСвойства.Свойство = СвойствоУчетнаяЦена;
 ЗаписьСвойства.Значение = Выборка.Цена;
 
 ЗаписьСвойства.Записать();
КонецЕсли;

Иначе

Сообщить("Ошибка настроек: доп.реквизит номенклатуры - " + ИмяСвойства + "; тип цен номенклатуры - " + ИмяТипаЦен, СтатусСообщения.Важное);

КонецЕсли;
"
Приблизительно такая идея и родилась. Но с исполнением у меня проблемы.
Показал бухам остались не довольны. Сказали, чтобы было как в 7.7, притензии чисто к оформлению, покопал в эту сторону  и в сторону обновления конфы, понял, что буду делать внешний отчет. Спасибо, огромное всем принявшим участие в дискуссии.
> притензии чисто к оформлению
наклон не в ту сторону?
Та я вообще хз.  Сказали не не айс. И все привет внешняя обработка)))
"Всегда при переходе возникают, такие вопросы: хочу как в старой.
На самом деле сначала нужно выяснить зачем это потом используется и что вообще они хотят с этим делать?
Может быть достаточно найти и правильно настроить типовой отчет или использовать универсальный прежде чем ломать конфу или париться с внешней обработкой.
У вас материалы
1. могут приходить разными партиями соответственно и цены у них могут быть разные в зависимости от партии, это если установлен партионный учет
2. при перемещении, списании в зависимости от учетной политики опять же стоимость зависит от партии
Так какую цену хотят видеть в отчете, а самое главное для чего????
Это в 1С бухгалтерии 7.7 не было партий(или они как-то работали не так. Я уже не помню) и каждый полученный материал приходилось вводить новой строкой, а в 8.2 все работает замечательно;) и не надо раздувать огромный справочник номенклатуры.
В любом случае как в 1С 7.7 не будет."
Читают тему
(гостей: 1)

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