Подсистема импорта калькуляций

Материал из VcVSoft wiki server
Перейти к: навигация, поиск

Назначение

Импорт калькуляционных карт предназначен для полуавтоматизированного ввода калькуляционных карт из файлов Excel, OpenOffice, DBF, TXT. Позволяет совместить начальный ввод справочника Номенклатура и калькуляционных карт. Может использоваться также, как механизм обмена с внешними программными продуктами.


Структура

Структурная схема обмена представлена ниже. Основными блоками являются:

  1. Файл с данными (в форматах: Excel, OpenOffice, DBF, TXT)
  2. Регистр сведений Соответствия Составов Калькуляций
  3. Общая форма Форма загрузки калькуляций
  4. Документ Заказ на производство
  5. Справочник Калькуляционные карты сборка

Структурная схема импорта калькуляций.png

Алгоритм импорта и его реализация

  1. В общем модуле КлиентВСВ определить процедуру ИмпортироватьКалькуляционнуюКарту(ФормаВладелец), в которой будет открываться общая форма Форма загрузки калькуляции, которой в параметрах будет передаваться ФормаВладелец
  2. Из формы элемента справочника Калькуляционные карты сборка, или формы документа Заказ на производство сделать вызов:
    КлиентВСВ.ИмпортироватьКалькуляционнуюКарту(Элементы.ИмяТабличнойЧастиВКоторуюБудетПроизводитьсяИмпорт)
  3. Сделать недоступной кнопку Импорт
  4. Чтение данных файла в таблицу значений.
    1. При этом должны быть указаны параметры для получения возможности структуризации информации, т.е. Разделители полей, строк, и т.п..
    2. Должны быть указаны номера колонок для:
      1. Кода (0 - не использовать)
      2. Артикула (0 - не использовать)
      3. Штрихкода (0 - не использовать)
      4. Наименования (пустая строка - не использовать)
      5. Количества (должно быть отлично от нуля)
    3. Могут быть указаны номер начальной и конечной строки
  5. Определение соответствий
    1. Для определения соответствий необходимо в общей форме Форма загрузки калькуляции необходимо:
      1. Определить ключ поиска в регистре Соответствия Составов Калькуляций. Ключем поиска будет набор полей, для которых указан номер колонки. (т.е. если номера колонок указаны для Кода и Штрих кода, при сравнении записей должны совпадать Код и Штрихкод одновременно.)
      2. Найти соответствия в регистре Соответствия Составов Калькуляций.
  6. Если в таблице соответствий указаны все соответствия - сделать доступной кнопку Импорт
  7. После нажатия кнопки импорт таблица соответствий должна быть преобразована в массив структур с полями соответствующими колонкам таблицы.
  8. Вызвать функцию ОповеститьОВыборе для передачи в форму владельца таблицы-результата
  9. В общем модуле СерверВСВ определить процедуру ПреобразоватьМассивСтруктурВТаблицуЗначений(МассивСтруктур), которая будет возвращать таблицу значений вместо массива структур, который передается ей в параметре МассивСтруктур. Типы колонок будут определяться типом значений, которые находятся в структуре нулевого элемента массива. Если массив

пуст - будет возвращено значение Неопределено

  1. В модуле менеджера регистра сведений Штрихкоды номенклатуры определить процедуру ДобавитьШтрихКоды(ТаблицаЗначенийСоШтрихкодами, ПерезаписыватьСуществующие), которая получает на вход таблицу значений с колонками: Штрихкод и Номенклатура. Если таких колонок не найдено - возврат. После этого она будет добавлять только те штрихкоды, которых нет в регистре, если параметр ПерезаписыватьСуществующие равен Ложь, и заменять номенклатуру в существующих, если параметр ПерезаписыватьСуществующие равен Истина
  2. В вызывающей определить обработчик события ОбработкаВыбора, сделать вызов:

Процедура ОбработкаВыбораСостав(РезультатВыбора,ИсточникВыбора)

Данные = СерверВСВ.ПреобразоватьМассивСтруктурВТаблицуЗначений(РезультатВыбора);
Если ТипЗнч(Данные) = Тип("ТаблицаЗначений") Тогда
РегистрыСведений.ШтрихКодыНоменклатурыВСВ.ДобавитьШтрихКоды(Данные, Ложь);
КонецЕсли;

КонецПроцедуры


Документы и справочники системы

Данная подсистема может быть использована в следующих документах и справочниках: документ Заказ на производство, документ Отчет о выполненных работах. справочник Калькуляционные карты сборка