СРОЧНО!!! Разработать обработку загрузки xml-файла в 1С:УНФ
Отменено
Пенза(Россия )
28.09.1983(41 год)
5 |
0
15 апреля 2022 в 09:13:28
(2 года 36 недель 17 часов назад)
14000
09.02.2022 11:00:40
до 10.02.2022
Не смогли в сжатые сроки найти исполнителя. Выполнили своими силами.
Текст задания
Необходимо срочно выполнить задание! Срок до 10 февраля к 13:00.
В доработанную УНФ добавить следующую функциональность:
Техническое задание:
В расширении «ЗагрузкаЗаказаИСпецификации» документу «ЗаказНаПроизводство» добавить новую табличную часть «Производство», аналогичную по структуре регистру «Производство».
При регистрации документа на основании этой табличной части заполняется регистр «Производство», при снятии регистрации — очищается.
В расширении «ЗагрузкаЗаказаИСпецификации» надо сделать обработку «ЗагрузкаТехническойДокументации» с командой «ЗагрузитьСпецификации». Указать свойства команды:
• Группа: Командная панель формы.Важное;
• Тип параметра команды: ДокументСсылка.ЗаказНаПроизводство;
• Режим использования параметра: Одиночный.
Команда открывает форму:
По кнопке «...» происходит выбор файла на клиентском компьютере.
По кнопке «Прочитать» - разбор файла и заполнение структуры, которая позже будет загружена в табличную часть «Производство» документа «ЗаказНаПроизводство». Если при этом будут созданы новые операции, то надо заполнить таблицу для указания оператором соответствия новой операции и этапа производства.
По кнопке «Загрузить» заполняется табличная часть «Производство» документа «ЗаказНаПроизводство».
Правила разбора файла формата xml:
1 Номеру текущего документа «Заказ на производство» присваиваем значение из файла xml в блоке <Заказ></Заказ>.
2 При разборе <СписокЭлементов> встречаются следующие блоки:
2.a <Блок> - не требует разбора
2.b <Полуфабрикат> - не требует разбора
2.c <ОсновнойМатериал> или <СопутствующийМатериал> - это номенклатура 1С, к которой не создаются партии.
Xml
1С
Номенклатура
Категория номенклатуры = Материал
<Наименование> </Наименование>
Наименование
<ЕдИзм></ЕдИзм>
Ед. измерения
Способ пополнения = Закупка
Тип = Запас
2.d <Сборка> - рассматриваются только те сборки, где в <СписокЭлементов> этой сборки входит <Полуфабрикат>. Сборка – это номенклатура в 1С
Xml
1С
Номенклатура
<ТипОбъекта> </ТипОбъекта>
Категория номенклатуры
<Наименование> <Наименование>
Наименование
Способ пополнения = Производство
Ед. Измерения = штуки
Тип = Запас
Партия
<Заказ></Заказ> в начале файла
Номер заказа
<Высота>
Длина
<Ширина>
Ширина
<Глубина>
Толщина
<Прямоугольная>
Форма
<ОсновнойМатериал>
Материал
2.e <Объект> - разбирается в том случае, если:
▪ <ТипОбъекта> не равен фурнитура или сборка И заполнен блок <СписокОпераций>.
▪ <ТипОбъекта> равен фурнитура или сборка.
! При этом не важно, в каком блоке находится <Объект>
3 Каждый <Объект> - это номенклатура в 1С с конкретной партией. Рассмотрим соответствие блоков xml и реквизитов номенклатуры и партии в 1С.
Xml
1С
Номенклатура
<ТипОбъекта> </ТипОбъекта>
Категория номенклатуры
<Наименование> <Наименование>
Наименование
Способ пополнения = Производство
Ед. Измерения = штуки
Тип = Запас
Партия (Для ТипОбъекта = Профиль)
<Заказ></Заказ> в начале файла
Номер заказа
<Позиция></Позиция>
Позиция
<Длина_готовой_детали>
Длина
<Ширина_готовой_детали>
Ширина
<Длина_детали_без_облицовки>
Длина без облицовки
<Ширина_детали_без_облицовки>
Ширина без облицовки
<ОбщаяТолщина>
Толщина
<Прямоугольная>
Форма
<ОсновнойМатериал>
Материал
Партия (Для ТипОбъекта = Сборка)
<Высота>
Длина
<Ширина>
Ширина
<Глубина>
Толщина
<Заказ></Заказ> в начале файла
Номер заказа
<Позиция></Позиция>
Позиция
<ОсновнойМатериал>
Материал
Партия (Для ТипОбъекта = Фурнитура)
<Заказ></Заказ> в начале файла
Номер заказа
<ОсновнойМатериал>
Материал
Сборка, Объект, Основной материал – это номенклатура в 1С. При загрузке в 1С ищем по наименованию полное совпадение, если нашли, то выбираем эту номенклатуры, если совпадений нет, то создаем новую, заполняя все обязательные поля.
Партию номенклатуры мы ищем по совпадению номера заказа и номера позиции. Если совпадений нет, то создаем новую, в родителе указываем тот объект или сборку, к которой относится данная партия. Если партия была найдена, то перезаполняем все поля новыми значениями.
При загрузке в 1С документ «Заказ на производство» заполняется следующим образом:
1 Все значения в блоках <ОсновнойМатериал> или <СопутствующийМатериал> добавляются на вкладку «Материалы». Группируемое поле – номенклатура, суммируемое поле – количество.
2 Заполняется таблица «Производство» (описано ниже).
Операции xml и Этапы 1С
У загружаемых элементов есть блок <СписокОпераций>. Каждой операции из xml должен соответствовать этап производства в 1С. Для этого необходимо создать регистр сведений «Соответствие операций этапам производства». При загрузке в 1С информации из файла, происходит сначала поиск номенклатуры по полному совпадению наименования с типом номенклатуры: Операции. Если номенклатура найдена, получаем ссылку на нее, если нет- то создаем. По полученной ссылке в регистре соответствий ищем запись с такой операцией, если запись есть, то переходим к следующей операции, если записи нет, то запрашиваем у пользователя информацию о том, какой этап соответствует данной операции. Соответствие запрашивается в форме, открывающейся по команде «Загрузить спецификации». Пользователь выбирает этап из справочника Этапы производства, после чего происходит создание новой записи в регистре сведений.
Заполнение таблицы «Производство»
Для каждой Сборки, Объекта загруженного из файла проставляется список этапов производства. Происходит создание записи в таблице где заполняется: заказ на производство, номенклатура, партия, количество план = <Количество></Количество> из xml, далее проставляются галки «Выполнять» у соответствующих этапов. Правило простановки этапов в регистре:
1 Номенклатура с категорией «Фурнитура» или «Сборка» проставляются всегда только на этапе « упаковка».
2 Номенклатура с категорией «Составная фурнитура» всегда идет на этап «Сборка фасадов». (Данный этап необходимо создать в справочнике Этапы производства)
3 Остальные галки проставляются в соответствии с тем, какие операции указаны у детали в файле xml и какой этап соответствует этой операции в регистре «Соответствие операций этапам производства».