Разузлование спецификации что это
Разузлование спецификаций
Вторая статья из серии по нормированию в 1С:УПП
Продолжаем цикл статей по нормативной подсистеме в 1С:УПП.
В рамках этого цикла детально рассмотрим, как работают спецификации в УПП – от теории до практики использования.
Итак, 9 статей по нормативной подсистеме УПП:
Разузлование спецификаций
О чем эта статья
В этой статье рассмотрим разузлование спецификаций – процесс получения информации об исходных комплектующих по выходным изделиям.
Пример разузлования
Для примера в демобазе в справочнике «Спецификации номенклатуры» (в Полном интерфейсе команда Справочники – Номенклатура – Спецификации) выберем спецификацию «Кресло-качалка».
В карточке спецификации в поле Номенклатура отображается основное изделие «Кресло-качалка». В табличной части Исходные комплектующие представлены комплектующие, которые требуются для изготовления одного изделия.
Состав исходных комплектующих спецификации можно рассмотреть более детально с помощью специальной обработки «Конструктор спецификаций» (Справочники – Номенклатура – Конструктор спецификаций).
В форме Конструктора спецификаций в табличной части Номенклатура (справа) выберем позицию «Кресло-качалка» из группы «Мебель». При этом в табличной части Дерево спецификаций (слева) отобразится информация об исходных комплектующих, требующихся для изготовления номенклатуры «Кресло-качалка».
Удобство обработки состоит в том, что можно увидеть информацию не для одного передела, а для нескольких. В табличной части Дерево спецификаций информация может быть представлена на нескольких уровнях.
На первом уровне видны исходные комплектующие, указанные в карточке спецификации номенклатуры «Кресло-качалка». При этом «Прутья ивы (для кресла)» и «Сборка Каркас-полозья» – это полуфабрикаты.
В свою очередь «Каркас для кресла» и «Полозья кресла качалки», являющиеся комплектующими для «Сборки Каркас-полозья», сами являются полуфабрикатами.
Конструктор спецификаций позволяет увидеть полный перечень исходных комплектующих до самых начальных этапов изготовления изделия. То есть можно получить результат разузлования для каждого передела.
Представим полученную информацию по разузлованию в графическом виде.
В данном случае для изготовления «Кресла-качалки» необходимо выполнить три передела. Па первом переделе необходимо выпустить: «Каркас для кресла», «Полозья кресла-качалки» и «Прутья ивы (для кресла)». На втором переделе – выполнить «Сборку Каркас-полозья». На третьем переделе будет выпущено «Кресло-качалка». Так считаются переделы, когда речь идет о производственном процессе.
В нормативной системе принято считать переделы в обратную сторону. При получении информации о том, что исходными комплектующими выходного изделия «Кресло-качалка» являются «Прутья ивы для кресла», «Доска», «Скоба декоративная мебельная», «Сборка Каркас-полозья», считается, что происходит разузлование на один передел.
При разузловании выходного изделия на два передела дополнительно будет получена информация о том, что требуются «Лоза ивы прутовидной», «Скотч 1», «Каркас для кресла» и «Полозья кресла-качалки».
Разузлование до третьего передела в данном примере даст полную информацию о комплектующих. Дополнительно будет получена информация о том, что требуются «Заготовка для полозьев» и «Трубка д4». Такое разузлование от выходного изделия до получения полного состава комплектующих называют полным разузлованием.
Процесс разузлования используется для получения информации об исходных комплектующих, когда необходимо принять решение о том, что необходимо закупить и что необходимо произвести для выпуска продукции (выходных изделий) в требуемом объеме.
Задача разузлования решается в подсистеме Объемно-календарного планирования. В данной подсистеме имеется Помощник планирования, который разузловывает информацию на нужное (заданное) количество переделов.
Виды воспроизводства номенклатуры
При полном разузловании возникает вопрос, по какому признаку программа определяет, что нужно продолжать выполнять разузлование. Например, для рассмотренного ранее примера после разузлования первого передела как программа определяет, что для «Прутьев ивы (для кресла)» и для «Сборки Каркас-полозья» требуется разузлование, а для «Доски» и «Скобы декоративной мебельной» не требуется.
На первый взгляд можно предположить, что если для номенклатуры имеется спецификация, то такую номенклатуру нужно разузловывать. На самом деле ситуация несколько сложнее. Возможно, что имеется какая-то номенклатура, которая может быть произведена, а может быть закуплена. В каких-то случаях номенклатуру удобно произвести, а в каких-то целесообразнее закупить.
Спецификация может быть составлена на тот случай, если номенклатуру нужно будет производить. При этом данная номенклатура может, как правило, закупаться. Наличие спецификации не является для программы критерием для принятия решения о необходимости разузлования номенклатуры.
Программа определяет, выполнять или не выполнять разузлование на очередном переделе по виду воспроизводства номенклатуры.
Вид воспроизводства – это информация об источнике поступления товарно-материальных ценностей на предприятие.
Возможны следующие виды воспроизводства номенклатуры:
Вид воспроизводства определяется в карточке элемента справочника «Номенклатура» (Справочники – Номенклатура – Номенклатура) на закладке Дополнительные. Откроем карточку номенклатуры «Сборка Каркас-полозья» (в группе «Полуфабрикаты»).
На закладке Дополнительные предусмотрено специальное поле Вид воспроизводства.
Данное поле может быть незаполненным. В этом случае следует считать, что вид воспроизводства – «Покупка».
Вид воспроизводства номенклатуры для исходных комплектующих может также указываться в карточке спецификации номенклатуры. Если вид воспроизводства для исходной комплектующей не указан, то это означает что используется значение вида воспроизводства из справочника «Номенклатура». По умолчанию заполняется значение из справочника «Номенклатура».
В карточке спецификации номенклатуры вид воспроизводства номенклатуры для исходных комплектующих может быть указан в табличной части Исходные комплектующие. Для этого в Настройке спецификации номенклатуры должен быть установлен флаг Использовать вид воспроизводства. Форма Настройки спецификации номенклатуры вызывается из командной панели карточки спецификации с помощью команды Настройка.
Так в спецификации номенклатуры «Кресло-качалка» для комплектующей «Доска» установлен Вид воспроизводства «Покупка».
Вид воспроизводства, который указывается для спецификации номенклатуры, является более приоритетным по отношению к тому, который указан в карточке номенклатуры (в справочнике «Номенклатура»).
Для полуфабриката «Сборка Каркас-полозья» Вид воспроизводства не указан. Это значит, что программа будет использовать значение для Вида воспроизводства из справочника «Номенклатура». В карточке номенклатуры «Сборка Каркас-полозья» указан Вид воспроизводства – «Производство» (рассмотрено ранее).
Если необходимо, чтобы в данной конкретной спецификации полуфабрикат «Сборка Каркас-полозья» имел какой-то другой вид воспроизводства, например, «Покупка», то это можно указать в явном виде. Тогда в процессе полного разузлования спецификации номенклатуры «Кресло-качалка» полуфабрикат «Сборка Каркас-полозья» разузловываться не будет.
Считается возможной и нормальной ситуация, когда для одной номенклатуры имеется несколько спецификаций, которые могут отличаться по виду воспроизводства тех или иных исходных комплектующих.
В зависимости от конкретно складывающихся условий для выпуска продукции могут использоваться разные спецификации. В зависимости от спецификаций, выбранных в основном плане производства изделий будут составляться разные детальные планы производства полуфабрикатов и разные планы закупок материалов.
Технология кэширования результата разузлования продукции по спецификации
Все, кто плотно занимались производственным учетом в конфигурации УПП, знают о вопросе разузлования продукции по спецификации. В случае использования сложных спецификаций, с использованием формул, узлов, время на разузлование тратится очень много. А необходимость в разузлованиях возникает довольно часто.
Очевидно, что для хранения и использования результата разузлования нужен регистр сведений.
В качестве измерений будут объект разузлования (Номенклатура, Характеристика) и спецификация.
Однако выяснилось, что результат разузлования при расчете зависит еще и от параметров, таких как КоличествоУровнейРазузлования, ПараметрыВыпуска и т.д.
Соответственно нужно добавлять еще одно измерение. Было решено, что оптимальнее формировать уникальный строковый хэш параметров (модули функций формирования хэша содержатся в приложенной к статье конфигурации). В результате регистр выглядит так:
Регистр сведений КЭШ_Разузлование
Измерения:
— Номенклатура
— ХарактеристикаНоменклатуры
— Спецификация
— ХэшПараметров (тип Строка, 100)
Ресурсы:
— ТаблицаМатериалов (тип ХранилищеЗначения)
Т.е. в регистре хранится готовая таблица материалов для объекта разузлования по определенной спецификации и определенным параметрам расчета.
Перейдем к коду. Непосредственно разузлование продукции производится в УПП (1.2, 1.3) в общем модуле «РазузлованиеНоменклатуры» в функции «РазузловатьНоменклатуру»
Функции СериализоватьОбъектXDTO и ХэшПараметров содержатся в конфигурации, прилагаемой к статье.
В процессе разработки выяснилось, что таблицу материалов (результат разузлования) необходимо формировать из расчета на 1 шт объекта разузлования (чтобы в дальнейшем при разузловании например 30 штук продукции, просто умножить каждое количество материала из исходной таблицы на 30).
Для этого было принято решение, если в данную функцию РазузловатьНоменклатуру передано количество продукции для разузлования не равное 1 (это определяется по параметру передаваемому в функцию Источник.Количество), выполнить вначале разузлование на 1 единицу и сохранить результат разузлования в наш регистр. Причем повторное разузлование не будет выполняться далее, т.к. эту же таблицу мы уже и сможем использовать (будет понятно ниже).
Т.е. добавляем к нашему коду следующее:
И ниже собственно производим считывание из нашего регистра таблицы материалов (из расчета на 1 шт) для данного объекта разузлования по данной спецификации для данного набора параметров. Если таблица есть, выполним пересчет количества материалов в ней на переданное количество и возвратим таблицу материалов как результат разузлования.
Вот и все, осталось только в самом конце функции РазузловатьНоменклатуру (куда при данном алгоритме мы попадем только если разузлование еще не было выполнено) добавить код, записывающий в наш регистр сформированную таблицу материалов (на 1 шт).
В результат функция РазузловатьНоменклатуру выглядит так:
Но это еще не все.
Результат разузлования может измениться в результате внесения изменений в спецификацию, в узел спецификации либо в свойство характеристики, которое используется в формулах расчета.
Поэтому крайне важно производить выборочную очистку нашего регистра в этих случаях.
Это пожалуй самый «узкий» момент, т.к. ошибка здесь чревата получением некорректных данных из регистра. Но результат того стоит, поверьте))
Во вложенной обработке приведены примеры использующихся у нас механизмов очистки записей регистра для всех этих случаям.
На этом все. Согласен, что вариант решения небезупречный, скорее всего потребует доработки. Но надеюсь, что он окажется полезен кому-то.
Открыт для критики и предложений по усовершенствованию! Спасибо)
Разузловка номенклатуры запросом по спецификации
Поставленные цели при разработке ланной обработки:
— наглядный просмотр что и из чего состоит и нет-ли зацикливания;
— увеличение быстродействия процесса разузловки.
Плюсы и минусы обработки:
— заранее не известно какую вложенность запроса необходимо использовать;
+ быстродействие «на лицо» ввиду всего одного обращения к БД.
Для тех, кого интересует только сам запрос, вот код формирования запроса, он не сложен:
Скачать файлы
Специальные предложения
Обновление 26.07.16 10:04
Код открыт Не указано
См. также
Навигатор по конфигурации базы 1С 8.3 Промо
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис «Управление итогами». Платформа 8.3, управляемые формы. Версия 1.1.0.87 от 02.12.2021
28.10.2018 46181 412 ROL32 72
Универсальный редактор данных (УРД)
27.08.2021 6412 129 Adeptus 51
Подсистема «Показатели объектов»
06.03.2021 7410 6 pila86 16
Внешняя компонента: Android tools
12.01.2021 6348 19 KAV2 13
Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) Промо
Иногда нужно удалить сохраненную в 1С «покореженную» настройку или скопировать «удачную» другому пользователю.
01.09.2012 67302 1378 AnryMc 46
FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5
Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.
21.12.2020 10599 27 huxuxuya 11
Внешний регламент для 1С
Внешний регламент сделан для тех, кто ценит свое время и время заказчика. После одноразового встраивания в конфигурацию, внешний регламент на лету позволяет добавлять, изменять внешние модули, которые могут выполнятся как регламентные задачи с указанным интервалом или запускаться в ручном режиме для отладки. Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.
05.03.2020 9066 9 moolex 12
Управление складом (альтернатива ордерной схеме) [Расширение]
Альтернативный ордерной схеме процесс отгрузки и приемки товаров со склада. Для тех, кто не хочет использовать ордерную схему, но желает автоматизировать склад.
25.02.2020 11815 4 UstinovVA 7
Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.
24.05.2012 85427 967 moolex 157
CF & SQL : конструктор прямых запросов к БД 1С
Программа для чтения и анализа внутренней структуры данных 1С V8.х, Содержит конструктор прямых SQL запросов, позволяет обрабатывать и редактировать тексты SQL-запросов, выполнять прямые запросы к базе данных 1С и обрабатывать полученные результаты.
02.10.2019 31400 300 dmitrydemenew 63
Альтернативный способ добавления элементов и реквизитов на формы
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
09.09.2019 18407 35 bmk74 8
Работа с релизами 1С и договорами ИТС
Работа с релизами 1С и партнерским кабинетом.
15.08.2019 21949 65 RocKeR_13 37
Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек. Промо
04.11.2018 54676 540 Eugen-S 35
Вам нравятся запросы в 1С?
Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!
03.07.2019 28970 7 m-rv 91
Модель объекта
Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.
30.06.2019 17158 1 vadim1980 5
Блин, мы забыли включить регламентные задания…
Привет, Инфостарт! Сегодня расскажу, как я решил проблему с выключенными регламентными заданиями в рабочих базах. Желая исключить человеческий фактор и минимизировать количество ошибок, я написал небольшую конфигурацию. В конфигурации два регламентных задания. Первое периодически подключается к кластеру и сохраняет текущие параметры: имя, Сервер БД, базу СУДБ, блокировки входа и регламентных заданий и т.д. Второе задание периодически проверяет эти параметры на ошибки.
08.04.2019 25539 19 slozhenikin_com 37
Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо
Простая обработка для просмотра и установки значений предопределенных элементов. Позволяет заменить значение предопределенного элемента с одного элемента справочника на другой, удалить предопределенный элемент (снять пометку предопределенности), установить пометку переопределенного элемента. Проверяет предопределенные данные на наличие задвоений и отсутствующих. Работает со справочниками, планами счетов, планами видов характеристик, планами видов расчетов.
06.10.2014 171079 2772 ekaruk 170
Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.
09.01.2019 63330 271 informa1555 239
Легкое и гибкое управление списком доступных баз 1С у пользователей
Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.
05.12.2018 22335 23 RomikR 9
Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
Этот отчет позволяет построить дерево спецификации с количеством и ценами по выбранному типу цен.
Отчет для КА и УПП строится на основании регистра сведений ОсновныеСпецификацииНоменклатуры и реквизита ВидВоспроизводства.
Внимание: нет проверки зацикливания уровней, норма в спецификации из расчета 1 шт(количество в шапке спецификации даже если не равно 1, считает 1 вроде).
Исправлено: 22.10.2011. Обработка для КА (в меньшей степени УПП).
У реквизита обработки СпецификацияСсылка стоял неверный тип, нужно СправочникСсылка.СпецификацииНоменклатуры.
У элемента формы ТипЦен была снята видимость элемента
Изменено: Добавлено поле отбора Номенклатура, при выборе Основная спецификация выбирается автоматически
Отчет для КА и УПП строится на основании регистра сведений ОсновныеСпецификацииНоменклатуры и реквизита ВидВоспроизводства.
Для БП строится на основании реквизита у номенклатуры Основная спецификация номенклатуры.
Прежде чем качать зайдите на вкладку файлы, там 2 файла, убедитесь что качаете для нуной конфигурации.
Для разузлования должны выполняться условия:
1)Должны у всех полуфабрикатов быть основные спецификации
2)Вид номенклатуры у номенклатуры должен быть производство
В итоге получим многоиерархическое дерево.