|
Непонятная логика кода ERP в ЗаполнитьДопКолонкиВидовЗапасов отчета комиссионера | ☑ | ||
---|---|---|---|---|
0
DJ Anthon
26.06.23
✎
08:21
|
Есть некая функция ЗаполнитьДопКолонкиВидовЗапасов, которая есть во многих видах документов, в том числе в ОтчетКомиссионера.
Она получает таблицу с видами запасов из ЗаполнитьВидыЗапасов и по идее, должна заполнять некие дополнительные колонки, но она меняет те, которые уже заполнены. При этом она меняет их по непонятному мне алгоритму, и только в этом виде документа, в других документах такого кода нет. А именно, создаёт новые строки видов запасов, а старые удаляет. При этом в старых строках остаются нераспределенные суммы. На эти суммы, соответственно, рвутся проводки по взаиморасчетам. Вот распределение сумм по количеству: НоваяСтрока.Количество = Количество; НоваяСтрока.КоличествоПоРНПТ = Количество * СтрокаЗапасов.КоличествоПоРНПТ / СтрокаЗапасов.Количество; НоваяСтрока.КоличествоУпаковок = ?(КоличествоТоваров <> 0, КоличествоУпаковок * Количество / КоличествоТоваров, 0); НоваяСтрока.КоличествоПоРНПТ = Количество * СтрокаЗапасов.КоличествоПоРНПТ / СтрокаЗапасов.Количество; Если СтрокаЗапасов.Количество Тогда НоваяСтрока.СуммаСНДС = Мин(СуммаСНДСПоСтроке, СтрокаЗапасов.СуммаСНДС); НоваяСтрока.СуммаНДС = Мин(СуммаНДСПоСтроке, СтрокаЗапасов.СуммаНДС); НоваяСтрока.СуммаВознаграждения = Мин(СуммаВознагражденияПоСтроке, СтрокаЗапасов.СуммаВознаграждения); НоваяСтрока.СуммаНДСВознаграждения = Мин(СуммаНДСВознагражденияПоСтроке, СтрокаЗапасов.СуммаНДСВознаграждения); Иначе НоваяСтрока.СуммаСНДС = Макс(СуммаСНДСПоСтроке, СтрокаЗапасов.СуммаСНДС); НоваяСтрока.СуммаНДС = Макс(СуммаНДСПоСтроке, СтрокаЗапасов.СуммаНДС); НоваяСтрока.СуммаВознаграждения = Макс(СуммаВознагражденияПоСтроке, СтрокаЗапасов.СуммаВознаграждения); НоваяСтрока.СуммаНДСВознаграждения = Макс(СуммаНДСВознагражденияПоСтроке, СтрокаЗапасов.СуммаНДСВознаграждения); КонецЕсли; Что означают эти функции Мин? Зачем брать минимальное значение из среднего? Дело в том, что в этом документе присутствуют несколько контрагентов, именно в их разрезе собирается таблица видов запасов. Если одному покупателю товар был продан по одной цене, а другому по другой, то в строке СтрокаЗапасов.СуммаСНДС хранится среднее значение (вообще, зачем это нужно?). А когда формируются новые строки видов запасов, то если новая сумма меньше средней, то разница между ними пропадает, далее в коде эти строки просто удаляются. В таблице товаров реквизиты НомерСчетаФактурыКомиссионера, ДатаСчетаФактурыКомиссионера, Покупатель все заполнены. Получается, что один покупатель может влиять на другого? если разнести строки отчета комиссионера по разным документам, то ничего не пропадает, но это же неправильно. Судя по тому, что это до сих пор не исправлено, это не ошибка. Тогда в чём же логика? Перед тем как спрашивать у разработчиков, хотелось бы понять, может, я просто не знаю каких-то элементарных вещей. Может виновата не функция мин, а структура поиска? почему группируется таблица по одним колонкам, а поиск идет по другим и не учитывает покупателя? ИменаКолонокГруппировки = "АналитикаУчетаНоменклатуры, Упаковка, ДатаСчетаФактурыКомиссионера, Покупатель, НомерСчетаФактурыКомиссионера"; СтруктураПоиска = Новый Структура("АналитикаУчетаНоменклатуры"); |
|||
1
Garykom
26.06.23
✎
08:31
|
Особенность комиссионной торговли и "усреднения цен" в отчете комиссионера
|
|||
2
Garykom
26.06.23
✎
08:33
|
Фактически ТЧ ВидыЗапасов должна перезаполняться при проведении документа
https://infostart.ru/1c/articles/1145154/ И да довольно часто бывают разные веселые глюки |
|||
3
DJ Anthon
26.06.23
✎
08:34
|
(1) ну так это же вроде не усреднение. часть сумм просто пропадает, которая выше средней.
|
|||
4
DJ Anthon
26.06.23
✎
08:37
|
(2) да, это я уже понял. но тут они перезаполняются неправильно. то есть если один покупатель купил товар за 1000, другой за 2000, то первому в проводки попадет 1000, а второму - 1500 (как минимум из 1500 и 2000). а 500 рублей пропадает.
|
|||
5
DJ Anthon
26.06.23
✎
08:44
|
я так понял, усредняться должно в пределах одного контрагента, тогда это выглядит логично. у маркетплейсов цены сильно скачут от любого чиха. значит, структуру поиска надо дополнить. а так как мало кто заполняет эту колонку в отчете комиссионера, разрабам никто и не жалуется. или просто правит конфигу.
|
|||
6
Злопчинский
26.06.23
✎
09:13
|
(4) кто такой "покупатель", кто такой "Контрагент"? И картинку ТЧ отчёта комиссионера с колонками покажи.
Я бы логику разбирал от обратного. Зная что должно получиться в итоге - смотрел бы на получившиеся суммы по алгоритму. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |