Загрузка прайса. УТ 10.3

Обработки - Ценообразование, прайсы

Загрузка прайса

1
Самая простая загрузка прайса в УТ 10.3: копируете коды и цены из эксель на форму и загружаете. Интерфейс проще и понятнее, чем у типовой внешней обработки "Загрузка данных из табличного документа". Плюс данный способ применим для загрузки сложных прайсов (см. публикацию).

Приветствую всех!

Прислали мне прайс (см. картинку)

Я доработал свою же обработку по загрузке номенклатуры в 1с из эксель (для документов Поступление товаров и услуг) //infostart.ru/public/666516/

И получилось так, что не сложно было обучить менеджера загружать прайс в дальнейшем самостоятельно (см. картинку).

В дальнейшем на проекте автоматизации салона красок воспользовался данной обработкой для загрузки прайса пигментов разных цветов: каждый пигмент имеет название и номер цвета, цена зависит как от названия цвета, так и от номера цвета (см. картинку).

Для загрузки подобных прайсов (к слову сказать, в этой отрасли все прайсы двумерные) я доработал обработку следующим образом: обхожу табличный документ по горизонтали и вертикали - цикл в цикле - и для каждого сочетания НазваниеЦвета-НомерЦвета определяю и записываю цену (см. картинку)

Макет = ЭлементыФормы.ПолеТабличногоДокумента1;
Для К = 2 По Макет.ВысотаТаблицы Цикл
    Для Н = 2 По Макет.ШиринаТаблицы Цикл

        НазваниеЦвета   = СокрЛП(Макет.Область(1,Н,1,Н).Текст);
        НомерЦвета      = СокрЛП(Макет.Область(К,1,К,1).Текст);
        Цена            = СокрЛП(Макет.Область(К,Н,К,Н).Текст);

        Если Цена = "нет" Тогда
            Продолжить;
        КонецЕсли;

        НайденныйЦвет = Справочники.НазваниеЦвета.НайтиПоНаименованию(НазваниеЦвета,Истина);
        Если НЕ ЗначениеЗаполнено(НайденныйЦвет) Тогда

            Об = Справочники.НазваниеЦвета.СоздатьЭлемент();
            Об.Родитель = ГруппаЦветов;
            Об.Наименование = НазваниеЦвета;
            Об.Записать();
            НайденныйЦвет = Об.Ссылка;
        КонецЕсли;

        НайденныйНомерЦвета = Справочники.НомерЦвета.НайтиПоНаименованию(НомерЦвета,Истина);
        Если НЕ ЗначениеЗаполнено(НайденныйНомерЦвета) Тогда

            Об = Справочники.НомерЦвета.СоздатьЭлемент();
            Об.Родитель = ГруппаНомерЦвета;
            Об.Наименование = НомерЦвета;
            Об.Записать();
            НайденныйНомерЦвета = Об.Ссылка;
        КонецЕсли;

        Попытка
            Цена = Число(Цена);
        Исключение
            Продолжить;
            Сообщить("Возникла ошибка строка " + К + " колонка " + Н);
        КонецПопытки;

        НЗ = РегистрыСведений.ЦеныЦветов.СоздатьНаборЗаписей();
        НЗ.Отбор.НазваниеЦвета.Установить(НайденныйЦвет);
        НЗ.Отбор.НомерЦвета.Установить(НайденныйНомерЦвета);
        НЗ.Отбор.Период.Установить(Период);

        Запись = НЗ.Добавить();
        Запись.НазваниеЦвета = НайденныйЦвет;
        Запись.НомерЦвета = НайденныйНомерЦвета;
        Запись.Период = Период;
        Запись.Цена = Цена;
        НЗ.Записать();

    КонецЦикла;

КонецЦикла;


 

  К сожалению, на демо-УТ этот алгоритм не воспроизвести, поэтому выкладываю листинг алгоритма, который не включен в предлагаемую обработку. Просто, имея некоторый шаблон для работы с экселевскими данными, можно решать разнообразные задачи - в том числе загружать двумерные прайсы пигментов.

Представленная обработка тестировалась перед публикацией на платформе 8.3.11.3034 на демо-УТ 10.3.46.2.

1

Скачать файлы

Наименование Файл Версия Размер
Загрузка прайса. УТ 10.3
.epf 7,39Kb
26.03.18
3
.epf 7,39Kb 3 Скачать

См. также

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение