Добрый день уважаемые форумчане !!!
прошу помощи у гуру ...
Не нашел в катологе разработок но думаю кто то делал ...
УТ 11 Просят написать так чтобы при подстановке номенклатуры ставилась последняя цена реализации товара - потому что прайс-лист никто не заполняет. Понимаю что можно написать ... думаю наверное кто то делал что то подобное ...
Ткните пожалуйста - вознаграждение будет ...
---
вот в БП3

```1c
    Если Не ЗначениеЗаполнено(ПараметрыОбъекта.ТипЦен) Тогда
    ПараметрыОбъекта.Вставить("СпособЗаполненияЦены", Перечисления.СпособыЗаполненияЦен.ПоПродажнымЦенам);
    КонецЕсли;

    СведенияОНоменклатуре = БухгалтерскийУчетПереопределяемый.ПолучитьСведенияОНоменклатуре(
    СтрокаТабличнойЧасти.Номенклатура,
    ПараметрыОбъекта,
    Ложь);
```

```1c
    ТаблицаЦен = Ценообразование.ПолучитьТаблицуЦенНоменклатурыДокументов(СписокНоменклатуры,
    СпособЗаполненияЦены,
    Дата);
```

```1c
    Функция ПолучитьТаблицуЦенНоменклатурыДокументов(МассивНоменклатуры, СпособЗаполненияЦены, Дата) Экспорт

    ЦеныНоменклатуры = НовыйЦеныНоменклатуры();

    Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ЦеныНоменклатурыДокументов) Тогда
    Возврат ЦеныНоменклатуры;
    КонецЕсли;

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Период", Дата);
    Запрос.УстановитьПараметр("СпособЗаполненияЦены", СпособЗаполненияЦены);
    Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры);

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

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    ЗаполнитьЗначенияСвойств(ЦеныНоменклатуры.Добавить(), Выборка);
    КонецЦикла;

    Возврат ЦеныНоменклатуры;

    КонецФункции
```

Сами цены в отдельном РС хранятся.
---
Если клиент упрямый окажется все-таки, то, пожалуй, самый лучший вариант:
1) добавить вид цен для продаж
2) при проведении реализации сверять цены в реализации с актуальными на дату реализации в строках с видом цен "<Произвольная>": если есть отличия - автоматически создавать и заполнять документ установки цен
---
упрямому клиенту
1.лучше объяснить последствия
2.в случае не согласия помахать рукой
3.в случае согласия не делать глупостей
---
--------------------при подстановке номенклатуры
 ставилась последняя цена реализации товара
--------------------------------------------------------

здесь вообще интересный вопрос :)

простор для догадок
---
1.лучше объяснить последствия
Это само собой

2.в случае не согласия помахать рукой
Когда работаешь не на себя, увы, это решать руководству)

3.в случае согласия не делать глупостей
С этим тоже не поспоришь)
---
Когда работаешь не на себя, увы, это решать руководству) Чегой-то? Рабство отменено в любых формах, насколько я помню.
---
А при чем тут рабство? Клиент обратился к франчу с задачей; клиенту объяснили, что лучше сделать так и так; клиент все равно хочет по-своему и это его право; клиент за это готов платить озвученную сумму - программисту прилетает задача на исполнение. Если программист отказывается от выполнения своих обязанностей по исполнению задачи, то, естественно, руководство задумается, а нужен ли такой работник. Рабства никакого: не хочешь выполнять поставленные задачи - никто не держит, переходи в другую фирму)
---
Так тебе и говорят - в случае несогласия помахать ручкой заказчику. А ты в ответ говоришь, "увы, это решать руководству".
Если ты работаешь во франче, то для тебя первый заказчик - франч. А клиент - просто постановщик задач.
Если ты не согласен с задачей, которую тебе заказал заказчик-франч, а установил клиент - помахай рукой франчу...
---
Где вы в исходном сообщении увидели предложение помахать рукой заказчику?)
упрямому клиенту
1.лучше объяснить последствия
2.в случае не согласия помахать рукой
3.в случае согласия не делать глупостей
---
Ну-ну. Для тебя и клиент и заказчик - это все равно франч. Ты у него на субподряде.
---
Вы ушли уже в какие-то непросветные дебри)) Все намного проще: в наше время махать рукой работодателю - это непростительная глупость, а уж если вы не в Москве - вдвойне. Есть принципиальные знакомые, которые сидят без работы и денег, зато при своих принципах.
---
научите пользоваться программой, люди настолько ленивые и глупые, что не понимают от чего отказываются.
---
На сколько я знаю, цена подставляется в документ «Реализация товаров и услуг» из первого по времени документа ‘Установка цен номенклатуры’ после даты документа. Соответственно, вижу два варианта: 1) сделать регламентное задание, которое ежедневно заполняет документ «Установка цен номенклатуры» нужными ценами, 2) либо установить в справочнике ‘Вид цены’ способ задания цены «ручное назначение» и написать внешнюю обработку, которая через «Дополнительные отчеты и обработки» добавить кнопку в документ «Реализация товаров услуг», а уже к этой кнопке можно приладить любой механизм установки цен. Но каждый из способов имеет свои недостатки: первый способ: 1) регламентное задание обычно ночью выполняется и ,если утром клиент установил в документе реализация новые цены, то они автоматически будут подставляться только со следующего дня; 2) бесконтрольный автоматический ввод ввод очень значимых документов (кто будет крайним, продадут некондицию за 3 копейки, а потом будет продажа нормального товара на миллион и цены автоматически попадут из предыдущего документа). Второй способ: 1) сложно будет использовать автоматический механизм установки персональных скидок клиенту во внешней обработке 2) нельзя будет воспользоваться стандартным функционалом, связанным с документов «Установка цен номенклатуры», например, распечатать прайс. В целом два моих способа требуют вмешательства программиста и по мне правильнее убедить клиента, что все-таки лучше пользоваться стандартным функционалом.
---
1) сложно будет использовать автоматический механизм установки персональных скидок клиенту во внешней обработке Да у них прайс-листа то нет, о каких скидках и акциях может идти речь? ;-)
---
Вот жеж ленивые ))))и очень странные, если цен нет то по каким продавать? а если цена поменялась
---
Это не правильно. Так и скажите им. в (3) вам привели 2 примера почему это не правильно. В УТ 11 отличный механизм по установки цен. Можно устанавливать цены на оснваонии поступления товаров, с определенный процентом наценки. Этого наверняка вам должно хватить.
---
наверное это один из случаев, когда начинается путь к самописке

а потом в тендере задачи....

------------------------------------------
интересные люди с пониманием :
" мне не интересно, как оно должно работать ...
                                   мне интересно как я хочу "

-----------------------------------------
---
Если не ошибаюсь, в бухгалтерии так работает.
Посмотрите как там реализовано.
---
Типового механизма нет, если хотите, то можете заказать доработку программы. В принципе все можно сделать через расширение.
---
вот в БП3

```1c
    Если Не ЗначениеЗаполнено(ПараметрыОбъекта.ТипЦен) Тогда
    ПараметрыОбъекта.Вставить("СпособЗаполненияЦены", Перечисления.СпособыЗаполненияЦен.ПоПродажнымЦенам);
    КонецЕсли;

    СведенияОНоменклатуре = БухгалтерскийУчетПереопределяемый.ПолучитьСведенияОНоменклатуре(
    СтрокаТабличнойЧасти.Номенклатура,
    ПараметрыОбъекта,
    Ложь);
```

```1c
    ТаблицаЦен = Ценообразование.ПолучитьТаблицуЦенНоменклатурыДокументов(СписокНоменклатуры,
    СпособЗаполненияЦены,
    Дата);
```

```1c
    Функция ПолучитьТаблицуЦенНоменклатурыДокументов(МассивНоменклатуры, СпособЗаполненияЦены, Дата) Экспорт

    ЦеныНоменклатуры = НовыйЦеныНоменклатуры();

    Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ЦеныНоменклатурыДокументов) Тогда
    Возврат ЦеныНоменклатуры;
    КонецЕсли;

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Период", Дата);
    Запрос.УстановитьПараметр("СпособЗаполненияЦены", СпособЗаполненияЦены);
    Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры);

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

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    ЗаполнитьЗначенияСвойств(ЦеныНоменклатуры.Добавить(), Выборка);
    КонецЦикла;

    Возврат ЦеныНоменклатуры;

    КонецФункции
```

Сами цены в отдельном РС хранятся.
---
Не уверен, но по-моему там хранятся цены поставщиков, а не цены реализации. Но в целом чисто технически верный подход.
---
Вот эту разработку посмотрите https://infostart.ru/public/1228256/
---
--------------------при подстановке номенклатуры
ставилась последняя цена реализации товара
--------------------------------------------------------

думаете он имел ввиду такую обработку :) ?
---
Не ту ссылку вставил. Вот правильная - https://infostart.ru/public/1311113/
---
Оперативненько))
---
--------------------при подстановке номенклатуры
ставилась последняя цена реализации товара

неужели вы так уверены :)

 подстановка номенклатуры - раскройте тайну , как догадались :)