Эта обработка может быть полезна для предприятий, который не используют типовой документ ценообразования "Установка цен номенклатуры", и которым для указания цены в документах удобно анализировать цены по контрагентам в уже существующих документах реализация товаров и услуг.
Обработка разработала для типовой конфигурации Бухгалтерия для Украины, редакции 1.2, разрабатывалась и тестировалась в версии 1.2.39.2.
Обработка подключается через механизм внешних обработок табличных частей, так же в обработке прописан макет для автоподключения обработки для документов "Счет на оплату покупателю" и "Реализация товаров услуг" для таблиц "Товары" и "Услуги" документов.
При вызове обработки для табличной части документа, в модальном режиме открывается интерактивная форма обработки, в которой указан период анализа информации (при этом дату начала периода можно изменять, а дата окончания периода устанавливается по дате текущего документа), так же в обработке указан сам документ, организация и валюта документа.
Ниже в обработке размещены две таблицы - таблица приоритетов контрагентов, и таблица товаров документа.
Таблица приоритетов контрагентов предназначена для указания последние цены каких контрагентов являются приоритетными, при анализе и выборе цен - приоритет действует в порядке возрастания номеров строк в таблице (то есть строки с меньшим номером имеют больший приоритет).
Таблица товаров документа - это таблица в которой автоматически заполняются строки товаров или услуг из документа, для которого вызывается обработка, а так же в этой таблице системой заполняются колонки с подобранными значениями предлагаемой цены, контрагент по которому получена эта цена, период (дата) этой цены и документ Реализация товаров (по которому получена цена).
Ниже в обработке есть кнопки "Перезаполнить", "Перенести" и "Закрыть".
Перезаполнить - по нажатию на эту кнопку выполняются основные механизмы и анализа и заполнения цены. При нажатии на эту кнопку системой выполняются следующие операции. Внимание !!! Механизмы описанные ниже работают аналогичным образом как для таблицы товаров, так и для таблицы услуг (с той только разницей что для таблицы услуг всегда используется коэффициент 1).
1. Сначала системой выбираются все проведенные расходные накладные за период указанный в обработке, организации указанной в обработке, валюте указанной в обработке, и товарам указанным в обработке, причем при анализе товаров участвуют пара Номенклатура +ставка НДС (то есть выбираются именно такие строки расходных накладных, где в строке Номенклатура и ставка НДС такие же как в строке текущего документа). При этом выбирается информация в разрезе Контрагент, Номенклатура, Ставка НДС, Дата документа, Документ реализации товаров услуг, а так же цена по документу (выбирается цена с НДС и цена Без НДС - с учетом признака документа "Сумма включает НДС"). Так же при этом учитывается и коэффициент по строке документа, что бы учесть варианты когда одни и тот же товар продавала в разных единицах измерения.
2. Из полученной на первом шаге таблицы выбираются только записи в разрезе Контрагент, Номенклатура, Ставка НДС, Дата цены, Документ, Цена с НДС и Цена без НДС - по максимальной дате (то есть если по какому то контрагенту есть несколько документов продажи этого товара в разные периоды - то выбирается только запись с максимальной датой продажи).
3. На третьем шаге обрабатывается таблица товаров в обработке (по сути таблица товаров из документа в который подбираем цены), и для каждого товара система пытается подобрать цену из таблицы полученной на 2 шаге. При этом система учитывает приоритет контрагентов, указанных в таблице приоритетов. То есть если по таблице последних цен находится цена по контрагенту, указанному в первой строчке приоритетов - она и подставляется в строку. Если по первой строчке контрагента приоритетов данные не найдены, тогда система пытается найти цену по контрагенту указанному во второй строчке таблицы приоритетов и т.п. .... Если обработаны и проверены все строки контрагентов приоритетов, и цена все ещё не подставлена, тогда происходит поиск цены с максимальной датой (то есть из таблицы полученной на шаге 2 выбирается строка с таким товаром, с максимальной датой цены).
Примечание: если в таблице приоритетов указана группа контрагентов - тогда при анализе цены системой предварительно может быть определено несколько строк с ценами, по разным контрагентам (которые находятся в казанной группе) - тогда системой будет выбрана цена с максимальной датой цены, внутри выбранных подходящих строк.
При подборе цен, в каждой строке видны подобранная цена, контрагент расходной накладной по которой выбрана цена, период цены (по сути дата документа рн), и сам документ Реализация товаров услуг.
Если в строке указан коэффициент, тогда полученная цена автоматически делится на указанный в строке коэффициент, что бы получить требуемую цену за единицу (то есть при анализе цен по расходным накладным цена приводится к цене за базовую единицу, а уже при подстановке в документ цена приводится к цене за единицу изменения в строке товаров в обрабатываемом документе).
Если текущая цена в строке обработки (это текущая цена в строке обрабатываемого документа) отличается от цены, которая подобрана обработкой, такая строка выделяется желтым цветом.
Перенести - по нажатию на кнопку перенести, система подставляет цены подобранные в строках в обработке в строки таблицы товаров обрабатываемого документа, с автоматическим пересчетом сумм в строках.
Примечание: если в обработке были строки, в которые не удалось подобрать цену, тогда при выполнении переноса данных системой будет задан вопрос как поступать с такими сроками - переносить нулевую цену в строку, или оставлять такие строки в исходном (обрабатываемо документе) без изменения.
Сохранить таблицу приоритетов контрагентов и дату начала периода обработки (и в дальнейшем восстановить) можно с помощью стандартных кнопок сохранения и восстановления значений.