Внешние обработки заполнения табличных частей Товары
Выполнено
25 апреля 2016 в 07:38:11
(8 лет 28 недель 13 часов назад)
3500
V8.x Комплексная автоматизация
18.04.2016 16:14:20
до 21.04.2016
Текст задания
Конфигурация Комлпексная автоматизация 1.1.70.2
Платформа 8.3.5.1460 в режиме совместимости 8.2.13
Нужны две внешних обработки заполнения табличных частей Товары у документов Заказ покупателя, Заказ поставщику, Реализация товаров и услуг, Поступление товаров и услуг.
1) Обработка загрузки товаров из файлов xlsx xsl csv по штрихкодам
Чтоб в любой из вышеперечисленных документов можно было загрузить файл с табличкой, в файле колонки Штрихкод (обязательно), Количество (не обязательно), Цена (не обязательно).
Обработка загружает по штрихкодам товары согласно регистру сведений Штрихкоды номенклатуры. Если количество или цена не указана то все равно товар грузится в табличную часть, но без них.
2) Обработка - Разложить до комплектующих.
Опять обработка табличной части Товары у документов Заказ покупателя, Заказ поставщику, Реализация, Поступление
В программном коде обработки необходимо указать массив кодов из справочника "Виды номенклатуры" которые необходимо раскладывать
обработка должна вызываться из документа, проходить по существующим строкам табличной части Товары и если Вид номенклатуры совпадает с тем, который указан в коде - то обработка будет раскладывать по регистру Комплектующие номенклатуры этот товар. Соответственно количество комплектующих будет пропорционально количеству из регистра сведений помноженному на количество Комплектов из документа. Подвох заключается в разложении цены комплекта до комплектующих.
Может быть несколько ситуаций:
1) К документу привязан тип цены, у комплекта внесена цена к примеру 1000 руб, состоит из 2х комплектующих, на них в типе цены указана цена к примеру 300 и 600 (в сумме больше цены комплекта) - тогда обработка должна пропорционально сумме комплектующих разложить цену комплекта (300+600 = 1200 доля первой комплектующий 1/3 доля второй комплектующий 2/3 - соответственно берем цену комплекта из документа 1000 - и делим по этим пропорциям - получаем в итоге 333,33 - цену комплектующей 1 и 666,67 цену комплектующей 2 (последняя строчка будет округлятся, чтоб копейки сошлись) Главное чтоб сумма за первоначальный комплект не изменилась
2)К документу привязан тип цены - но не заполнены в этом типе цены цены на некоторые комплектующие - тогда берем цену комплекта 1000, на те комплектующие, на которые есть цены - ставим их, а на оставшиеся комплектующие ставим цену пропорциональную количеству этих комплектующих.
К примеру Комплект 1000 руб состоит из 4х комплектующих, на одну указана цена 500 руб - тогда получаем цену комплектующих 500 и у остальных 3х комплектующих 500/3 (у одной округлить копейки)
3) к документу не привязан тип цены или нет цены на все комплектующие - тогда берем цену комплекта и делим пропорционально количеству комплектующих
Пример - комплект 1000 руб - комплектующие 3 шт - цены 333,33 + 333,33 + 333,34 (у последней копейку добавляем, чтоб сумма сошлась)
Последний момент эта обработка должна работать рекурсивно
К примеру в документе Комплект №1 состоит из Комплекта №2 и №3 (которые в свою очередь состоят из Комплектующих №4,5,6,7 тогда при первой итерации раскладываем до комплектов №2 и №3 а затем вторая итерация раскладывает до комплектующих.
Еще момент связанный с Видами номенклатуры - насколько я помню можно указать тип номенклатуры (набор-комплект, набор-пакет, товар и услуга) Комплектующие могут быть у любых типов - поэтому в программном коде непосредственно указывается что за Виды номенклатуры мы будем раскладывать. Вот только при Набор-комплектах и набор-пакетах в документ заказов и реализаций по-моему попадают комплектующие в отдельную табличную часть - наша обработка должна очищать эту табличную часть и брать данные непосредственно из регистра