Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Пересчет цен при смене контрагента в заказе (http://forums.kuban.ru/f1040/pereschet_cen_pri_smene_kontragenta_v_zakaze-8100713.html)

Grigoriy 03.12.2016 14:00

Пересчет цен при смене контрагента в заказе
 
Нужен совет. Через интернет приходят заказы, в 1С загружаются от имени обезличенного контрагента "Интернет-клиент", у которого договор оплаты предполагает, к примеру предоплату и потому цена равна +20 к закупочной.
После того, как обезличенный клиент опознан, в заказе контрагента меняют, меняется и договор и способ оплаты. Но вот цены при этом не меняются.
Подскажите, какой самый оптимальный способ пересчитать цены в этом случае? Перебирать все строки и рассчитывать для них цену или есть более быстрый способ вызвать пересчет?

perpetum 03.12.2016 14:17

0-Grigoriy > А нельзя сначала создать документ с нужным контрагентом и уже для этого документа делать загрузку? - Ведь в этом случае, по логике вашего алгоритма, сразу будут писаться нужные цены, без пересчета!
:-)

MarySue 03.12.2016 16:07

(1) ты работал когда-нибудь с интернет-магазином?

perpetum 03.12.2016 17:47

[quote=Мэри Сью;43348463] (1) ты работал когда-нибудь с интернет-магазином? [/quote]
- Нет. Но я ориентируюсь на ту часть логики, которая содержится в 0-Grigoriy > - цитирую:
[b]После того, как обезличенный клиент опознан, в заказе контрагента меняют, меняется и договор и способ оплаты.[/b]
- если в процедуре интернет-загрузки присутствует логика распознавания контрагента, очевидным образом все данные по контрагенту становятся доступны для последующей загрузки сразу, без пересчета.
Стало быть - нужно построить правильный алгоритм и не маяться пересчетом.
Хотя пересчет - тривиальная функция и встроить в логику текущего алгоритма функцию пересчёт() - на раз-два...

MarySue 03.12.2016 18:44

В интернет-магазине регистрируется человек (физ.лицо), оформляет заказ. Заказ падает в базу 1С.
Затем с клиентом связывается менеджер, и оказывается, что клиент - представитель юр. лица, и продажу нужно оформлять на юр.лицо.
То есть, идентификация контрагента происходит уже после загрузки заказа в базу 1С.

perpetum 03.12.2016 19:03

4-Мэри Сью >- Хм..., что мешает 0-Grigoriy > в документе Заказ хранить 2 столбца цен для физ-лица и юр-лица, или провести пересчет по условию идентификации? - и то, и другое - весьма доступно.

MarySue 03.12.2016 19:45

а он в сабже именно об этом спрашивает. Ты сабж читал вообще?
он спрашивает, как сделать в заказе пересчёт цен при изменении контрагента.

MarySue 03.12.2016 19:51

Судя по сабжу, можно сделать два вывода:
1) топикстартер вообще не программист 1С (либо очень начинающий)
2) конфигурация вероятно какая-то нетиповая (ибо в типовой нормально работает пересчёт цен при изменении контрагента или договора)
Тут наиболее оптимальное решение - доверить эту работу специалисту, немного заплатив

MarySue 03.12.2016 19:54

думаю, специалист выставит к оплате часик, не больше
ну и по деньгам это будет в пределах тысячи
на мой взгляд, очень недорогое решение проблемы

Шухер 03.12.2016 20:07

[quote=perpetum;43349177] что мешает в документе Заказ хранить 2 столбца цен для физ-лица и юр-лица[/quote]
Я что, для колхозников, плательщиков ЕСХН, будет отдельный столбец в документе Заказ? И думаю ... надо бы добавить по столбцу для иностранных граждан и жителей Заполярья.
Это будет покруче чем по системе Чучундера. В той системе для каждой цены заводится отдельная номенклатура. Думаю, такая идея пригодится и для решения текущей задачи.

bma1 03.12.2016 21:07

2(0) Хотя бы конфигурацию озвучили...

perpetum 03.12.2016 23:32

9-Шухер > - Вот-вот! - Роль столбца может браться из [b]списка типов цен[/b].
Всё сведётся к успешно работающему алгоритму списка цен для конкретного типа контрагента-покупателя.

- У меня есть бух-оптовик, использующая типы цен для городов,
по которым идет работа с товарными потоками опт\розница -
цена учитывает транспортные расходы и обслуживание,
и устанавливается фиксированным значением %% наценки.

- При выборе контрагента - берется нужный тип цен и совершаются необходимые действия по прайсу и отгрузке.
- Следовательно, [b]задачу в (0) можно решать через тип цен продаж (для юр\физ-лица)[/b],
расписываемых сразу, при поступлении товара на склад.

Тогда в документе Заказ нужна процедура [b]ПриВыбореТипаЦен()[/b] - по которой
автоматически произойдёт пересчет цен и сумм табличной части.

Во всех типовых настройках баз типы цен существуют - ими нужно только воспользоваться.

Чучундер 04.12.2016 11:41

9-Шухер > это у тебя все в одной куче смешано до степени нераспознаваемости. что порождает вымороченные схемы указания одного и того же товара в накладной по разным ценам.

У меня одна номенклатура. и много цен. к ней. а про отдельную номенклатуру для каждой цены - это видимо мозг отравленный испрарениями сам знаешь чего у тебя сам выдумал ;-)

Чучундер 04.12.2016 11:43

11-perpetum > в (7) все уже расписали. Надо только воспользоваться советом

VZ 04.12.2016 12:53

Как могут меняться цены после того, как с Покупателем они согласованы? И неважно, "интернет-" он, "телефон-", или сам пришел?
И какой мудрец придумал ценовую политику, когда для любезного покупателя, согласившегося на [u]предоплату[/u], цена [u]увеличивается[/u]?!

perpetum 04.12.2016 14:52

14-VZ > Сам несколько раз делал заказы на страницах интернет-магазинов в режиме офф-лайн.
- Есть форма, в которой указываешь, что хочешь - [b]без корзины покупок (здесь всё понятно и сразу)[/b],
с указанием почты и телефона. Заполнил, отсылаешь свою хотелку в магазин.
По-видимому, при этом формируется предзаказ.
Через некоторое время менеджер продаж магазина звонит и уже конкретно с ним договариваешься о комплектности,
и какой службой будет осуществляться доставка, её варианты.
- В этот момент окончательно формируется Заказ, а на почту присылается счет на оплату.
Есть магазины, которые торгуют оптом в розницу (одна цена), а есть с ценами,
в зависимости от количества товаров и вида юр-физ-лиц (извращенцы).
Вот и (0) имеет 2 типа цен, ориентированных на вид юр-физ-лица, потому и имеет проблему...
:-)

VZ 04.12.2016 16:07

15-perpetum > Нет "проблемы" в "1С". Есть проблема в организации, где юзают "1С".
Все, что должен делать "интернет-магазин" - это сгрузить свою заявку. Где она может, или не может превратиться в "заявку для исполнения". А вот это решается уже [u]после[/u] выгрузки "интернет-заявки". Специально заточенным юзером. Который и превращает "интернет-заявку" в "Заявку для исполнения" (звонит покупателю для подтверждения, или составляет новый счет, или уточняет адрес, ets.).
И никаких здесь "загружается" быть не может: проехали, уже загружено.
И топик должен быть именно с этого момента. Не раньше.

Шухер 04.12.2016 17:45

офф Извиняюсь за лирическое отступление, VZ постоянно использует и каждый раз глаз режет.
[quote=VZ;43352908]или уточняет адрес, ets.[/quote]
Не ets, а etc.

Etc. — сокращение латинского выражения et cetĕra, означающего «и другие», «и тому подобное», «и так далее». Ставится в конце неполного перечисления. Употребляется в ряде европейских языков. /etc — директория в операционной системе UNIX

Grigoriy 05.12.2016 02:43

Правда, забыл указать конфу: "УТ", 10.3.13.2, 2009 год. Сильно кастомизированная. Потому и 7 лет без обновлений.
Я начинающий, тоже правда, 1С знаю постольку, поскольку она похожа на другие ЯП и по образу и подобию уже имеющихся обработок, оставшихся с того же 2009 года.
И третья "тоже правда": в организации много видов цен - предоплата и несколько видов отсрочек, плюс индивидуальные договора. При загрузке заявки в 1С все падают на контрагента "Покупатель из Интернет-Магазина" с предоплатой. В дальнейшем выясняется, что часть заявок пришла от зарегистрированных контрагентов, поэтому КА меняется в заявке, вот тут и должны смениться цены.
И как я понял - мне придется как-то ловить это событие и пересчитывать построчно цены по договору нового контрагента...

Климов Сергей 05.12.2016 09:28

2(18) Ну, если ты совсем начинающий:
1. Открывай форму ФормаДокумента.
2. Открывай свойства поля Контрагент.
3. В событии ПриИзменении клацай кнопку с лупой. Попадёшь в обработчик события. Там ищи вызов нужных тебе процедур.
4. Копипаст.

Grigoriy 05.12.2016 15:02

Спасибо.


Текущее время: 05:37. Часовой пояс GMT +3.