Программное создание Акта на разукомплектовку

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Программное создание Акта на разукомплектовку

Сообщение АлександерK »

Долго думал, кому написать: ТП или Сюда
все-таки решил, что сюда, потому как вопрос касается не столько функционала системы, сколько программирования и обратись я в ТП, через пару дней меня все равно отправят к разработчикам

Текста будет много...уж простите ;-)

Появилась задача, автоматизировать процесс разукомплектовки товаров. Сейчас он выглядит так:
есть МЦ, отмеченные в Каталоге как "является комплектом" и у каждой из них есть по одной составляющей

1.Создаем накладную на вн.перемещение на Склад1=>Склад2 (чтобы учет по цеху расфасовки велся отдельно от продаж)

2.Создаем Акт на разукомплектовку со спецификацией совпадающей с накл.из п.1 на Складе2

3.После разукомплектовки перемещаем товар Склад2=>Склад1

Подумали и решили, что п.2 и п.3 можно автоматизировать, т.е. программно создавать Акт (на основе нак.на вн.перемещение Скл1-Скл2) и "обратную" накладную на основе приходного складского ордера на складе2, после разукомплектовки.

Начал пробовать:

1.Включил журнализацию на все таблицы
2.Создал вручную Акт
3.посмотрел в Журнале что создается (KatSopr,SpSopr,SoprHoz,SoprOrDa)
4.посмотрел откуда и что берется
5.создал интерфейс, который на основе выбранной накл.на внутр.перемещение создает Акт и заполняет все таблицы из п.3

Начал проверять, вроде бы все отлично, НО, выяснилось, что после формирования ордеров по Акту неверное проставляются цены в расходном складском ордере, берутся цены за составляющую комплекта, а не за комплект

и тут же обнаружился еще один "косяк", если посмотреть в спецификации Акта в любой позиции Расширенную информацию и нажать там кнопку [Расчет цен для комплекта], то цены увеличатся, причем ровно во столько раз, сколько указано в поле "количество" на закладке "составляющие комплекта" в Каталоге МЦ

Вот собственно и хочу попросить:
расскажите алгоритм расчета цены комплекта (хелп читал, ничего путнего не написано)? или алгоритм создания акта на разукомплектовку...
или уж на худой конец, как говорится, пусть не алгоритм, то хотя бы какие таблицы участвуют при создании Акта, а я был дальше стал разбираться ???
lserg
топ-софт
Сообщения: 15
Зарегистрирован: Ср, 19/09/2007 10:07
Имя Фамилия: Сергей Лебедев
Откуда: ТопСофт
Контактная информация:

Сообщение lserg »

Добрый день !
Вот собственно и хочу попросить:
расскажите алгоритм расчета цены комплекта (хелп читал, ничего путнего не написано)? или алгоритм создания акта на разукомплектовку...
Цена комплекта при разукомплектовании берется равной сумме стоимостей составляющих комплекта. Цены составляющих комплекта рассчитываются по методике списания (средние цены по методике) на дату создания акта .
выяснилось, что после формирования ордеров по Акту неверное проставляются цены в расходном складском ордере, берутся цены за составляющую комплекта, а не за комплект
Проверил у себя - цена комплекта в расходном ордере равна цене списания комплекта по методики списания на дату создания ордера. Всё верно. В акте цена комплекта равной сумме стоимостей составляющих комплекта. Тоже всё верно. Цены составляющих комплекта в приходных ордерах и акте тоже рассчитались правильно
если посмотреть в спецификации Акта в любой позиции Расширенную информацию и нажать там кнопку [Расчет цен для комплекта], то цены увеличатся, причем ровно во столько раз, сколько указано в поле "количество" на закладке "составляющие комплекта" в Каталоге МЦ
Если использовать эту функцию после формирования ордеров, то действительно будет изменение цены комплекта и цен в приходных ордерах - будем разбираться с этим. Нужно либо запретить пересчёт цен после формирования ордеров либо подставлять цены из ордеров.
В ПИРе заведена проблема 102.76771
lserg
топ-софт
Сообщения: 15
Зарегистрирован: Ср, 19/09/2007 10:07
Имя Фамилия: Сергей Лебедев
Откуда: ТопСофт
Контактная информация:

Сообщение lserg »

... Попробуйте пересчитать цены по акту удалив сформированные ордера ( [Отмена формирования] ) или создайте новый акт. При проверке цен учитывайте методику списания.
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Здравствуйте.
Сергей Лебедев писал(а):Цена комплекта при разукомплектовании берется равной сумме стоимостей составляющих комплекта. Цены составляющих комплекта рассчитываются по методике списания (средние цены по методике) на дату создания акта .
это же самое написано в хелпе и я прекрасно понимаю что нужно сделать, чтобы рассчитать цену

Сергей Лебедев писал(а):Проверил у себя - цена комплекта в расходном ордере равна цене списания комплекта по методики списания на дату создания ордера. Всё верно. В акте цена комплекта равной сумме стоимостей составляющих комплекта. Тоже всё верно. Цены составляющих комплекта в приходных ордерах и акте тоже рассчитались правильно
я имел ввиду, что описанной мной проблема возникает только на тех Актах, которые я создал программно, с пом.написанного мною интерфейса, а если же создавать через интерфейс "галактики" - все работает хорошо
Сергей Лебедев писал(а):Если использовать эту функцию после формирования ордеров, то действительно будет изменение цены комплекта и цен в приходных ордерах - будем разбираться с этим. Нужно либо запретить пересчёт цен после формирования ордеров либо подставлять цены из ордеров.
В ПИРе заведена проблема 102.76771
даже если ордеров нет и нажмешь кнопку - цены изменятся, НО(!), только в Акте созданном мною ПРОГРАММНО

...видимо я не верно пояснил что хочу :-) попробую спросить еще раз:

1.Скажите пожалуйста, какие таблицы должны заполняться при создании Акта на разукомплектовку?
2.Есть ли алгоритм расчета цены комплекта? под алгоритмом я понимаю - последовательность действий, описанных на atlantis-е. Т.е. я бы хотел попросить кусок кода, который отвечает за расчет цены комплекта, чтобы его использовать в своих интерфейсах. Может быть есть вообще отдельная прикладная функция для этих целей.

Надеюсь, что так будет понятнее чего я хочу :shuffle:
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Хм..никто ответить не может??? :conf:
lserg
топ-софт
Сообщения: 15
Зарегистрирован: Ср, 19/09/2007 10:07
Имя Фамилия: Сергей Лебедев
Откуда: ТопСофт
Контактная информация:

Сообщение lserg »

1.Скажите пожалуйста, какие таблицы должны заполняться при создании Акта на разукомплектовку?
При вводе акта заполняются таблицы:
  • KatSopr - шапка акта;
    SpSopr - МЦ-комплект;
    SoprOrdA - МЦ, входящие в состав комплекта.
Если уже пытались создавать акты и немного разобрались с таблицами, то посмотреть принципы заполнения полей в наших актах можно по Ctrl+F4
(предварительно поставьте курсор на какое-нибудь поле в нужной панели выбранного документа, после нажатия Ctrl+F4 укажите нужное поле таблицы или выберите его из списка, нажав F3 в поле "Выражение").
2.Есть ли алгоритм расчета цены комплекта? под алгоритмом я понимаю - последовательность действий, описанных на atlantis-е. Т.е. я бы хотел попросить кусок кода, который отвечает за расчет цены комплекта, чтобы его использовать в своих интерфейсах. Может быть есть вообще отдельная прикладная функция для этих целей.
Для каждой МЦ нужно рассчитать цену списания.
Как это сделать - уже рассматривалось на форуме (подробнее см.здесь).
После того, как разберетесь с формированием цены списания, сразу станет понятен следующий фрагмент (это именно то, что Вы запросили):

Код: Выделить всё

SoprOrdA.cVal    := StepMCInfo(cMC_, KatSopr.cValut, KatSopr.cPodrFrom,
                               if(KatSopr.cMOLFrom = 0, comp(-1), KatSopr.cMolFrom),
                               if(SoprOrdA.cParty_ = 0, comp(-1), SoprOrdA.cParty_));
SoprOrdA.Price   := AveragePrice;
SoprOrdA.VPrice  := AverageVPrice;
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Сергей Лебедев писал(а):После того, как разберетесь с формированием цены списания, сразу станет понятен следующий фрагмент (это именно то, что Вы запросили):
это как раз ясно, уже пользовался
спасибо большое - буду пробовать
АлександерK
заказчик
Сообщения: 89
Зарегистрирован: Ср, 19/09/2007 08:48
Имя Фамилия: Александр Киселев
Откуда: Красный Октябрь ОАО ДОК
Контактная информация:

Сообщение АлександерK »

Все получилось, дело было в том, что в SoprOrDa.cmc записывал значение не из SpMc.cMc а из Katmc.Nrec
вот и получалось, что после нажатия на кнопку "Расчет..." цена расчитывалась для комплекта, а не для составляющей :)
в общем сам запутался
спасибо еще раз за помощь
Ответить