новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Есин Сергей
Приватное сообщение

Заполнение спецификации с учетом аналогов

8 |  1
16 декабря 2021 в 13:42:05 (3 года 1 неделя 19 часов назад)
49800
Текст задания
Требуется разработать расширение, для УНФ (1.6.24.172), которое будет дополнять стандартную процедуру нажатия кнопки "Заполнить по спецификации" в документе "Проиводство" (см. скриншот).

1. В УНФ есть стандартный регистр сведений "аналоги номенклатуры". В нем пользователь указывает аналоги для материалов(!), используемых в спецификации.
После нажатия на кнопку "Заполнить по спецификации" в документе "Производство", нужно дать отработать типовому механизму и далее проанализировать табличную часть "Материалы". В том случае, если какого-то материала нет на складе (склад выбран в документе), нужно подставить его аналог.

2. Возможен вариант, когда одна позиция, которой недостаточно, заменяется на несколько аналогов, чтобы набрать нужное количество. Пример:
Требуется материал А - 10 штук. Его на складе осталось 1 шт, но есть материал Б, В и Г, которых на складе 8, 3, 2 шт. соответственно. Это аналоги материала А.
В этом случае программа должна в зависимости от имеющегося количества, от большего к меньшему заменить недостающие 9 шт. товара А. Т.е. в итоге должно получиться так:
Товар А - 1 шт. (потому что это изначальная позиция и 1 шт. все же есть на складе)
Товар Б - 8 шт. (потому что среди аналогов товара А, этой позиции больше всего)
Товар В - 1 шт. (следующий по имеющемуся количеству аналог).

3. Расширение планируется для загрузки в облако Фреш, поэтому есть определенная строгость в написании запросов и специальных команд. Нельзя использовать небезопасный режим и конструкцию "Установить привелегированный режим". В запросах нельзя использовать соединение с виртуальными таблицами (в этом случае нужно виртуальную таблицу поместить во временную таблицу и проиндексировать по полю, по которому будет соединение, а потом уже выполнять соединение). Для виртуальных таблиц нельзя использовать условия "ГДЕ...". Если нужен отбор, он должен производиться в параметрах виртуальной таблицы. Не рекомендуется использовать полное соединение. При получении через точку реквизита составного типа данных нужно использовать "Выразить".
0
Выбранные исполнители
Отклики